CreaTools LogoCreaTools
Tips

robots.txt を1行間違えたらサイトが検索結果から消えた

2026-02-17

結論:robots.txt は「何を禁止するか」だけ書く

robots.txt でやることは1つ。クローラーに「ここは見に来ないで」と伝えるだけ。

逆に「ここを見て」とは書けない。Allow は「Disallow の例外」であって、「インデックスしてくれ」という意味ではない。


私がサイトを検索から消した話

ステージング環境を本番にコピーしたとき、robots.txt もそのままコピーした。

User-agent: *
Disallow: /

ステージングでは正しい設定。本番では致命的。サイト全体がクロール拒否になった。

3日後、「サイト名で検索しても出てこない」と連絡が来て気づいた。修正してからインデックスが戻るまで2週間かかった。

たった1行、/ を書いただけで2週間の損失。


robots.txt の基本構文

User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/public/

Sitemap: https://example.com/sitemap.xml
項目意味
User-agent対象のクローラー(* は全員)
Disallowクロールを拒否するパス
AllowDisallow の例外として許可するパス
SitemapサイトマップのURL(任意)

書かなければ全ページクロール許可。 何も制限しないなら、空の robots.txt を置くか、ファイル自体を置かないでいい。


よくある事故

事故1:Disallow: / を本番に置いた

ステージングや開発環境のコピーで起きる。デプロイ手順に robots.txt の確認を入れるべき。

事故2:Disallow のパスにスラッシュを付け忘れた

# 間違い — /admin-page なども拒否される
Disallow: /admin

# 正しい — /admin/ 配下だけ拒否
Disallow: /admin/

末尾スラッシュの有無でマッチ範囲が変わる。/admin/admin-page/administrator にもマッチする。

事故3:noindex と混同した

robots.txt の Disallow は「クロールしないで」であって「インデックスから消して」ではない。

やりたいこと正しい方法
ページをクロールさせないrobots.txt の Disallow
ページをインデックスから消す<meta name="robots" content="noindex">
両方noindex だけで十分(クロールされないと noindex も読めない)

Disallow したページがインデックスに残り続けることがある。 確実に消したいなら noindex を使う。


WordPress の場合

WordPress は /wp-admin/ の robots.txt を自動生成する。自動生成の内容を確認せずに放置するのは危険。

確認方法

https://あなたのサイト.com/robots.txt

ブラウザでアクセスするだけ。

WordPress でよく入れる設定

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/sitemap.xml

/wp-admin/admin-ajax.php は Allow にする。テーマやプラグインがフロントエンドから使うため、ブロックすると動作に影響が出る。

/wp-includes//wp-content/uploads/ を Disallow にしない。 画像やCSS・JSのクロールをブロックすると、Google がページを正しくレンダリングできなくなる。


Google Search Console で確認する

robots.txt を書いたら、Google Search Console で確認する。

確認すべきこと:

  • トップページがブロックされていないか
  • 主要ページがブロックされていないか
  • サイトマップがブロックされていないか
  • 意図しないパスが巻き込まれていないか

書いて終わりではない。確認するまでがセット。


最低限のテンプレート

何も制限しない場合

User-agent: *
Disallow:

Sitemap: https://example.com/sitemap.xml

管理画面だけブロック

User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /tmp/

Sitemap: https://example.com/sitemap.xml

AI クローラーだけブロック

User-agent: GPTBot
Disallow: /

User-agent: *
Disallow: /admin/

Sitemap: https://example.com/sitemap.xml

AI クローラーをブロックしたい場合は、User-agent を指定して個別に拒否する。* でまとめて拒否すると Google も巻き込む。


まとめ

  • robots.txt は「クロール拒否」だけを書くファイル
  • Disallow: / を本番に置くとサイトが検索から消える
  • noindex とは別物。インデックス削除には noindex を使う
  • 書いたら Google Search Console で必ず確認する