このエントリーでは、WordPressで公開前に検索エンジンがインデックスしないようにする正しい方法をお伝えします。
WordPressの公開前に「検索エンジンがサイトをインデックスしないようにする」にチェックを入れている方をよく見ますが、絶対に止めましょう。
ウェブ上でもよく紹介されていますがオススメできません。
なぜなら「検索エンジンがサイトをインデックスしないようにする」にチェックを入れても、外部からリンクがあると検索エンジンにインデックスされるからです。詳しくは後述しますが、WordPressの仕様なのでユーザー側でどうすることもできません。
WordPressの設定で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れなくても、検索エンジンがインデックスしないようにする方法がありますので紹介します。
なぜ、WordPressの「検索エンジンがサイトをインデックスしないようにする」にチェックを入れたのにインデックスされるのか?
なぜインデックスされるのでしょうか?以下、理由を説明します。
WordPressで「検索エンジンがサイトをインデックスしないようにする」にチェックを入れると、以下のことが同時に起こります。
- robots.txtでクロールをブロック
- ページにnoindexが付く
このWordPressの仕様は正直どうかと思います。結果的にインデックスされることがよくあります。とはいえWordPressの仕様なので、僕たちがどうすることもできません…。
robots.txt でクロールをブロック
robots.txt に次のように記述され、全ページのクロールがブロックされます。
User-Agent: *
Disallow: /
「*」はすべてのクローラを指し、「Disallow」はアクセス拒否を指します。→全ページへのクロールがブロックされます。
ページにnoindexが付く
robots.txtでクロールをブロックすると同時に、ページにnoindexが付きます。
<meta name='robots' content='noindex,follow' />
でもrobots.txtでクロールをブロックしているので、ページのnoindexはいつまで経ってもクローラに検出されないという矛盾があります。
「検索エンジンがサイトをインデックスしないようにする」にチェックを入れたことで生じる不具合
「検索エンジンがサイトをインデックスしないようにする」にチェックを入れたことで生じる不具合も見ていきます。
- 公開後に「検索エンジンがサイトをインデックスしないようにする」のチェックを外しても、なかなかクロールしてくれない
- robots.txtでクロールをブロックしても、外部からリンクがあればインデックスされる
- 公開後にチェックを外し忘れる
公開後に「検索エンジンがサイトをインデックスしないようにする」のチェックを外しても、なかなかクロールしてくれない
以前、ウェブサイトを作って公開したけれど、検索結果に表示されないという相談を受けたことがあります。
調べたところサイトはWordPressで作成しており、公開後も「検索エンジンがサイトをインデックスしないようにする」のチェックが入ったままでした。当然のことながら、robots.txt でクロールをブロックおり、ページにnoindexもついていました。
「検索エンジンがサイトをインデックスしないようにする」のチェックを外しましたが、なかなかクローラは訪問してくれませんでした。100ページくらいのサイトでしたが、1件ずつ「インデックスに登録」を行って、すべてのページがインデックスするのに3ヶ月近くかかったことがあります。
robots.txtでクロールをブロックしても、外部からリンクがあればインデックスされる
robots.txtはあくまでクロールをブロックするだけなので、外部からリンクがあると、以下の画像のようにインデックスされます。ただしクロールをブロックしているため「このページの情報はありません」と検索結果に表示されます。
Googleのヘルプページに記載があるので紹介します。
Google では、robots.txt でブロックされているコンテンツをクロールしたりインデックスに登録したりすることはありませんが、ブロック対象の URL がウェブ上の他の場所からリンクされている場合、その URL を検出してインデックスに登録する可能性はあります。
参考 robots.txt の概要 > クローラをブロックしているページでも他のサイトからリンクされていればインデックス登録が可能
robots.txtでクロールをブロックすることと、ページにnoindexをつけることは意味が違いますのでご注意ください。
公開後にチェックを外し忘れる
公開後にチェックを外し忘れるミスもよく見かけます。
先程述べたように、公開後に「検索エンジンがサイトをインデックスしないようにする」のチェックを外しても、なかなかクロールしてくれませんので、チェックは入れないことをオススメします。
とはいえ、事情があってチェックを入れてしまうこともありますよね?公開後にチェックを外し忘れているサイトをたまに見かけます。
WordPressで公開前に検索エンジンがインデックスしないようにする正しい方法
WordPressで公開前に検索エンジンにインデックスさせない正しい方法を紹介します。
ローカル環境でWordPressを構築
「MAMP」「XAMPP」「Local by Flywheel」などを使ってローカル環境にWordPressを構築します。
僕はこの方法をオススメしますが、ローカル環境にWordPressを構築することは、初心者の方に少しハードルが高いかもしれません。
また、ローカル環境から本番環境への移行がうまくいかないこともあります。
ローカル環境にWordPressを構築するのは難しいと感じた方は、次に紹介するBasic認証でクロールをブロックすることをオススメします。
Basic認証でクロールをブロック
Basic認証でクロールをブロックすれば検索エンジンにインデックスされることはありません。
Basic認証とは、HTTPで利用できる認証方式の1つで、ウェブサイトの閲覧に最低限の認証をかけることができます。
ほとんどのブラウザやウェブサーバーが対応しているので、よく使われています。
注意点は、Basic認証は、平文でIDとパスワードが送信されるので、サイトはHTTPSでの運用がマストです。
WordPressでBasic認証を設定する方法
いくつか方法はありますが、以下の2つの方法が簡単でオススメです。
- プラグイン「Password Protected」を使う
- レンタルサーバーの管理画面から設定
プラグイン「Password Protected」を使う
プラグイン「Password Protected」を使えばWordPressにBasic認証を設定することが可能です。
①WordPressの管理画面から「Password Protected」を新規追加→有効化
②設定から「パスワード保護」へ進み、以下を設定
- パスワード保護状況・・・「有効」にチェック
- 許可する権限・・・「管理者を許可する」にチェック、「ログインしたユーザーを許可する」にチェック
上記の設定を行えば、WordPressで自分のサイトにログインしているユーザーには、Basic認証の画面は表示されずにサイトを閲覧できます。ログインしていないユーザーには、以下の画面のようにBasic認証の画面が出てきてIDとパスワードを入力しなければ、サイトの閲覧はできません。
検索エンジンのクローラもアクセスできませんので、インデックスされることはありません。
レンタルサーバーの管理画面から設定
レンタルサーバーの管理画面からBasic認証を設定することも可能です。
以下の画像はエックスサーバーの管理画面でBasic認証を設定する画面です。
Basic認証は、ご契約のレンタルサーバーの管理画面で設定できることが多いので、設定方法はホスティング事業者のサポートにご確認ください。
さいごに
以上、WordPressで公開前に検索エンジンがインデックスしないようにする正しい方法をお伝えしました。
くれぐれも、WordPressの公開前に「検索エンジンがサイトをインデックスしないようにする」にチェックを入れるのは止めましょう。WordPressの仕様でrobots.txtでクロールをブロックしてしまうので、外部からリンクがあればインデックスされます。
公開前に検索エンジンにインデックスさせたくないのであれば、次の方法がオススメです。
- ローカル環境でWordPressを構築
- Basic認証でクロールをブロック
ナレッジ