先日サーバーをmixhostからシン・レンタルサーバーに変更したのですが、それ以降、PageSpeed Insights (PSI) の「おすすめの方法」にて「ブラウザのエラーがコンソールに記録されました」と表示されるようになりました。
エラーの内容を見てみると、ソースswell-ct-pv
が403になっており、その原因として一番下にFailed callRestApiとあることからREST API周りで問題が起きていることがわかります。
実際、「swell-ct-pv
」で検索をしてみるとSWELLのフォーラムに似た事例がありました。
やはりREST API周りでの問題と考えられるため、プラグインとサーバーの設定を確認します。
本サイトで導入しているプラグインの中でREST APIに影響を与えるものはXO Securityのみです。よって、こちらをまず確認してみましたが、REST APIの無効化設定はONになっていませんでした。
プラグインに問題はなさそうなので、シン・レンタルサーバーの設定を確認しました(「サーバーパネル」→「WordPressセキュリティ設定」)。すると「REST API アクセス制限」という項目がデフォルトでONになっていることが確認できました。
REST API アクセス制限は「REST API」に対する国外IPアドレスからの接続を制限します。
プラグイン「Jetpack by WordPress.com」によるアクセスは制限の対象外です。
※通常は「ON(有効)」のまま運用されることを強く推奨します。
WordPressセキュリティ設定 | 新世代レンタルサーバー【シン・レンタルサーバー】サポート
引用文を読めば感の良い人は気が付くのかもしれませんが、私はわからなかったので有識者の方に相談しました。そして教えて貰ったのが以下。
- PSIは国外IPアドレス。
- 国内レンサバでは海外IPをまとめて制限してしまう方式を採用している場合が多く、個別にIP除外する設定もない。
つまり、シン・レンタルサーバーの「REST API アクセス制限」がONになっているため、海外IPはまとめて制限されており、PSIのような正常な国外IPも拒否されてしまうというのが原因のようです。
実際に「REST API アクセス制限」をOFFにするとエラーも消えました。
よって次のことが言えます。
- PSI上で正常動作していないだけで、REST API自体が無効になっているわけではない。
- 実際問題として
/wp-json/wp/v2/swell-ct-pv
に影響が出ているわけではない
そのため、この問題に対しての私の対応としては「REST API アクセス制限」は引き続きONにしたままで、PSIスコアを無視することとしました。国内向けに記事を書いていることと、PSIスコアを100にすることに重きを置いているわけではないのでこのような対応にしました。
以上です。
コメント