robots.txtと書き方
robots.txtとは?
robots.txtとは検索エンジンのクローラに対しての命令を記述するためのファイルです。 基本的にはクロールして欲しくない≒検索結果に表示したくないファイルやディレクトリを通知します。
例えばシステムファイルやスクリプトファイルなんてクロールされるだけ無駄ですよね。 そういったものへのアクセスを制限するためのファイルです。
サイト作成時にあらかじめrobots.txtを設置しておくと良いでしょう。 ただそこまで優先度が高い訳でもないので、「検索エンジンからインデックス関連のエラーを通知してきたら設置する」ぐらいの意識でも、まあ致命的な問題にはなりません。
robots.txtの様式
対象クローラの指定
どのクローラに対しての指定かを記述します。 大抵の場合は*(アスタリスク)を指定して全てのクローラに対しての通知になると思います。
ser-agent:対象クローラ
クロールを禁止するファイル・ディレクトリの指定
クロールする必要のないファイル・ディレクトリを記述します。
isallow:ファイルorディレクトリ
クロールを許可するファイル・ディレクトリの指定
クロールして欲しいファイル・ディレクトリを記述します。 Disallowでディレクトリをクロールを禁止にしつつ、Allowでそのうち一部のみクロールを許可するという記述をします。 性質上、AllowはDisallowよりも下に書く必要があります。
llow:ファイルorディレクトリ
サイトマップの指定
サイトマップファイルを通知します。 ここでわざわざ通知しなくても大抵は検索エンジン側で見つけてくれるので、敢えて書く必要性はあまりありません。
itemap: サイトマップファイル
サイトマップ例
うちのサイトマップは以下のように記述しています。
ser-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Allow: /wp-admin/admin-ajax.PHP
Sitemap: https://amaru.me/sitemap.xml
wordpressにおけるrobots.txt
wordpressにおけるrobots.txtはデフォルトでは仮想ファイルとして設置されています。 ディレクトリ内を探してもファイルはありませんが、URLからアクセスすることが可能です。
試しに自分のサイトのrobots.txtを確認してみましょう。 特に設定を変えていなければ「サイトURL/robots.txt」で表示できるはずです。 以下のような記述がされていると思います。
robots.txt
ser-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.PHP
Sitemap: hoge/sitemapindex.xml
上記を大雑把に説明すると「wp-admin配下のファイルはクロールしない」「ただしwp-admin/admin-ajax.PHPだけはクロールする」「サイトマップはhoge/sitemapindex.xml」という情報が書かれています。 これで問題ないならこのままで良いですが、クローラが変なファイルを読んでエラーとして通知してくることもあります。
自身でrobots.txtを作ってルートフォルダにアップロードすればそちらが優先されるようになるので、必要なら自分で作りましょう。 他にも仮想robots.txtの記述を変更するプラグインを使うのも手です。