Robots.txtファイルのSEO設定方法|クローラー制御の基本と記述例

Published on: | Last updated:

robots.txtって、そもそも何?

うーん…まあ、一言で言うと「お願い」かな。サイトに来るクローラー、つまりロボットへの。

「ここの部屋は見ないでくださいね」「ここは入っていいですよ」って案内する感じ。紳士協定みたいなもの。 これを設定しておくと、サイトの中で優先的に見てほしいページを効率よくクロールしてもらえるようになる。結果としてSEOに良い影響があるかもしれない、ということ。

絶対的な命令じゃないから、クローラーによっては無視されることもあるけど。 まあ、Googleみたいな主要なクローラーは、ちゃんと守ってくれる。

とりあえず、基本の書き方

メモ帳とかのテキストエディタで、「robots.txt」という名前のファイルを作ることから始まる。 中に書くのは、だいたいこの3つの要素。

  • User-agent: どのクローラーに対する指示かを書くところ。「*」(アスタリスク)を指定すれば「すべてのクローラー」という意味になる。
  • Disallow: 「ここには来ないで」と伝えるパス。
  • Allow: 基本はDisallowで禁止しつつ、「この中の、このファイルだけはOK」みたいに例外的に許可するときに使う。

例えば、WordPressサイトで管理画面(/wp-admin/)へのアクセスを拒否したいけど、その中の特定ファイル(admin-ajax.php)は許可したい、みたいな場合。

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

こんな感じになる。 書いたら、サイトの一番上の階層、つまりルートディレクトリにアップロードする。場所を間違えると全く意味がないから注意。

robots.txtの役割は、クローラーへの道案内
robots.txtの役割は、クローラーへの道案内

最近気になる、AIクローラーの制御

最近は、検索エンジンだけじゃなくて、ChatGPTみたいな生成AIも情報を集めるためにクローラーを動かしてる。 これが結構、サーバーに負荷をかけることもあるみたいで。

だから、AIの学習に自サイトのコンテンツを使われたくない、あるいはサーバー負荷を減らしたいなら、AIクローラーもブロックしておくのがいいかもしれない。書き方は基本的に同じ。

例えば、OpenAIのクローラー(GPTBot)をブロックするには、こう書く。

User-agent: GPTBot
Disallow: /

GoogleのAI(Geminiとか)の場合は、Google-ExtendedというUser-agentを指定するみたい。 各社がUser-agent名を公開してくれてるから、それに従って書けばいい。

Googleの公式ドキュメントは「こういうルールでやってますよ」と世界中に公開してるけど、AIクローラーの対応は、各社が「従います」と表明している紳士協定の側面が強い。 特に日本のサーバー会社なんかは、負荷対策としてこの設定を推奨し始めているところもある。

大事なのは「クロールさせない」と「インデックスさせない」の違い

ここでよく間違えるのが、robots.txtとnoindexメタタグの役割。 全然違うものだから、整理しておく必要がある。

  • robots.txtのDisallow: これは「クロール拒否」。つまり、クローラーがそのページを見に来ること自体をやめてもらうお願い。
  • noindexメタタグ: こっちは「インデックス拒否」。クロールはされるけど、「このページは検索結果に出さないでね」という指示。

一番やっちゃいけないのが、インデックスから削除したいページを、いきなりrobots.txtでDisallowしてしまうこと。 クローラーがページを見に来れなくなるから、そこに書かれているnoindexタグを読むこともできず、結果として検索結果に残り続けてしまうことがある。

だから、順番が大事。まずnoindexタグでインデックスから消えるのを待って、その後にDisallowでクロールを止める。

Disallowとnoindexは目的が違う
Disallowとnoindexは目的が違う

よくある記述ミス

設定は簡単そうに見えて、うっかりミスが大きな事故につながることも。

  • うっかりサイト全体をブロック: これが一番怖い。 `Disallow: /` を、特定のクローラーではなく `User-agent: *` に書いてしまうと、サイト全体がクロールされなくなる可能性がある。
  • CSSやJavaScriptファイルをブロック: 今のGoogleはページをレンダリングして評価するから、デザインや動きを定義しているCSSやJSファイルをブロックすると、正しく評価されなくなってしまう。基本的には許可すべき。
  • テストをしない: 公開する前に、Google Search Consoleにある「robots.txt テスター」で確認するのが安全。 これで、意図した通りにブロックできているか、構文エラーはないかを確認できる。

使い分けを考えてみる【表】

じゃあ、どういう時にどっちを使えばいいのか。ちょっと自分なりにまとめてみる。

robots.txt (Disallow) noindexメタタグ
目的 クロール自体をさせたくない。サーバー負荷軽減とか、どうでもいいページを見せないため。 検索結果に表示させたくない。内容は存在するけど、検索には不要なページ。
どういうページ? ログインページ、管理画面、パラメータ付きの無限に生成されるURLとか。 内容が薄いページ、サンキューページ、社内用のテストページとか。
注意点 これだけだとインデックスされる可能性は残る。他からリンクされてると特に。 クロールはされるから、サーバー負荷は減らない。
一番のキモ 「来ないで」っていう玄関での声かけ。 「この部屋はリストに載せないで」っていう部屋の中の貼り紙。
Search Consoleのテスターで公開前にチェック
Search Consoleのテスターで公開前にチェック

結局、どうすれば?

…まあ、ほとんどの小規模なサイトなら、無理に複雑な設定はしなくてもいいのかもしれない。 WordPressを使っていれば、基本的な設定は最初から入っていることも多いし。

でも、ECサイトでパラメータ付きURLがたくさんできちゃうとか、会員専用エリアがあるとか、そういう場合はちゃんと設定した方がいい。クロールのリソースを大事なページに集中させる、という考え方。

何より、`Disallow: /` だけは、本当に気をつけて。何をしているか完全に理解するまでは、触らない方が無難だと思う。

あなたのサイトで、「このページってクロールさせるべきなのかな?」と迷っているディレクトリやファイルはありますか? よかったらコメントで教えてください。

Related to this topic:

Comments

  1. Guest 2025-11-09 Reply
    子どもが自分でホームページ作ったって聞いて、なんか嬉しくなっちゃって、ついrobots.txtをちょっといじってみたんだけど…あれ?全然クローラー来ないじゃん!焦る焦る。いやほんと、親としてどうフォローしていいのか、一瞬わかんなくなったよね。SEOとか最初は大げさに考えてなかったけど、「あーこれちゃんとやらないとダメだ」ってすごく感じた。やっぱ、設定一個でぜんぶ無視されちゃうんだな~って実体験でした…。
  2. Guest 2025-08-07 Reply
    なるほど、robots.txtって奥が深いですよね。海外のSEOコミュニティでもよく議論されてる話題だと思うけど、日本のウェブマスターはどんな風に対応してるんでしょうか?ちょっと気になります。
  3. Guest 2025-06-30 Reply
    ロボットの味方、robots.txt、めっちゃ気になるんですけど、詳しい資料とか、もし良かったら共有してもらえませんか?SEOの勉強頑張りたいです!
  4. Guest 2025-05-29 Reply
    SEOの最適化、めっちゃ興味あります!robots.txtって実際どこまで効果あるんでしょうね?グローバルな視点から見たアドバイスとかあれば教えてください。
  5. Guest 2025-05-11 Reply
    Robots.txtの最適化についての話、興味深いですね!でも、本当にそれがSEOにどれだけ影響するか、実際にはどうなんでしょう?もっと具体的な成功事例が知りたいです。
  6. Guest 2025-05-02 Reply
    Robots.txtの最適化が本当に効果的なのか疑問です。実際に成功した事例をもっと知りたいし、失敗談も共有してほしいです!他にも参考になるリソースがあれば教えてください。
  7. Guest 2025-04-20 Reply
    Robots.txtの最適化について、国際的な視点から見て、他の国々ではどのように取り組んでいるのでしょうか?成功事例や失敗談があれば教えてください!
  8. Guest 2025-04-10 Reply
    やあ、東京本部の田中です!このrobots.txt最適化ガイド、めっちゃ役に立ちそうですね~。特にグローバル展開中のECサイトでクローリング問題に悩んでるので、シンガポールとロンドン支社のチームと共有させてください。動画解説かインフォグラフィックにしてもらえると、非日本語圏メンバーにも伝わりやすいかも?