koike
【WordPress】自動で生成される仮想robots.txtについて整理してみた
WordPressが仮想robots.txtを自動で生成する際、WordPressの設定によってrobots.txtの生成方法や記述内容が変わってくるようなので、「WordPressの設定」と「仮想robots.txt」の関係について整理してみました。
1.WordPressをルート直下にインストールしたとき
http://example.com/ のルート直下にWordPressをインストールし、http://example.com/robots.txt にアクセスしてみます。(※ただし、パーマリンク設定をデフォルト[http://example.com/?p=123]のままにしているとrobots.txtは生成されず404エラーが表示されます。)
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/↑Disallow 以下はクロールされたくないページやディレクトリの指定になりますので、 検索結果へのインデックス表示が必要のない「wp-admin」「wp-includes」ディレクトリ配下へのクローラーの巡回をブロックします。
2.WordPressを専用ディレクトリにインストールし、サイトアドレスをルートに設定したとき
http://example.com/wp/ にインストールし、サイトアドレスの設定を http://example.com/ に設定した場合、http://example.com/robots.txt として仮想robots.txtを生成してくれます。(※ただし、パーマリンク設定をデフォルト[http://example.com/?p=123]のままにしているとrobots.txtは生成されず404エラーが表示されます。)
User-agent: * Disallow: /wp/wp-admin/ Disallow: /wp/wp-includes/↑WordPressをインストールしている専用ディレクトリ名(wp)が追加されています。
3.WordPressを専用ディレクトリに設置し、サイトアドレスも専用ディレクトリのままのとき
http://example.com/wp/ にインストールし、サイトアドレスも http://example.com/wp/ のままの場合、http://example.com/wp/robots.txt にアクセスしても「ページが見つかりません」の表示になります。もともとクローラーはルート直下にあるrobots.txtを確認します。サブディレクトリにrobots.txtを置いていても無効になるため、WordPressの仕様としてサイトアドレスがルートに指定されていない場合は404を返すようになっているようです。
● 「検索エンジンがサイトをインデックスできないようにする」にチェックを入れている場合
では、メニュー[設定]→[表示設定]で「検索エンジンがサイトをインデックスできないようにする」にチェックを入れた場合、どのようなrobots.txtが生成されるでしょうか?■1、2の方法で設置している状態で、「検索エンジンがサイトをインデックスできないようにする」にチェックを入れると、下記のようなrobots.txtが生成されます。
User-agent: * Disallow: /
Disallow が「/」ですので、ルート以下の全ファイルをクロールさせないという指定になります。チェックを入れている間はルート以下の全てのページがクロールされなくなります。
(ここで注意したいのはクローラーをブロックするのがルート以下の全てのページ、というところ。開発中のWordpressと同じルート以下にすでに公開しているページがある場合、そのファイルもすべてクロールを拒否してしまいインデックスされなくなってしまう危険がありますので注意しましょう。)● 3の場合のように仮想robots.txtが生成されない状態で、検索結果にインデックスさせたくない場合
実は「検索エンジンがサイトをインデックスできないようにする」にチェックを入れた場合、Wordpressで生成したページのヘッダーには「robotsメタタグ」が追記されます。<meta name='robots' content='noindex,nofollow' />
- noindex:クローラーにページをインデックスさせないようにする。
- nofollow:クローラーがリンク先を辿らないようにする。