SEOのためのRobots.txtへの究極のガイド

公開: 2021-12-29

Robots.txtは、Webサイトのクロールを制御するために作成できるファイルです。

これは、Webクローラーが要求が多すぎるWebサイトを圧倒するのを防ぐために作成されたRobotsExclusionProtocolの実用的な実装です

クローラーがURIスペース全体にアクセスすると、サービス所有者にとって不便になる可能性があります。 このドキュメントでは、クローラーがURIにアクセスするときに従うことが期待される「RobotsExclusionProtocol」によって最初に定義されたルールを指定します。
出典: Robots Exclusion Protocol

ウェブサイトでrobots.txtを使用する必要はありませんが、 robots.txtを使用すると、検索エンジンボットがサイトをクロールする方法を最適化することで、ビジネスにプラスの影響を与えることができます。

2021年のWebAlmanacによると、 Webサイトの約16.5%にrobots.txtファイルがまったくありません。 さらに、誰もがそれを正しく実装しているわけではありません。

ウェブサイトのrobots.txtファイルが正しく構成されていない可能性があります。 たとえば、いくつかの人気のあるWebサイトは、(おそらく誤って)検索エンジンをブロックしていました。 Googleは、これらのWebサイトのインデックスを一定期間保持する場合がありますが、最終的には検索結果での表示が低下します。
出典: Webアルマナック

ウェブサイトのサイズによっては、 robots.txtを不適切に使用すると、小さな間違いや非常にコストのかかる間違いになる可能性があります。

この記事では、robots.txtファイルを作成し、潜在的な間違いを回避する方法を説明します。

内容を隠す
1 robots.txtとは何ですか?
1.1 1.クロールがブロックされているページは、引き続きインデックスに登録される可能性があります
1.22.robots.txtのルールにロボットを強制的に従わせることはできません
2なぜrobots.txtファイルが必要なのですか?
3robots.txtファイルを変更する方法
4Robots.txt構文
4.1ユーザーエージェント
4.2ディレクティブ
4.2.1許可しない
4.2.2許可する
4.2.3サイトマップ
4.2.4クロール遅延
4.2.5robots.txtのコメント
4.2.6ワイルドカード
5robots.txtファイルのテスト
6 Robots.txt vs.MetaRobotsタグvs.X-Robots-Tag
7ベストプラクティス

robots.txtとは何ですか?

Robots.txtは、ボットがページにアクセスする方法を制御するためにサーバーに配置できる単純なテキストファイルです。 クローラーのルールが含まれており、クロールするページとクロールしないページを定義します。

ファイルは、Webサイトのルートディレクトリにある必要があります。 したがって、たとえば、Webサイトの名前がdomain.comの場合、robots.txtファイルはdomain.com/robots.txtに存在する必要があります。

しかし、ファイルはどのように機能しますか? ボットはどのようにしてそれを発見しますか?

クローラーは、Webをクロールするプログラムです。 それらにはさまざまな用途がありますが、検索エンジンはそれらを使用して、インデックスを作成するWebコンテンツを検索します。 このプロセスは、いくつかのステップに分けることができます。

  1. クローラーには、クロールする新しいWebサイトと既知のWebサイトの両方を含むURLのキューがあります。
  2. クローラーは、Webサイトをクロールする前に、まずWebサイトのルートディレクトリでrobots.txtファイルを探します。
  3. robots.txtファイルが存在しない場合、クローラーはWebサイトを自由にクロールします。 ただし、有効なrobots.txtファイルが存在する場合、クローラーはそのファイル内でディレクティブを探し、それに応じてWebサイトをクロールします。

検索エンジンがページをクロールできない場合、そのページはインデックスに登録できないため、検索結果ページに表示されません。

ただし、2つの注意点があります。

1.クロールがブロックされているページは、引き続きインデックスに登録される可能性があります

robots.txtファイルのクロールを禁止しても、検索エンジンがページのインデックスを作成しないことを保証するものではありません。 他のソースのコンテンツに関する情報を見つけて、それが重要なものであると判断した場合でも、それを行う可能性があります。 たとえば、他のサイトからページにつながるリンクを見つけ、アンカーテキストを使用して、検索結果ページに表示することができます。

2.robots.txtのルールにロボットを強制的に従わせることはできません

Robots.txtは単なるガイドラインであり、必須のルールではありません。 ボットに強制的に従わせることはできません。 ほとんどのクローラー、特に検索エンジンで使用されるクローラーは、robots.txtによってブロックされたページをクロールしません。 ただし、クローラーを使用しているのは検索エンジンだけではありません。 悪意のあるボットは、指示を無視して、とにかくページにアクセスする可能性があります。 そのため、Webサイト上の機密データがクロールされないように保護する方法としてrobots.txtを使用しないでください。 ボットがコンテンツの一部をクロールしないようにする必要がある場合は、パスワードで保護することをお勧めします。

なぜrobots.txtファイルが必要なのですか?

Robots.txtはWebサイトの必須部分ではありませんが、十分に最適化されたものは多くの点でサイトに利益をもたらす可能性があります。

最も重要なことは、クロール予算を最適化するのに役立つことです 検索エンジンボットのリソースは限られており、特定のWebサイトでクロールできるURLの数が制限されています。 したがって、重要度の低いページでクロール予算を浪費すると、より価値のあるページを作成するのに十分ではない可能性があります。 小さなウェブサイトを持っている場合、これは表面的な問題のように見えるかもしれませんが、大きなウェブサイトを維持している人なら誰でも、検索エンジンボットのリソースを効率的に使用することがいかに重要かを知っています。

robots.txtファイルを使用すると、低品質のページなど、特定のページがクロールされないようにすることができます インデックスに登録できる低品質のページが多数あると、サイト全体に影響を及ぼし、検索エンジンのボットが高品質のページをクロールするのを思いとどまらせる可能性があるため、これは非常に重要です。

さらに、robots.txtを使用すると、XMLサイトマップの場所を指定できます。 サイトマップは、検索エンジンにインデックスを付けるURLをリストしたテキストファイルです。 robots.txtファイルでリンクを定義すると、検索エンジンボットがリンクを見つけやすくなります。

robots.txtファイルを変更する方法

robots.txtファイルを変更する方法は、使用するシステムによって大きく異なります。

CMSまたはeコマースプラットフォームを使用している場合は、ファイルに簡単にアクセスして変更するのに役立つ専用のツールまたはプラグインにアクセスできる場合があります。 たとえば、WixとShopifyを使用すると、robots.txtを直接編集できます。 WordPressの場合、YoastSEOなどのプラグインを使用できます。

CMSまたはeコマースプラットフォームを使用していない場合は、最初にファイルをダウンロードして編集してから、サイトにアップロードし直す必要がある場合があります。

ファイルはさまざまな方法でダウンロードできます。

  • ルートディレクトリに「/robots.txt」を追加してブラウザにファイルを表示し、コンテンツをコピーするだけです。
  • ホスティングサービスが提供するツールを使用してください。 たとえば、ファイルを管理したり、FTPプロトコルを介してアクセスしたりするための専用パネルの場合があります。
  • 次のコマンドを入力して、cURLなどのコンソールツールを使用してファイルをダウンロードします。
 curl https://example.com/robots.txt -o robots.txt
  • GoogleまたはBingのrobots.txtテスター使用して、ファイルのコピーをダウンロードします。

robots.txtをダウンロードしたら、メモ帳(Windows)やテキストエディット(Mac)などの選択したテキストエディターで簡単に編集できます。 ファイルは必ずUTF-8標準でエンコードし、「robots.txt」という名前にする必要があることに注意してください。

robots.txtを変更した後、ファイルをダウンロードするのと同じようにアップロードできます。 ホスティングが提供する専用ツールを使用したり、CMS組み込みツールを使用したり、FTPプロトコルを使用してサーバーにファイルを直接送信したりできます。

ファイルが公開されると、検索エンジンはそれを自動的に見つけることができます。 何らかの理由で、検索エンジンに変更をすぐに表示させたい場合は、 GoogleおよびBingのrobots.txtテスターの[送信]オプションを使用できます。

自動クロールプロセス中に、Googleのクローラーはrobots.txtファイルに加えられた変更に気づき、24時間ごとにキャッシュされたバージョンを更新します。 キャッシュをより速く更新する必要がある場合は、 robots.txtテスターの送信機能を使用してください。
出典: Google

Robots.txt構文

Robots.txtはテキストのブロックで構成されています。 各ブロックはユーザーエージェント文字列で始まり、特定のボットのディレクティブ(ルール)をグループ化します。

robots.txtファイルの例を次に示します。

 ユーザーエージェント: *
禁止:/ admin /
禁止:/ users /

#Googlebotの具体的な手順
ユーザーエージェント:Googlebot
許可:/ wp-admin /
禁止:/ users /

#Bingbotの特定の手順
ユーザーエージェント:Bingbot
禁止:/ admin /
禁止:/ users /
禁止:/ not-for-Bingbot /
クロール遅延:10

サイトマップ:https://www.example.com/sitemap.xml

ユーザーエージェント

あなたのウェブサイトにアクセスしたいと思うかもしれない何百ものクローラーがあります。 そのため、意図に基づいて異なる境界を定義することをお勧めします。 ここで、User-agentが役立つ場合があります。

User-agentは、特定のボットを識別するテキストの文字列です。 たとえば、 GoogleはGooglebotを使用し、BingはBingbotを使用し、DuckDuckGoはDuckDuckBotを使用し、YahooはSlurpを使用します。 検索エンジンには、複数のユーザーエージェントを含めることもできます。 ここでは、GoogleBingが使用するユーザーエージェントの完全なリストを見つけることができます

User-agentは、ディレクティブのすべてのグループで必須の行です。 ボットを名前で呼び出し、それぞれに特定の指示を与えることと考えることができます。 ユーザーエージェントに続くすべてのディレクティブは、新しいユーザーエージェントが指定されるまで、定義されたボットを対象とします。

ワイルドカードを使用して、すべてのボットに一度に指示を与えることもできます。 ワイルドカードについては後で説明します。

ディレクティブ

ディレクティブは、検索エンジンボットに対して定義するルールです。 テキストの各ブロックには、1つ以上のディレクティブを含めることができます。 各ディレクティブは別々の行で開始する必要があります。

ディレクティブは次のとおりです。

  • 許可しない、
  • 許可する、
  • サイトマップ、
  • クロール遅延。

注:ページにインデックスを付けるべきではないことを示すことになっている非公式のnoindexディレクティブもあります。 ただし、 GoogleBingを含むほとんどの検索エンジンは、これをサポートしていません。 一部のページにインデックスを付けたくない場合は、noindex Meta Robots TagまたはX-Robots-Tagヘッダーを使用します(これらについては、この記事の後半で説明します)。

禁止する

ユーザーエージェント:Googlebot
禁止:/ users /

このディレクティブは、クロールしてはならないページを指定します。 デフォルトでは、検索エンジンボットはdisallowディレクティブによってブロックされていないすべてのページをクロールできます。

特定のページへのアクセスをブロックするには、ルートディレクトリに関連するパスを定義する必要があります。

あなたのウェブサイトにこれらの2つのサイトがあると想像してみましょう:

  • website.com/products/shoes/item1.html
  • website.com/products/shirts/item2.html

次に、これらのパスをブロックするいくつかの例を見てみましょう。

ブロックされた
禁止:/item1.html /products/shoes/item1.htmlのみが許可されていません
禁止:/ products / /products/shoes/item1.htmlと/products/shirts/item2.htmlの両方が許可されていません

次の方法で「/」記号を追加することにより、サイト全体のクロールを禁止できます。

 ユーザーエージェント:Googlebot
禁止:/

許可する

ユーザーエージェント:Googlebot
禁止:/ users /
許可:/users/very-important-user.html

allowディレクティブを使用して、許可されていないディレクトリ内のページのクロールを許可できます。

上記の例では、/ very-important-user.htmlというページを除いて、/user/ディレクトリ内のすべてのページが許可されていません。

サイトマップ

サイトマップ:https://website.com/sitemap.xml

sitemapディレクティブは、サイトマップの場所を指定します。 ファイルの最初または最後に追加して、複数のサイトマップを定義できます。

他のディレクティブで定義されているパスとは異なり、 HTTP/HTTPSプロトコルまたはwww/non-wwwバージョンを含む、サイトマップの完全なURLを常に追加してください。

サイトマップディレクティブは必須ではありませんが、強くお勧めします。 Google検索コンソールまたはBingWebmasterToolsでサイトマップを送信した場合でも、すべての検索エンジンボットがサイトマップをすばやく見つけられるように、サイトマップをrobots.txtファイルに追加することをお勧めします。

クロール遅延

クロール遅延:10

検索エンジンボットは、短時間で多くのページをクロールできます。 各クロールはサーバーのリソースの一部を使用します。

多くのページがある大きなWebサイトがある場合、または各ページを開くために多くのサーバーリソースが必要な場合は、サーバーがすべての要求を処理できない可能性があります。 その結果、過負荷になり、ユーザーと検索エンジンの両方が一時的にサイトにアクセスできなくなる可能性があります。 ここで、Crawl-delayディレクティブが役立ち、クロールプロセスが遅くなる可能性があります。

Crawl-delayディレクティブの値は秒単位で定義されます。 1〜30秒で設定できます。

すべての検索エンジンがこの指令に従うわけではないことに注意することが重要です。 たとえば、 GoogleはCrawl-delayをまったくサポートしていません。

また、検索エンジンによって解釈が異なる場合があります。 たとえば、BingとYahooの場合、Crawl-delayは、ボットがページに1回だけアクセスできるウィンドウギャップの長さを表します。

Yandexの場合、Crawl-delayは、ボットが別のページを要求する前に待機する必要がある時間を指定します。

robots.txtのコメント

#ブログセクションへのアクセスをブロックします
ユーザーエージェント:Googlebot
禁止:/ blog /

ユーザーエージェント:Bingbot
禁止:/ users /#ユーザーセクションへのアクセスをブロックします

行の先頭またはディレクティブの後にハッシュ#文字を追加することで、robots.txtファイルにコメントを追加できます。 検索エンジンは、同じ行の#に続くすべてを無視します。

コメントは、特定のセクションの意味を人間が説明するためのものです。 次にファイルを開いたときに何が起こっているのかをすばやく理解できるようになるため、これらを追加することをお勧めします。

コメントを使用して、robots.txtファイルにイースターエッグを追加できます。 これについて詳しく知りたい場合は、ロボットディレクティブを人間にとって楽しいものにするための記事を確認するか、robots.txtの例を参照してください

ワイルドカード

ワイルドカードは、テキスト内の他の記号のプレースホルダーとして機能できる特殊文字であるため、robots.txtファイルの作成プロセスを簡素化します。 それらが含まれます:

  • アスタリスク*、および
  • ドル記号$。

アスタリスクは任意の文字列を置き換えることができます。

ユーザーエージェント: *

上記の例では、User-agent行のアスタリスクは、すべての検索エンジンボットを指定しています。 したがって、それに続くすべてのディレクティブは、すべてのクローラーを対象としています。

 禁止:/ *?

パスを定義するためにも使用できます。 上記の例は、「?」で終わるすべてのURLを意味します許可されていません。

ドル記号は、URLの末尾に一致する特定の要素を示します。

 禁止:/*。jpeg $

上記の例は、「。jpeg」で終わるすべてのURLを禁止する必要があることを示しています。

サイトマップを除くすべてのディレクティブでワイルドカードを使用できます。

robots.txtファイルをテストする

Google検索コンソールBingウェブマスターツールのrobots.txtテスターでテストできます。 確認するURLを入力するだけで、許可されているか許可されていないかがツールに表示されます。

robots.txtテスターでファイルを直接編集して、変更を再テストすることもできます。 変更はWebサイトに保存されないことに注意してください。 ファイルをコピーして、自分でサイトにアップロードする必要があります。

技術に精通している場合は、 Googleのオープンソースrobots.txtライブラリを使用して、コンピューター上でrobots.txtファイルをローカルでテストすることもできます。

Robots.txt vs.MetaRobotsタグvs.X-Robots-Tag

Robots.txtは、クローラーと通信する唯一の方法ではありません。 MetaRobotsタグとX-Robots-Tagを使用することもできます。

最も重要な違いは、 robots.txtがWebサイトのクロールを制御するのに対し、 Meta Robots TagとX-Robots-Tagを使用すると、そのインデックスを制御できることです。

特に、これらのメソッドは実装方法も異なります。

実装
Robots.txt Webサイトのルートディレクトリに追加された単純なテキストファイル。
メタロボットタグコードの<head>セクションに追加されたHTMLタグ。
X-Robots-タグサーバー側に追加されたHTTP応答ヘッダーの一部。

検索エンジンボットがページを見つけると、最初にrobots.txtファイルの内部を調べます。 クロールが許可されていない場合は、Webサイトにアクセスでき、その場合にのみ、潜在的なMetaRobotsタグまたはX-Robots-Tagヘッダーを見つけることができます。 2つの理由で覚えておくことが重要です。

  1. メソッドの組み合わせ–検索エンジンボットがページをクロールしてMetaRobotsタグとX-Robots-Tagを表示できるようにする必要があります。 ボットがページにアクセスできない場合、ボットは正しく機能しません。
  2. クロール予算の最適化–これら3つの方法のうち、robots.txtのみがクロール予算の節約に役立ちます。

ベストプラクティス

robots.txtファイルを作成する際のベストプラクティスとヒントを次に示します。

  • robots.txtを使用してJavaScriptまたはCSSファイルをブロックしないでください。 ボットがこれらのリソースにアクセスできない場合、ボットはコンテンツを正しくレンダリングしない可能性があります。
  • すべての検索エンジンボットが簡単に見つけられるように、サイトマップにリンクを追加してください。
  • robots.txt構文の解釈は、検索エンジンによって異なる場合があります。 よくわからない場合は、検索エンジンボットが特定のディレクティブをどのように処理するかを常に再確認してください。
  • ワイルドカードを使用するときは注意してください。 それらを誤用すると、誤ってサイトのセクション全体へのアクセスをブロックする可能性があります。
  • プライベートコンテンツをブロックするためにrobots.txtを使用しないでください。 ページを保護したい場合は、パスワードで保護することをお勧めします。 さらに、robots.txtファイルは一般公開されており、危険なボットにプライベートコンテンツの場所を開示する可能性があります。
  • クローラーによるサイトへのアクセスを禁止しても、検索結果ページからクローラーが削除されることはありません。 ページを指す説明的なアンカーテキストを含むリンクが多数ある場合でも、インデックスを作成できます。 これを防ぎたい場合は、代わりにMetaRobotsTagまたはX-Robots-Tagヘッダーの使用を検討する必要があります。