365日24時間対応中!SEOのプロに無料相談

コラム

robots.txtとは?機能や目的・活用方法を解説

robots.txtは、特定のWebページへのクロールを禁止するテキストファイルです。重要度の低いページへのクロールを拒否することで、SEOの最適化を促せます。

しかし、robots.txtについて、あまり馴染みがない方もいるでしょう。

本記事では、robots.txtの基本的な機能や活用方法、注意点について解説します。SEOの最適化を図りたいWeb担当者は、ぜひ参考にしてください。

SEO対策とは?具体的な施策手順や注意点を解説

    SEOにご興味がある方へ

    キーワード上位化までの期間を無料分析

    SEO専門業者として14年、4,200社を支援し続けて積み上げたノウハウをもとに、専門のコンサルタントが分析した効果予測シミュレーションを無料でお届けします!

    会社名

    必須

    名前

    必須

    電話番号

    必須

    メールアドレス

    必須

    ホームページのURL

    必須

    上位化したいキーワード
    ※最大3つ

    必須

    個人情報保護ポリシー

    robots.txtとは?

    robots.txtは、クローラーの動作を制限するテキストファイルのことです。

    クローラーとは、インターネット上のWebページを巡回して情報を取得するプログラムを指します。クローラーの目的は、高品質なページをランク付けすることです。

    サイト内を巡回して、インデックス登録をしたり、検索順位を決定したりするための情報を収集します。

    しかしrobots.txtを設定することで、指定されたページやサイトにクローラーが訪れなくなります。

    robots.txtを使用する目的

    robots.txtを使用する主な理由は、Webサイトにページが増えてきた際、重要度の低いページへのクロールを制限するためです。Webサイトの規模が大きくなるにつれリンクの階層も深くなり、末端のページがクロールされにくくなる問題があります。

    しかし、robots.txtを使うことで特定のページが見つけやすくなり、クローラービリティの向上が図れるようになります。

    またサイトの評価を下げないための施策として、低品質なコンテンツやユーザーにとって有益でないページにrobots.txtが使われることも。必要に応じてrobots.txtを活用することで、評価させたいページへのクロールを促し、SEOの最適化につなげられるのです。

    robots.txtを使用することによるSEO効果

    robots.txtファイルでクロールが不要なコンテンツを指定すれば、クロールを最適化できます。クローラーが重要なページにリソースを割けるため、クロールの頻度が上がる、インデックスの漏れがなくなるなどのメリットが得られます。

    ユーザーにとって価値があるコンテンツを優先的にクロールさせれば、SEOの改善が見込めるでしょう。とくに大規模なWebサイトでは、クロールバジェットの最適化が不可欠です。ページごとの優先度を明確にし、robots.txtファイルを調整しましょう。

    noindexとの違い

    robots.txtと類似の概念に、noindexが挙げられます。

    noindexとは、特定のページのインデックスを拒否するメタタグのことです。noindexを設定すれば、クローラーの巡回はされるものの、インデックスされなくなります。

    それに対し、クローラーの来訪そのものを拒否するのがrobots.txtです。補足として、いずれの場合もURLをアクセスバーに入力すれば、ページの閲覧は可能です。

    閲覧を拒否したい場合は、パスワード認証などの設定が必要となります。

    robots.txtの仕組み

    robots.txtの役割は、検索エンジンに対し、クロールしてよいWebページを伝えることです。クローラーは、定期的にWeb上を巡回してサイトにアクセスします。

    しかし、robots.txtが設定されているサイトやページに対しては、クローラーが訪れなくなります。

    なぜなら、検索エンジンがサイト上のルートディレクトリにアップロードされているrobots.txtから、アクセス可否に関する指示を読み取るためです。

    このようにrobots.txtファイルを通して、クロールへのアクセス制限ができるのです。

    使用されているプロトコル

    プロトコルとは、データをやりとりするための通信規約のことです。robots.txtファイルは、複数の異なるプロトコルを使用して、検索エンジンに指示を伝えます。

    代表的なプロトコルは、下記の3つです。

    プロトコル

    意味

    User-agent

    ルールの適用対象を指定する

    ​Disallow

    クロールの禁止を指定する

    Allow

    クロールの許可を指定する

    Sitemap

    サイトマップがある場所を指定する

    User-agentの役割は、ルールを適用する対象の指定です。記述は必須で、GoogleやBingtなど検索エンジンごとに指示を分ける際にも使用します。

    ​DisallowとAllowは、ページごとのクロールの必要性や優先順位を伝える役割があります。クローラーの動きを制御するため、SEOへの影響が大きいです。

    Sitemapを使えば、クローラーにWebサイト内のページを一覧で伝えられます。クロールの見落としがなくなり、インデックスの漏れを防止できます。Webサイトの構造も伝えられるため、必ず使用しましょう。

    robots.txtファイルの例

    robots.txtファイルは、下記のように記述します。

    User-agent: *

    Disallow: /sample1

    Disallow: /sample2

    Disallow: /sample3

    Allow: /sample4


    Sitemap: https://example.com/sitemap.xml

    Sitemap: https://example.com/sample/sitemap.xml

    上記では、sample1~3の3つのURLへのクロールを禁止したうえで、sample4へのクロールは許可しています。また、2つのサイトマップのURLを提示することで、検索エンジンにクロールすべきページの一覧とWebサイトの構造を伝えています。

    また今回はページ単位でクロールを制御していますが、ディレクトリ単位で指定することも可能です。

    「User-agent: *」の意味

    User-agentは、robots.txtファイルのルールを適用する対象を指定するためのプロトコルです。「*」はワイルドカードのことで、「すべて」を意味します。

    検索エンジンごとにクローラー(ロボット)は異なるため、固有名詞で指定した場合、指示先に漏れが生じます。たとえば「User-agent: Googlebot」とした場合、Googleのクローラーの動きは制御可能です。しかし、Bingのクローラーである「Bingbot」の動きを制御することはできません。

    「*」を指定することで、すべての検索エンジンのクローラーを制御できるようになります。

    「Disallow」コマンドの機能

    Disallowには、下記4つの機能があります。

    機能

    記述

    ページ単位でのアクセス禁止

    Disallow:ページのURL

    ディレクトリ単位でのアクセス禁止

    Disallow: /ディレクトリのパス/

    Webサイト全体のアクセスを許可

    Disallow:(空白にする)

    Webサイト全体をクローラーから隠す

    Disallow: /

    ページやディレクトリ単位でアクセスを禁止したい場合、URLやパスを指定するだけで大丈夫です。また「Disallow:」だけ入力すれば、「アクセス禁止のページがない=すべてにアクセス可能」という意図になります。

    「/」は、Webサイトのルート(トップページ)のことです。そのため「Disallow: /」を記述すると、クローラーはWebサイト内を全く回遊できなくなります。

    Disallowはrobots.txtファイルの中で、最も利用するプロトコルです。しかし、使い方を誤ると大損害につながるため、機能をよく理解しておきましょう。

    robots.txtを設定する手順

    robots.txtは、下記の手順で設定します。

    1. ベースとなる形式を記述
    2. ファイルが正しくかけているか確認
    3. 制御したいクローラを指定
    4. クロールを制限
    5. クロールを許可
    6. サイト全体を隠す
    7. サイトマップを知らせる
    8. 動作を確認
    9. サーバーにアップロードして設定完了

    それぞれの手順を確認していきましょう。

    ベースとなる形式を記述

    Webサイトでは、下記の要素が基本構成となります。

    • User-agent
    • Disallow
    • Allow

    User-agentで制御の対象となるクローラーを指定し、Disallowがクロールを拒否するWebページのURLを記述します。

    Allowを使用することで、Disallowで拒否したディレクトリ内のWebページからクロールさせたいURLを設定可能です。

    また、サイトマップに対象のWebサイトのURLを記載すれば、クロール速度の向上が図れます。

    ファイルが正しくかけているか確認

    ベースが完成したら、記述に誤りがないか見直しましょう。誤字脱字はもちろん、使用するプロトコルが間違っていないか、注意深く確認することが大切です。

    加えてrobots.txtの文字コードは「UTF-8」にする必要があります。ファイルを保存する際に、形式を間違えないように注意してください。

    またrobots.txtファイルをサーバーにアップロードした後であれば、Googleサーチコンソールの確認ツールを利用できます。手順は以下のとおりです。

    1. Googleサーチコンソールを開く
    2. サイドメニューの「設定」をクリック
    3. クロール項目の「robots.txt」をクリック
    4. 表示されるrobots.txtファイルの一覧から該当するファイルをクリック
    5. 右側に表示されるソースコードを確認

    確認と修正を効率化できるため、活用しましょう。

    制御したいクローラーを指定

    User-agentに、制御したいクローラーを記述します。制御が必要なクローラーは、SEO対策を行う検索エンジンによって異なります。

    代表的な検索エンジンのクローラーを、表にまとめました。

    検索エンジン

    クローラー

    Google

    Googlebot

    Bing

    Bingbot

    百度

    baiduspider

    たとえばGoogleのクローラーに指示を出したい場合は、「User-agent: Googlebot」と記述します。上位表示に必要な施策は、検索エンジンごとに異なるため、それぞれのクローラーごとに適切な設定を行いましょう。

    すべてのクローラーを指定する場合

    ワイルドカードの「*(アスタリスク)」を使用すると、すべてのクローラーに指示を出せます。

    User-agent: *

    インデックスしてほしくないページやディレクトリは共通になることが大半です。そのため、基本的に「*」を使用しておけば間違いないです。

    Webサイトの成長や施策の方針に合わせて、検索エンジンごとに指示を出し分ける必要が出てきたら個別に設定し直しましょう。

    Googleのクローラーを指定する場合

    Googleのクローラーの動作のみを制御したい場合、下記の指定を行います。

    User-agent: Googlebot

    しかし、Googleのクローラーは複数の種類があるため、より細かく指示を分けることも可能です。SEO対策と関連が強いクローラーを表にまとめました。

    クローラー

    役割

    Googlebot

    パソコンとスマホのページのクロール

    Googlebot-Image

    画像検索などの画像に依存するサービスの画像URLのクロール

    Googlebot-News

    ニュース記事のクロール

    Googlebot-Video

    Google Videoなどの動画に依存するサービスの動画URLのクロール

    Storebot-Google

    商品ページ、カートページ、購入手続きページなどECに関係するページのクロール

    各クローラーの特徴を理解し、robots.txtを作り込めば、より高度なSEO対策が行えます。

    Google画像検索のクローラーを指定する場合

    下記のように記述すると、Google画像検索のクローラーの動作を制御できます。

    User-agent: Googlebot-Image

    Google画像検索で上位表示できると、多くの流入が見込めます。一方で、低品質な画像のURLが大量にインデックスされると、WebサイトのSEO評価が低下するおそれがあります。画像ページが大量に存在する場合、「Googlebot-Image」を使って調整しましょう。

    クロールを制限

    クロールを制限する場合、「Disallow」を使用します。記述によって適用範囲が異なるため、目的に応じた方法を理解しておくことが大切です。

    代表的な下記3つの記述方法を、詳しく解説していきます。

    • ディレクトリの場合
    • ページの場合
    • サイト全体の場合

    ディレクトリの場合

    ディレクトリ単位でクロールを制限する場合、クロールを制限したいディレクトリのパスを「/」で囲んで記述します。

    User-agent: *

    Disallow: /sample/

    また、複数のパスを指定して子階層以下のディレクトリのクロールのみを制御することも可能です。

    User-agent: *

    Disallow: /sample/child/

    ページの場合

    ページ単位でクロールを制御する場合、ページのパスを記述します。

    User-agent: *

    Disallow: /sample

    末尾に「/」を付けると、クローラーがディレクトリと勘違いするおそれがあるので注意しましょう。また、Webサイトでは意図せず同じページの複数のURLが生成されることがあります。たとえば、下記のような例です。

    • ディレクトリのパスを含むURL
    • ディレクトリのパスを含まないURL

    意図しないクロールを防ぐため、下記のようにすべてのパスを記述しましょう。

    User-agent: *

    Disallow: /sample

    Disallow: /directory/sample

    サイト全体の場合

    サイト全体のクロールを拒否する場合は、「/」のみを記述します。

    User-agent: *

    Disallow: /

    しかし、robots.txtでできるのはあくまでクロールの拒否だけなので、意図せずインデックスされることもあります。検索エンジンの干渉を完全に絶ちたい場合は、「.htaccessファイル」でnoindexの指定やパスワード保護を行いましょう。

    クロールを許可

    クロールを許可するには、「Allow」を使用して下記のように記述します。

    User-agent: *

    Allow: /sample/

    しかし、デフォルトではすべてのページがクロールを許可されている状態です。そのため「Allow」は、クロールを禁止しているものの、特定のディレクトリやページだけを例外化したい場合に使用します。

    また、下記のように記述すれば、Webサイト全体でGooglebot以外のクロールを拒否できます。

    User-agent: *

    Disallow: /


    User-agent: Googlebot

    Allow: /

    プログラムは下にある記述が優先されるため、「Allow」は必ず「Disallow」の下に書くようにしましょう。

    特定のページのみ許可する場合

    特定のページへのクロールだけを許可する場合、下記のように記述します。

    User-agent: *

    Disallow: /sample/

    Allow: /sample/content

    上記の例では、「/sample/」ディレクトリへのクロールは拒否していますが、「/sample/content」だけは限定的に許可しています。同様の処理を「Disallow」だけで行うと、膨大な記述量になるため、「Allow」を上手く使いましょう。

    サイト全体を隠す

    Webサイトを検索エンジンから隠したい場合、下記のように記述します。

    User-agent: *

    Disallow: /

    すべてのクローラーに対して、Webサイトのルートへのクロールを拒否することで、プログラムからは発見できなくなります。ただしGoogleの検索エンジンは、別の手段でWebサイトを見つけて、インデックスすることがあるため注意が必要です。

    完全に隠したい場合は、「.htaccessファイル」を使い、noindexを指定したりパスワード保護をかけたりしましょう。

    サイトマップを知らせる

    サイトマップの存在をクローラーに伝えるには、「Sitemap」プロトコルを使用します。

    Sitemap: https://example.com/sitemap.xml

    注意点として、「Sitemap」プロトコルでは、下記の2つが使用できません。

    • ワイルドカード
    • 相対パス

    とくに相対パスは間違えることが多いため、必ず完全パス(https://からはじまるURL)を記述するようにしてください。ほかのプロトコルと仕様が異なるため、気をつけましょう。

    XMLサイトマップの場所をクローラーに知らせる場合

    XMLサイトマップの場所を伝えるには「Sitemap」プロトコルで、URLを指定します。

    Sitemap: https://example.com/sitemap.xml

    Sitemap: https://example.com/sitemap-2.xml

    XMLサイトマップが複数ある場合、上記のようにURLごとに記述します。XMLサイトマップをすべて記述することで、クロールの効率化が見込めます。

    しかしXMLサイトマップの数が少ないときは、Googleサーチコンソールから送信した方が簡単です。確実に送信でき、エラーもわかりやすいため、無理にrobots.txtを使用する必要はないでしょう。

    動作を確認

    コードの記述が完了したら、動作確認を行います。

    Google Search Console内の「robots.txtテスター」を利用して、コードの成否やクロールが拒否されているか確認しましょう。

    入力したコードとクロール拒否したいURLを記述し、「ブロック済み」という表示が出ていれば作成コードが正しいと判断できます。

    サイトにアップロードして設定完了

    動作が確認できたら、robots.txtをWebサイトにアップロードして設定完了です。

    正しくアップロードするために、ファイル名を「robots.txt」として忘れずに拡張子をつけてください。またアップロードする際は、ルートドメインとサブドメインの違いに注意しましょう。

    ルートドメインとは、Webページの階層の内の最上位に位置するものを指します。たとえば、「example.com」のようなドメインがルートドメインで、サブドメインとは「example.xxx.com」のようなイメージです。

    サブドメインは、運営元は同一であるものの、ルートドメインから派生した別のコンテンツのドメインであることが特徴です。

    間違ってアップロードしてしまうと、robots.txtファイルが正しく機能しないため、注意してください。

    robots.txtの基本の書式

    robots.txtで使用される書式は、下記3つがデフォルト設定として記述されています。

    • User-agent
    • Disallow
    • Allow

    それぞれ詳しく解説します。

    User-agent

    User-agentは、Webサイトをクロールするクローラーを指定するコードです。

    デフォルトの状態では「User-agent:*」と記載されていますが、これはすべてのクローラーに対してクロールを許可しているという意味です。

    指定するクローラーには、GoogleやBingなどの検索媒体による違いと、Google検索の中でAdSense用や画像用などのサービスによる違いがあります。Googleを例にすると、下記の通りです。

    • パソコン用・スマートフォン用:Googlebot
    • 画像用:Googlebot-Image
    • AdSenseクローラー:Mediapartners-Google

    Googleからのクロールをすべて拒否したい場合は、「Googlebot」と記載すれば、完全にブロックできます。

    Disallow

    Disallowは、クロールを制御するページを指定するコードです。指定するページは、下記のように粒度を調整できます。

    • Disallow:/(サイト全体を指定)
    • Disallow:/xxx/(ディレクトリを指定)
    • Disallow:/xxx/yyy.com(特定のページを指定)

    デフォルト設定では、すべてのページがクロールされてしまうため、上記のように制限する必要があります。

    Allow

    Allowは、Disallowにより拒否したディレクトリの中から、クロールさせたいページを指定するために利用します。Allowの活用例は下記の通りです。

    • Disallow:/
    • Allow:/xxx/

    上記のコードの場合、「/xxx/」以降のページはすべてクロールされ、その他のページは拒否される設定となります。制限したい内容にもとづいて、適切にコードを記述しましょう。

    robots.txtの注意点

    robots.txtを活用する上で、注意しておきたい点が下記の3つです。

    • ユーザーは指定ページにアクセス可能
    • サイト全体のクロールを拒否しないように設定する
    • 内容反映までに時間がかかる

    注意点を踏まえて、robots.txtを活用しましょう。

    ユーザーは指定ページにアクセス可能

    robots.txtは、クロールを制御するためのテキストファイルです。したがって、どのユーザーでもページの閲覧自体は可能です。

    ページの閲覧も制限したい場合は、ブラウザの設定を活用したりアクセス制限をかけたりするなど、別途対応が必要となります。

    サイト全体のクロールを拒否しないように設定する

    クロールを制限する際、サイト全体を対象としないように注意が必要です。

    サイト全体のクロールを拒否してしまうと、インデックス登録が行われなくなり、訪問者のアクセス数が減少する恐れがあります。

    robots.txtの目的は、あくまで重要性の低いページへのクロール制限です。そのため、上述のDisallowやAllowを使い、クローラービリティを向上させたいWebサイトに絞って設定しましょう。

    内容反映までに時間を要する

    robots.txtは、アップロードしてから反映までに時間を要します。

    たとえばGoogleの場合は、24時間おきにrobots.txtの内容を更新します。即時に反映されるわけではないため、時間軸も念頭に置いて設定しましょう。

    robots.txtに関してよくある質問

    robots.txtのよくある3つの質問をまとめました。

    • サイトマッププロトコルとは?
    • Robots Exclusion Protocolに含まれる他のコマンドとは?
    • robots.txtはボット管理とどのように関連する?

    それぞれ詳しく解説していきます。

    サイトマッププロトコルとは?

    サイトマッププロトコルとは、クローラーにサイトマップの場所を伝えるためのプロトコルです。XMLサイトマップの完全URLを、下記のようにrobots.txtに記述することで、クロールの効率化が期待できます。

    Sitemap: https://example.com/sitemap.xml

    Robots Exclusion Protocolに含まれる他のコマンドとは?

    Robots Exclusion Protocol(REP)とは、Webサイトに訪れたクローラーに対するルールを管理するプロトコルです。robots.txtプロトコルとも呼ばれ、robots.txtファイルに記述するプロトコルが該当します。

    Googleのクローラーが対応しているのは、下記の4つのみです。

    • User-agent
    • ​Disallow
    • Allow
    • Sitemap

    しかしBingや百度など、ほかの検索エンジンでは他のプロトコルも使用できます。たとえば「Crawl-delay」を使えば、Bingのクローラーの動きを指定の秒数で遅らせられます。

    Crawl-delay: 10

    Googleのクローラーは、指定の4つ以外のプロトコルが記載されている行を無視するように設定されています。ほかの検索エンジン向けのコマンドが原因で、不具合が起こることもあるため、注意しましょう。

    robots.txtはボット管理とどのように関連する?

    robots.txtファイルを適切に作成すれば、Webサイトの運営をSEOに関わるボットの制御を最適化できます。しかし、Web上のすべてのボットを管理できるわけではありません。

    たとえばスパムやウイルスなどを目的としたボットは、robots.txtの制御を掻い潜るようにプログラムされていることが多いです。そのため、別で対策を講じなければWebサイトが攻撃されるおそれがあります。

    robots.txtで管理できるのは、SEOに関係するボットだけと認識したうえで、ボットごとに最適な管理を行いましょう。

    まとめ:検索エンジンのクローラーを制御して最適なSEOを実現しよう

    robots.txtの設定は、運営するWebサイトの規模が大きくなってきた際に役立ちます。機能や目的を理解し、クローラーを適切に制御することで、サイト改善につながるでしょう。

    最適なSEOを実現するために、robots.txtを上手く活用してみてください。

    弊社のSEOサービス「ランクエスト」では、お客様ごとに専任のコンサルタントがつき、戦略立案からコンテンツ制作、効果測定まで、すべて対応いたします。SEO対策にお悩みの方は、お気軽にご相談ください。

    関連したコンテンツ
    最新のコンテンツ
    丸投げできるSEO

    最近のコンテンツ

    目次

    徹底的に、
    SEOで
    集客するなら。

    Copyright © 2024 eclore Co., Ltd