2016/10/0447 Shares

WordPress初心者に贈る!robots.txtの書き方と設定方法全手順

wp-robots-txt

「なんか robots.txt というのが SEO に有効だという話を聞いたんだけど!?」

robots.txtは、検索エンジンのクロールをこちらから制御するものです。その具体的な役割と、なぜ必要なのか、どのように設定すれば良いのかを解説します。

WordPress を使用している前提で進めますが、すべての web サイトに共通する話なのでぜひ覚えておきましょう。

robots.txtとは

WordPress でブログをつくると、様々なファイルが自動的に生成されます。

管理画面上からはテーマファイルの一部やプラグイン、アップロードした画像しか見れませんが、FTP ソフトで確認するとそのほかにもたくさんのファイルがあることがわかります。

このファイルすべてを検索エンジンに拾ってもらう必要はありません。検索結果に表示してほしい重要なページを指定してあげる(=重要ではないページを拒否する)ことで、効率的にブログ内をクロールしてもらえます。

この手法を SEO 内部対策の「クロール最適化」といいます。

WordPressの中身を見てみよう

では、クロール最適化を行う前に WordPress の中身を確認してみましょう。

FFFTP で見るとこのようになっています。3 つのフォルダと PHP ファイル、HTML ファイル等がたくさんでてきました。

FFFTPでWordPressの中身を確認

wp-admin
管理系のファイルが入っています。管理画面(ダッシュボード)の制御等がここで行われています。
wp-content
テーマやプラグイン、管理画面からアップロードした画像が格納されています。
wp-includes
ブログを表示するために必要なファイルが格納されています。

ここで不要なのは、「wp-admin」ディレクトリの中にあるほぼすべてのファイルです。

実は、WordPress は仮想 robots.txt を生成して、「wp-admin」内のクロールを拒否しています。

WordPressのrobots.txtはどこにある?

先ほどの画像をもう一度ご覧ください。どこにも「robots.txt」というファイルがありませんね。

FFFTPでWordPressの中身を確認

しかし、ブラウザからアクセスするとこのように表示されます。

robots.txtのサンプル

robots.txt の確認方法
ブログのトップページ URL のうしろに robots.txt をつけると確認できます。

例)http://naifix.com/robots.txt

WordPress では、「robots.txt にアクセスがあった場合のみ自動生成される」仕組みになっています。実体がないので、仮想 robots.txt ということですね。

中身は管理画面の設定や使用するプラグインによって自動的に変更されますが、自分で robots.txt ファイルを作ってアップロードする場合は手製のファイルが優先されます。

ちなみに、この仮想 robots.txt はパーマリンク設定がデフォルトのままだとブラウザで確認することができません

WordPressパーマリンク設定

仮想robots.txtの中身と意味

プラグインを使用せず、デフォルトの状態で自動生成されたファイルの中身はこのようになっています。

1 行目の「User-agent」は、検索エンジンロボットの種類を指しています。

「*」を指定することで、画像検索やモバイル検索用を含め、すべてのロボットが対象となります。

2 行目の「Disallow」は「許可しない」という意味です。つまり、「wp-admin」内はクロールしないでね、という指定になります。

3 行目の「Allow」は「許可する」という意味です。通常は使いませんが、「wp-admin の中にある admin-ajax.php のみ許可する」という指定になっているわけですね。

robots.txt を自分で作成すれば、クロールを許可する場所をさらに細かく指定できます。

robots.txt により URL が制限されています

管理画面の表示設定に「検索エンジンがサイトをインデックスしないようにする」という項目があります。

WordPress表示設定

ここにチェックを入れると、仮想 robots.txt はこのように変更されます。

サイトすべてをクロールしないでね、という指定です。このまま放置しておくと永遠に検索サイトに表示されないので注意しましょう(※まれに検索結果に表示されることがあります)。

Search Console で「robots.txt により URL が制限されています」というクロールエラーが出たら、表示設定と仮想 robots.txt の中身を確認してください。

GoogleはJavaScriptやCSSを理解する

では、robots.txt でどのファイルをブロックすれば良いのでしょうか。

Google は、HTML を分析してサイトの構造を把握しています。

しかし、web サイトに CSS や JavaScript が欠かせなくなったことに合わせ、検索エンジン自体もその表示を理解できるよう日々改良されています。

先日、Google ウェブマスター向け公式ブログでもアナウンスがありましたね。

ここ数か月間、Google のインデックス登録システムは、かなりの数のウェブページを JavaScript が有効な一般ユーザーのブラウザのようにレンダリングしています。

ウェブページをより深く理解するようになりました

このため、robots.txt で検索エンジンが JavaScript や CSS を見れないようにブロックしていると、その理解を妨げることになります。

もし手動で robots.txt を作成する場合は気をつけてください。

皆様のコンテンツをインデックス登録できるように JavaScript や CSS の取得を Googlebot に許可することをおすすめします。これは、モバイル向けのウェブサイトでは特に重要です。

人が見るのと同じ環境を検索エンジンにも見せるのがベストですね。

実際の表示をGoogleに伝えるメリット

なぜ Google に対してブログの見た目まで伝えなければならないのでしょうか。

たとえば、「ファーストビューに広告を置きすぎると検索結果に影響する」ことが知られていますね。検索エンジンはこれをどうやって判断しているのでしょう。

極端な話、このような構造だった場合、HTML を見ただけだとファーストビューを広告で占領していると思われる可能性があります(簡易的な表示にしています)。

HTML で記された順に広告とタイトルが並び、メインコンテンツは広告に押し下げられた形となっています。

CSSなしのファーストビューイメージ

しかし、実際には CSS でこのようにデザインされているかもしれません。上図と比べると、広告がコンテンツを押し下げているとは言えませんね。

CSS適用後のファーストビューイメージ

広告サイズなどで配置を推測できるとしても、CSS を適用してみなければ実際の見た目はわかりません。

もし Google が勘違いをして、それが検索順位の低下につながっているならもったいない話ですよね。このため、人が見るのと同じ状況を伝えるのが望ましいのです。

Googleがどのように理解しているかを知る方法

Google からの見た目は、Search Console の「Fetch as Google」から確認できます。

「取得してレンダリング」というボタンがそれですね。

fetch-as-google

Naifix の見た目を確認してみましょう。ボタンを押してから取得までに 1 分ほどかかりました。

fetch-as-google-naifix

ん?ブラウザの見た目と違っていますね(※ 2014 年時点のデザインです)。

その下には「取得できなかったリソース」というのが出てきます。

Fetch as Google 取得できなかったリソース

CSS や Javascript をrobots.txtでブロックしているため、人の見た目と Google の見た目が違ってしまったという悪い例です。

デザインに関連するファイルは、クロールを許可しておいてください。

WordPressのrobots.txt設定例

ここまでの解説で「robots.txt って作成しなきゃダメなの?」という疑問が浮かんでくると思います。

ハッキリ言うと、個人ブログとして運営しているなら robots.txt は無理に作らなくてもかまいません

ただ、どうしてもクロールしてほしくないファイルがあるとき(特典として配布する PDF や動画など)は、ブロックしておかないと検索結果に表示されてしまいます。

また、過去に robots.txt を作成していて、CSS や Javascript をブロックしていたならこの機会に変更しておきましょう。

基本の設定例

基本形は、WordPress の仮想 robots.txt と同じで問題ありません。

拒否したいファイルがあれば、ここに追記していってください。

画像検索を拒否する場合

Google の画像検索ロボットは「Googlebot-Image」という名前なので、このロボットのみクロールを拒否することができます。

検索結果から画像が消えるまでに時間がかかりますが、画像がパクられるのを少しでも減らしたい場合に有効だと思います。

ただし、現時点でそれなりの検索流入がある場合、画像検索を拒否することで何らかの影響が出る可能性があります。

特典用のPDFなどをブロックする場合

メルマガ登録など、何らかの条件をもとにダウンロードファイルを提供する場合、そのファイルが検索結果に表示されているとまずいですよね。

たとえば「download」ディレクトリの中にファイルを入れている場合、そのディレクトリを丸ごと拒否しておけば OK です。

もし特典などを配布している場合は、検索結果に表示されていないかチェックしておいたほうが良いですよ。

検索するとけっこう出てきます ^^;

PDFのみ検索する方法
「site:」コマンドと「filetype:」コマンドを組み合わせると、指定サイト内にある特定のファイルを検索できます。

例)site:naifix.com filetype:pdf

XMLサイトマップを指定する

robots.txt で XML サイトマップの場所を指定することもできます。

Google XML Sitemaps などのプラグインを使用していれば仮想 robots.txt に自動反映されますが、自分でファイルを作成するときは追記しておきましょう。

robots.txtをアップロードしよう

テキストエディタで保存する

robots.txt はテキストエディタで作成します。

robots.txt

保存する時は、ファイル名に注意してください。

robots.txt

「s」が抜けていると認識されません。

FTPソフトでアップロードする

アップロード先は、ルート直下です。ここ以外は無効です。

正) http://ドメイン名/robots.txt
誤) http://ドメイン名/wp/robots.txt

WordPress をルート直下にインストールしていた場合、アップロード後はこのようになります。

FFFTPでrobots.txtをアップロード

Search Consoleで確認してみる

アップロード後は、Google Search Console から確認します。

ブロックされた URL

反映まで時間がかかるので、テストを行います。このテストはアップロード前でも可能です。

robots.txtのテスト

画面下にテスト結果が表示されれば成功です。実際に設定が反映されるまで数日かかることもあるので気長に待ちましょう。

robotstxt-test-result

以上で全作業は終了です。簡単でしたね。

まとめ

前述のとおり、個人ブログではとくに理由がなければ robots.txt を作成する必要はありません。

しかし、今後アフィリエイトサイトやミニサイトを作っていくなら、覚えておくとどこかで役に立つでしょう。

記事の更新を最優先に考え、そこから自分のブログをできるだけ多くの方に見てもらえるよう改善していきたいですね。

それでは、また。