robots.txtファイルでクロールを制御することが1つのSEO対策になると言われていますが、ワードプレスを使ったサイトでは一般的にどうすれば良いのかな?と思い色々調べました。
robots.txtを作成するときの参考になれば幸いです。
目次
robots.txtのワードプレスでの書き方
結論から。ブログサイトやログインページ(マイページ)が無いメディアサイトの場合は以下のような記述を基本として良さそうです。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Sitemap: http://example.com/sitemap.xml
ワードプレスの仮想robots.txtの内容にSitemap.xmlの行を追加しています。
Sitemapのexample.com/sitemap.xmlはご自身のsitemap.xmlに直して下さいね。
ワードプレスはインストールしたときの状態では、実ファイルとしてのrobots.txtは持っていませんが、サイトにアクセスしたときなどにはrobots.txtが存在しているかのように見せている仮想ファイルの形をとっています。
※意味が分からない方はご自身のサイト(ワードプレスで作成したサイト)のトップページURLの末尾に/robots.txtと入れてアクセスしてください。上記のUser-agent・・・と記述があるページが表示されると思います。それが確認できたら、今度はFTPでサーバーにアクセスしてrobots.txtを検索してみてください。ファイルが存在しないことが分かると思います。
基本形ですので、当然ならが個々のサイトによってクロールしてほしくないページ、後ほど説明するクロールした方がよいページ、クロールしない方がよいページについては、Allow、Disallowを使って適切に制御した方がよいと思います。
robots.txtとは
クローラーのクロールを制御するテキストファイルです。ここに巡回を許可するクローラ、許可しないクローラ、クロールしてよいページ、しなくてよいページを指定することでクローラーに効率よくクロールさせることができます。
robots.txtの書き方
robots.txtで利用する要素は次の4つです。
- User-agent
- Disallow
- Allow
- Sitemap
User-agent
制御するクローラーの指定およびグループ開始の要素です。
User-agent: *
上の記述だと全てのクローラーという意味です。
User-agent: Googlebot
この場合はGooglebotを指定するという意味です。
User-agent: Googlebot User-agent: bingbot
2つ連続で指定することもできます。
Disallow
直訳すると禁じる、否定する、ですね。クローラーの巡回をブロックしたいディレクトリなどを指定します。
Disallow: /
サイト全てのクロールをブロックする。
Disallow: /wp-admin/
wp-adminディレクトリ以下のクロールをブロックする。
Allow
上のDisallowの逆、「許可する」です。指定したディレクトリなどの巡回を許可します。
Allow: /wp-admin/admin-ajax.php
/wp-adminディレクトリ下にあるadmin-ajax.phpファイルの巡回を許可する。
3つの要素を組み合わせて書くと以下のような感じになります。
User-agent: Googlebot<br /> User-agent: bingbot<br /> Disallow: /wp-admin/<br /> Allow: /wp-admin/admin-ajax.php
Googlebotとbingbotはwp-adminディレクトリの巡回を拒否する。wp-admin/admin-ajax.phpを許可する。
上から順に見ていくので、Disallowで拒否しても下にAllowがあれば巡回の対象となります。
Sitemap
sitemap.xmlのURLを指定します。
robot.txtはどのようなときに書くべきか
こちらは海外SEO情報ブログさんの「robots.txtを使ったほうがいい時と使わないほうがいい時」の記事を参考にさせて頂きました。SEO関連情報のサイトの中でもとても信頼できるサイトの1つです。
この記事の中で、Googleのジョン・ミューラー氏が述べられた内容の解説がなされていますが、サイトが重くなるなどの障害が発生しうるときはrobots.txtで制御する、自動生成ページ、サイト内検索結果ページは制御する、重複コンテンツや質の低いページはnoindexなどで対処すると言っています。
なので、クロールによってサイトや訪問ユーザーに悪影響が及んでいることがわかっている(その可能性が高い)場合は制御した方がよい、自動生成ページのように全く無価値なページに対しては制御した方がよい。ということですね。
サイト内検索結果ページのクロール有無については、下記で事例としてあげるサイトでは制御していないところがほとんどですが、個人的には細かいところも拘るならDisallowで制御しておいた方がよいかなと思っています。
robots.txtの事例
SEOとコンテンツマーケティングで有名な個人や企業のサイトのrobots.txtはどうなっているか見てみました。皆さまシンプルですね。
辻さんの個人ブログ↓
http://webweb.jp/blog/
クローラーは全て許可して、サイト内の/blog/page/だけブロックしています。
辻さんの会社のサイト↓
http://so.la/
Disallowのエルが数字の1になっています。。。何かの実験中でしょうか。。
バズ部さんのサイト↓
https://bazubu.com/
pdf/というディレクトリを制御しています。
Ligさんのサイト↓
https://liginc.co.jp/
超シンプル!
ferretさんのサイト↓
https://ferret-plus.com/
mypage(ユーザー登録した個人ごとのページ)をブロックしています。
ワードプレスとは関係無いですがネットの巨人達はどうしているのでしょうか?
気になったので調べてみました。
Google↓
Facebook↓
Amazon↓
ECサイトやWEBサービス系はブログやメディアと違って中身が複雑なので制御も細かいですね。
まとめ
無理して記述する必要はなく、クロールが障害の要因になっていたり、本当に不要なページがある場合robots.txtを利用するようなイメージでよさそうです。また、クロールの巡回効率をあげようとよく分からないまま制御しても予期せぬトラブルの元になりそうです。サイトに被害が及ぶ場合を除いては無理して書くことは控えましょう。