robots.txt
ファイルは、サイトのどのページをクロールできるかを検索エンジンに指示します。robots.txt
構成が無効な場合、次の 2 種類の問題が発生する可能性があります。
- 検索エンジンによる一般公開ページのクロールが妨げられ、コンテンツが検索結果に表示される頻度が下がります。
- 検索結果に表示したくないページを検索エンジンがクロールする可能性があります。
Lighthouse robots.txt
の監査が失敗する仕組み
Lighthouse では、次のような無効な robots.txt
ファイルにフラグが付けられます。
レポートの [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
ファイルが正しい場所にあるかどうかは確認されません。正しく機能させるには、このファイルはドメインまたはサブドメインのルートに置く必要があります。
robots.txt
の問題を解決する方法
robots.txt
が HTTP 5XX ステータス コードを返さないことを確認する
サーバーが robots.txt
に関してサーバーエラー(500 番台の HTTP ステータス コード)を返した場合、検索エンジンはどのページをクロールすべきかを判断できません。これにより、サイト全体のクロールが停止され、新しいコンテンツがインデックスに登録されなくなる可能性があります。
HTTP ステータス コードを確認するには、Chrome で robots.txt
を開き、Chrome DevTools でリクエストを確認します。
robots.txt
を 500 KiB 未満に保つ
ファイルが 500 KiB を超えると、検索エンジンは途中で robots.txt
の処理を停止することがあります。これにより検索エンジンが混乱し、サイトのクロールが正しく行われない可能性があります。
robots.txt
を小さくするには、個別に除外したページではなく、より広範なパターンを重視します。たとえば、PDF ファイルのクロールをブロックする必要がある場合は、個々のファイルを禁止しないでください。代わりに、disallow: /*.pdf
を使用して、.pdf
を含むすべての URL を禁止します。
形式のエラーを修正する
robots.txt
では、「name: value」形式に一致する空の行、コメント、ディレクティブのみを使用できます。allow
とdisallow
の値が空か、先頭が/
または*
であることを確認します。- 値の途中で
$
を使用しないでください(例:allow: /file$html
)。
user-agent
に値があることを確認してください
検索エンジンのクローラーに、従うべきディレクティブを伝えるユーザー エージェント名。user-agent
のインスタンスごとに値を指定して、関連するディレクティブのセットに従うかどうかを検索エンジンが認識できるようにする必要があります。
特定の検索エンジン クローラーを指定するには、公開リストのユーザー エージェント名を使用します。(たとえば、クロールに使用されるユーザー エージェントに関する Google のリストをご覧ください)。
*
を使用して、一致しないすべてのクローラーを照合します。
user-agent: disallow: /downloads/
ユーザー エージェントが定義されていません。
user-agent: * disallow: /downloads/ user-agent: magicsearchbot disallow: /uploads/
一般ユーザー エージェントと magicsearchbot
ユーザー エージェントが定義されています。
user-agent
の前に allow
または disallow
ディレクティブがないことを確認してください
ユーザー エージェント名は、robots.txt
ファイルのセクションを定義します。検索エンジン クローラーは、これらのセクションを使用して、従うディレクティブを決定します。最初のユーザー エージェント名の「前」にディレクティブを指定すると、クローラーはそれに従います。
# start of file disallow: /downloads/ user-agent: magicsearchbot allow: /
disallow: /downloads
ディレクティブを読み取る検索エンジンのクローラーはありません。
# start of file user-agent: * disallow: /downloads/
すべての検索エンジンに対して、/downloads
フォルダのクロールが禁止されています。
検索エンジンのクローラーは、最も具体的なユーザー エージェント名のセクションに記載されているディレクティブのみに従います。たとえば、user-agent: *
と user-agent: Googlebot-Image
のディレクティブがある場合、Googlebot の画像は user-agent: Googlebot-Image
セクションのディレクティブのみに従います。
sitemap
の絶対 URL を指定する
サイトマップ ファイルは、ウェブサイトのページを検索エンジンに伝えるための優れた方法です。通常、サイトマップ ファイルにはウェブサイト上の URL のリストと最終更新日の情報が記載されます。
robots.txt
でサイトマップ ファイルを送信する場合は、必ず絶対 URL を使用してください。
sitemap: /sitemap-file.xml
sitemap: https://example.com/sitemap-file.xml