meta robotsタグとは、HTMLの<head>内に記述することで、検索エンジンに対してそのページのインデックス可否やリンクの追跡可否を指定するタグです。
この記事では、meta robotsタグの仕組みと書き方から、robots.txtとの違い、WordPressでの設定方法、よくある設定ミスと確認フローまで、実務で必要な知識を体系的に解説します。
meta robotsタグとは何か?
meta robotsタグとは、検索エンジンのクローラーに対して「このページをどう扱うか」を指示するHTMLタグです。
ページ単位でインデックスやリンクのたどり方を制御できます。
検索エンジンに何を伝えるタグか
meta robotsタグは、クローラーが該当ページにアクセスした後の動作を制御します。
「このページを検索結果に載せないでほしい」「このページのリンクをたどらないでほしい」といった指示を、ページごとに個別に伝えられるのが特徴です。
対応している主な検索エンジンはGoogleとBingです。
正しく記述すれば、各クローラーはその指示に従って動作します。ただし、すべてのボットがmeta robotsタグに対応しているわけではないため、悪質なクローラーをブロックする用途には向いていません。
どこに記述するか(<head>内)
meta robotsタグは、HTMLの<head>タグ内に記述します。
<head>
<meta name="robots" content="noindex, nofollow">
</head>
name="robots"はすべての検索エンジンへの指示です。GoogleとBingだけに絞る場合は以下のように書き分けることもできます。
<meta name="googlebot" content="noindex">
<meta name="bingbot" content="noindex">
ただし、実務ではname="robots"で一括指定するのが一般的です。
WordPressでSEOプラグインを使っている場合、このタグは自動生成されるため、HTMLを直接編集する機会は多くありません。
meta robotsタグとrobots.txtは何が違うのか?
meta robotsタグとrobots.txtは、どちらもクローラーの動作を制御するためのものですが、制御する対象と制御のタイミングが根本的に異なります。
混同して使うと、意図しないインデックスが発生する原因になります。
robots.txtはクロールの入口を制御する
robots.txtは、クローラーがページへアクセスすること自体を許可・拒否するためのファイルです。
サーバーのルートディレクトリに設置し、Disallowディレクティブで特定のURLへのアクセスを拒否できます。
クローラーはページを取得する前にrobots.txtを確認します。アクセスが拒否されたページは、クロールもインデックスも(原則として)行われません。
meta robotsタグはインデックスの出口を制御する
meta robotsタグは、クローラーがページを取得した後の処理を制御します。クローラーはまずページにアクセスし、<head>内のmeta robotsタグを読み取ってから、インデックスするかどうかを判断します。
制御の流れは次のとおりです。
- robots.txtを確認(アクセス許可・拒否)
- ページにアクセス
- meta robotsタグを確認(インデックス許可・拒否)
使い分けの判断基準
| 用途 | 使うもの | 理由 |
|---|---|---|
| ページのインデックスを防ぐ | meta robotsタグ(noindex) | クロールは許可しつつ、インデックスのみ拒否できる |
| 特定のディレクトリ全体へのクロールを制限 | robots.txt(Disallow) | ページ単位ではなくパス単位で制御できる |
| AIクローラーをブロックする | robots.txt(User-agentで指定) | ページ単位ではなくサイト全体を一括制御できる |
robots.txtのDisallowとnoindexを同一ページに併用してはいけません。
robots.txtでクロールをブロックすると、クローラーはページにアクセスできないため、meta robotsタグのnoindexを読み取れなくなるためです。
インデックスを確実に防ぐには、robots.txtは使わず、meta robotsタグのnoindexのみで制御します。
テクニカルSEOにおけるクロール・インデックス制御の全体像については、テクニカルSEO完全ガイドでも体系的に解説しています。

meta robotsタグのディレクティブ一覧
meta robotsタグには複数のディレクティブが存在しますが、覚えるべきはnoindexとnofollowの2つだけです。
その他のディレクティブは存在しますが、一般的なコーポレートサイトやオウンドメディアで設定する機会はほぼありません。
noindex / nofollow / allの違い
主なディレクティブと意味は以下のとおりです。
| ディレクティブ | 意味 |
|---|---|
| noindex | このページを検索結果に表示しない |
| nofollow | このページ内のリンクをたどらない |
| index | このページを検索結果に表示する(デフォルト) |
| follow | このページ内のリンクをたどる(デフォルト) |
| all | index + follow(デフォルト動作と同じ) |
| none | noindex + nofollow |
indexとfollowは指定しなくても同じ動作をするため、記述する必要はありません。実務でmeta robotsタグを書く場面のほとんどは、noindexかnoindex, nofollowのいずれかです。
noarchive・nosnippet・max-snippetは実務で使うか?
存在はしますが、一般的なWeb担当者が使う機会はほぼありません。
- noarchive:検索結果に「キャッシュ」リンクを表示させない
- nosnippet:検索結果にメタディスクリプションや抜粋テキストを表示させない
- max-snippet:検索結果に表示するテキストの文字数を制限する
nosnippetやmax-snippetは、ニュースサイトや有料コンテンツサイトが本文の無断引用を防ぐ目的で使うことがあります。一般的なコーポレートサイトでこれらを設定すると、検索結果のクリック率が下がるリスクがあるため、特別な理由がない限り設定しないことをおすすめします。
複数ディレクティブの組み合わせ方
複数のディレクティブを組み合わせる場合は、content属性内をカンマ区切りで記述します。
<!-- インデックスしない、リンクもたどらない -->
<meta name="robots" content="noindex, nofollow">
<!-- インデックスしない、ただしリンクはたどる -->
<meta name="robots" content="noindex, follow">
noindexとnofollowを一緒に設定するか、noindex単独にするかはケースによります。後述の「実務で使う場面」で判断基準を解説します。
実務でmeta robotsタグを使う場面はどこか?
実務上、meta robotsタグを設定する理由のほとんどは「インデックスしてほしくないページを除外するため」です。ここでは、設定すべきページの種類と典型的な使い方を整理します。
noindexを設定すべきページの種類
以下のようなページは検索結果に表示しても価値が低いため、noindexを設定するのが一般的です。
- 管理画面・ログインページ(/wp-admin/ など)
- タグ・カテゴリのアーカイブページ(内容が薄く、記事一覧と重複しやすい)
- 検索結果ページ(サイト内検索の結果ページ)
- サンキューページ・確認画面(フォーム送信後のページ)
- テスト・開発中のページ(本番公開前の仮ページ)
- ページネーション(2ページ目以降)(重複コンテンツになりやすい)
これらのページがインデックスされると、インデックスの健全性が損なわれ、Googleのクロールバジェットが無駄に消費されます。適切なnoindex設定はSEO内部対策の基本です。

nofollowを設定するケース
nofollowをページ全体に設定する機会は限られています。主な用途は以下のとおりです。
- ログイン必須のページ(クロールされても意味がないため)
- 外部への送客が主目的のリンク集ページ(リンク評価を渡したくない場合)
なお、個別リンクへのnofollowは、meta robotsタグではなくリンクタグのrel="nofollow"属性で設定します。ページ全体ではなく特定のリンクだけにnofollowを適用したい場合はこちらを使います。
AIクローラーへの対応はrobots.txtで行う理由
GPTBot(OpenAI)やClaudeBot(Anthropic)などのAIクローラーをブロックしたい場合、robots.txtで対応するのが正解です。
理由は明確で、AIクローラーのブロックはページ単位ではなくサイト全体を一括制御したいケースがほとんどだからです。
meta robotsタグはページごとに記述する必要があるため、大量のページに個別設定するのは現実的ではありません。
robots.txtであれば、以下のように数行で全ページへのアクセスを一括拒否できます。
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
また、多くのAIクローラーはrobots.txtに従うことを明言しているため、実効性の面でもrobots.txtによる制御が適切です。
meta robotsタグの書き方と設定手順
HTMLへの直接記述
meta robotsタグは<head>タグ内に以下の形式で記述します。
<!DOCTYPE html>
<html>
<head>
<meta name="robots" content="noindex, nofollow">
<title>ページタイトル</title>
</head>
複数のディレクティブはカンマで区切ります。スペースの有無は動作に影響しませんが、可読性のためにカンマの後にスペースを入れるのが一般的です。
WordPressでの設定方法(SEOプラグイン)
WordPressでは、SEOプラグインを使うのが最も簡単です。
Yoast SEOの場合
- 投稿・固定ページの編集画面を開く
- Yoast SEOブロックの「詳細設定」タブを開く
- 「検索エンジンにこのページを表示」の項目で「はい」か「いいえ」を選択
WordPress設定でサイト全体をnoindexにする場合
WordPressには、サイト全体を一括でnoindexにする設定があります。
- 管理画面の「設定」→「表示設定」を開く
- 「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていないことを確認する
開発環境では意図的にこの設定をオンにすることがありますが、本番環境に移行する際に外し忘れるミスが非常に多いです。この点については後述の「よくある設定ミス」でも詳しく解説します。
設定後にGoogle Search Consoleで確認する方法
meta robotsタグを設定したら、Google Search ConsoleのURL検査ツールで確認します。
- Google Search Consoleを開き、上部の検索バーにURLを入力
- 検索結果から「ページはGoogleに登録されていません」と表示されているか確認
- 「詳細情報を見る」をクリックし、除外理由が「noindexタグにより除外」であることを確認
noindexを設定しても、すぐにインデックスから削除されるわけではありません。Googleが再クロールしてnoindexを認識するまで、通常は数日〜2週間程度かかります。
急いで削除したい場合は、Google Search Consoleの「削除ツール(Removals)」から一時的な削除リクエストを送信してください。
よくある設定ミスと確認フロー
meta robotsタグに関するトラブルのほとんどは、「意図せずnoindexが設定されていた」または「noindexを外したのに反映されない」という2パターンです。
WordPress開発環境のnoindexが本番に残るケース
最も多い設定ミスです。WordPressの「検索エンジンがサイトをインデックスしないようにする」設定は、開発中に有効にすることが多いです。
本番環境へのリリース後も、この設定が残ったままになっているケースが実際の現場で頻繁に発生します。
確認方法は次のとおりです。
- WordPress管理画面の「設定」→「表示設定」を開く
- 「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていないことを確認する
この設定がオンになっていると、全ページに<meta name="robots" content="noindex, follow">が自動挿入されます。
サイト公開直後にGoogle Search Consoleのカバレッジレポートで大量の「noindexにより除外」が表示されている場合は、まずここを疑ってください。
URL検査ツールで個別確認する手順
特定のページがインデックスされない場合、Google Search ConsoleのURL検査ツールで個別に確認します。
- 上部の検索バーに確認したいURLを入力してEnter
- 「ページはGoogleに登録されています」か「登録されていません」かを確認
- 「登録されていません」の場合、「詳細情報を見る」でnoindexタグが原因かを確認
- 「ライブURLをテスト」をクリックし、現在のページの状態を確認
ここで「noindexタグにより除外」と表示されていれば、meta robotsタグが原因です。ページのソースコードを確認してnoindexタグを探します。
noindexを外した後の再クロールとインデックス反映については、インデックス登録リクエストが効かない場合の対処法も合わせて参照してください。

インデックス登録レポートでサイト全体を把握する手順
サイト全体のインデックス状況を確認するには、Google Search Consoleのインデックス登録レポートを使います。
- Google Search ConsoleのサイドメニューからURL検査ツールを選択
- 「インデックス作成」→「ページ」を開く
- 「インデックス未登録」タブを確認し、除外理由の内訳を見る
- 「noindexにより除外」の件数が意図した数と一致しているか確認する
意図していないページがnoindex除外になっている場合は、個別にURL検査ツールで原因を特定します。インデックス登録の仕組みや確認フローの詳細は、インデックス登録とは?で解説しています。

まとめ
- meta robotsタグは
<head>内に記述し、ページ単位でインデックス・リンクたどりを制御するタグです - robots.txtとの最大の違いは制御のタイミング。robots.txtはクロール前のアクセス制御、meta robotsタグはクロール後のインデックス制御です
- AIクローラーのブロックはページ単位ではなくサイト全体を制御したいため、robots.txtのUser-agent指定で対応するのが正解です
- WordPressの開発環境noindex設定が本番に残るミスに注意。Google Search ConsoleのURL検査ツールで定期的に確認する習慣をつけましょう
まずはGoogle Search Consoleでサイト全体のインデックスカバレッジを確認し、意図せずnoindexになっているページがないかチェックするところから始めてみてはいかがでしょうか。
よくある質問(FAQ)
Q. robots.txtでDisallowにしたのにインデックスされているのはなぜ?
robots.txtのDisallowはクロールを拒否しますが、インデックスを直接制御するものではないためです。Googleはページにアクセスしなくても、他のサイトからのリンクを通じてそのURLの存在を知り、インデックスすることがあります。インデックスを確実に防ぐには、robots.txtではなくmeta robotsタグのnoindexを使います。
Q. noindexとnofollowは一緒に設定すべきか?
用途によります。管理画面やサンキューページなど「リンクをたどる必要もないページ」にはnoindex, nofollowを一緒に設定するのが一般的です。一方、ページ自体はインデックスしないが内部リンクの評価は通したい場合は、noindexのみで十分です。実務ではnoindex, nofollowをセットで設定するケースが多いです。
Q. AIクローラーもmeta robotsタグで制御できるか?
原則として、AIクローラーもmeta robotsタグのnoindexを認識します。ただし、AIクローラーがmeta robotsタグに対応しているかはクローラーごとに異なります。AIクローラーへの対応は、すべてのページを一括制御できるrobots.txtのUser-agent指定で行うのが実務上の正解です。
Q. noindexを外したらすぐ検索結果に表示されるか?
すぐには表示されません。noindexを外した後、Googleが再クロールしてタグの変化を検出してからインデックスされます。通常は数日〜2週間程度かかります。早めに反映させたい場合は、Google Search ConsoleのURL検査ツールから「インデックス登録のリクエスト」を送信してください。ただし、これはクロールを促す依頼であり、インデックスを保証するものではありません。

