【Cloudflare】Google AdSense自動広告で「お探しのページが見つかりません(404)」と出る原因と対策

CloudFlar

Google AdSense(アドセンス)の自動広告を設定しようとした際、プレビュー画面に「お探しのページが見つかりません」「404 Not Found」と表示されてサイトが表示されないケースがあります。

特に、サイトのフロントにCloudflare(クラウドフレア)を導入している場合や、自宅サーバー(AlmaLinux等)で運用している場合、セキュリティ機能がAdSenseのクローラーを誤ってブロックしている可能性が高いです。

本記事では、CloudflareのWAFをすり抜けてAdSenseプレビューを正常に機能させるための完全な解決手順を解説します。

現象:AdSenseプレビューが404エラーになる理由

AdSenseの自動広告プレビュー画面は、Googleの海外プロキシサーバーを経由してサイトへアクセスを試みます。

このとき、セキュリティ対策として「海外IPからのアクセスを制限」していると、AdSense側のアクセスが不正なBotや攻撃とみなされ、手前のネットワークで遮断されてしまいます。結果として、AdSense側には「ページが存在しない(404)」というエラーが返ってしまいます。

解決策:CloudflareでGoogleのAS番号を「スキップ」する

最も確実で安全な解決策は、「Googleからのアクセスであれば、海外IPであっても無条件で通過させる(スキップする)」というルールをCloudflareのWAF(カスタムルール)に最優先で追加することです。

ステップ1:Cloudflareでカスタムルールを作成する

  1. Cloudflareのダッシュボードにログインし、該当ドメインを選択します。
  2. 左メニューから 「セキュリティ」 > 「WAF」 を開きます。
  3. 「カスタムルール」タブにある 「カスタムルールの作成」 ボタンをクリックします。

ステップ2:ルールの条件を設定する

ルール作成画面で、以下のように設定を入力します。

  • ルール名: Allow Google AS15169 (任意の名前)
  • フィールド: AS番号 (AS Number)
  • 演算子: 等しい (equals)
  • 値: 15169 (※Google LLCの自律システム番号)

続いて、アクションの設定を行います。

  • アクションを選択します: スキップ (Skip)
  • スキップするコンポーネント: 「残りのすべてのカスタムルール」 にチェックを入れる

設定ができたら、画面右下の 「展開(Deploy)」 ボタンを押して保存します。

ステップ3:ルールの「順序」を一番上にする(最重要)

Cloudflareのルールは上から順番に実行されます。海外IPブロックルールよりも下にこのルールがあると、先にブロックされてしまい意味がありません。

  1. カスタムルールの一覧画面に戻ります。
  2. 作成した Allow Google AS15169 の左端にあるアイコンをドラッグし、リストの一番上(順序 1) に移動させます。
  3. トグルスイッチが 「アクティブ(有効)」 になっていることを確認します。

これで、Googleからのアクセスだけが海外IPブロックを安全にスルーできるようになります。

トラブルシューティング:本当に通信が自宅サーバーに届いているか検証する

「Cloudflareの設定を変えたけれど、プレビューがまだ直らない…」という場合、原因がネットワーク経路(Cloudflareやルーター)なのか、サーバー内部(WordPressやWebサーバー)なのかを特定する必要があります。

自宅サーバー(AlmaLinux等)ならではの強みを活かし、Apacheのアクセスログをリアルタイムで監視して原因を切り分けましょう。

ステップ1:Apacheログのリアルタイム監視コマンドを実行

SSHでサーバーに接続し、以下のコマンドを実行します。 これにより、アクセスログの中から「GoogleのプロキシIP」または「Google」という文字列を含む通信だけをリアルタイムで抽出できます。

Bash
tail -f /var/log/httpd/access_log | grep -E "Google|66.102."

ステップ2:AdSenseプレビュー画面を更新する

コマンドを動かした状態のまま、ブラウザでAdSenseの自動広告プレビュー画面の更新ボタンを押します。このときのターミナルの反応によって、対処法が180度変わります。

パターンA:ログがリアルタイムに流れてきた場合

プレビューを更新した瞬間に、ターミナルに以下のようなログが出力された場合、通信は正しく自宅サーバーまで届いています。

Plaintext
66.102.7.37 - - [15/Jul/2026:08:50:12 +0900] "GET / HTTP/1.1" 200 23450 "https://softdev-learn.cc/" "Mozilla/5.0... (GoogleAdSenseInfeed)"

ログのココをチェック!

ログの末尾近くにある 「3桁の数字(ステータスコード)」 に注目してください。

  • 200(正常)が出ている場合: サーバー側は正しくページを返せています!AdSense側が「過去にブロックされたときのエラーキャッシュ」を保持し続けているだけです。すでに通信は開通しているので、数時間〜最大24時間ほど放置すれば自然にプレビューが表示されます。
  • 403(拒否)や404(未検出)が出ている場合: Apache、またはWordPress(テーマ設定やプラグイン)が意図的にGoogleのクローラーを弾いています。セキュリティプラグインの設定やテーマのクローラー拒否設定を見直してください。

パターンB:ログが「何も流れない(沈黙)」場合

プレビューを何度も更新しているのに、ターミナルがピクリとも動かない場合、通信が自宅サーバーの手前で消滅しています。

  • 原因: Cloudflareのルールが正しければ、原因はご家庭のルーターによる「ヘアピンNAT(ループバック)」の制限です。外から戻ってくるプレビューシステムの通信を、ルーターがサーバーに転送できずにエラーを返しています。
  • 対策: これはプレビュー画面(中継システム)が表示できないだけなので、サーバーやWordPress自体に問題はありません。 プレビュー画面での確認は諦めて、自動広告コードを貼って「オン」にしたまま1日ほど放置してください。実際の読者向けには問題なく広告が配信され始めます。

【注意】自宅サーバー環境などで「まだプレビューが映らない」場合

Cloudflareの設定を正しく行っても、AdSense画面が404エラーのまま変わらない場合があります。 特に自宅サーバー環境の場合、Linux側のファイアウォール(firewalld)やWEBサーバー(Apache/Nginx)のログを監視してもアクセス自体が届いていないケースがあります。

原因は「ヘアピンNAT(ループバック)」の問題

これは、AdSenseのプレビュー中継システムが「Cloudflareを経由して自宅のグローバルIPへ戻ってくる」という特殊なルートをたどるためです。家庭用ルーターの多くは、この内部から内部への折り返し通信(ヘアピンNAT)をうまく処理できず、ルーターの手前で通信が消滅して404エラーになります。

対策:プレビューは見えなくても「広告配信」は成功する!

通信がサーバーまで届いていないのはプレビュー画面(中継システム)の表示だけです。Cloudflareのブロックを解除した時点で、実際の広告配信クローラーは裏側で正常にサイトを巡回できるようになっています。

そのため、以下の手順で進めれば問題なく広告は表示されます。

  1. WordPress内にAdSenseの自動広告コードが正しく配置されているか確認する。
  2. AdSense画面で自動広告のトグルを「オン」にする。
  3. 「サイトに適用」をクリックして完了する。

プレビュー画面は見えない状態のままで問題ありません。数時間〜1日ほど放置した後、実際のスマホやPCブラウザでご自身のサイトを確認してみてください。無事に自動広告が表示され始めるはずです。

まとめ

Cloudflareを導入している環境でAdSenseエラーが出た場合は、まず「セキュリティ > イベント」のログを確認し、GoogleのIP(66.102.7.x など)がブロックされていないかチェックしましょう。

原因がCloudflareであれば、今回の「AS番号: 15169 のスキップルール」を最優先に入れることで、セキュリティ強度を落とさずに一発で解決できます。同じ現象で悩んでいる方はぜひ試してみてください!

コメント