robots.txt と noindex の違い|検索結果から消す正しい方法
「robots.txt でブロックしたのに検索結果に出てくる」「Search Console に『robots.txt によりブロックされましたが、インデックスに登録しました』と出た」。こうした悩みの多くは、robots.txt と noindex の役割の違いから来ています。この記事では、クロールとインデックスの違い、検索結果から消したいときの正しい手順、robots.txt の Noindex や Crawl-delay が効かない理由、Search Console でよく見るメッセージと書き間違いの直し方をまとめます。
クロールを止める robots.txt、インデックスを止める noindex
検索エンジンがページを検索結果に出すまでには、ページを取りに行く「クロール」と、内容を検索用のデータベースに登録する「インデックス」の2段階があります。robots.txt が止めるのは前者のクロールで、noindex が止めるのは後者のインデックスです。
| robots.txt の Disallow | noindex(meta タグ・X-Robots-Tag) | |
|---|---|---|
| 止めるもの | クロール(ページの取得) | インデックス(検索結果への表示) |
| 書く場所 | サイトの /robots.txt | 各ページの HTML の head、または HTTP ヘッダー |
| 検索結果に出るか | ほかからリンクされていると URL だけ出ることがある | クロールされたあとに出なくなる |
| 向いている用途 | 検索結果・パラメータつき URL など、クロールの無駄を減らす | 会員ページ・お礼ページ・重複ページを検索結果から外す |
| PDF・画像 | パスで止められる | X-Robots-Tag ヘッダーで指定する |
robots.txt で止めたページでも、ほかのページからリンクされていれば、Google は「そういう URL がある」ことは知っています。そのため、中身を読まないまま、説明文のない状態で検索結果に出ることがあります。これが「ブロックしたのに検索に出る」理由です。
検索結果から消したいときの正しい手順
- 1
robots.txt のブロックを外す
noindex は Google がページをクロールして初めて読めます。robots.txt で止めたままだと noindex がいつまでも読まれず、検索結果に残り続けます。まずテスターで、そのページが Googlebot に「許可」になっていることを確かめます。
- 2
ページに noindex を入れる
HTML の head に <meta name="robots" content="noindex"> を入れます。PDF や画像など HTML でないファイルは、サーバーの設定で X-Robots-Tag: noindex のヘッダーを返します。
- 3
再クロールを待つ・リクエストする
Search Console の URL 検査ツールでインデックス登録をリクエストすると、早く読まれやすくなります。数が多いときは、サイトマップに一時的に残しておくとクロールされやすくなります。
- 4
消えたのを確かめてから、必要なら robots.txt で止める
検索結果から消えたあと、クロールの負担も減らしたいなら robots.txt で止めます。ただし止めたあとは noindex が読まれなくなるので、ほかからリンクされると URL だけ再び出ることがあります。基本は noindex だけにしておくのがおすすめです。
Search Console でよく見るメッセージと対処
| メッセージ | 意味 | 対処 |
|---|---|---|
| robots.txt によりブロックされましたが、インデックスに登録しました | クロールは止まっているが、リンクなどから URL が登録された | 検索に出したくないなら、ブロックを外して noindex。出したいなら、ブロックを外す |
| robots.txt によりブロックされました | クロールが止まっていて、インデックスもされていない | 意図どおりなら対応不要。出したいページなら該当の Disallow を外す |
| 送信された URL が robots.txt によってブロックされました | サイトマップに載せた URL を robots.txt で止めている | サイトマップから外すか、ブロックを外す |
| noindex タグによって除外されました | noindex が読まれて検索結果から外れている | 意図どおりなら対応不要 |
どの Disallow 行が原因かは、Search Console では表示されません。該当の URL をテスターに入れて Googlebot で判定すると、決め手になったルールの行番号が分かります。書き換え後に反映されるまでの流れはrobots.txt の確認方法を参照してください。
robots.txt の Noindex・Crawl-delay は Google には効かない
- Noindex:以前は非公式に robots.txt の「Noindex: /old/」が読まれていましたが、Google は2019年9月1日にサポートを終えました。今は書いても無視されます。ページの meta タグか X-Robots-Tag を使います。
- Crawl-delay:Google は読みません。Googlebot はサーバーの応答の速さやエラーを見て、クロールの頻度を自動で調整します。Bing や Yandex は Crawl-delay を読みます。
- Host・Clean-param:Yandex だけが使う項目で、Google・Bing は読みません。
- Sitemap:Google も読みます。ただし「Sitemap: /sitemap.xml」のようなパスだけでは読まれず、https:// から始まる完全な URL で書く必要があります。
Googlebot のクロールが多すぎてサーバーが重いときは、一時的に 503 や 429 のステータスを返すと、Google はクロールを減らします。ただし長く続けるとクロールの対象から外れていくので、数日以内に戻すのが目安です。
よくある書き間違いと直し方
| 間違い | どうなるか | 正しい書き方 |
|---|---|---|
| User-agent:*(全角コロン) | 行が読まれない | User-agent: * |
| Disallow: https://example.com/secret/ | URL ではなくパスを書くので一致しない | Disallow: /secret/ |
| Disallow: private/ | / で始まらないのでどこにも一致しない | Disallow: /private/ |
| 先頭に Disallow: /admin/(User-agent の前) | どのクローラーにも使われない | 上に User-agent: * を書く |
| User-agent: Googlebot-Images | 存在しない名前なので使われない | User-agent: Googlebot-Image |
| Noindex: /old/ | Google は無視する | ページに meta robots の noindex |
| Sitemap: /sitemap.xml | 読まれない | Sitemap: https://example.com/sitemap.xml |
テスターのサンプル「間違いの多い書き方」には、これらの間違いがまとめて入っています。読み込んで「書き方のチェック」を見ると、どの行がどう読まれるのかを確かめられます。ワイルドカードの書き方はAllow と Disallow の優先順位と * $ の意味、AI クローラーの止め方はAI クローラーをブロックする robots.txtで解説しています。
よくある質問
- robots.txt でブロックすれば検索結果から消えますか?
- 消えるとは限りません。robots.txt はクロールを止めるだけなので、ほかのページからリンクされている URL は、説明文なしで検索結果に出ることがあります。消したいときは、ブロックを外してページに noindex を入れます。
- robots.txt と noindex を両方使ってもいいですか?
- 同じページに両方を使うと、robots.txt のせいで Google が noindex を読めず、noindex が効きません。検索結果から外したいページは robots.txt でブロックせず、noindex だけを使います。
- robots.txt に Noindex と書くとどうなりますか?
- Google は2019年9月1日にサポートを終えたので、何も起こりません。ページの meta タグ(<meta name="robots" content="noindex">)か、X-Robots-Tag ヘッダーを使ってください。
- 「robots.txt によりブロックされましたが、インデックスに登録しました」は直すべきですか?
- そのページを検索結果に出したいなら、robots.txt のブロックを外します。出したくないなら、ブロックを外して noindex を入れます。どちらでもないまま放置すると、説明文のない状態で検索結果に出続けることがあります。
この記事で紹介したツール
あわせて読みたい
robots.txt の Allow と Disallow の優先順位|* と $ の意味
robots.txt で同じ URL に Allow と Disallow の両方が当てはまるとき、どちらが使われるのか。「上に書いたほうが優先」と思われがちですが、Google の読み方は違います。この記事では、Google が採用している「いちばん長く一致したルールが勝つ」仕組み、ワイルドカード「*」と末尾の「$」の意味、「/fish」と「/fish/」の違い、大文字小文字や日本語の URL の扱いを、例を使って解説します。
記事を読む →robots.txt の User-agent の書き方|* と Googlebot を両方書くと
robots.txt に「User-agent: *」のグループと「User-agent: Googlebot」のグループの両方を書くと、Googlebot は「*」のルールを使わなくなります。これを知らずに Googlebot 用のグループを足して、止めていたはずのページがクロールされるようになった、というトラブルはよくあります。この記事では、クローラーがどのグループを使うかの決まり方、Googlebot-Image や AdsBot-Google などの特別な扱い、グループのまとめ方と書き間違いやすい点を解説します。
記事を読む →robots.txt の確認方法|テスター廃止後にブロックを調べる手順
Google Search Console にあった robots.txt テスターは2023年12月に提供が終わり、今は「robots.txt レポート」に置き換わっています。レポートでは「URL を入れてブロックされるか試す」ことができないため、「どこで確認すればいいの?」と迷う人が増えました。この記事では、robots.txt の置き場所と開き方、Search Console のレポートと URL 検査ツールで分かること・分からないこと、テスターで URL ごとの判定を確かめる手順、書き換えたあとに反映されるまでの流れをまとめます。
記事を読む →