絶対に検索エンジンにインデックスさせない方法(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認証で、サイト内を巡回するロボットをブロックします。
サーバー側もしくはプラグインで設定しましょう
Basic認証はサーバー側で設定するのがおススメです。「.htaccess」に記述する必要があります。もしくはサーバー側でパスワード制限の機能が用意されているかもしれません。エックスサーバーではアクセス制限の機能があり、そこでBasic認証が設定できました。契約しているサーバー会社によりますが、たいていは設定できる機能が備わっていると思います。
もし無い場合、もしくはサーバー側での設定が面倒な場合は、WordPressのプラグインで代用しましょう。「Password Protected」がおすすめです。
まとめ
調べた感じでは下記になります。
- Basic認証で巡回ロボットのブロック
- WordPressの「検索エンジンがサイトをインデックスしないようにする」で、検索インデックス登録をブロック
断言はできませんが、Basic認証のみでインデックスされないと思います。まあ、念のためWordPressの管理画面からチェックを入れておけば良いんじゃないでしょうか。
これで検索エンジンにインデックスされることはないでしょう。