Meta Robotsタグ

robotsメタタグによるページのインデックス登録と検索結果での表示制御を解説します。全ディレクティブ、クロールしてから従う原則、競合解決、X-Robots-Tagとの違いを確認できます。

初回公開:2026年6月23日 · 最終更新:2026年8月11日 · Advanced
言語
このページには証拠シグナルが1件あります

robotsメタタグは、1つのページをどのようにインデックス登録し、検索結果に表示するかを検索エンジンへ伝えます。最重要ルールは、クローラーがページを取得して初めてnoindexなどの指示を読めることです。robots.txtで同じURLをブロックするとnoindexが確認されません。タグがなければ既定値はindex, followです。競合時はより制限の強いルールが適用され、HTML以外のPDFや画像にはX-Robots-Tagヘッダーを使います。

要点 — <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がクローラー名として読むのはgooglebotgooglebot-newsだけで、bingbotなど他の値は無視します。

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

役割、配置場所、既定値

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はタグを読むためにページを取得する必要があります。取得を妨げるものがあれば、タグは適用されません。仕様には次のように記載されています。

「Keep in mind that these settings can be read and followed only if crawlers are allowed to access the pages that include these settings.」 (翻訳)「これらの設定をクローラーが読み取り、従えるのは、その設定を含むページへのアクセスが許可されている場合だけであることに注意してください。」

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

その結果も明記されています。

「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.txtDisallownoindexを併用する典型的な誤りは、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.txtnoindexをサポートすべきかと尋ねられた際、「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 to noindex, 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 a noindex rule.」 (翻訳)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.」 (翻訳)「検索結果におけるこのページの画像プレビュー最大サイズを設定します。」値はnonestandardlargeです。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「The noarchive rule 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は*「The nocache rule isn’t used by Google Search.」* (翻訳)「Google検索ではnocacheルールを使用しません。」と説明しています。
  • nositelinkssearchbox「The nositelinkssearchbox rule 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ページ内でスニペットに使用しないテキスト部分を、spandivsection要素に指定できます。」と説明しています。メタタグ内の指示はページ全体に適用されます。一部の文章だけをスニペットから除外するには、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:50nosnippetの両方がある場合、nosnippetが適用されます。」50文字の上限よりnosnippetの方が厳しいため、後者が有効になります。

2. googlebotrobotsでは、否定的ルールを合算する。 ここは多くの解説が誤る点です。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ルールがあるものとして解釈されます。」robotsnofollowgooglebotnoindexが合算され、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は基本的なインデックス登録・表示ルールであるnoindexnofollownoarchive(同義語としてnocache)、nosnippetをサポートし、HTML以外のリソースではX-Robots-Tagも解釈します。一方、Bingは短縮形のnoneをサポートしないため、複数エンジンに対応するならnoneではなくnoindex, nofollowと明記します。max-snippetmax-image-previewmax-video-previewなどのスニペット・プレビュー制御と、noimageindexnotranslateindexifembeddedunavailable_afterは実質的にGoogle固有です。不明な場合はディレクティブを省略せず書き、max-*をGoogle向け機能として扱います。

よくある誤りと修正方法

  • 同じURLにDisallownoindexを設定する。 noindexが確認されません。ページをクロール可能にし、noindexだけを残します。
  • noindexと別URLを指すrel=canonicalを併用する。 ページを削除する指示と、別ページへ統合する指示が競合します。どちらか一方を選びます。詳しくはcanonicalizationを参照してください。
  • ステージング環境全体のnoindexを本番へ持ち込む。 サイト全体がインデックスから消える重大事故になります。公開前に確認します。
  • クライアント側JavaScriptだけでnoindexを挿入する。 Googleが確認するにはページのレンダリングが必要です。レンダリング後のHTMLが想定と違えば動作も変わります。生のHTMLまたはヘッダーで配信する方が確実です。詳しくはrenderingを参照してください。
  • Google固有のディレクティブをBingも解釈すると期待する。 nonemax-*群は共通ではありません。
  • robotsディレクティブに担当外の効果を期待する。 noindexnosnippetだけでは、クロールバジェットの節約、機密保護、順位変動、検索エンジン間で同一の動作、一定期間での削除、すべてのAI・検索面からの除外は保証されません。機密保護には認証、クロールにはrobots.txt、複数エンジンへの対応には各社の資料、AI固有の制御にはSearch ConsoleやGoogle-Extendedなど、目的に合う仕組みを使います。Googleはnoindex設定後の削除時期を固定しておらず、再クロールの優先度によっては数か月かかると説明しています。

全体像では、robots.txtcrawlingがクロール制御、noindexindexingがインデックス制御です。ページをインデックスに残したまま表示方法を調整する場合は、nosnippet / data-nosnippetmax-snippetmax-image-previewを使います。X-Robots-Tagは、HTML以外のリソースに同じルールを届けるHTTPヘッダー版です。

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.