【WordPress】サーチコンソールにエラーが出る場合、REST APIの状況も確認すべし
当サイトのリンクには広告が含まれています。
WordPressで運用しているウェブサイトが、Google Search Console(サーチコンソール)のインデックス登録で問題を起こしている場合、REST APIの状況も確認してみると良いです。
対象のページ自体には問題なくアクセス出来ても、REST APIが停止しているとページ情報がwp-jsonから読み込めず、クローラーが弾かれてエラーになる事があります。
/wp-json/wp/v2/posts/ooo(ページid)
経緯
先方から相談を受けたウェブサイトは、以下の状況でした。
- WordPressで運用
- 投稿した記事がGoogle検索からほとんど消えた。新たに登録もされなくなった
- Google Search Console(サーチコンソール)にログインし状況を確認したところ、インデックスレポートの項目にステータスコード「403」のエラーが大量に
- しかしエラーを出しているページを実際に確認するも、正常にアクセス可能(ステータスコード「200」)
- サイトマップは正常に読み込まれている
今までGoogle検索でヒットしていたページが、いつの間にか軒並み消えてしまったそう。そして新たに登録もされない状況とのこと。
ウェブサイトの管理は、担当者や制作会社が何度も変わっており、もはやこの事象が発生した時期も、原因も全く見当がつかないという状況です(よくある話)。
ペナルティの線も疑いましたが、幸い、サーチコンソールが設定済みだったので、中身を見せてもらったところ、インデックス登録に大量のエラーが出ていました。ウェブサイトに問題が発生しているのは確実です。
当初不思議だったのは、サーチコンソールでは「403」のエラーが表示されているのに、実際にそのURLにアクセスすると問題なく閲覧ができるという点です。ステータスコードも「200」で正常でした。
それならば、一体どこに問題があるのでしょうか。
記事のwp-jsonが読み込めなかった
調査を続けたところ、WordPressのREST APIにアクセスが出来ず、wp-jsonディレクトリが完全に機能していない状態でした。
/wp-json/wp/v2/posts/ooo(ページid)
あ、これかも。
すぐにテンプレートを確認したところ、functions.phpにREST APIを無効化するコードが記述されているのを確認しました。
該当箇所を修正し、/wp-json/のposts情報が外部から読み込めるように変更。その状態でサーチーコンソールからURLを再検査させたところ、テストを通過。後日、無事に再インデックスされました👏
未だに残るREST APIへの警戒心
wp-jsonは、WordPressのREST API。外部からウェブサイトのデータを取得できる仕組みです。
しかしREST API機能は、本家WordPressがバージョン4.7.0で実装した当初に盛大にやらかした経緯があり、ちょっとでもググると無効化するティップスが未だに大量に出回っています。
相談を受けたウェブサイトも、意図的に無効化していたわけで、恐らくそういった情報をもとに、前任の制作者がブロックしたのだろうと推測出来ます。まあ気持ちはわかる。
しかしユーザーIDのブロックだけならばポピュラーですが、posts情報までブロックしてしまったのはいただけません。
クローラーはwp-jsonにもアクセスする
クローラーはWordPressで運用されているウェブサイトに対して、サイトマップだけではなくwp-jsonにもアクセスします。
そのためREST APIを完全にブロックしてしまうと、Googleのインデックス登録に支障が出ます。そもそも、インデックス登録に限らず、とうの昔にWordPressもプラグインもREST APIの稼働が前提となっています。
基本的にはREST APIは制限せず、そのまま使うべきです。
ただし、セキュリティの観点から、ユーザーIDなど見せたくない情報があるのも事実(※WordPress.orgはそう考えてはいないようだけど)。
この場合はユーザー情報のエンドポイントのみをブロックしたり、特定のプラグインやクローラーにのみwp-jsonディレクトリのアクセスを許可するなど、適宜対応してください。