本文にスキップ
weballin

weballin DIGIWIKI

robotsメタタグ

Robots メタタグは HTML head に `<meta name="robots" content="...">` 形式でページ別インデックス・リンク追跡・スニペット表示を制御するメタタグである。 noindexでインデックスを除外したり、nosnippetでスニペットをブロックしたりするなど、正確な制御が可能です。

weballin

Robotsメタタグはページ単位でインデックス登録や検索結果の表示方法を指定する仕組みです。 robots.txtがパス全体に適用されるのとは異なり、メタタグは個々のページごとに異なる指示を与えることができます。主なディレクティブ:noindex(インデックス登録を除外)、nofollow(リンク未追跡)、nosnippet(スニペットブロック)、noimageindex(画像インデックスを除く)、max-snippet(-1の場合は長さ制限なし)。

最も一般的な間違いは、robots.txtでクロールをブロックしたページにnoindexを適用することです。 Googlebotがクロールできないと、メタタグ自体を読み取ることができず、noindex指示は処理されません。その結果、ページURLだけがインデックスに残る(内容なし)状態になる可能性があります。

weballin標準で一時キャンペーンページ・内部検索結果・フィルタURLのように検索結果に表示する必要のないページはnoindexを基本適用し、デプロイやリニューアル後の主要ページテンプレートのrobotsメタタグの状態をチェックリストで検証する。 SPA / Next.js環境では、サーバーレンダリングHTMLにnoindexが正しく含まれているかどうかをURL検査ツールで確認してください。

要点

  • ページ単位でインデックス・スニペット・リンク追跡を制御する。
  • noindex、nofollow、nosnippet、noimageindexなどのディレクティブをサポートします。
  • robots.txtでクロールをブロックすると、クロール自体がブロックされ、メタタグを読み取ることができません。
  • 特定の検索エンジンだけに指示する場合は、name属性に対応するクローラ名を指定します(例: `name = "googlebot" `)。
  • デプロイ後に重要ページに誤ってnoindexが残っていると、検索結果に表示されなくなる可能性があります。

参考資料

よくある質問

すべてのページに `<meta name="robots" content="index, follow">` を書く必要がありますか?

いいえ。通常はindex、followが既定の動作なので、明示する必要はありません。不要なタグを追加すると、コードが複雑になるだけです。むしろ、特に制御が必要なページだけにnoindex、nosnippetなどを指定するのが管理しやすくなります。

CMS(WordPressなど)で誤ってnoindexがサイト全体に適用された場合はどうすれば確認できますか?

Search Console インデックスレポートでインデックス数が急減したり、「除外された — noindex」項目が急増した場合は設定を見直す手掛かりになります。 WordPressは、「読み取り設定→検索エンジンがこのサイトをインデックスしないように要求する」チェックボックスが全体のnoindex原因であることが多い。

GoogleとBingはそれぞれ異なる指示を受け取ることができますか?

可能です。 `<meta name="googlebot" content="noindex">` のように名前にクローラ名を書くと、そのクローラにのみ適用されます。一般的な `name="robots"` はこの指示に対応するクローラ全般に適用されます。