
robots.txt は、検索エンジンのクロールをこちらから制御するものです。
結論から言うと、個人ブログで robots.txt を設定・作成する必要はありません。ブログ以外のサイトを作成するときや、クロールしてほしくないファイルがあるときは必要に応じて作成しましょう。
予備知識としておさえておくとどこかで役立つかもしれないので、興味があれば具体的な役割と設定例をご覧ください。
Headline
robots.txtとは
WordPress でブログをつくると、様々なファイルが自動的に生成されます。
管理画面上からはテーマファイルの一部やプラグイン、アップロードした画像しか見れませんが、FTP ソフトで確認するとそのほかにもたくさんのファイルがあることがわかります。
このファイルすべてを検索エンジンに拾ってもらう必要はありません。検索結果に表示してほしい重要なページを指定してあげる(=重要ではないページを拒否する)ことで、効率的にブログ内をクロールしてもらえます。
この手法を「クロール最適化」といいます。
WordPressの中身を見てみよう
では、クロール最適化を行う前に WordPress の中身を確認してみましょう。
FTP クライアントソフトで見ると以下のようになっています。3 つのフォルダと PHP ファイル、画像ファイル等がたくさんでてきました(サーバーによって多少異なる場合があります)。

管理系のファイルが入っています。管理画面(ダッシュボード)の制御等がここで行われています。
テーマやプラグイン、管理画面からアップロードした画像が格納されています。
ブログを表示するために必要なファイルが格納されています。
検索ユーザーにとって不要なのは、「wp-admin」ディレクトリの中にあるほぼすべてのファイルです。
WordPress は、デフォルトで「wp-admin」内のクロールを拒否するようになっています。
WordPressのrobots.txtはどこにある?
先ほどの画像をもう一度ご覧ください。どこにも「robots.txt」というファイルがありませんね。

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

ブログのトップページ URL のうしろに robots.txt をつけると確認できます。
例)https://naifix.com/robots.txt
WordPress では、「robots.txt にアクセスがあった場合のみ自動生成される」仕組みになっています。実体がないので、仮想 robots.txt ということですね。
中身は管理画面の設定や使用するプラグインによって自動的に変更されますが、自分で robots.txt ファイルを作ってアップロードすると優先的に反映されます。
ちなみに、この仮想 robots.txt はパーマリンク設定がデフォルトのままだとブラウザで確認することができません。

仮想robots.txtの中身と意味
プラグインを使用せず、デフォルトの状態で自動生成されたファイルの中身はこのようになっています。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Sitemap: https://example.com/wp-sitemap.xml
1 行目の「User-agent」は、検索エンジンロボットの種類を指しています。「*」を指定することで、画像検索やモバイル検索用を含め、すべてのロボットが対象となります。
2 行目の「Disallow」は「許可しない」という意味です。つまり、「wp-admin」内はクロールしないでね、という指定になります。
3 行目の「Allow」は「許可する」という意味です。通常は使いませんが、「wp-admin の中にある admin-ajax.php のみ許可する」という指定になっているわけですね。
最終行の「Sitemap」は、XML サイトマップの場所を伝えています。WordPress5.5 より、プラグインを使わなくても XML サイトマップが生成されるようになり、robots.txt にも自動的に反映されます。
robots.txt を自分で作成すれば、クロールを許可する場所をさらに細かく指定できます。
GoogleはJavaScriptやCSSを理解する
では、robots.txt でどのファイルをブロックすればよいのでしょうか。
Google は HTML を分析してサイトの構造を把握していますが、ユーザーが見るのと同じ状態を理解できるよう日々改良されてきました。Google ウェブマスター向け公式ブログでアナウンスされているとおりです。
ここ数か月間、Google のインデックス登録システムは、かなりの数のウェブページを JavaScript が有効な一般ユーザーのブラウザのようにレンダリングしています。
ウェブページをより深く理解するようになりました
このため、robots.txt で検索エンジンが JavaScript や CSS を見れないようにブロックしていると、その理解を妨げることになります。
もし手動で robots.txt を作成する場合は気をつけてください。
皆様のコンテンツをインデックス登録できるように JavaScript や CSS の取得を Googlebot に許可することをおすすめします。これは、モバイル向けのウェブサイトでは特に重要です。
人が見るのと同じ環境を検索エンジンにも見せるのがベストですね。
実際の表示をGoogleに伝えるメリット
なぜ Google に対してブログの見た目まで伝えなければならないのでしょうか。
たとえば、「ファーストビューに広告を置きすぎると検索結果に影響する」ことが知られていますね。検索エンジンはこれをどうやって判断しているのでしょう。
極端な話、このような構造だった場合、HTML を見ただけだとファーストビューを広告で占領していると思われる可能性があります(簡易的な表示にしています)。
<html> <head> <title>サンプル</title> <link rel="stylesheet" type="text/css" href="./style.css" media="all" /> </head> <body> <img src="./ad1.jpg" alt="広告1" > <h1>広告配置サンプルページ</h1> <img src="./ad2.jpg" alt="広告2" > <img src="./ad3.jpg" alt="広告3" > ・ ・ ・ </body> </html>
HTML で記された順に広告とタイトルが並び、メインコンテンツは広告に押し下げられた形となっています。

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

広告サイズなどで配置を推測できるとしても、CSS を適用してみなければ実際の見た目はわかりません。
もし Google が勘違いをして、それが検索順位の低下につながっているならもったいない話ですよね。このため、人が見るのと同じ状況を伝えるのが望ましいのです。
Googleがどのように理解しているかを知る方法
Google からの見た目は、Search Console の「URL 検査」から確認できます。
「クロール済みのページを表示」をクリックし、「スクリーンショット」を選択して「公開 URL をテスト」をクリックしてください。

ページのリソースを読み込めなかった場合はデザインが崩れて表示されますが、robots.txt でブロックしていないのであればとくに問題ありません。

WordPressのrobots.txt設定例
ここまでの解説で「robots.txt って作成しなきゃダメなの?」という疑問が浮かんでくると思います。
ハッキリ言うと、一般的な造りのブログであれば robots.txt を作成する必要はありません。
どうしてもクロールしてほしくないファイルがあるとき(特定のユーザーにのみ見せたいコンテンツなど)は、robots.txt を作成してブロックしておきましょう。
また、過去に robots.txt を作成していて、CSS や Javascript をブロックしていたならこの機会に変更しておきましょう。
基本の設定例
基本形は、WordPress の仮想 robots.txt と同じで問題ありません。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
拒否したいファイルがあれば、ここに追記していってください。
画像検索を拒否する場合
Google の画像検索ロボットは「Googlebot-Image」という名前なので、このロボットのみクロールを拒否することができます。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php User-agent: Googlebot-Image Disallow: /
検索結果から画像が消えるまでに時間がかかりますが、画像がパクられるのを少しでも減らしたい場合に有効だと思います。
ただし、現時点でそれなりの検索流入がある場合、画像検索を拒否することで何らかの影響が出る可能性があります。
特典用のPDFなどをブロックする場合
メルマガ登録など、何らかの条件をもとにダウンロードファイルを提供する場合、そのファイルが検索結果に表示されているとまずいですよね。
たとえば「download」ディレクトリの中にファイルを入れている場合、そのディレクトリを丸ごと拒否しておけば OK です。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Disallow: /download
もし特典などを配布している場合は、検索結果に表示されていないかチェックしておいたほうが良いですよ。
検索するとけっこう出てきます ^^;
「site:」コマンドと「filetype:」コマンドを組み合わせると、指定サイト内にある特定のファイルを検索できます。
例)site:naifix.com filetype:pdf
XMLサイトマップを指定する
robots.txt で XML サイトマップの場所を指定することもできます。
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Sitemap: https://naifix.com/sitemap.xml.gz
前述のとおり仮想 robots.txt に自動反映されますが、自分でファイルを作成するときも書いておきましょう。
robots.txt作成方法
テキストエディタで保存する
robots.txt はテキストエディタで作成します。

保存する時は、ファイル名に注意してください。
robots.txt
「s」が抜けていると認識されません。
FTPソフトでアップロードする
アップロード先は、ルート直下です。ここ以外は無効です。
正)https://example.com/robots.txt
誤)https://example.com/wp/robots.txt
WordPress をルート直下にインストールしていた場合、以下のようになっていれば大丈夫です。

Search Consoleで確認してみる
アップロード後は、Search Console の robots.txt テスター から確認します。

右下の「テスト」をクリックして、「許可済み」になっていればとくに問題ありません。

以上で全作業は終了です。簡単でしたね。
まとめ
前述のとおり、個人ブログではとくに理由がなければ robots.txt を作成する必要はありません。
しかし、今後アフィリエイトサイトやミニサイトを作っていくなら、覚えておくとどこかで役に立つでしょう。
記事の更新を最優先に考え、そこから自分のブログをできるだけ多くの方に見てもらえるよう改善していきたいですね。
それでは、また。