コンテンツにスキップ

サイトを検索エンジンにインデックスさせない方法

メインイメージ

WordPress サイトの開発中などはサイトを検索エンジンにインデックスして欲しくないときがあります。

ここでは WordPress サイトを検索エンジンにインデックスさせない方法を説明します。

A. WordPress の設定を使う方法

WordPress 本体には検索エンジンによるインデックスを防ぐ機能が備わっています。 この方法では WordPress のダッシュボードから数クリックで設定が完了するため非常にかんたんです。

  1. WordPress の管理画面にログインします
  2. サイドバーのメニューから「設定」 → 「表示設定」をクリックします

    設定 → 表示設定

  3. 「検索エンジンがサイトをインデックスしないようにする」のチェックボックスをオンにします

    検索エンジンでの表示 → 検索エンジンがサイトをインデックスしないようにする

  4. 「変更を保存」ボタンをクリックします

以上で完了です。 この設定を有効にすると、WordPress は検索エンジンに対して「このサイトをインデックスしないでください」というメッセージを送ります。

ただしこの方法でインデクシングを拒否できるのはリクエストの処理に WordPress が関わるところ、具体的には HTML ページの部分だけです。 画像などのメディアファイルのインデクシングはこの方法では防げないため、そこも必要な場合は他の方法を選ぶ必要があります。

B. robots.txt ファイルを使う方法

robots.txt ファイルを使う方法もあります。

サイトルートに robots.txt という名前のファイルを設置します。 これは https://example.com なら https://example.com/robots.txt です。 https://example.com/wordpress/robots.txt といったサブディレクトリの下ではいけません。

その中に次の内容を記述します。

User-agent: Googlebot
Disallow: /

こうすると Google の検索エンジンの巡回ボットである Googlebot によるアクセスを拒否できます。 Google と Bing の 2 つの検索エンジンから除外したい場合は次のように記述します。

User-agent: Googlebot
Disallow: /

User-agent: Bingbot
Disallow: /

他にも主要な検索エンジンのボットとして次のようなものがあるので適宜調べて指定してください。

  • Applebot: Apple のボット。 Siri や Spotlight のウェブページ提案に使われる。
  • DuckDuckBot: 検索エンジン DuckDuckGo のボット。

特定のパス(この場合は /private/ 以下)を除外したい場合は次のように記述します。

User-agent: Googlebot
Disallow: /private/

User-agent: Bingbot
Disallow: /private/

A の WordPress の設定を使う方法では WordPress がリクエスト処理に関わるところ(主に HTML ページ)だけが対象でしたが、この方法では画像なども対象になります。

ただし、 A の方法と B の方法の注意点として、これらは検索エンジンのボットに「リクエストしないでね」とお願いしているだけという点があります。 多くの場合は要望に従ってくれますが、実際にリクエストするかどうかの決定権はボット側にあるので、「拒否したはずなのになぜかインデックスされていた」ということも起こりえます。

厳密に検索エンジンから除外したい場合は次の C の方法を選んでください。

C. サーバーの設定を使う方法

ウェブサーバーの設定を使う方法です。 ここでは WordPress サイトでよく使われる Apache サーバーのバージョン 2.4 の場合で説明します。

WordPress サイトのインストールディレクトリ(もしくはサイトルートにあたるディレクトリ)に .htaccess という名前のファイルを作成して次の内容を記述します。 .htaccess ファイルがすでに存在する場合はその先頭に追加してください。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]
RewriteRule .* - [F,L]

補足:

  • [NC]: No Case の略、大文字と小文字の区別をしない。
  • [F,L]: F は Forbidden の略、アクセスを拒否する。 L は Last の略、このルールの適用後に他のルールは処理しない。

参考:

この方法を使うと、検索エンジンのボットのサイトへのアクセスを完全に拒否できるため、 A や B の方法よりも厳密でより正確な制御が可能です。

ただし、設定を間違うと通常のユーザーもアクセスできなくなったり、 WordPress のループバックリクエストがうまく行かなくなって思わぬ挙動が出たりすることもあります。 設定が間違っていてもエラーが出ずに問題の発見が遅れがちなので、あまり知識がない方が行うと事故になり実被害が出ることもあります。

この方法での設定は必ずウェブサーバーに詳しい方が行うようにしてください。

結び

WordPress サイトを検索エンジンにインデックスされたくない場合、いくつかのアプローチを取ることができます。 状況に応じて適切な方法を選択するようにしてください。

また、インデクシングの拒否が開発中の一時的な対応である場合は、サイトの一般公開時に設定を元に戻すことを忘れないようにしてください。