Google SEO 上級

robots.txt 設定:許可・拒否ルール、よくあるミスとテスト方法

robots.txt が制御するのは Google がページをクロールできるかどうかで、インデックスや順位には関与しません。記号を一つ間違えるだけでサイト全体が検索結果から消えることもあります。直感に反しますが...

robots.txt:管抓取不管索引——写错一个符号全站消失robots.txt: controls crawling, not indexing — one typo removes the whole site 反直觉:Disallow 阻止抓取 ≠ 阻止索引——有外链指向的页面仍会出现在 SERPCounter-intuitive: Disallow blocks crawling, not indexing — linked URLs still appear in SERP 正确写法:该阻止的阻止Correct: block what should be blocked Disallow: /admin/ · Disallow: /cart/Disallow: /admin/ · Disallow: /cart/ Disallow: /*?sort= · Disallow: /*?filter=Disallow: /*?sort= · Disallow: /*?filter= Sitemap: https://domain.com/sitemap.xmlSitemap: https://domain.com/sitemap.xml 用 GSC robots 测试工具验证每条规则Verify each rule with GSC robots tester 正确写法:该允许的允许Correct: allow what should be indexed 产品页、文章页、分类页不写 DisallowProduct/article/category pages: no Disallow Allow 写法用于覆盖上级 DisallowAllow overrides parent Disallow User-agent: * 表示对所有爬虫生效User-agent: * applies to all crawlers 默认未声明的路径 = 允许抓取Undisallowed paths = crawlable by default 常见错误 1:Disallow: / 阻止全站Mistake 1: Disallow: / blocks entire site 开发环境配置忘了删,上线后全站不被抓取Dev config leaked to production, whole site blocked 发现信号:GSC 覆盖率「已抓取未索引」暴涨Signal: GSC coverage “Crawled – not indexed” spikes 修复:删除 Disallow: /,用 URL 检查工具重新提交Fix: remove Disallow: /, resubmit via URL inspection 恢复时间:1 至 3 天重新抓取,1 至 2 周恢复排名Recovery: 1-3 days recrawl, 1-2 weeks ranking restored 常见错误 2:用 robots.txt 阻止索引Mistake 2: using robots.txt to block indexing robots.txt 阻止抓取,但 URL 仍会出现在 SERProbots.txt blocks crawling, but URL still shows in SERP SERP 只显示 URL,无标题无描述——用户体验极差SERP shows bare URL, no title/description — bad UX 正确做法:用 noindex meta 标签阻止索引Correct: use noindex meta tag to block indexing 注意:noindex 需要 Google 能抓取页面才能生效Note: noindex requires crawlable page to take effect 测试工具:Google Search Console robots.txt 测试工具 + 浏览器直接访问 /robots.txtTools: GSC robots.txt tester + browser direct access to /robots.txt 每次改完 robots.txt 必须用工具验证:输入目标 URL,确认规则是 Allow 还是 DisallowAfter every change: input target URL in tester to confirm Allow/Disallow status
robots.txt の正しい書き方、2大ミスとテストツール

robots.txt 設定:許可・拒否ルール、よくあるミスとテスト方法

結論から言うと:robots.txt が制御するのは Google がページをクロールできるかどうかで、インデックスや順位には関与しません。記号を一つ間違えるだけでサイト全体が検索結果から消えることもあります。直感に反する判断:Disallow でクロールを止めてもインデックスは止まりません。ブロックされた URL に外部リンクがあると、Google は内容をクロールしなくてもその URL を SERP に表示します。表示されるのはタイトルも説明もない裸のリンクだけです。正しい方法は robots.txt ではなく noindex meta タグでインデックスを防ぐことです。よくある2つの致命的なミス:開発環境の Disallow: / を消し忘れたまま本番公開してしまう。robots.txt で特定ページのインデックスを防ごうとしたのに、検索結果に表示され続ける。robots.txt を変更したら必ず GSC のテストツールで検証してください。

1. robots.txt が制御するもの、しないもの

robots.txt はサイトのルートディレクトリに置くテキストファイルで、検索エンジンのクローラーに「どのパスはクロールしてよく、どのパスはダメか」を伝えます。これは紳士協定です。ルールを守るクローラー(Googlebot、Bingbot)は従いますが、守らないクローラー(迷惑収集ツール)はこのファイルを読みません。

最も重要な認識:robots.txt が制御するのは「クロール」であり「インデックス」ではありません。この2つはよく混同されます。あるパスを Disallow すると、Googlebot はそのパス配下のページをクロールしません。しかし外部リンクがこれらの URL を指していると、Google は URL の存在を把握し、検索結果に URL 自体を表示します。タイトルも説明も内容の要約もなく、裸のリンクが並ぶだけです。

よくある誤解 実際の状況 結果
Disallow すれば SERP に出ない 外部リンクのある URL は SERP に残る タイトルも説明もない裸の URL
robots.txt でインデックスを防げる 不可。インデックス防止は noindex ページは検索結果に表示され続ける
robots.txt で競合他社の閲覧を防げる 誰でも /robots.txt にアクセスできる むしろ公開情報になる
robots.txt のルールは多いほどよい 1行のミスでサイト全体が消える 設定は最小限にすべき
robots.txt で機密ページを守れる 紳士協定。悪意あるクローラーは守らない 機密ページはパスワードで保護する

他の SEO モジュールとの関係:robots.txt はGoogle SEO技術基盤の最下層の設定で、XML Sitemap 最適化と組み合わせて使います。robots.txt の末尾に Sitemap の場所を宣言すると、Google は robots.txt 経由で Sitemap を発見します。そしてテクニカル SEO 監査チェックリストとの関係:robots.txt はクロール判定の第1チェック項目です。

二、ルールの文法:User-agent、Disallow、Allow、Sitemap

robots.txt の文法はとてもシンプルで、核心となる指令は4つだけです。ただしシンプルだからといって書き間違えないわけではありません。スラッシュの向きひとつ、アスタリスクの位置ひとつで、ルールの意味が変わってしまいます。

指令 書き方の例 役割 注意点
User-agent User-agent: * どのクローラーにルールを適用するかを指定します * はすべてのクローラーを意味し、ルールグループの先頭行に置く必要があります
Disallow Disallow: /admin/ このパス配下のすべてのページのクロールをブロックします スラッシュで終わるとディレクトリ全体を意味します
Allow Allow: /admin/public/ 上位の Disallow でカバーされているサブパスでもクロールを許可します 細かい上書きに使いますが、すべてのクローラーが対応しているわけではありません
Sitemap Sitemap: https://… Sitemap の場所を宣言します ファイルの末尾に置き、ルールグループとは独立させます
ワイルドカード * Disallow: /*?sort= 任意の文字列にマッチします パラメータ付き URL をブロックするのに使います
末尾の $ Disallow: /test.html$ その文字列で終わる URL に完全一致します 単一ファイルをピンポイントでブロックするのに使います

標準的な B2B サイトの robots.txt はどう書くべきでしょうか。核心となる設定は次のとおりです。先頭は User-agent: * で始め、Disallow で admin、cart、checkout などの機能的なパスをブロックし、パラメータ付きの絞り込みや並べ替えの URL もブロックします。末尾に Sitemap の場所を宣言します。商品ページ、記事ページ、カテゴリページには何も書きません。デフォルトでクロールが許可されているからです。

ケース1:ある EC 系 B2B サイトの robots.txt に Disallow: /products/ と書いてありました。意図は商品一覧ページのページネーション版をブロックすることでしたが、結果としてすべての商品ページをブロックしてしまいました。3週間後、Google でブランド名を検索すると、SERP にはトップページと会社概要ページしか表示されず、商品ページはすべて消えていました。修正方法は、ルールを Disallow: /products/?page= に変え、ページネーションパラメータ付きの URL だけをブロックし、/products/ 自体はブロックしないようにします。GSC の robots テストツールで1件ずつ検証してから公開しましょう。

三、2つの致命的なミス:サイト全体のブロックとツールの誤用

robots.txt のミスには大小ありますが、2つは致命的です。一度でも犯すと、サイト全体が検索結果から消えてしまいます。

誤りのタイプ 症状 気づくきっかけ 修正方法 復旧時間
Disallow: / によるサイト全体のブロック Google がどのページもクロールしなくなります GSC のカバレッジで「クロール済み – インデックス未登録」がサイト全体で急増します Disallow: / を削除し、必要なルールは残します 1〜3日で再クロール、1〜2週間で順位が回復します
robots.txt でインデックスをブロックしようとする ページは SERP に表示されるがタイトルがない状態になります SERP には URL だけが表示され、スニペットもありません noindex meta タグに切り替えます 2〜4週間で SERP から消えます
ルールのパスを書き間違える ブロックすべきものがされず、許可すべきものがブロックされます GSC のクロール統計が異常になります テストツールで1件ずつ検証します 修正後すぐに反映されます
Sitemap の宣言を忘れる Google が Sitemap を見つけるのが遅くなります GSC の Sitemap レポートに「未送信」と表示されます robots.txt の末尾に Sitemap: ディレクティブを追加 次回のクロール時に検出されます

直感に反する話をします。多くの人は、特定のページを検索結果に出したくないなら Disallow を書けばいいと考えます。これは間違いです。Disallow は Google にコンテンツをクロールさせないだけで、Google はその URL の存在を依然として把握しています。外部リンクや sitemap、過去のクロール履歴から知っているからです。結果として、SERP にはタイトルも説明もスニペットもない裸の URL が並び、ユーザーがクリックしても 403 か空白ページ。体験は最悪で、表示機会を無駄にしています。

正しい方法はこうです。あるページをインデックスさせたくないなら、そのページに noindex meta タグ(<meta name=”robots” content=”noindex”>)を追加し、同時に robots.txt でブロックしないことです。noindex は Google がそのページをクロールできて初めて効果を発揮するからです。Disallow と noindex を両方設定すると、Google はページをクロールできず noindex タグも読めないので、インデックスもできずブロックもできず、どちらも失敗します。

シナリオ例2:B2B サイトの見積もりダウンロードページ(/pricing/quote-request/)を Google にインデックスさせたくないとします。フォームページでキーワード対策が不要だからです。運用チームは Disallow: /pricing/quote-request/ と書きました。すると3か月後、この URL が SERP に現れました。「quote request」で検索すると、タイトルのない裸の URL が表示されたのです。いくつかの業界ディレクトリサイトからこのページに外部リンクが張られていたためです。修正方法:robots.txt の Disallow 行を削除し、ページの head に noindex meta タグを追加します。2週間後、この URL は SERP から消えました。

四、テスト方法と公開フロー

robots.txt は変更すればすぐ反映されます。キャッシュ期間はなく、Google が次に来たときに新しい内容を読みます。つまり書き間違えれば即座に問題が起きます。だから変更のたびに検証が必須です。

ステップ アクション ツール 合格基準
1. ローカルで編集 robots.txt の内容を変更 テキストエディタ 構文が正しく、余分なスペースがない
2. ブラウザでアクセスして検証 https://ドメイン/robots.txt に直接アクセス ブラウザ 200 が返り、内容がプレーンテキスト
3. GSC テストツールで検証 対象 URL を入力し、許可されているか確認 GSCのrobotsテストツール 重要なページはすべて Allow
4. 公開後の監視 GSC のクロール統計とカバレッジレポートを確認 GSC クロール数が異常に減少していない
5. 改版後の再確認 改版のたびに robots.txt を再チェック GSC + ブラウザ 新しいパスが誤ってブロックされていない

チェックリスト:robots.txt を変更したら、少なくとも次の5つの URL をテストしてください。トップページ(/)、製品一覧ページ、製品詳細ページ、ブログ記事ページ、お問い合わせページ。この5つがすべて Allow 状態であることを確認します。どれかが Disallow と表示されたら、ルールの書き間違いです。最も多いミスは、Disallow: / の後にスペースが1つ足りない、または Disallow: /products と書くべきところを Disallow: /products/ と書いてしまい、実際にブロックしたい /products/spec/ サブディレクトリを阻止できていない、というものです。

とサイトリニューアルとドメイン変更の関係:ドメインを変更するとき、旧ドメインの robots.txt でサイト全体を Disallow にしてはいけません。旧ドメインの 301 リダイレクトは Googlebot がクロールして初めて評価を引き継げるからです。旧ドメインの robots.txt に Disallow: / と書くと、Google が旧ページをクロールできず 301 命令を読めないため、評価の引き継ぎが途切れます。正しい方法は、旧ドメインの robots.txt をクロール許可のままにし、admin などの機能的なパスだけをブロックすることです。

FAQ よくある質問

robots.txt と noindex の違いは何ですか?
robots.txt が制御するのは「Google がページをクロールできるか」、noindex が制御するのは「Google がそのページをインデックスに登録するか」です。検索結果にページを出したくないなら、robots.txt ではなく noindex を使う必要があります。Disallow は Google に内容をクロールさせないだけで、その URL への外部リンクがあれば、Google はタイトルと説明のない状態で URL を SERP に表示します。注意:noindex は Google がページをクロールできて初めて機能するため、robots.txt の Disallow と併用できません。
Disallow: / とはどういう意味ですか?なぜ危険なのですか?
Disallow: / は、Google にサイト全体のすべてのページをクロールさせないという意味です。これは開発環境でインデックスを防ぐために追加されることが多く、公開後に削除し忘れます。一度有効になると Google はどのページもクロールに来なくなり、すべてのページが検索結果から消えます。気づくサインは、GSC のカバレッジレポートで「クロール済み – インデックス未登録」が急増することです。修正方法はこの行を削除し、URL 検査ツールで重要なページを手動送信すると、1 から 3 日で再クロールされ、1 から 2 週間で順位が回復します。
robots.txt が正しく書けているかテストするには?
方法は 2 つあります。1 つ目は、ブラウザで https://あなたのドメイン/robots.txt に直接アクセスし、200 が返り内容がプレーンテキストであることを確認します。2 つ目は、Google Search Console の robots.txt テストツールを使い、確認したい具体的な URL を入力すると、その URL が Allow か Disallow か、どのルールによるものかをツールが教えてくれます。変更後は毎回、トップページ、商品ページ、記事ページ、お問い合わせページの 4 つの URL を少なくともテストし、すべて Allow であることを確認してください。
robots.txt は機密ページを競合他社に見られないように保護できますか?
できません。robots.txt は公開ファイルで、誰でもブラウザから /robots.txt にアクセスして見られます。これはルールを守るクローラーに来ないようお願いするだけで、アクセス制御ではありません。機密ページ(管理画面、顧客データ、社内文書)は必ずパスワード保護(HTTP Basic Auth、ログイン認証)を使い、robots.txt に頼ってはいけません。robots.txt にできるのは、Googlebot による機能的なページ(admin、cart、checkout)への無駄なクロールを減らすことです。
ドメイン変更後、旧ドメインの robots.txt はどう設定すべきですか?
旧ドメインのrobots.txtでサイト全体をDisallowにしてはいけません。旧ドメインの301リダイレクトは、Googlebotがクロールして初めて評価を引き継げるからです。DisallowにするとGoogleが旧ページをクロールできず、301指示を読めないため、評価の引き継ぎが途切れます。正しい方法は、旧ドメインのrobots.txtで全コンテンツのクロールを許可し(adminなど機能的なパスだけDisallow)、Googlebotに通常どおりクロールさせ、すべての旧ページから新ドメインへ301を返すことです。新ドメインのrobots.txtは通常どおり設定すれば問題ありません。
Allowディレクティブはいつ使う?
Allowは上位のDisallowルールを細かく上書きするときに使います。たとえばDisallow: /products/ で製品ディレクトリ全体のクロールをブロックしつつ、その中の /products/public/ というサブディレクトリだけはGoogleにクロールさせたいとします。このとき Allow: /products/public/ を1行追加します。Allowは同レベルのDisallowより優先されます。注意点として、Allowはすべてのクローラーが対応しているわけではなく、Googlebotは対応していますが、一部のマイナーなクローラーは認識しない可能性があります。実際のところ、多くの中規模以下のサイトではAllowを使う必要はなく、正確なDisallowパスを書けば十分です。

最後に

robots.txtはSEOで最も大きな事故を起こしやすい小さなファイルです。数行しかありませんが、スラッシュを1つ間違えるだけでサイト全体が検索結果から消え、復旧には1〜2週間かかります。覚えておくべき核心は2つ。robots.txtはクロールを制御するものでインデックスは制御しないので、インデックスを防ぎたいならnoindexを使うこと。変更後は必ずGSCのテストツールで検証することです。

実行は3ステップ。今週中にブラウザで自分のrobots.txtにアクセスし、本記事の標準設定と照らして Disallow: / や過剰なブロックルールがないか確認します。来週はGSCのrobotsテストツールで重要なページがすべてAllowされているか1つずつ検証し、ファイル末尾にSitemap宣言を追加します。その後はリニューアルやURL構造の変更のたびに、真っ先にrobots.txtを見直し、新しいパスが誤ってブロックされていないか確認します。

覚えておきたい一言。robots.txtはGoogleに出す欠席届であって、ドアの鍵ではありません。書きすぎると自分を締め出してしまいます。隠したいページにはnoindexを使い、Disallowに頼ってはいけません。

崔立姝
崔立姝 クレーター専門家

デリバリー・オペレーション責任者 · クレーター デリバリー&オペレーションチーム

クレーター(Crater)デリバリー&オペレーション責任者。SEOの実装実行、ソーシャルメディアチャネルの運営とコンテンツ配信を担当し、データを用いて成長施策を分解するのが得意。複数の海外展開プロジェクトのデリバリーを手がけ、Facebook、Twitter、TikTok、YouTubeとSEO/GEOの連携戦略に注力している。

SEO実装コンテンツ運営事例解説
1106件のシェア
84件のナレッジベース