サーチコンソールの「アクセス禁止(403)が原因でブロックされました」への対処法

サーチコンソールの「アクセス禁止(403)が原因でブロックされました」への対処法

サーチコンソールで「アクセス禁止(403)が原因でブロックされました」が発生する原因は様々です。このエラーは、Googlebotがページやファイルをクロールしようとした際に、サーバーから「アクセス禁止」(HTTP 403エラー)の応答を受けたことを意味します。

今回は、URL「admin-ajax.php?action=rest-nonce」でエラーが発生したケースで、原因と対処法を備忘録としてまとめておきます。

エラー対象のページの確認

サーチコンソールの「ページ」>「ページがインデックスに登録されなかった理由」セクションの「アクセス禁止(403)が原因でブロックされました」の行をクリックすると、ブロックされたURLが分かります。

今回は、URL「admin-ajax.php?action=rest-nonce」でした。admin-ajax.phpは、フォーム送信やコメント更新など動的コンテンツに使用されています。ホームページのページではないので、本来はインデックス登録の対象外です。

ブロックされた原因

ブロックされた原因は、以下が考えられます。

キャッシュプラグインの影響

プラグイン「WP Rocket」や「W3 Total Cache」がadmin-ajax.phpをキャッシュし、期限切れのnonceが403エラーを引き起こした。

セキュリティプラグインの影響

プラグイン「Wordfence」や「iThemes Security」がGooglebotを誤ってブロックしてしまった。

サーバー側の設定

ModSecurityやCloudflareのBot保護がGooglebotを制限した。

robots.txtの設定

フォルダ「wp-admin」がブロックされていて、admin-ajax.phpが許可されていない。

対策は必要か?

「admin-ajax.php?action=rest-nonce」はインデックス不要な管理用リソースのため、単独での403エラーはSEOに直接影響しません。ただし、動的機能(例:フォーム送信、コメント更新など)が動作しない場合、影響が出てしまいます。以下の手順で確認・対策してみて下さい。

参照元URLの確認

サーチコンソールの「URL検査ツール」で「admin-ajax.php?action=rest-nonce」を検索し、「参照元URL」を確認して下さい。参照元が公開ページ(例:ブログ投稿、固定ページ)で、インデックス登録が必要な場合、そのページが403エラーでブロックされていないか確認して下さい。ブロックされている場合、以下の手順で確認、対策して下さい。

キャッシュプラグインを使用している場合、キャッシュの設定の修正

プラグイン「WP Rocket」の場合、「Advanced Rules」の「Never Cache URL(s)」欄に以下を追加して下さい。
/wp-admin/admin-ajax.php*
/wp-json/*

プラグイン「Cloudflare」の場合、ページルールで/wp-admin/*をキャッシュから除外して下さい。

セキュリティ設定の確認

プラグイン「Wordfence」の場合、Googlebotをホワイトリストに追加して下さい。

サーバー側の、ModSecurityやファイアウォール設定を確認して下さい。

robots.txtの設定

以下をrobots.txtに追加して下さい。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

動的機能のテスト

フォーム送信やコメント更新など動的機能が正しく動作するか確認して下さい。問題がある場合、プラグインを一時無効化して原因を特定すると良いでしょう。

インデックス状況の確認

参照元URLがインデックス登録されていない場合、サーチコンソールで「URL検査」→「インデックス登録をリクエスト」を実行してみて下さい。

まとめ

「admin-ajax.php?action=rest-nonce」の403エラーは通常無視ですが、参照元URLが公開ページでインデックスが必要な場合、キャッシュやセキュリティ設定の見直しなどが必要になります。