robots.txt
ファイルは、検索エンジンにサイトのどのページをクロールできるかを通知します。robots.txt
の構成が無効である場合、以下の 2 つの問題が引き起こされる場合があります。
- 検索エンジンが公開ページをクロールできないため、検索結果にコンテンツが表示される頻度が減少します。
- 検索結果に表示したくないページを検索エンジンがクロールする可能性があります。
robots.txt
監査が失敗する原因
Lighthouse の Lighthouse は、無効な robots.txt
ファイルにフラグを立てます。
![無効な robots.txt を示す Lighthouse の監査](https://wd.imgix.net/image/tcFciHGuF3MxnTr1y5ue01OGLBn2/X29ztochZPiUVwPo2rg3.png?auto=format)
Lighthouse のほとんどの監査は、現在表示しているページにのみ適用されます。ただし、robots.txt
はホスト名レベルで定義されているため、この監査はドメイン全体(またはサブドメイン)に適用されます。
レポート内の「robots.txt
is not valid(robots.txt が無効です)」監査を展開し、robots.txt
の何が誤っているのかを学習します。
一般的なエラーは次のとおりです。
No user-agent specified
Pattern should either be empty, start with "/" or "*"
Unknown directive
Invalid sitemap URL
$ should only be used at the end of the pattern
Lighthouse は、robots.txt
ファイルが正しい場所にあることを確認しません。正しく機能するには、ファイルがドメインまたはサブドメインのルートにある必要があります。
Each SEO audit is weighted equally in the Lighthouse SEO Score, except for the manual Structured data is valid audit. Learn more in the Lighthouse Scoring Guide.
robots.txt
の問題を修正する方法
robots.txt
が HTTP 5XX ステータスコードを返さないことを確認する
サーバーがサーバーエラーに対してサーバーエラー(500 番代の HTTP ステータスコード)を返した場合、検索エンジンはクロールする必要のあるページを認識しません。サイト全体のクロールが停止し、新しいコンテンツのインデックスが作成されなくなります。
HTTP ステータスコードを確認するには、Chrome で robots.txt
を開き、Chrome DevTools でリクエストを確認します。
robots.txt
を 500KiB 未満に保つ
robots.txt
が 500KiB より大きい場合、検索エンジンはファイルの処理を途中で停止することがあります。このため検索エンジンが混乱し、サイトのクロールが誤って行われる可能性があります。
robots.txt
を小さく保つには、個別に除外されたページではなく、より広いパターンに注目します。たとえば、PDF ファイルのクロールをブロックする必要がある場合は、ファイルを個々に禁止するのではなく、disallow: /*.pdf
を使用して、.pdf
を含むすべての URL を禁止するようにします。
フォーマットエラーを修正する
robots.txt
では、「name: value」形式に一致する空の行、コメント、およびディレクティブのみが許可されています。allow
値およびdisallow
値が空であるか、/
または*
で始まることを確認してください。allow: /file$html
などのように、値の途中に$
を使用しないでください。
user-agent
値があることを確認する
User-agent 名は、検索エンジンに対しそれが従うべきディレクティブを検索エンジンクローラーに指示します。検索エンジンが関連するディレクティブのセットに従うかどうかを認識できるよう、user-agent
の各インスタンスに値を指定する必要があります。
特定の検索エンジンクローラーを指定するには、公開リストの user-agent 名を使用します。(たとえば、Google が提供している、クロールに使用する user-agent 名のリストをご覧ください。)
*
を使用して、他の一致しないすべてのクローラーを一致させます。
Don't
user-agent:
disallow: /downloads/
ユーザーエージェントは定義されていません。
Do
user-agent: *
disallow: /downloads/
user-agent: magicsearchbot
disallow: /uploads/
一般ユーザーエージェントと magicsearchbot
ユーザーエージェントが定義されています。
user-agent
の前に allow
または disallow
ディレクティブがないことを確認してください
User-agent 名は、robots.txt
ファイルのセクションを定義します。検索エンジンのクローラーは、これらのセクションを使用して、従うべきディレクティブを決定します。最初の user-agent 名の前にディレクティブを配置すると、クローラーはそれに従いません。
Don't
# start of file
disallow: /downloads/
user-agent: magicsearchbot
allow: /
disallow: /downloads
ディレクティブを読み取る検索エンジンクローラーはありません。
Do
# start of file
user-agent: *
disallow: /downloads/
すべての検索先人は、/downloads
フォルダをクロールすることを許可されていません。
検索エンジンのクローラーは、最も具体的な user-agent 名を持つセクションのディレクティブのみに従います。たとえば、 user-agent: *
と user-agent: Googlebot-Image
というディレクティブがある場合、user-agent: Googlebot-Image
セクションのディレクティブのみに従います。
sitemap
の絶対 URL を指定する
サイトマップファイルは、検索エンジンに Web サイトのページについて知らせるための優れた方法です。サイトマップファイルには通常、Web サイトの URL のリストと、それらが最後に変更された日時に関する情報が含まれています。
robots.txt
でサイトマップファイルを送信する場合は、必ず絶対 URL を使用してください。
Don't
sitemap: /sitemap-file.xml
Do
sitemap: https://example.com/sitemap-file.xml
リソース
更新日 • 記事を改善する