本文へスキップ

robots.txtとは?

image

定義

robots.txtは、ウェブサイトのルートディレクトリに配置されるテキストファイルで、検索エンジンクローラー(ボット)に対して、どのページをクロールしても良く、どのページはクロールしてはいけないかを伝える役割を果たします。このファイルは、Robots Exclusion ProtocolまたはRobots Exclusion Standardと呼ばれる標準に従います。

robots.txtファイルは、ウェブサイトの交通整理のような役割を果たします。検索エンジンボットがウェブサイトを訪問した際に最初に確認するファイルであり、これを通じてサイト運営者のクロール方針を把握します。例えば、管理者ページや重複コンテンツ、テストページなど、検索結果に表示されたくない領域を指定することができます。

重要な点は、robots.txtは「要請」であって「強制」ではないということです。ほとんどの正常な検索エンジンボット(Google、Naver、Bingなど)はこのファイルのルールを尊重しますが、悪意のあるボットやスクレイパーは無視することができます。したがって、機密情報を保護するためにはrobots.txtだけでは不十分であり、適切なアクセス制御や暗号化などのセキュリティ対策が必要です。

特徴

  • クロールバジェットの最適化:重要でないページのクロールをブロックすることで、検索エンジンが本当に重要なページにより多くのリソースを割り当てるように誘導できます。
  • 重複コンテンツの防止:類似したコンテンツのページや、さまざまなパラメータで生成される重複URLをブロックすることで、SEOの問題を予防できます。
  • サイトマップの場所の明示:robots.txtファイル内にサイトマップの場所を明示することで、検索エンジンが簡単に見つけられるようにします。
  • シンプルで標準化された形式:特別な技術知識がなくても、テキストエディタで簡単に作成・修正できます。
  • 即時適用:ファイルをアップロードすると即座に効力が発生し、検索エンジンボットが次に訪問する時から新しいルールが適用されます。

活用方法

robots.txtファイルを効果的に作成・管理する方法は以下の通りです。

ステップ1:基本構造の理解 robots.txtファイルは「User-agent」と「Disallow/Allow」ディレクティブを基本とします。User-agentはどのボットにルールを適用するかを指定し、Disallowはクロールを禁止するパスを、Allowはクロールを許可するパスを指定します。

ステップ2:ブロックする領域の識別 ウェブサイトで検索エンジンに公開すべきでない領域を把握します。一般的に、管理者ページ(/admin)、個人情報関連ページ、重複コンテンツ、テストページ、検索結果ページ、ショッピングカートやチェックアウトページなどが該当します。

ステップ3:robots.txtファイルの作成 テキストエディタでrobots.txtファイルを作成します。すべてのボットに対するルールは「User-agent: *」で始まり、特定のボットに対するルールを別途指定することもできます。

ステップ4:ルートディレクトリへのアップロード 作成したrobots.txtファイルをウェブサイトのルートディレクトリにアップロードします。ファイルは必ずhttps://yoursite.com/robots.txtの形式でアクセス可能である必要があります。

ステップ5:テスト Google Search Consoleのrobots.txtテストツールを使用して、ファイルが正しく作成されているか、希望するURLが適切にブロックまたは許可されているかを確認します。

ステップ6:定期的なレビュー ウェブサイトの構造が変更されるたびに、robots.txtファイルも一緒に更新する必要があります。誤って重要なページをブロックしていないか、定期的にレビューすることが重要です。

例1:基本的なrobots.txt構造

User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
Allow: /

Sitemap: https://zero-coke.com/sitemap.xml

これは最も基本的なrobots.txtファイルです。すべての検索エンジンボットに対して、admin、private、tempディレクトリはクロールしないよう指示し、それ以外はすべて許可します。最後にサイトマップの場所を明示しています。

例2:特定のボットに対するルール

# Googlebotのルール
User-agent: Googlebot
Disallow: /search/
Disallow: /cart/
Allow: /

# Bingbotのルール
User-agent: Bingbot
Disallow: /admin/
Allow: /

# 画像検索ボット
User-agent: Googlebot-Image
Disallow: /private-images/
Allow: /

# 悪質なボットをブロック
User-agent: BadBot
Disallow: /

# その他すべてのボット
User-agent: *
Crawl-delay: 10
Disallow: /admin/

Sitemap: https://zero-coke.com/sitemap.xml
Sitemap: https://zero-coke.com/sitemap-images.xml

この例は、異なるボットに対してそれぞれ異なるルールを適用する方法を示しています。コメント(#)を使用して可読性を高めています。

例3:ワイルドカードの使用

User-agent: *
# すべてのPDFファイルをブロック
Disallow: /*.pdf$

# 特定のパラメータを持つURLをブロック
Disallow: /*?sort=
Disallow: /*?filter=

# 特定の拡張子のファイルをブロック
Disallow: /*.php$
Disallow: /*.inc$

# ただし、特定のディレクトリは許可
Allow: /public/*.pdf$

Sitemap: https://zero-coke.com/sitemap.xml

ワイルドカード(*)とパス末尾指定子($)を使用して、より精巧なルールを作成できます。

例4:Eコマースサイトのrobots.txt

User-agent: *
# ユーザーアカウント関連ページをブロック
Disallow: /account/
Disallow: /login/
Disallow: /register/
Disallow: /checkout/
Disallow: /cart/

# 重複コンテンツ防止 - ソートおよびフィルターパラメータ
Disallow: /*?sort=
Disallow: /*?page=
Disallow: /*?filter=

# 検索結果ページ
Disallow: /search?

# 管理者エリア
Disallow: /admin/

# 製品ページは許可(重要!)
Allow: /products/

# クロール遅延の設定(サーバー負荷管理)
Crawl-delay: 5

Sitemap: https://zero-coke.com/sitemap.xml
Sitemap: https://zero-coke.com/sitemap-products.xml
Sitemap: https://zero-coke.com/sitemap-categories.xml

実際のEコマースサイトで使用できる包括的なrobots.txtの例です。

メリットとデメリット

メリット

  • クロール効率の向上:検索エンジンが不要なページのクロールに時間とリソースを浪費しないようにし、重要なコンテンツにより集中できるようにします。特に大規模ウェブサイトでクロールバジェットを効率的に管理するために不可欠です。

  • サーバー負荷の軽減:過度なクロールによるサーバー負荷を軽減できます。Crawl-delayディレクティブを使用すると、ボットのリクエスト間隔を調整してサーバーリソースを保護できます。

  • シンプルな実装:複雑なプログラミング知識がなくても、テキストファイル一つで簡単に実装でき、修正も即座に可能です。別途のデータベースやサーバー設定の変更が不要です。

デメリット

  • セキュリティ手段ではない:robots.txtは単なる推奨事項であり、強制力はありません。悪意のあるボットやハッカーはこのファイルを無視できるため、機密情報を保護するのには適していません。むしろrobots.txtでブロックされたパスを明示することが、攻撃者に隠されたページの場所を教える結果になる可能性があります。

  • ミスによる深刻な影響:robots.txtファイルを誤って作成すると、誤ってウェブサイト全体をブロックしたり、重要なページを検索結果から除外したりする可能性があります。「Disallow: /」という一行を間違って入力するだけで、サイト全体が検索エンジンから消える可能性があります。

  • 即時的な効果はない:robots.txtファイルを更新しても、検索エンジンがすぐに反映しない場合があります。すでにインデックスされたページを削除するには、robots.txtだけでは不十分であり、Google Search ConsoleでURL削除リクエストを別途行う必要があります。

FAQ

Q:robots.txtですでにインデックスされたページを削除できますか? A:いいえ、robots.txtは新しいクロールをブロックするだけで、すでにインデックスされたページを削除しません。むしろrobots.txtでブロックすると、検索エンジンがそのページを再クロールできなくなり、更新された情報(例:noindexタグ)を確認できません。すでにインデックスされたページを削除するには、まずページにnoindexメタタグを追加し、検索エンジンがそれを確認した後、robots.txtでブロックするのが正しい順序です。または、Google Search ConsoleのURL削除ツールを使用できます。

Q:robots.txtファイルがない場合はどうなりますか? A:robots.txtファイルがなくても、ウェブサイトは正常に動作し、検索エンジンはすべてのページをクロールできると仮定します。つまり、すべてが許可された状態になります。小規模ウェブサイトや、すべてのページを検索結果に表示したい場合は問題ありませんが、ブロックが必要な領域があるサイトの場合は、必ずrobots.txtを作成する必要があります。

Q:Disallowとnoindexの違いは何ですか? A:Disallow(robots.txt)は検索エンジンがページをクロールすることをブロックしますが、他の場所からリンクされている場合、そのページは依然として検索結果に表示される可能性があります(内容はなく、タイトルとURLのみ)。一方、noindex(メタタグ)はページのクロールを許可しますが、検索結果には絶対に表示しないよう指示します。ページを完全に検索結果から削除するには、robots.txtブロックではなく、noindexメタタグを使用する必要があります。

Q:ワイルドカード(*)はどのように機能しますか? A:ワイルドカード()は0個以上のすべての文字を意味します。例えば、「Disallow: /admin」は、/admin、/admin/、/admin/users、/administratorなど、adminで始まるすべてのパスをブロックします。「$」はURLの末尾を表すため、「Disallow: /*.pdf$」は.pdfで終わるすべてのURLをブロックします。ただし、すべての検索エンジンがワイルドカードをサポートしているわけではないため、主要な検索エンジン(Google、Bingなど)では動作しますが、一部の古いボットでは無視される可能性があります。