この記事の監修SEO会社
株式会社NEXER
2005年にSEO事業を開始し、計10,000社以上にSEOコンサルティング実績を持つSEOの専門会社。
自社でSEO研究チームを持ち、「クライアントのサイト分析」「コンテンツ対策」「外部対策」「内部対策」「クライアントサポート」全て自社のみで提供可能なフルオーダーSEOを提供している。
SEOのノウハウを活かして、年間数百万PVの自社メディアを複数運営。
サイトを運営する中で多くの人たちが「送信されたURLがrobots.txtによってブロックされました」というGoogle Search Consoleのインデックスカバレッジの問題に直面します。
もちろん原因ははっきりしており、robots.txtによって自サイトのURLにクローラーが巡回できなかった場合に表示されるのです。
この記事では、そんな「送信されたURLがrobots.txtによってブロックされました」と表示される原因や解決方法を紹介します。
最後まで読んでもらえればインデックスカバレッジの問題から悩まされることはなくなるので、ぜひ参考にしてみてください。
目次
「送信されたURLがrobots.txtによってブロックされました」とは
「送信されたURLがrobots.txtによってブロックされました」とは、自サイトのサイトマップを送信した際に、クローラーが正常にクロールできなかった場合に表示されるメッセージです。
サイトに設置されたクローリングを拒否する設定やrobots.txtが主な原因で発生します。
「送信されたURLがrobots.txtによってブロックされました」を解決するには
「送信されたURLがrobots.txtによってブロックされました」を解決するには、ページ情報を検索エンジンやブラウザに伝えるために記述するmetaタグを削除する必要があります。
WordPressを使用している場合、インデックスに関する設定から対処が可能です。ダッシュボードの設定メニューから表示設定へと進み、「検索エンジンでの表示」という項目を確認してみましょう。
もし設定内の「検索エンジンにサイトをインデックスしないようにする」にチェックが入っていると、サイト全体のインデックス登録がrobots付きのmetaタグによってブロックされています。
チェックが入っている場合はチェックを外し、再度確認してみてください。ただし、チェックを外してもすぐにはSearch Consoleに反映されません。数日から1~2週間は必要です。
「robots.txt によりブロックされましたが、インデックスに登録しました」とは
インデックスカバレッジの問題の1つとして「robots.txt によりブロックされましたが、インデックスに登録しました」と表示されることもあります。
これは、クロールは制御されていたものの、それでもインデックス登録された場合に表示されるメッセージです。
なぜrobots.txtによってブロックされたにもかかわらずインデックス登録されたのかと言うと、robots.txtは完全にクロールを禁止するためのものではないからです。
そのためクローリングを拒否したいページをrobots.txtでブロックしたとしても、内部リンクや外部リンクを通してインデックス登録されるときがあります。
さらにクローラーは1つや2つではなくパソコン用、スマートフォン用、画像用など。中にはrobots.txtの内容に従わなかったり理解できないクローラーも存在することから、すり抜けてインデックス登録される場合があるのです。
インデックス登録して良い場合にはrobots.txtを変更
インデックス登録して良い場合には「robots.txt テスター」と呼ばれる直接robots.txtの内容を確認できる方法で記述を変更します。
実際にアクセスし、robots.txtを確認したいドメインを選択すると、下記のような英単語が記述されます。
- User-agent
- Disallow
- Allow
- Sitemap
確認すべき項目は特定ページのクロールを制御する役割を持った「Disallow(許可しない)」です。このDisallowにURLが記述されていると、エラーメッセージが表示されます。
例えば「Disallow: /」とスラッシュがあった場合、サイト全体のクロールを制御する意味を持ちます。
Disallow:の後にスラッシュや特定ページのURLが記述されているとrobots.txtによってブロックされるため、記述を削除する必要があるのです。
そうすることでrobots.txtのブロックメッセージを解消できることに加えて、インデックス登録も行えます。
インデックス登録されたくない場合
robots.txtはクロールを抑制するページとそうではないページをクローラーに伝えるためのものです。よって、インデックス登録されなくない場合はNoindexか対象ページをパスワードで保護することをおすすめします。
Noindexはクローラーに巡回されるものの、インデックス登録には至らないことから検索結果にも表示されません。サイト全体の評価を落としかねないときに使用することが大半です。
そしてGoogleは一般的に公開されているページのみをインデックス登録の対象にしているため、パスワード保護も同様にインデックス登録されたくない場合に役割を果たしてくれます。
robots.txtとは
robots.txtとは、検索エンジンに特定のページをクロールさせたくない場合に設定するファイルのことです。
主にあまり重要ではないページや過負荷が考えられるページのインデックス登録を抑制する目的で使用します。
優先してクロールしてもらいたいページを限定することで、効率よくサイト全体の評価を上げられるとされています。
robots.txtでクロールを避けるべきページ
robots.txtでクロールを避けるべきなのは、自動生成ページです。自動生成ページとはプログラムによって生成されたページを指し、検索順位の操作を目的としています。
つまりユーザーにとって価値のないページのことであり、Googleでも自動生成されたページに関してはそれなりの措置を取ると記載されているほど。
各々で価値のないページの判断基準は異なるものの、そういったページまでクロールされることになると、最悪の場合ペナルティを課せられることも考えられます。
そのため、自サイトの中のコンテンツであまりクロールされないほうが良いなと感じたページは、robots.txtに記述してクロールをブロックすることがあります。
robots.txtの要素
robots.txtは、主に3つの要素から成り立っています。
- User-agent: *
- Disallow:
- Sitemap: http://example.com/sitemap.xml
WordPressの場合は、さらにAllowという記述も追加されます。
- User-agent: *
- Disallow: /wp-admin/
- Allow: /wp-admin/admin-ajax.php
- Sitemap: http://example.com/sitemap.xml
User-agentは、抑制したいクローラーを指定することができ、「User-agent: Googlebot」と記述した後に「Disallow: 」へURLを追加すれば、Googlebotだけ該当のURLを巡回しなくなります。
Allowは反対にクロールを許可したいファイルやURLがある場合に記述する項目となっており、Disallowで指定したURLの一部をクロールしてもらいたいときに使用することが多いです。
Sitemapはクローラーにサイトマップの場所を知らせるためのものです。記述することによってクローラーがサイトにアクセスしやすくなり、巡回もしやすくなります。
クローラビリティ向上のためにも、必ず設定しておくべき項目です。
robots.txtを使うべきシーン・使うべきでないシーン
robots.txtにはrobots.txtの役割があるため、使うべきシーンと使うべきでないシーンを把握しておかなくてはいけません。
例えば検索結果に表示させないことが目的なのであればrobots.txtではなく、noindexを行うことが正しい方法です。
サイトが大きくなるにつれて起こり得る重複コンテンツに関しても、robots.txtではなくcanocicalや301リダイレクトが適切と言えます。
反対にrobots.txtは、あまりクロールさせたくないページや他に優先してクロールさせたいページがある場合に使用します。
robots.txtの書き方
robots.txtで記述する内容は基本的に4つしか存在しないため、書き方も非常にシンプルです。
- User-agent: *
- Disallow: /wp-admin/
- Allow: /wp-admin/admin-ajax.php
- Sitemap: http://example.com/sitemap.xml
WordPressの場合、上記の記述がされていればそのままの状態で問題ありません。
もし内容を書き換えるのであれば、それぞれの項目にクロールを制御したいURLや許可したいURLを追加します。
さらにDisallowを追加することもできるため、指定可能な範囲はサイトの細部にまで至ります。
robots.txtの確認方法
robots.txtは、Google Search Consoleの機能の1つである「robots.txt テスター」から確認できます。
メモ帳感覚で記述内容を変更したり削除したりすることが可能です。そして実際に記述を行った後は該当のURLがブロックできているかをテストできるようになっています。
中小規模サイトの場合はrobots.txtによってブロックされた際、原因を特定するために確認する程度なので、使用する機会は基本的にありません。
設定方法
テストが終わった後、robots.txtはFTPソフトを使用してサイトにアップロードする必要があります。
FTPソフトとはパソコンとウェブサーバーとの間でファイルを送受信するためのソフトです。
また、アップロードする場所は必ずルートドメインの必要があります。
https://example.com/aaa/robots.txt:NG
https://example.com/robots.txt:OK
しかしいずれにしても、robots.txtは必ず設定する必要はありません。サイトの問題がなかなか解決しない場合や特別クロールを抑制したいページがない限りは不要です。
注意点
robots.txtはサイト全体に影響を及ぼす可能性があるファイルのため、下記のような点に注意してください。
- すべての検索エンジンが robots.txt ディレクティブに対応するとは限らない
- クローラによって構文解釈が異なる
- robots.txt で許可されていないページを他のサイトからリンクした場合、そのページはインデックスに登録される可能性がある
- robots.txtはあくまで対クローラーであり、ユーザーはアクセスできる
- インデックス済みのページをrobots.txtでブロックしたとしても検索結果には残り続ける
- robots.txtの記述内容が反映されるまでには数日から2週間程度はかかる
- アドレスバーにURLを入力すると誰でもそのサイトのrobots.txtを見られる
あくまでrobots.txtは特定ページへのクロールを抑制するファイルであり、インデックス登録の拒否を目的に利用するものではないという認識を持つことが大切です。
まとめ
「送信されたURLがrobots.txtによってブロックされました」の原因はインデックス登録を拒否しているか、robots.txtの記述内容に問題があるかのどちらかです。
対処したからと言ってすぐにGoogle Search Consoleで反映されるわけではないため、少なくとも数日から2週間は様子を見ましょう。問題がなければ時間が解決してくれるはずです。
そして、robots.txtは数千規模以上のコンテンツを提供するサイトでの過負荷を避ける目的で利用します。
規模の小さなサイトであればクローラーは最適に巡回しているとGoogleセントラルにも記載されているため、特に個人でサイトを運営している方は気にする必要のない項目と言えます。