長期間にわたってrobots.txtが503を返し続けるたらどうなる?
グーグル検索のトップが交代、新トップは収益増加よりもUX改善を優先?【SEO情報まとめ】[Web担当者Forum]
「長期間、たとえば2か月にわたってrobots.txtが503を返しているけれど、サイト内にあるrobots.txt以外のコンテンツページには正常にアクセスできる状態のサイトがあるとします。
そのサイトは検索結果から削除されるのでしょうか? それとも問題なくクロールされるのでしょうか?」こんな質問を受けたグーグルのゲイリー・イリース氏は、次のように返信した:
「見落としがちなポイントの1つとして、「robots.txtにアクセスできないときに、クローラーがサイトの重要なページに一貫してアクセスできるかどうか」がある。
・重要なページにはアクセスできるのであれば、サイトは大丈夫かもしれない。不安定な状態ではあるが、まだアクセスは提供されている。
・重要なページにもエラーが発生する場合、運が悪かったということだ。
robots.txtのHTTPエラーが発生した場合は、できるだけ早くアクセスできるようにする必要がある。」イリース氏によると、robots.txtが503を返していてアクセスできない状態であっても、重要なページにGooglebotがアクセスできれば大きな問題にはならないということらしい。
ただし、これを正しく理解するには、robots.txtに対するGooglebotの挙動を知っておく必要がある。
robots.txtを取得しようとして503エラーだった場合のGooglebotの動きに関して、技術ドキュメントには、次のような記載がある(編集部で強調・改行・補足を追加):
「robots.txt リクエストに対してサーバーから明確な応答がないため、Google は一時的な 5xx および 429 のサーバーエラーと解釈し、サイトが完全に許可されていない場合と同様に処理します※。
Google は、サーバーエラー以外の HTTP ステータス コードを取得するまで robots.txt ファイルのクロールを試行します。503 (service unavailable) エラーの場合、再試行が頻繁に行われます。
robots.txt に 30 日以上アクセスできない場合、Google は robots.txt の最後のキャッシュ コピーを使用します。
使用できない場合、Google はクロールに対する制限はないと見なします。」※Web担編注 ドキュメントの日本語訳が適切ではない。正しくは次のような意味か:
「5xxや429のサーバーエラーが返る場合、robots.txtの情報を正しく取得できないため、Googleはサイト全体がdisallow指定されていると一時的に解釈します」
つまり、次のrobots.txt指示のようにサイト全体のクロールが禁止されているとみなすことを意味している:
User-agent: Googlebot
Disallow: /503を含む500番台のエラーをrobots.txtが返す場合のGooglebotの処理を簡潔にまとめると、次のとおりだ:
1.サイト全体のクロールを禁止されているとみなしたうえで、robots.txt取得の再試行を繰り返す(30日間)
2.30日以上取得できない場合は、以前にクロール成功してキャッシュしていたrobots.txtに従う:
・robots.txtのキャッシュがグーグル側にある場合は、その内容に従う
・robots.txtのキャッシュがグーグル側にない場合は、制限なくクロールする(robots.txtが存在しない場合のデフォルトの挙動)
質問者が仮定した状況は「2か月にわたってrobots.txtが503を返している」なので、2に該当する。つまり、キャッシュのrobots.txtがあればそれに従い、なければ無制限にクロールする。もっともイリース氏が言うように、次の2点は重要だ:
・robots.txtだけでなく他のページでもエラーがあれば、当然クロールしてもらえない。
・robots.txtにエラーでアクセスできない状況は(4xx除く)、速やかに解決するべき。