要望や症状
メタタグでnoindexを設定していないにも関わらず、Google Search ConsoleやBing Webmaster Tools、SEO設定状況を調べる外部ツールで確認すると、noindexが設定されている状況となっています。
HTMLのheadタグ内にはnoindexに関するメタタグは存在しませんが、どこかでnoindexが検出されている状態です。この現象により、本番環境のサイトが検索エンジンにインデックスされず、SEOに悪影響を与える可能性があります。
理由や原因
この問題の原因は、EC-CUBEの.envファイルでAPP_DEBUG=1に設定されていることです。デバッグモードが有効になっている場合、本番環境であっても検索エンジンによるインデックスを防ぐためのHTTPヘッダー(X-Robots-Tag: noindex)が自動的に送信されます。
EC-CUBE 4系では、デバッグモードが有効な場合にSEO上の問題を防ぐため、検索エンジンクローラーに対してnoindexディレクティブを含むレスポンスヘッダーを送信する仕様となっています。この機能により、開発中のサイトが誤って検索結果に表示されることを防いでいますが、本番環境では意図しない動作となります。
解決策
事前準備として、必ずサイトのバックアップを取得してから作業を行ってください。
1. .envファイルの編集
EC-CUBEのルートディレクトリにある.envファイルを開き、APP_DEBUG=1の行を探します。この値を0に変更してください。
- APP_DEBUG=1
+ APP_DEBUG=0
ファイルの編集が完了したら保存します。
2. キャッシュのクリア
設定変更を反映させるため、以下のコマンドでサイトのキャッシュをクリアします。
bin/console cache:clear --env=prod
3. 設定の確認
ブラウザの開発者ツールでHTTPレスポンスヘッダーを確認し、X-Robots-Tagヘッダーが削除されていることを確認してください。
注意事項
APP_DEBUGを0に変更すると、エラー表示が簡素化され、詳細なデバッグ情報が非表示になります。本番環境では通常この設定が推奨されますが、開発作業中の場合は適切にエラー情報を取得できるよう注意が必要です。
問題が発生した場合のロールバック手順
作業後にサイトの動作に問題が発生した場合は、以下の手順で元の状態に戻すことができます。
.envファイルでAPP_DEBUG=1に戻す- キャッシュをクリア:
bin/console cache:clear
この設定変更により、検索エンジンによる正常なインデックスが可能となり、SEOの問題が解消されます。