Meta Robotsタグ
robotsメタタグによるページのインデックス登録と検索結果での表示制御を解説します。全ディレクティブ、クロールしてから従う原則、競合解決、X-Robots-Tagとの違いを確認できます。
言語
このページには証拠シグナルが1件あります
- 関連するライブツールHTTP Header Checker
robotsメタタグは、1つのページをどのようにインデックス登録し、検索結果に表示するかを検索エンジンへ伝えます。最重要ルールは、クローラーがページを取得して初めてnoindexなどの指示を読めることです。robots.txtで同じURLをブロックするとnoindexが確認されません。タグがなければ既定値はindex, followです。競合時はより制限の強いルールが適用され、HTML以外のPDFや画像にはX-Robots-Tagヘッダーを使います。
要点 — robotsメタタグは、ページの
<head>に記述し、検索エンジンにそのページの扱い方を伝えるHTMLです。代表例は、検索結果に表示させないための<meta name="robots" content="noindex">です。最も重要な注意点は、Googleがタグを読むにはページをクロールできなければならないことです。同じページをrobots.txtでもブロックすると、Googleはタグを確認できず、ページが検索結果に残ることがあります。タグがなければ、既定の動作は「インデックス登録し、リンクをたどる」です。
robotsメタタグとは
robotsメタタグは、ページの<head>に置く小さなHTML要素です。
<meta name="robots" content="noindex">検索エンジンに対し、このページを検索結果に表示するか、ページ内リンクをたどるか、スニペットを表示するかなどを指示します。name="robots"は、このタグを解釈するすべての検索エンジンを対象にします。name="googlebot"のようにクローラー名を指定すれば、特定の検索エンジンだけを対象にできます。
ページにrobotsメタタグがない場合、既定値はindex, followです。つまり、検索結果への表示を許可し、リンクをたどります。既定の動作を変更したい場合だけタグが必要です。 Evidence for this claim For Google, the default robots meta behavior is index, follow when no restrictive rule is present. Scope: Google-supported robots meta rules; other crawlers publish their own support and defaults. Confidence: high · Verified: Google Search Central: Robots meta tag specifications
必ず守ること:noindexしたいページをブロックしない
これは特によくある誤りです。ページをGoogleから削除しようとして、次の2つを同時に行ってしまいます。
- ページに
noindexを追加する。 - 同じページを
robots.txtでブロックする。
2つ目の操作が1つ目を無効にします。robots.txtでURLをブロックすることは、Googleに*「このページを取得しないでください」*と伝えることです。そのためGoogleはページをダウンロードせず、noindexを読めません。結果としてページがインデックスに残ることがあります。解決策は、ページをクロール可能なままにして、Googleにnoindexを読ませることです。 Evidence for this claim Google can read and follow page-level robots rules only when it is allowed to access the page. Scope: Google-supported robots meta and X-Robots-Tag rules; robots.txt blocking can prevent rule discovery. Confidence: high · Verified: Google Search Central: Robots meta tag specifications
2つの仕組みは役割が異なります。
- **
robots.txt**はクロールを制御します。ボットがページを取得できるかどうかの設定です。 - robotsメタタグはインデックス登録と検索結果での表示を制御します。ページの取得後に何を行うかの設定です。
両者は交換可能ではありません。検索結果から削除することが目的なら、同じURLに両方を設定しないでください。
The same page contains a meta robots noindex directive. In the first path, crawling is allowed, so the crawler fetches the page, reads noindex, and can remove the URL from results after processing. In the second path, robots.txt blocks crawling, so the crawler cannot fetch the page or see noindex, and the URL may remain in results. Crawl control and index control are separate jobs.
© Patrick Stox LLC · CC BY 4.0 ·
よく使うディレクティブ
実際によく使うものは次のとおりです。
noindex— このページを検索結果に表示しません。nofollow— このページ内のリンクをたどりません。1つのリンクに付けるrel="nofollow"とは異なり、ページ上のすべてのリンクが対象です。none—noindex, nofollowの短縮形です。nosnippet— 検索結果にこのページのテキストスニペットを表示しません。
複数の指示はカンマで結合できます:<meta name="robots" content="noindex, nofollow">。
注意しておきたい点
noindexを設定してもページは非公開になりません。 ページは公開されたままで、クロールも可能です。検索結果に表示されないだけです。機密性が必要ならログインなどのアクセス制御を使います。noindexはクロールバジェットを節約しません。 Googleはタグを確認するためにページを取得する必要があります。- PDFや画像には
<meta>タグを追加できません。 HTMLの<head>がないためです。この場合はX-Robots-Tag HTTPレスポンスヘッダーを使います。詳しくはAdvancedで説明します。 noindexを設定したページがGoogleから消えるまでの期間は固定されていません。 優先度の低いページは再クロールと処理に数か月かかる場合があります。クライアントに「2〜4週間」と約束しないでください。
全ディレクティブ、競合時の解決方法、googlebotとrobotsの組み合わせ、X-Robots-Tagヘッダーを詳しく知りたい場合は、Advancedタブへ進んでください。
理解度チェック:robotsメタディレクティブ
目的から制御方法を選ぶ
Which robots control should I use?
目的を果たせないrobots制御
noindexとrobots.txtのブロックを併用する。 ブロックによって、クローラーが削除指示を確認できなくなります。disallowをインデックス削除の保証として使う。 取得は止まりますが、リンクされているURLはページ内容なしでインデックスされることがあります。- body内のrobotsメタタグは無視されると思い込む。 Googleはbody内のタグも尊重すると説明しているため、テンプレートがそこへ挿入したタグもGoogleでは機能します。ただし、他のクローラーやバリデーターでも確実に扱える標準的な
<head>内に置くべきです。 - Googleが読まないクローラー名を使う。 たとえば
name="bingbot"をGoogle向けの制御だと思わないでください。Googleが認識するのはgooglebotとgooglebot-newsだけで、それ以外のname値は無視されます。 - PDFにHTMLのメタタグを使う。 HTML以外のファイルではHTTPレスポンスに
X-Robots-Tagを設定します。 nofollowをnoindexとして扱う。 リンクの扱いを変えても、現在のページは検索結果から削除されません。- 汎用タグとクローラー固有タグを合算せず公開する。
robots、googlebot、ヘッダーの全ディレクティブをまとめて監査します。別の場所にある制限的な指示が有効になることがあります。 - robotsルールを機密保護に使う。 公開URLには誰でもアクセスでき、
robots.txtも読めます。機密コンテンツには認証が必要です。
noindexを安全に導入する
- 目的が検索結果からの削除であり、クロール削減、canonical統合、アクセス制御ではないことを確認した。
- HTMLには
<meta name="robots" content="noindex">を、HTML以外のリソースにはX-Robots-Tag: noindexレスポンスヘッダーを使用した。 - URLを対象クローラーからクロール可能かつアクセス可能な状態にした。
- テンプレート、CMS、CDN、クローラー固有設定にある矛盾したディレクティブを削除した。
- ソーステンプレートだけでなく、レンダリング後のheadと実際のレスポンスを確認した。
- canonical URLに加えて、意味のあるバリエーションやリダイレクトもテストした。
- 後から比較できるよう、対象URL群とデプロイ時刻を記録した。
- URL検査でルールを確認し、再クロール後にページのインデックス登録レポートを監視した。
- コンテンツを非公開にする必要がある場合は、代わりに認証を使用した。
メタタグ、ヘッダー、クロール可否を調べる
次のシェル監査でURLを置き換えてください。
url="https://example.com/page/"
curl -sSI "$url" | grep -iE '^(HTTP/|x-robots-tag:|location:)'
curl -sS "$url" | grep -oiE '<meta[^>]+name=["'"'](robots|googlebot)["'"'][^>]*>'
curl -sS "https://example.com/robots.txt"DevToolsのConsoleでは、最初に見つかったタグだけでなく、解析されたrobotsタグをすべて一覧にします。
console.table([...document.querySelectorAll('meta[name]')]
.filter((meta) => /^(robots|googlebot|bingbot)$/i.test(meta.name))
.map((meta) => ({ crawler: meta.name, content: meta.content })));ヘッダーはDOMに表示されないため、Consoleの結果を実際のレスポンスと比較します。リダイレクトもたどってください。中間レスポンスにディレクティブがあっても、遷移先が同じルールを配信する証拠にはなりません。
各レイヤーを個別にテストする
- HTTPヘッダーチェッカー — ステータス、リダイレクト、PDFを含む実際の
X-Robots-Tagヘッダーをすべて確認します。 - robots.txtテスター — 対象クローラーがURLを取得でき、robotsディレクティブを発見できるか確認します。
インデックスに残り続けるURLを診断するときは両方を使います。robots.txtが取得を妨げていれば、正しいnoindexレスポンスを配信していてもクローラーは処理できません。一方、クロール可能であるだけでは、ページが実際にnoindexを配信している証拠にはなりません。
デプロイ後にディレクティブの動作を証明する
テスト1 — 実際の配信
- 仮説: 対象URLがそれぞれ1つの有効な
noindexルールを配信している。 - 方法: URL群からサンプルを選び、リダイレクトをたどり、レンダリング後のメタタグとレスポンスヘッダーを確認する。
- 合格条件: 最終レスポンスがクロール可能で、競合する配信経路なしに対象クローラーへ
noindexを提示している。 - 不合格条件: リダイレクト、CDNヘッダー、クローラー固有タグのいずれかがルールを変更している。
- 次の対応: 原因となるレイヤーを修正し、同じサンプルで再テストする。
テスト2 — 検索エンジンによる処理
- 仮説: Googleがページをクロールし、削除ルールを処理済みである。
- 方法: URL検査のライブテストを実行し、再クロール後にページのインデックス登録レポートを監視する。
- 合格条件: ライブテストがnoindexを検出し、その理由でURLがインデックス未登録になる。
- 不合格条件: URLがブロックされている、ディレクティブがない、または新しいクロールがないまま古いインデックス状態が残っている。
- 次の対応: クロールアクセスを復旧するか再クロールをリクエストする。disallowは追加しない。
一律のベンチマークではなく、意図を測る
意図したnoindexの適用率
URLs serving the intended noindex ÷ URLs in the approved noindex set
分母は自社の削除対象リストから作り、デプロイ前後のクロールを比較します。目標は業界平均ではなく、承認済み対象への完全な適用です。
意図しないインデックス制御の競合
noindex対象なのにインデックスされているURL、robots.txtでブロックされているURL、矛盾するメタタグやヘッダーを配信しているURLを数えます。テンプレート、CDNルール、ファイル形式ごとに分け、1つの実装不具合がサイト全体の集計に埋もれないようにします。
Google Search Consoleのページのインデックス登録レポートとURL検査を、処理状況の証拠として使います。ただし、インデックス削除は再クロールに依存します。変更前の件数とデプロイ日を保存しなければ、件数が減っても信頼できる基準との比較にはなりません。
Evidence for this claim Google can read and follow page-level robots rules only when it is allowed to access the page. Scope: Google-supported robots meta and X-Robots-Tag rules; robots.txt blocking can prevent rule discovery. Confidence: high · Verified: Google Search Central: Robots meta tag specifications要点 —
<head>内の<meta name="robots" content="…">は、1ページのインデックス登録と検索結果での表示を制御します。タグがなければ既定値はindex, followです。この仕組みはクロールしてから従うものです。Googleは、「these settings can be read and followed only if crawlers are allowed to access the pages」 と説明しています。 (翻訳)「これらの設定をクローラーが読み取り、従えるのは、その設定を含むページへのアクセスが許可されている場合だけです。」 したがって、robots.txtでブロックされたURLは取得されず、noindexも確認されません。競合するルールではより制限の強いものが適用され、googlebotタグと汎用robotsタグの間では、Googlebotに否定的ルールの合計が適用されます。タグはHTML専用です。HTML以外や大規模な設定にはX-Robots-Tagヘッダーを使います。Googleがクローラー名として読むのはgooglebotとgooglebot-newsだけで、bingbotなど他の値は無視します。
役割、配置場所、既定値
Googleの表現では、robotsメタタグにより、「use a granular, page-specific approach to controlling how an individual HTML page should be indexed and served to users in Google Search results.」 (翻訳)「個々のHTMLページをGoogle検索結果でどのようにインデックス登録し、ユーザーに表示するかを、ページ単位できめ細かく制御できます。」標準的で互換性の高い配置場所は<head>です。
<meta name="robots" content="noindex, nofollow">headへの配置は各検索エンジンが想定する記述規約ですが、Google検索に限れば必須ではありません。Googleは、「Google Search doesn’t enforce placement of meta robots in the HTML head and will respect robots meta tags in the body section of an HTML document as well.」 (翻訳)「Google検索はrobotsメタタグをHTMLのhead内に置くことを強制せず、HTML文書のbody内にあるrobotsメタタグも尊重します。」と明記しています。これはGoogle固有の許容動作であり、一般的な推奨ではありません。標準配置を想定するすべてのクローラーやバリデーターが正しく読めるよう、引き続き<head>に記述します。
name属性は対象クローラーを指定します。ここは多くの解説がGoogleの対応範囲を誇張する部分です。name="robots"は、このタグを読むすべてのクローラーを対象にします。それ以外について、Googleはクローラー名を2つだけサポートし、他の値を無視します。原文は、「Google supports two user agent tokens in the robots meta tag; other values are ignored: googlebot for all text results, and googlebot-news for news results.」 (翻訳)「Googleはrobotsメタタグで2つのユーザーエージェントトークンをサポートし、その他の値は無視します。すべてのテキスト検索結果にはgooglebot、ニュース検索結果にはgooglebot-newsを使います。」です。name="bingbot"はGoogle向けの制御ではありません。Bingは独自の条件でそのトークンを読みますが、Googleは認識しないname値を無視します。Googleではname属性とcontent属性、X-Robots-Tagのヘッダー名と値はいずれも大文字小文字を区別しません。
**robotsメタタグがない場合の既定値はindex, follow**です。これはallルールに相当し、Googleは明示しても効果がないと説明しています。 Evidence for this claim For Google, the default robots meta behavior is index, follow when no restrictive rule is present. Scope: Google-supported robots meta rules; other crawlers publish their own support and defaults. Confidence: high · Verified: Google Search Central: Robots meta tag specifications 既定の動作を変更するときだけタグが必要です。
ルールは、1つのタグ内でカンマ区切りにする方法(noindex, nofollow)と、複数の<meta>タグに分ける方法で組み合わせられます。Googleの原文は、「create a multi-rule instruction by combining robots meta tag rules with commas or by using multiple meta tags.」 (翻訳)「robotsメタタグのルールをカンマで組み合わせるか、複数のメタタグを使って、複数ルールの指示を作成できます。」です。
最重要ルール:タグを読むにはGoogleがページをクロールできなければならない
この記事の要点はここに集約されます。robotsメタタグはクロールしてから従う仕組みです。Googleはタグを読むためにページを取得する必要があります。取得を妨げるものがあれば、タグは適用されません。仕様には次のように記載されています。
Evidence for this claim Google can read and follow page-level robots rules only when it is allowed to access the page. Scope: Google-supported robots meta and X-Robots-Tag rules; robots.txt blocking can prevent rule discovery. Confidence: high · Verified: Google Search Central: Robots meta tag specifications「Keep in mind that these settings can be read and followed only if crawlers are allowed to access the pages that include these settings.」 (翻訳)「これらの設定をクローラーが読み取り、従えるのは、その設定を含むページへのアクセスが許可されている場合だけであることに注意してください。」
その結果も明記されています。
「If a page is disallowed from crawling through the robots.txt file, then any information about indexing or serving rules will not be found and will therefore be ignored.」 (翻訳)「robots.txtファイルによってページのクロールが許可されていない場合、インデックス登録や表示に関するルールの情報は見つからず、そのため無視されます。」
つまり、同じURLにrobots.txtのDisallowとnoindexを併用する典型的な誤りは、noindexをひそかに無効にします。Googleはページをクロールせずタグを確認できないため、URLがインデックスに残ることがあります。リンクがあれば、説明文のないURLだけの検索結果として残る場合もあります。Googleの「検索インデックス登録をブロックする」文書には、「must not be blocked by a robots.txt file… If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see the noindex rule, and the page can still appear in search results.」 (翻訳)「robots.txtファイルでブロックされていてはなりません。ページがrobots.txtでブロックされているか、クローラーがアクセスできない場合、クローラーはnoindexルールを確認できず、ページが検索結果に表示される可能性があります。」と明記されています。
私は実データで、この仕組みの反対側も確認しました。実験記事*robots.txtで上位表示ページ2件をブロックした記録では、上位表示していた2ページを意図的にrobots.txtでブロックしました。Googleはページをクロールできなくなり、情報を更新できませんでしたが、ページはほぼ順位を維持しました。原文では、「We lost a position here or there and all of the featured snippets for the pages.」* (翻訳)「ところどころで順位を1つ失い、対象ページの強調スニペットはすべて失いました。」と報告しています。私の結論は、「Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.」 (翻訳)「Googleがすでに順位付けしているページをrobots.txtで誤ってクロール禁止にしても、順位への影響はおそらく大きくなく、検索結果にも残る可能性が高い。」というものです。これはnoindex問題と同じ仕組みです。ブロックされたURLは更新が止まります。ブロックは削除ではありません。ページを実際に削除したいなら、**クロール可能なnoindex**が必要です。
私は各仕組みの役割を公にも明確にしています。Googleがrobots.txtでnoindexをサポートすべきかと尋ねられた際、「Google was clear they want robots.txt for crawl control only.」 (翻訳)「Googleはrobots.txtをクロール制御だけに使いたいと明確にしていました。」と答えました。クロールはrobots.txtの役割、インデックス登録はメタタグまたはヘッダーの役割です。両者は重複しません。robots.txt内のnoindexは公式にサポートされたことがなく、Googleは2019年9月1日に解析を終了しました。
robotsメタディレクティブ全一覧
Googleがサポートする値を、仕様の原文とともにまとめます。
インデックス登録
all— 「There are no restrictions for indexing or serving. This rule is the default value and has no effect if explicitly listed.」 (翻訳)「インデックス登録や表示に制限はありません。このルールは既定値であり、明示しても効果はありません。」noindex— 「Do not show this page, media, or resource in search results.」 (翻訳)「このページ、メディア、リソースを検索結果に表示しません。」none— 「Equivalent tonoindex, nofollow.」 (翻訳)「noindex, nofollowと同等です。」indexifembedded— 「Google is allowed to index the content of a page if it’s embedded in another page through iframes or similar HTML tags, in spite of anoindexrule.」 (翻訳)「noindexルールがあっても、iframeなどのHTMLタグで別のページに埋め込まれている場合は、Googleによるページ内容のインデックス登録を許可します。」埋め込みコンテンツに対してnoindexを上書きするディレクティブです。
リンク
nofollow— 「Do not follow the links on this page.」 (翻訳)「このページのリンクをたどりません。」ページ全体に適用され、1つのリンクだけに適用するrel="nofollow"とは範囲が異なります。
検索結果での表示とスニペット
nosnippet— 「Do not show a text snippet or video preview in the search results for this page.」 (翻訳)「このページについて、検索結果にテキストスニペットや動画プレビューを表示しません。」適用範囲は従来のテキストスニペットより広く、Googleは*「applies to all forms of search results (at Google: web search, Google Images, Discover, AI Overviews, AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode.」* (翻訳)「Googleのウェブ検索、Google画像検索、Discover、AI Overviews、AI Modeを含むすべての検索結果形式に適用され、コンテンツがAI OverviewsとAI Modeへの直接入力として使われることも防ぎます。」と説明しています。max-snippet:[number]— 「Use a maximum of [number] characters as a textual snippet for this search result.」 (翻訳)「この検索結果のテキストスニペットとして最大[number]文字を使用します。」nosnippetと同様に、「applies to all forms of search results (such as Google web search, Google Images, Discover, Assistant, AI Overviews, AI Mode) and will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode.」 (翻訳)「Googleウェブ検索、Google画像検索、Discover、Assistant、AI Overviews、AI Modeなどのすべての検索結果形式に適用され、AI OverviewsとAI Modeへの直接入力として使用できるコンテンツ量も制限します。」これはGoogle独自のAI検索機能に対する直接入力の適格性制御で、一般的なAI学習のオプトアウトではありません。Google-Extendedによる学習制御や、Search Consoleにある検索の生成AIプロパティ単位の制御は、それぞれ範囲の異なる別システムです。max-image-preview:[setting]— 「Set the maximum size of an image preview for this page in search results.」 (翻訳)「検索結果におけるこのページの画像プレビュー最大サイズを設定します。」値はnone、standard、largeです。largeについては*「A larger image preview, up to the width of the viewport, may be shown.」* (翻訳)「ビューポート幅までの大きな画像プレビューが表示される場合があります。」と説明されています。max-video-preview:[number]— 「Use a maximum of [number] seconds as a video snippet for videos on this page in search results.」 (翻訳)「検索結果で、このページの動画に最大[number]秒の動画スニペットを使用します。」notranslate— 「Don’t offer translation of this page in search results.」 (翻訳)「検索結果でこのページの翻訳を提供しません。」noimageindex— 「Do not index images on this page.」 (翻訳)「このページ上の画像をインデックス登録しません。」unavailable_after:[date/time]— 「Do not show this page in search results after the specified date/time.」 (翻訳)「指定した日時以降、このページを検索結果に表示しません。」
過去のディレクティブ — 現在のGoogleでは無効
古い解説に残っている次のディレクティブは、Googleが現在は使用していないと明記しています。効果を期待して追加しないでください。
noarchive— 「Thenoarchiverule is no longer used by Google Search to control whether a cached link is shown in search results, as the cached link feature no longer exists.」 (翻訳)「キャッシュリンク機能が廃止されたため、Google検索では検索結果にキャッシュリンクを表示するかどうかの制御にnoarchiveルールを使用しなくなりました。」nocache— 一部の検索エンジンがnoarchiveの同義語として使っていました。Googleは*「Thenocacherule isn’t used by Google Search.」* (翻訳)「Google検索ではnocacheルールを使用しません。」と説明しています。nositelinkssearchbox— 「Thenositelinkssearchboxrule is no longer used by Google Search to control whether the sitelink search box is shown for a given page, as the feature no longer exists.」 (翻訳)「サイトリンク検索ボックス機能が廃止されたため、Google検索では特定ページに同機能を表示するかどうかの制御にnositelinkssearchboxルールを使用しなくなりました。」
ページ内の一部分に対する制御(メタタグではない)
ページ内の一部分を制御する**data-nosnippet**属性があります。Googleは、「designate textual parts of an HTML page not to be used as a snippet… on span, div, and section elements.」 (翻訳)「HTMLページ内でスニペットに使用しないテキスト部分を、span、div、section要素に指定できます。」と説明しています。メタタグ内の指示はページ全体に適用されます。一部の文章だけをスニペットから除外するには、nosnippetではなくdata-nosnippetを使います。
ディレクティブの組み合わせと競合の解決
ディレクティブが競合した場合は、2つのルールで判断します。
1. より制限の強いルールが優先される。 「In the case of conflicting robots rules, the more restrictive rule applies. For example, if a page has both max-snippet:50 and nosnippet rules, the nosnippet rule will apply.」 (翻訳)「robotsルールが競合する場合は、より制限の強いルールが適用されます。たとえば、ページにmax-snippet:50とnosnippetの両方がある場合、nosnippetが適用されます。」50文字の上限よりnosnippetの方が厳しいため、後者が有効になります。
2. googlebotとrobotsでは、否定的ルールを合算する。 ここは多くの解説が誤る点です。googlebotタグは汎用robotsタグを単純に置き換えるのではなく、Googlebotには両方の制限の和集合が適用されます。Googleの原文は、「For situations where multiple crawlers are specified along with different rules, the search engine will use the sum of the negative rules.」 (翻訳)「複数のクローラーに異なるルールが指定されている場合、検索エンジンは否定的ルールの合計を使用します。」です。公式の例は次のとおりです。
<meta name="robots" content="nofollow">
<meta name="googlebot" content="noindex">「The page containing these meta tags will be interpreted as having a noindex, nofollow rule when crawled by Googlebot.」 (翻訳)「これらのメタタグを含むページは、Googlebotがクロールするとnoindex, nofollowルールがあるものとして解釈されます。」robotsのnofollowとgooglebotのnoindexが合算され、Googlebotにはnoindex, nofollowが適用されます。同じディレクティブについて両者が異なる指定をする場合は、そのクローラー名を持つタグが対象クローラーに適用されます。
robotsメタタグとX-Robots-Tag(HTTPヘッダー)の違い
robotsメタタグは<head>を必要とするHTML専用の仕組みです。HTML以外では、同じディレクティブをHTTPレスポンスヘッダーで配信するX-Robots-Tagを使います。Googleは、「The X-Robots-Tag can be used as an element of the HTTP header response for a given URL. Any rule that can be used in a robots meta tag can also be specified as an X-Robots-Tag.」 (翻訳)「X-Robots-Tagは特定URLのHTTPヘッダーレスポンス要素として使用でき、robotsメタタグで使えるルールはすべてX-Robots-Tagにも指定できます。」と説明しています。さらに、「You can use the X-Robots-Tag for non-HTML files like image files where the usage of robots meta tags in HTML is not possible.」 (翻訳)「HTMLのrobotsメタタグを使用できない画像などのHTML以外のファイルには、X-Robots-Tagを使用できます。」と、その目的を示しています。
使い分けは次のとおりです。
- PDF、画像、その他のHTML以外のファイル:
<meta>タグを追加できないため、X-Robots-Tag: noindexなどのヘッダーを使います。 - ディレクトリやパターン全体: サーバーやCDNでヘッダーを設定すれば、1つの設定ルールをパス全体に適用できます。
- 特定の検索エンジンだけ:
X-Robots-Tag: googlebot: noindex, nofollowのようにクローラーを指定でき、1つのレスポンスに複数のX-Robots-Tagヘッダーを含められます。
ルールは同じで、配信方法が2つあります。HTMLページにはメタタグ、それ以外のファイルや大規模な設定にはヘッダーを使います。
Bingなど他の検索エンジンが対応するディレクティブ
ディレクティブの対応範囲は検索エンジン共通ではありません。Bingは基本的なインデックス登録・表示ルールであるnoindex、nofollow、noarchive(同義語としてnocache)、nosnippetをサポートし、HTML以外のリソースではX-Robots-Tagも解釈します。一方、Bingは短縮形のnoneをサポートしないため、複数エンジンに対応するならnoneではなくnoindex, nofollowと明記します。max-snippet、max-image-preview、max-video-previewなどのスニペット・プレビュー制御と、noimageindex、notranslate、indexifembedded、unavailable_afterは実質的にGoogle固有です。不明な場合はディレクティブを省略せず書き、max-*をGoogle向け機能として扱います。
よくある誤りと修正方法
- 同じURLに
Disallowとnoindexを設定する。noindexが確認されません。ページをクロール可能にし、noindexだけを残します。 noindexと別URLを指すrel=canonicalを併用する。 ページを削除する指示と、別ページへ統合する指示が競合します。どちらか一方を選びます。詳しくはcanonicalizationを参照してください。- ステージング環境全体の
noindexを本番へ持ち込む。 サイト全体がインデックスから消える重大事故になります。公開前に確認します。 - クライアント側JavaScriptだけで
noindexを挿入する。 Googleが確認するにはページのレンダリングが必要です。レンダリング後のHTMLが想定と違えば動作も変わります。生のHTMLまたはヘッダーで配信する方が確実です。詳しくはrenderingを参照してください。 - Google固有のディレクティブをBingも解釈すると期待する。
noneやmax-*群は共通ではありません。 - robotsディレクティブに担当外の効果を期待する。
noindexやnosnippetだけでは、クロールバジェットの節約、機密保護、順位変動、検索エンジン間で同一の動作、一定期間での削除、すべてのAI・検索面からの除外は保証されません。機密保護には認証、クロールにはrobots.txt、複数エンジンへの対応には各社の資料、AI固有の制御にはSearch ConsoleやGoogle-Extendedなど、目的に合う仕組みを使います。Googleはnoindex設定後の削除時期を固定しておらず、再クロールの優先度によっては数か月かかると説明しています。
全体像では、robots.txtとcrawlingがクロール制御、noindexとindexingがインデックス制御です。ページをインデックスに残したまま表示方法を調整する場合は、nosnippet / data-nosnippet、max-snippet、max-image-previewを使います。X-Robots-Tagは、HTML以外のリソースに同じルールを届けるHTTPヘッダー版です。
AI向け要約
Advanced版の要点を簡潔にまとめます。
- robotsメタタグ —
<head>内の<meta name="robots" content="…">は、1つのHTMLページのインデックス登録と検索結果での表示を制御します。タグがなければ既定値は**index, follow**です。 - クロールしてから従う仕組みです。 Googleはページをクロールしてタグを読む必要があります。原文は*「these settings can be read and followed only if crawlers are allowed to access the pages.」* (翻訳)「これらの設定を読み取り、従えるのは、クローラーにページへのアクセスが許可されている場合だけです。」です。そのため、robots.txtでブロックしたURLでは
noindexが確認されません。Patrickのブロック実験でも、ブロックされたページはインデックスと順位をおおむね維持しました。ブロックは削除ではありません。 - robots.txtはクロール制御、メタタグまたはX-Robots-Tagはインデックス登録・表示制御です。交換可能ではありません。robots.txt内の
noindex解析は2019年9月1日に終了しました。 - 主なディレクティブ: インデックス登録(
noindex、none、indexifembedded)、リンク(ページ全体のnofollow)、表示(nosnippet、max-snippet、max-image-preview、max-video-preview、notranslate、noimageindex、unavailable_after)、部分指定のdata-nosnippetです。noarchive、nocache、nositelinkssearchboxは過去のもので、Googleは現在使用していません。 nosnippetとmax-snippetはAI OverviewsとAI Modeにも作用します。 従来のテキストスニペットだけでなく、ページ内容を両機能への直接入力として使えるか、どれだけ使えるかを制御します。一般的なAI学習のオプトアウトではなく、Google-Extendedや検索の生成AIプロパティ単位の制御とは別です。- 競合時はより制限の強いルールが適用されます(
nosnippetはmax-snippet:50より優先)。googlebotタグと汎用robotsタグでは否定的ルールを合算します。robots: nofollowとgooglebot: noindexならnoindex, nofollowです。Googleが認識するクローラー名はgooglebotとgooglebot-newsだけで、bingbotなどは無視します。 - メタタグは原則として
<head>に置きます。 Googleはbody内も許容しますが、Google固有の動作です。X-Robots-TagはPDF、画像、HTML以外のファイル、ディレクトリ全体に同じルールを配信します。 - 検索エンジン間の差: Bingは
noindex、nofollow、noarchive(nocache)、nosnippetをサポートしますが、noneはサポートしません。max-*群は実質的にGoogle固有なので、ディレクティブは省略せず書きます。 - 保証されないこと: robotsディレクティブだけでは、クロールバジェットの節約、機密保護、順位変動、検索エンジン間の同一動作、一定期間での削除を保証できません。Googleは
noindexが反映されるまでの固定期間を示していません。
公式ドキュメント
検索エンジンが公開する一次資料です。
- robotsメタタグ、data-nosnippet、X-Robots-Tagの仕様 — 全ディレクティブ、組み合わせ、競合解決、
googlebotとrobotsの合算、X-Robots-Tagを説明する正式仕様です。まずここを確認してください。 - noindexで検索インデックス登録をブロックする —
noindexの仕組み、メタタグとヘッダーという2つの配信方法、クロールへの依存を平易に説明しています。 - robots.txtの概要 — 2つの役割を混同しないための、クロール制御側の資料です。
- クロールとインデックス登録 — robots、サイトマップ、canonical、クロール制御の総合案内です。
Bing / Microsoft
- Bingがサポートするrobotsメタタグと属性 — Bing対応ディレクティブの資料です。ページはJavaScriptで表示されるため、正確な一覧は実際のページで確認してください。
参考資料
- MDN —
<meta name="robots">—noarchiveやnocacheを使用する検索エンジンも含めた、複数エンジン向けディレクティブの参考資料です。
出典からの引用
Googleが公表している記述です。各リンクは、出典ページ内の引用箇所へ直接移動します。
Google — タグの役割と既定値
- 「The robots
metatag lets you use a granular, page-specific approach to controlling how an individual HTML page should be indexed and served to users in Google Search results.」 (翻訳)「robotsメタタグを使うと、個々のHTMLページをGoogle検索結果でどのようにインデックス登録し、ユーザーに表示するかを、ページ単位できめ細かく制御できます。」 — Google Search Centralドキュメント。 引用箇所へ移動
Google — クロールしてから従うという依存関係
- 「Keep in mind that these settings can be read and followed only if crawlers are allowed to access the pages that include these settings.」 (翻訳)「これらの設定をクローラーが読み取り、従えるのは、その設定を含むページへのアクセスが許可されている場合だけであることに注意してください。」 引用箇所へ移動
- 「If a page is disallowed from crawling through the robots.txt file, then any information about indexing or serving rules will not be found and will therefore be ignored.」 (翻訳)「robots.txtファイルによってページのクロールが許可されていない場合、インデックス登録や表示に関するルールの情報は見つからず、そのため無視されます。」 引用箇所へ移動
- 「For the
noindexrule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler.」 (翻訳)「noindexルールを有効にするには、ページまたはリソースがrobots.txtファイルでブロックされておらず、ほかの点でもクローラーがアクセス可能でなければなりません。」 — Google「noindexによる検索インデックス登録のブロック」。 引用箇所へ移動
Google — ディレクティブの説明(原文)
- 「Do not show this page, media, or resource in search results.」 (翻訳)「このページ、メディア、リソースを検索結果に表示しません。」 —
noindex。 引用箇所へ移動 - 「Equivalent to
noindex, nofollow.」 (翻訳)「noindex, nofollowと同等です。」 —none。 引用箇所へ移動 - 「Do not show a text snippet or video preview in the search results for this page.」 (翻訳)「このページについて、検索結果にテキストスニペットや動画プレビューを表示しません。」 —
nosnippet。 引用箇所へ移動 - 「Google is allowed to index the content of a page if it’s embedded in another page through iframes or similar HTML tags, in spite of a
noindexrule.」 (翻訳)「noindexルールがあっても、iframeなどのHTMLタグで別ページに埋め込まれている場合は、Googleによるページ内容のインデックス登録を許可します。」 —indexifembedded。 引用箇所へ移動 - 「A larger image preview, up to the width of the viewport, may be shown.」 (翻訳)「ビューポート幅までの大きな画像プレビューが表示される場合があります。」 —
max-image-preview:large。 引用箇所へ移動 - 「Do not index images on this page.」 (翻訳)「このページ上の画像をインデックス登録しません。」 —
noimageindex。 引用箇所へ移動 - 「You can designate textual parts of an HTML page not to be used as a snippet.」 (翻訳)「HTMLページ内でスニペットに使用しないテキスト部分を指定できます。」 —
data-nosnippet。 引用箇所へ移動
Google — ルールの組み合わせと競合解決
- 「You can create a multi-rule instruction by combining robots
metatag rules with commas or by using multiplemetatags.」 (翻訳)「robotsメタタグのルールをカンマで組み合わせるか、複数のメタタグを使って、複数ルールの指示を作成できます。」 引用箇所へ移動 - 「In the case of conflicting robots rules, the more restrictive rule applies. For example, if a page has both
max-snippet:50andnosnippetrules, thenosnippetrule will apply.」 (翻訳)「robotsルールが競合する場合は、より制限の強いルールが適用されます。たとえば、ページにmax-snippet:50とnosnippetの両方がある場合、nosnippetが適用されます。」 引用箇所へ移動 - 「For situations where multiple crawlers are specified along with different rules, the search engine will use the sum of the negative rules.」 (翻訳)「複数のクローラーに異なるルールが指定されている場合、検索エンジンは否定的ルールの合計を使用します。」 引用箇所へ移動
Google — 配置、クローラートークン、大文字小文字
- 「Google Search doesn’t enforce placement of meta robots in the HTML head and will respect robots meta tags in the body section of an HTML document as well.」 (翻訳)「Google検索はrobotsメタタグをHTMLのhead内に置くことを強制せず、HTML文書のbody内にあるrobotsメタタグも尊重します。」 引用箇所へ移動
- 「Google supports two user agent tokens in the robots
metatag; other values are ignored.」 (翻訳)「Googleはrobotsメタタグで2つのユーザーエージェントトークンをサポートし、その他の値は無視します。」 引用箇所へ移動 - 「Both the
nameand thecontentattributes are case-insensitive.」 (翻訳)「name属性とcontent属性はいずれも大文字小文字を区別しません。」 引用箇所へ移動
Google — noarchiveなど過去のディレクティブ
- 「The
noarchiverule is no longer used by Google Search to control whether a cached link is shown in search results, as the cached link feature no longer exists.」 (翻訳)「キャッシュリンク機能が廃止されたため、Google検索では検索結果にキャッシュリンクを表示するかどうかの制御にnoarchiveルールを使用しなくなりました。」 引用箇所へ移動 - 「The
nocacherule isn’t used by Google Search.」 (翻訳)「Google検索ではnocacheルールを使用しません。」 引用箇所へ移動
Google — nosnippetとmax-snippetのAI Overviews・AI Modeへの適用
- 「[nosnippet] applies to all forms of search results (at Google: web search, Google Images, Discover, AI Overviews, AI Mode) and will also prevent the content from being used as a direct input for AI Overviews and AI Mode.」 (翻訳)「[nosnippet]はGoogleのウェブ検索、Google画像検索、Discover、AI Overviews、AI Modeを含むすべての検索結果形式に適用され、コンテンツがAI OverviewsとAI Modeへの直接入力として使われることも防ぎます。」 引用箇所へ移動
- 「[max-snippet] applies to all forms of search results (such as Google web search, Google Images, Discover, Assistant, AI Overviews, AI Mode) and will also limit how much of the content may be used as a direct input for AI Overviews and AI Mode.」 (翻訳)「[max-snippet]はGoogleウェブ検索、Google画像検索、Discover、Assistant、AI Overviews、AI Modeなどのすべての検索結果形式に適用され、AI OverviewsとAI Modeへの直接入力として使用できるコンテンツ量も制限します。」 引用箇所へ移動
Google — noindexが反映される期間は固定されていない
- 「If a page is still appearing in results, it’s probably because we haven’t crawled the page since you added the
noindexrule. Depending on the importance of the page on the internet, it may take months for Googlebot to revisit a page.」 (翻訳)「ページがまだ検索結果に表示されている場合、noindexルールを追加してからページがクロールされていない可能性があります。インターネット上でのページの重要度によっては、Googlebotが再訪するまで数か月かかることがあります。」 — Google「noindexによる検索インデックス登録のブロック」。 引用箇所へ移動
Google — X-Robots-Tag
- 「The
X-Robots-Tagcan be used as an element of the HTTP header response for a given URL. Any rule that can be used in a robotsmetatag can also be specified as anX-Robots-Tag.」 (翻訳)「X-Robots-Tagは特定URLのHTTPヘッダーレスポンス要素として使用でき、robotsメタタグで使えるルールはすべてX-Robots-Tagにも指定できます。」 引用箇所へ移動 - 「You can use the
X-Robots-Tagfor non-HTML files like image files where the usage of robotsmetatags in HTML is not possible.」 (翻訳)「HTMLのrobotsメタタグを使用できない画像などのHTML以外のファイルには、X-Robots-Tagを使用できます。」 引用箇所へ移動
Patrick Stox — robots.txtはクロール制御専用
- 「Google was clear they want robots.txt for crawl control only. The biggest downside will probably be all the people who accidentally take their entire site out of the index.」 (翻訳)「Googleはrobots.txtをクロール制御だけに使いたいと明確にしていました。最大の問題は、誤ってサイト全体をインデックスから外してしまう人が多数出ることでしょう。」
— Patrick Stox。Googleがrobots.txtで
noindexをサポートすべきかについてSearch Engine Landで述べたものです。 引用箇所へ移動
Patrick Stox — 順位のあるページをrobots.txtでブロックした実験
- 「Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.」 (翻訳)「Googleがすでに順位付けしているページをrobots.txtで誤ってクロール禁止にしても、順位への影響はおそらく大きくなく、検索結果にも残る可能性が高いでしょう。」 引用箇所へ移動
- 「We lost a position here or there and all of the featured snippets for the pages.」 (翻訳)「ところどころで順位を1つ失い、対象ページの強調スニペットはすべて失いました。」 引用箇所へ移動
robotsメタディレクティブ早見表
Googleがサポートするcontent値、動作、既定値を一覧にします。
| ディレクティブ | 動作 | 既定値? |
|---|---|---|
all | インデックス登録や表示を制限しない暗黙の既定値 | はい(タグがない場合) |
index | ページの検索結果表示を許可する(既定値なので通常は記述しない) | 暗黙 |
noindex | ページ、メディア、リソースを検索結果から除外する | いいえ |
follow | ページ内リンクをたどる(既定値なので通常は記述しない) | 暗黙 |
nofollow | ページ内の全リンクをたどらない | いいえ |
none | noindex, nofollowの短縮形(Bing非対応) | いいえ |
nosnippet | テキストスニペットと動画プレビューを表示せず、AI OverviewsとAI Modeへの直接入力としての使用も防ぐ | いいえ |
max-snippet:[n] | テキストスニペットを[n]文字に制限する(0は表示なし、-1は無制限)。AI OverviewsとAI Modeへの直接入力として使える量も制限する | いいえ |
max-image-preview:[setting] | 画像プレビューのサイズをnone、standard、largeに制限する | いいえ |
max-video-preview:[n] | 動画プレビューを[n]秒に制限する(0は表示なし、-1は無制限) | いいえ |
notranslate | 検索結果でページの翻訳を提供しない | いいえ |
noimageindex | ページ上の画像をインデックス登録しない | いいえ |
unavailable_after:[date/time] | 指定日時後にページを検索結果から除外する | いいえ |
indexifembedded | noindexがあっても、iframeなどで埋め込まれたコンテンツのインデックス登録を許可する | いいえ |
過去のディレクティブ — Googleは現在使用していません:
| ディレクティブ | 状態 |
|---|---|
noarchive | 制御対象だったキャッシュリンク機能が廃止されたため、現在は使用されない |
nocache | Google検索では使用されない(一部の検索エンジンはnoarchiveの同義語として扱っていた) |
nositelinkssearchbox | 制御対象だったサイトリンク検索ボックス機能が廃止されたため、現在は使用されない |
ページ内の一部分に対する指定(content値ではなくHTML属性):
| 属性 | 動作 | 設定場所 |
|---|---|---|
data-nosnippet | 特定の文章をスニペットから除外する | span、div、section |
構文
<!-- one tag, comma-separated -->
<meta name="robots" content="noindex, nofollow">
<!-- target one engine -->
<meta name="googlebot" content="noindex">
<!-- the HTTP-header equivalent, for non-HTML / at scale -->
X-Robots-Tag: noindex
X-Robots-Tag: googlebot: noindex, nofollowすぐ確認できる要点
- タグがない場合の既定値は
index, followです。 noneはnoindex, nofollowと同じですが、Bingはnoneに対応しません。省略せず記述してください。max-*、noimageindex、notranslate、indexifembedded、unavailable_afterは実質的にGoogle固有です。- メタタグはHTML専用です。
X-Robots-TagヘッダーはPDF、画像、ディレクトリ全体に同じルールを配信します。 - Googleが読むクローラー名は
googlebotとgooglebot-newsの2つだけで、bingbotなど他の検索エンジンのトークンは無視します。 - 互換性の高い標準配置はheadですが、Googleは
<body>内のrobotsメタタグも尊重します。 - Googleでは
name、content、X-Robots-Tagの値は大文字小文字を区別しません。
考え方の枠組み
1. クロールしてから従う — ページを取得できなければタグは機能しない。
Googleはタグを読むためにページをクロールする必要があります。robots.txtのdisallow、認証、サーバーエラーなどで取得できなければ、タグは確認されません。noindexを信頼する前に、URLがクロール可能であることを確認します。したがって、noindexしたいURLをDisallowしてはいけません。
2. 3つの仕組み、3つの役割 — 混同しない。
robots.txt= クロール制御(ボットがページを取得するか)。- robotsメタタグ / X-Robots-Tag = インデックス登録と表示の制御(取得後に何を行うか)。
- 認証 = 機密保護(
noindexページは公開されたまま)。 目的に合う仕組みを選びます。最も多い誤りは、robotsメタタグの役割であるインデックス削除をrobots.txtで行おうとすることです。
3. ページを削除するときの判断ルール。
検索結果から削除したいなら、ページをクロール可能にしたまま**noindexを追加します。同じURLをrobots.txtでブロックしたり、別URLへcanonicalしたりしないでください。ボットにURL空間を取得させたくない**だけで、インデックス登録を問題にしないなら、robots.txtでdisallowします。両者は交換できません。
4. 競合解決 — より制限の強いルールが優先される。
ルールが競合すれば、厳しい方が適用されます。たとえばnosnippetはmax-snippet:50より優先されます。複雑な組み合わせで回避しようとせず、最も厳しいルールが有効になると考えてください。
5. googlebotとrobots — 上書きではなく、否定的ルールを合算する。
Googlebotには、汎用robotsタグとgooglebotタグの制限を足し合わせた結果が適用されます。どちらか一方だけを選ぶわけではありません。robots: nofollowとgooglebot: noindexなら、Googlebotにはnoindex, nofollowが適用されます。同じディレクティブを異なる内容で指定した場合は、クローラー名を持つタグが対象クローラーに適用されますが、制限の和集合を覚えておくと判断しやすくなります。
6. HTMLページはメタタグ、それ以外はヘッダー。
<head>を持つHTMLには<meta>タグを使います。PDF、画像、HTML以外のファイル、またはディレクトリ全体を対象にする場合は、同じルールを別の方法で届けるX-Robots-Tagヘッダーを使います。
変更履歴
2026年8月11日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年8月11日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。
2026年7月18日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。