ホームページのPHPエラーがGoogle検索に表示されていませんか?
自社のホームページを検索したときに、見覚えのないURLやPHPのエラーメッセージが表示されていると、不安になる方は多いと思います。
たとえば、検索結果のタイトルや説明文に次のような文字が表示されるケースです。
- Warning: Undefined variable…
- Fatal error: Uncaught Error…
- Notice: Undefined index…
- Array(設定内容の一覧)
- サーバー内のディレクトリ名やファイルパス
この状態は、単に見た目が悪いだけではありません。エラーの内容によっては、サーバーの内部構成やプログラムの設置場所などが第三者に知られる可能性があります。
PHPエラーがGoogle検索にインデックスされている場合は、検索結果から消すだけでなく、エラーが公開された原因そのものを修正する必要があります。
この記事では、PHPエラーが検索結果に登録されてしまった場合の削除手順と、同じ問題を繰り返さないための再発防止策を、ホームページ制作会社の視点から分かりやすく解説します。
なぜPHPエラーのページがGoogleにインデックスされるのか
Googleは、インターネット上のURLを巡回し、そのページに表示されている内容を検索結果に登録します。
本来は正常なホームページが表示されるURLでも、Googleが巡回したタイミングでPHPエラーが表示されていると、そのエラー内容をページ本文として認識することがあります。
ブラウザ上ではエラー画面に見えていても、サーバーが「正常なページです」という200のHTTPステータスを返していると、Googleに登録される可能性があります。
HTTPステータスとはブラウザやGoogleに対して、そのURLが正常なのか、存在しないのか、エラーなのかを伝える番号です。正常なページは200、存在しないページは404、サーバー内部の問題は500などが使われます。
PHPエラーがインデックスされる主な原因
- 本番サーバーでPHPのエラー表示が有効になっている
- 存在しないファイルへのアクセスでも200を返している
- アップロード用や管理用のPHPファイルが外部公開されている
- テストページへのリンクがサイト内に残っている
- XMLサイトマップに不要なURLが含まれている
- 外部サイトや不正アクセスによってURLを発見された
- プログラムが想定外の拡張子やURLでも動作してしまう
ホームページ内にリンクがないURLでも、過去のリンク、アクセスログ、外部サイト、サイトマップなどをきっかけにGoogleが発見することがあります。
最初に確認すべきこと

検索結果から削除する前に、対象URLへ実際にアクセスし、現在どのような状態になっているかを確認します。
対象URLをシークレットウィンドウで開く
ブラウザのキャッシュやログイン状態の影響を避けるため、シークレットウィンドウで対象URLを開きます。
次のどの状態なのかを確認してください。
- 現在もPHPエラーが表示される
- 白い画面や空のページが表示される
- 正常なページが表示される
- 404ページが表示される
- 別のページへ転送される
現在もエラーが表示されている場合は、Search Consoleで削除申請をする前に、エラーの公開を止めることが優先です。
URLのHTTPステータスを確認する
見た目が404ページになっていても、内部的には200が返されているケースがあります。これは「ソフト404」と呼ばれる状態です。
ChromeのデベロッパーツールやHTTPステータス確認サービスを使い、対象URLが返しているステータスを確認します。
- 残す正常なページ:200
- 別ページへ移動したページ:301
- 存在しないページ:404
- 完全に削除したページ:410
- プログラム内部の一時的な問題:500
画面に「ページが見つかりません」と表示するだけでは不十分です。サーバー側でも404または410を返す必要があります。
Google検索からPHPエラーのURLを削除する手順

手順1.PHPエラーが表示される原因を修正する
まず、対象URLからエラー内容が見えない状態にします。
不要なURLであれば、ファイルを削除し、404または410を返すようにします。必要なページであれば、PHPのプログラムを修正し、正常な内容を表示させます。
検索結果だけを一時的に消しても、URLへアクセスしたときにエラーが残っていれば、問題は解決していません。
手順2.削除後のURLに適切な処理を設定する
対象URLの今後の扱いに応じて、次のいずれかを設定します。
ページが不要な場合
404または410を返します。
404は「ページが見つからない」、410は「意図的に削除した」という意味です。どちらもGoogleが再確認することで、検索結果から徐々に削除されます。
代わりになるページがある場合
関連性の高いページへ301リダイレクトを設定します。
ただし、関係のないトップページへ何でも転送する方法はおすすめできません。利用者にとっても分かりにくく、Googleからソフト404として扱われることがあります。
ページは残すが検索結果には出したくない場合
HTMLのhead内に、次のnoindexを設定します。
<meta name="robots" content="noindex">
noindexは、Googleがそのページを巡回した際に「検索結果へ登録しないでください」と伝える設定です。Googleも、ページ単位でインデックスを防ぐ方法としてnoindexを案内しています。
noindexを認識させるためには、Googleがページを巡回できる状態にする必要があります。robots.txtで先にアクセスを拒否すると、Googleがnoindexを確認できない場合があります。robots.txtは検索結果から確実に削除するための設定ではありません。
手順3.Search Consoleの削除ツールを使用する
緊急性が高い場合は、Google Search Consoleの「削除」機能を使用します。
- Google Search Consoleを開く
- 対象のプロパティを選択する
- 左側メニューの「削除」を開く
- 「新しいリクエスト」を選択する
- 対象URLを正確に入力する
- 「このURLのみを削除」を選択して申請する
Search Consoleの削除申請は、検索結果を一時的に非表示にするための機能であり、永久削除そのものではありません。
Googleの削除ツールは、所有しているサイトのURLを検索結果から一時的にブロックする機能です。永久的に削除するには、元のURLを404・410・noindexなどの適切な状態に変更する必要があります。
手順4.URL検査でGoogleの認識を確認する
Search Consoleの「URL検査」に対象URLを入力し、Googleが現在どのように認識しているかを確認します。
正常なページへ修正した場合は、「インデックス登録をリクエスト」から再クロールを依頼できます。Googleは、変更したページの再クロールをURL検査から依頼する方法を案内しています。
削除したページの場合は、404または410が正しく返っていることを確認し、Googleの再巡回を待ちます。
PHPエラーを外部に表示させない設定
再発防止で特に重要なのが、本番環境でPHPエラーを画面に直接表示しないことです。
PHPの公式マニュアルでも、本番サイトではエラーを画面に表示せず、ログへ記録することが推奨されています。エラー内容には、ファイルパスやデータベースに関係する情報が含まれる場合があるためです。
php.iniで設定する場合
display_errors = Off
log_errors = On
利用者にはエラーを見せず、管理者がサーバーのエラーログで確認できる状態が理想です。
PHPファイル内で設定する場合
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ただし、PHPファイル内の設定は、致命的な構文エラーが発生した場合には実行されないことがあります。可能であれば、php.iniやサーバーの管理画面から設定する方が安全です。
WordPressの場合
WordPressでは、wp-config.php内のデバッグ設定を確認します。
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
調査のためにログだけ残したい場合は、表示を止めたうえでログ出力を有効にします。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
調査終了後もWP_DEBUGを有効にしたまま放置すると、ログファイルが大きくなったり、設定によっては外部からログを閲覧されたりする可能性があります。作業後は設定とログファイルの公開状態を確認しましょう。
アップロードフォルダや管理用ファイルも確認する

実際のご相談では、通常のページではなく、次のような場所にあるPHPファイルや処理用URLがGoogleに登録されていることがあります。
- 画像や入稿データのアップロードフォルダ
- ダウンロード処理用のURL
- 古いお問い合わせフォーム
- テスト用に作成したPHPファイル
- バックアップした旧サイト
- 管理画面やデバッグ画面
このようなURLは、検索結果から削除するだけでなく、外部から直接アクセスできる必要があるかを見直します。
管理者しか使わないページであれば、ログイン認証、IPアドレス制限、Basic認証などを設定する方が安全です。
個人情報や入稿データを扱うページは、noindexだけに頼らないでください。noindexは検索結果への掲載を制御するものであり、URLを知っている人のアクセスを防ぐ機能ではありません。
よくある失敗
Search Consoleの削除申請だけで終わらせる
削除申請はあくまで一時的な非表示です。エラーページが200のまま残っていれば、将来的に再び検索結果へ表示される可能性があります。
robots.txtだけでブロックする
robots.txtはGoogleの巡回を制御するためのファイルです。すでに登録されているURLを確実に削除する設定ではありません。
また、Googleがページを確認できなくなるため、設定したnoindexを読み取れないことがあります。
トップページへ一括転送する
存在しないURLをすべてトップページへ転送すると、利用者は何が起きたのか分からなくなります。
代替ページがない場合は、無理に転送せず、404または410を返す方が適切です。
エラー表示だけを消してプログラムを修正しない
display_errorsをOffにすると、画面上のエラーメッセージは消えます。しかし、PHPの不具合自体が直るわけではありません。
エラーログを確認し、古いPHPプログラム、未定義変数、データベース接続、ファイル権限など、原因となっている部分を修正する必要があります。
再発防止のためのチェックリスト
- 本番環境のdisplay_errorsをOffにする
- PHPエラーは画面ではなくログへ記録する
- 不要なテストファイルや旧サイトを削除する
- 存在しないURLには404または410を返す
- 管理用ページには認証やアクセス制限を設定する
- XMLサイトマップから不要なURLを除外する
- アップロードフォルダでPHPを実行できないようにする
- WordPress本体・テーマ・プラグインを更新する
- Search Consoleのインデックス状況を定期的に確認する
- サーバーのアクセスログとエラーログを確認する
特にアップロードフォルダでPHPファイルを実行できる状態は、不正なファイルを設置された際の被害を大きくする可能性があります。
サーバー構成によって設定方法は異なりますが、画像や書類を保存するだけのフォルダでは、PHPを実行させない設定を検討しましょう。
PHPエラーには内部情報が含まれることがあります
PHPエラーが表示されたからといって、直ちにホームページが乗っ取られたとは限りません。
しかし、エラーメッセージの内容によっては、次のような情報が外部へ見えることがあります。
- サーバー内の絶対パス
- 使用しているプログラムやライブラリの名称
- データベースのテーブル名
- 設定ファイルの保存場所
- アップロード先のディレクトリ
- ファイルの権限や処理条件
エラー内容にパスワードが書かれていなくても、攻撃者が次の調査に使える情報を与えてしまう可能性があります。
PHPエラーがインデックスされていた場合は、対象URLだけでなく、同じ仕組みを使用している他のURLも確認することが重要です。
まとめ|検索結果の削除とサーバー側の修正をセットで行う
ホームページのPHPエラーがGoogle検索にインデックスされた場合は、次の順番で対応します。
- 対象URLと表示内容を確認する
- PHPエラーの原因を修正する
- 不要なURLに404または410を返す
- 必要に応じてnoindexや認証を設定する
- Search Consoleから一時削除を申請する
- URL検査やエラーログで修正結果を確認する
- 他にも同様のURLがないか調査する
検索結果からURLを消すだけでは、エラーの再表示や情報漏えいの可能性を残してしまいます。必ずサーバーやプログラム側の修正まで行いましょう。
春日部市のホームページ制作サービス「asweb」では、ホームページ制作だけでなく、PHPエラー、Google Search Console、インデックス問題、WordPressの不具合など、公開後の運用についてもご相談いただけます。
「検索結果に知らないURLが出ている」「エラーの内容が危険なのか判断できない」「制作会社と連絡が取れず修正できない」といった場合も、現在の状況を確認したうえで対応方法をご案内します。
ホームページのエラーやGoogle検索への登録でお困りの方は、問題を放置せず、aswebまでお気軽にご相談ください。
