絶対に検索エンジンにインデックスさせない方法(WordPress)

WordPressのサイトで検索エンジンにインデックスさせない設定にしていたのに、なぜかインデックスされていました。今回は、完全に検索エンジンにインデックスさせない方法を書きたいと思います。

テスト環境のサイトが検索エンジンにインデックスされていた

本番公開前のサイトやテスト環境のサイトなど、検索エンジンに表示させたくない時があります。そんな時、WordPressであれば、管理画面から「検索エンジンがサイトをインデックスしないようにする」にチェックを入れるかと思います。

しかし、実際には検索に表示されていました。

検索エンジンにインデックスされているか確認する方法

URLを入力し、その後に「:site」を入力して検索します。そうすると、そのURLが検索エンジンにインデックスされているか確認できます。検索結果には他の情報も出力される場合がありますが、ざっくり確認するにはこの方法で良いと思います。

WordPressの管理画面から「検索エンジンがサイトをインデックスしないようにする」にチェックを入れていましたが、実際には一部のページが検索に表示されていました。

原因はWordPressの仕様

WordPress側での設定だと、どうやら防げないみたいです。これはWordPressの仕様上の問題です。

Googleサーチコンソールからの引用です

重要: noindex ディレクティブが有効に機能するようにするために、robots.txt ファイルでページをブロックしないでください。ページが robots.txt ファイルでブロックされると、クローラは noindex ディレクティブを認識しません。そのため、たとえば他のページからリンクされていると、ページは検索結果に引き続き表示される可能性があります。

要は、robots.txtだと完全にはブロックできないと書いてあります。WordPressにはrobots.txtがあります。URLに続けてrobots.txtを入力するとファイルが閲覧できます。WordPressはrobots.txtを使用しているので、インデックスを完全にはブロックできないのだそうです。

Basic認証を設定してみよう

Basic認証という機能があります。Basic認証とはホームページの閲覧に制限をかける機能で、サーバー側で設定が出来ます。

Basic認証でパスワード設定を行うことで、検索のクロールをブロックできるみたいです。ちなみに検索のクロールとは、サイト内を巡回するロボットのことです。Basic認証で、サイト内を巡回するロボットをブロックします。

サーバー側もしくはプラグインで設定しましょう

サーバー側で設定するのがおススメです。「.htaccess」に記述する必要があります。もしくはサーバー側でパスワード制限の機能が用意されているかもしれません。エックスサーバーではアクセス制限の機能があり、そこでBasic認証が設定できました。契約しているサーバー会社によりますが、たいていは設定できる機能が備わっていると思います。

もし無い場合、もしくはサーバー側での設定が面倒な場合は、WordPressのプラグインで代用しましょう。「Password Protected」がおすすめです。

まとめ

調べた感じでは下記になります。

  • Basic認証で巡回ロボットのブロック
  • WordPressの「検索エンジンがサイトをインデックスしないようにする」で、検索インデックス登録をブロック

断言はできませんが、Basic認証のみでインデックスされないと思います。まあ、手間じゃないので、念のためWordPress側でも設定しておけば良いんじゃないでしょうか。

これで検索エンジンにインデックスされることはないと思います。

facebook
twitter
line
hatena
pocket