スポンサーリンク
WordPressの最上位ディレクトリにあるrobots.txtにアクセスすると、たしかにrobots.txtの内容が表示されます。しかし、FTPやレンタルサーバの提供するファイルブラウザから該当するディレクトリを見ても、robots.txtが存在しません。今回は、その仕組みである仮想robots.txtについてメモしておきます。
目次
スポンサーリンク
仮想robots.txtとは
WordPressがインストールされているディレクトリをたとえば「/wp/」とすると、「/wp/robots.txt」にアクセスがあった場合、WordPressはfunctions.phpのdo_robots()関数でrobots.txtとして表示する内容を生成しています。
つまり、実際にサーバ上にないrobots.txtを、あたかも存在するかのように振る舞うため、そのrobots.txtのことを指して「仮想robots.txt」と呼ぶわけです。
仮想robots.txtの仕組みを使ったrobots.txtの編集
つまり、do_robots()を編集すれば仮想robots.txtの出力を編集することができます。なので、テーマにあるfunctions.phpに
add_action('do_robots', create_function('', 'echo "追記したい内容";'));
を書き込めば、仮想robots.txtの編集が実現できるわけです。
ただ、さすがにこの方法でrobots.txtを編集するのはなかなか面倒です。
仮想robots.txtの仕組みを使ったプラグイン
同様の仕組みで、「XML Sitemap Generator for WordPress 3.2.6」は、robots.txtにサイトマップの情報を追加しています。
追加された行:
Sitemap: http://did2memo.net/sitemap.xml.gz
これは、設定にある
サイトマップの URL を仮想 robots.txt ファイルに追加
WordPress が生成した仮想 robots.txt ファイルを使用しています。実際の robots.txt ファイルをブログディレクトリに置かないでください。
を有効にしているために実行される、仮想robots.txtを利用した仕組みです。
WordPressでのrobots.txtは面倒?
ここまでの内容から、「WordPressではrobots.txtをディレクトリに設置してはいけない」「仮想robots.txtの変更は面倒」と思ってしまうと思います。自分もそうでした。
しかし、これは誤解で、robots.txtを実際に設置した場合は、そちらが優先されるので全然問題ないのです。
つまり、「XML Sitemap Generator for WordPress」の説明文が誤解を招いていて、あくまで、「XML Sitemap Generator for WordPressは仮想robots.txtを使ったrobots.txtの編集しかできないため、実際のrobots.txtを設置してしまうと、この設定は無効になってしまいます」という意味なのです。
WordPressでのrobots.txtの編集方法
したがって、WordPressでrobots.txtを編集したい場合は、単純にrobots.txtをホームページのトップディレクトリに設置すればOKということになります。WordPressだからどうというわけではなく、簡単です。
メモ
ちなみに、現時点でこのサイトの仮想robots.txtは次のようになっています。
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Sitemap: http://did2memo.net/sitemap.xml.gz
スポンサーリンク
スポンサーリンク