ロボットに関する復習: ページレベルの粒度

2025 年 3 月 14 日(金曜日)

サイト所有者は、robots.txt ファイルを使用することで、クローラーがサイトのどの部分にアクセスできようにするかを管理できます。検索エンジンやウェブ クローラーがどのようにページを利用できるようにするかを、サイト所有者がより細かく設定できるよう、ウェブ標準の開発に関わる団体が 1996 年に robots meta タグを考案しました。これは meta タグが HTML に導入されてからわずか数か月後のことでした(ちなみに、Google の設立よりも前のことです)。その後、X-Robots-Tag HTTP レスポンス ヘッダーが追加されました。この指示は URL とともに送信されるため、クローラーは、robots.txt ファイルによってその URL をクロールすることが禁止されていない場合にのみ、指示を認識できます。robots meta タグと HTTP レスポンス ヘッダーは、ともに Robots Exclusion Protocol(REP)の構成要素です。

robots meta タグの概要

メタタグ(メタ要素) を使用すると、機械で読み取り可能なメタデータを記載できます。robots meta タグは meta タグの一種で、検索エンジン クローラーなどのクローラーに適用されます。robots meta タグは次のような内容を伝えます。「コンテンツはインデックス登録をブロックしているか?」「ページ上のリンクをたどってクロールすることは禁止されているか?」このような情報をページ上で直接伝えるには、robots meta タグが便利です。

すべての URL を管理できる Robots Exclusion Protocol

HTML 以外のコンテンツも同じレベルで管理できるようにするために、「X-Robots-Tag」HTTP レスポンス ヘッダーが作られました。この HTTP ヘッダーは、REP の一部でもあります。HTTP レスポンス ヘッダーは robots meta タグと同じ値をサポートしており、オンラインで提供されているあらゆるコンテンツに追加できます。Google は HTML だけでなく、PDF、ドキュメント ファイル、画像などのコンテンツについても HTML レスポンス ヘッダーをサポートしています。このようなファイル形式の多くには meta タグに相当するメカニズムが用意されていないため、HTTP レスポンス ヘッダーが役立ちます。

robots meta タグとヘッダーを使ってみる

構文はシンプルで拡張可能です。ルールは通常、ウェブ デベロッパーが実装するか、コンテンツ マネジメント システム(CMS)を通じて実装されます。CMS では、サイト所有者がチェックボックスやプルダウン メニューで設定を選択できます。これらの管理ルールは、Googlebot など特定のクローラーを対象とすることもできるほか、特定のクローラー名を記載せずに、これらの値をサポートするすべてのクローラーを対象にすることもできます。

たとえば、すべてのクローラーに対してインデックス登録に関連ページを利用しないよう指示するには、次のようなルールを指定します。

  • ウェブページに HTML meta タグ形式で指定する場合:
    <meta name="robots" content="noindex">

    既存の meta タグやレスポンス ヘッダーを確認する場合は少し複雑で、ページ コンテンツやヘッダーを直接調べる必要があります。ご使用のブラウザでページのソースを確認するか、Chrome デベロッパー ツールを使ってページを検査することで、どのページでも HTML meta タグを表示できます。

  • HTTP レスポンス ヘッダー形式の場合:
    X-Robots-Tag: noindex

    個々の URL について HTTP レスポンス ヘッダーを確認するには、ネットワーク パネルで Chrome デベロッパー ツールを使います。

その他の使用可能なルール:

このページまたはドキュメントのスニペットを表示しない。

HTTP ヘッダーの場合:
X-Robots-Tag: nosnippet
HTML の場合:
<meta name="robots" content="nosnippet">

ExampleBot-News でこのページをインデックスに登録しない。

(特定のクローラーを指定し、その他のクローラーについては設定しない場合)

X-Robots-Tag: examplebot-news: noindex
または
<meta name="examplebot-news" content="noindex">

ExampleBot はスニペットを表示してはならない。また、すべてのクローラーはこのページ上のリンクをたどってはならない。

最も制限が厳しい有効なディレクティブが適用されるため、ExampleBot に対するディレクティブは「nosnippet, nofollow」となります。

X-Robots-Tag: examplebot: nosnippet
X-Robots-Tag: nofollow
または
<meta name="examplebot" content="nosnippet">
<meta name="robots" content="nofollow">

REP メカニズムを選択する

皆さんは、使用する REP メカニズムをどのように選んでいますか。robots.txt とページ単位の管理は基本的に似ていますが、完全に同じではありません。ある 1 つのメカニズムでしか実行できない固有のアクションがいくつかあります。たとえば、クローリングを停止したい場合や(無限に表示される検索結果ページに対してなど。robots.txt でのみ可能)、FTP サーバーを管理する必要がある場合(robots.txt でのみ可能)、ページのスニペットを表示させたくない場合(ページ単位の管理でのみ可能)などです。クロールのブロックとインデックス登録のブロックを区別する必要がない場合は、robots.txt をより広範囲の管理(サイトの大部分のブロック)に使用し、個々のページのブロックにはページ単位の管理を使用する方法もあります。

Robots Exclusion Protocol - 絶えず更新される標準

これまでに挙げた管理機能はすべて本質的に拡張可能です。長年にわたり、サイト所有者、クローラー運営者、検索エンジンが協力して管理機能を進化させてきました。当初は noindexnofollow などの限られた値だけだったものが、後に nosnippetnoarchivemax-snippet: などの多くの値が採用されました。一方、noodp のように値が廃止されることもありました。以前は DMOZ / Open Directory Project からスニペットを使用することができましたが、今は閉鎖されて使用できないため不要だからです。Google はサイト所有者のために多くの値をサポートしており、他の大手クローラー運営者も同様です。

サイト所有者は、REP に基づいて、何がクロールされるかや、クロールされたデータが検索エンジンでどのように利用されるのかを管理できます。サイトの大部分に対して広範囲に管理することも、個々のページやページ内の画像に対して細かく管理することもできます。このような管理機能はよく知られており、あらゆる一般的な CMS で利用できます。民間企業にも広くサポートされており、現在インターネット上の何十億ものホストで利用されています。


他のロボットに関する復習シリーズをご覧ください。