robots.txt が無効です

robots.txt ファイルは、サイトのどのページをクロールできるかを検索エンジンに指示します。robots.txt 構成が無効な場合、次の 2 種類の問題が発生する可能性があります。

  • 検索エンジンによる一般公開ページのクロールが妨げられ、コンテンツが検索結果に表示される頻度が下がります。
  • 検索結果に表示したくないページを検索エンジンがクロールする可能性があります。

Lighthouse robots.txt の監査が失敗する仕組み

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」形式に一致する空の行、コメント、ディレクティブのみを使用できます。
  • allowdisallow の値が空か、先頭が / または * であることを確認します。
  • 値の途中で $ を使用しないでください(例: 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

関連情報