robots.txtの書き間違いでGoogleにブロックされる|現場で使える実践テクニック

robots.txtの書き間違いでGoogleにブロックされる|現場で使える実践テクニック
C
クリオ
Web制作ディレクター / フロントエンジニア

こんにちは!

今日は「robots.txtの書き間違いでGoogleにブロックされる|現場で使える実践テクニック」について解説します。

robots.txtで本当に起きた悔しい失敗談

僕も昔、大きなプロジェクトでrobots.txtの書き間違いで3ヶ月の間、サイト全体がGoogleにインデックスされませんでした。
ほんま、悔しかった。
クライアントから「検索流入がゼロです」って指摘されるまで気づかなかったんです。

robots.txtは、Googlebot(検索エンジンのロボット)に対して「どのページをクロールしていいか」を指示するテキストファイルです。
見た目はシンプルなのに、1文字間違えるだけで、あなたのサイト全体がSEOの世界から消えてしまうんです。
怖いですよね。

実は、このファイルは多くのWeb制作者が軽く考えてしまうんです。
「まあ、テンプレート通りに書いておけば大丈夫」って感じで。
でも現場では、その甘い考えが取り返しのつかないことになることもあるんです。

よくある書き間違い5つのパターン

ここから、僕が実際の現場で見かけた書き間違いを紹介します。
「あ、これやってるな」って思ったら要注意です。

1. ファイルの場所を間違える

robots.txtは必ずサイトのルートディレクトリに配置する必要があります。
つまり、https://example.com/robots.txt という場所にしか認識されません。

よくある間違いとしては、/public/robots.txt/html/robots.txt に置いてしまうケースです。
Googleはルートの robots.txt しか読まないので、その他の場所に置いたファイルは完全に無視されます。
つまり、意図せず全ページがクロール可能な状態になってしまうんです。

2. User-agentの大文字小文字を間違える

これ、めっちゃよくあります。

正しい書き方:

User-agent: *

間違いの例:

user-agent: *
USER-AGENT: *

robots.txtは大文字小文字を区別します。
User-agent は必ずこの表記でないと、Googleが読み込まないんです。
僕も最初は「まあ同じでしょ」って思ってました。
でも違うんです。めっちゃ違うんです。

3. Disallowの階層指定を雑に書く

特定のページをブロックしたいときに、パスを間違えるケースが多いです。

例えば、管理画面だけをブロックしたいなら:

Disallow: /admin/

ここで、スラッシュの有無や位置がズレると、意図しないページまでブロックされます。
よくある勘違いは、ルート直下のファイルをブロックするときに Disallow: admin/ と書いてしまうことです。
正しくは Disallow: /admin/ です。
スラッシュはめっちゃ大事やん。

4. ワイルドカード(*)の使い方を勘違いする

robots.txt では、ワイルドカード * が使えます。
例えば、全ての .pdf ファイルをブロックしたければ:

Disallow: /*.pdf

ただし、よくある勘違いは * の使いすぎです。
Disallow: * と書いてしまうと、サイト全体をブロックしてしまいます。
昔、テスト環境で試していた設定をそのまま本番に上げてしまったプロジェクトがあります。
サイト全体が検索から消えました。
Git管理してなかったから、どの変更で壊れたか特定するのにめっちゃ時間かかった。

5. 複数の環境で同じ robots.txt を使う

開発環境、ステージング環境、本番環境があるときに、全ての環境で同じ robots.txt を使うのはヤバいです。

開発環境では全ページをブロックしたいのに:

Disallow: /

このファイルを本番環境にコピーしてしまうと、検索エンジンは本番サイトのすべてをブロックしてしまいます。
現場では環境ごとに robots.txt を分けるべきです。
本番環境だけを意図的にブロック解除するとか、工夫が必要です。

robots.txtを安全に運用するチェックリスト

では、どうやって安全に運用するか。
僕が実際に使ってるチェックリストを紹介します。

ファイル配置の確認

  • robots.txt がサイトのルートディレクトリ(https://example.com/robots.txt)に配置されているか
  • ファイルパーミッションが正しく設定されているか(読み取り可能か)
  • サーバーの設定で .txt ファイルがブロックされていないか

構文チェック

  • User-agent は大文字から始まり、小文字で統一しているか
  • Disallow も大文字から始まり、小文字で統一しているか
  • パスはすべて / から始まっているか(例:Disallow: /admin/
  • 余計なスペースやインデントはないか

Google Search Consoleで検証

これが最重要です。
Google Search Console に登録したら、必ず「robots.txt テスター」を使いましょう。
実際にGooglebot がどう読み込んでいるかを確認できます。

手順:

  1. Google Search Console にログイン
  2. 対象のサイトを選択
  3. 「robots.txt テスター」を開く
  4. ファイルの内容を確認し、「テスト」ボタンで検証

ここで「許可」と表示されれば、Googleはそのページをクロール