サイトマップとrobots.txtの役割【初心者向け】
「サイトマップって必要?」「robots.txtで隠せば検索に出なくなる?」混同しがちな2つの役割を、やさしく・正確に整理します。サイトマップ=URLの地図(ヒント)、robots.txt=クロール可否のルールで役割が違うので併用が基本です。
まず全体像:検索は「発見→保管→並べ替え」
Google 検索は ①クロール(発見)→ ②インデックス(保管)→ ③ランキング(並べ替え) の自動処理で動きます。 サイトマップとrobots.txtは、主に ①〜② の段階に効く設定です。
サイトマップ(Sitemap):URLの“地図”を渡す
何をするもの?
- Googleに「これらのURLを知っておいて」と教えるヒント。
- Search Consoleで送信するか、robots.txtにSitemap:行を追記します。
- インデックスを保証するものではなく“ヒントにすぎない”点が重要。
なぜ必要?
- 新規サイト/大規模サイト/内部リンクが浅いページに有効。
- lastmod で更新日を渡すと、再クロールの手がかりになります。
※必ずしも全ての検索エンジンが同じ扱いをするわけではありません。
作り方・出し方(超基本)
- 形式:XML(推奨)/ RSS / Atom / テキスト。Search Consoleのサイトマップレポートから送信。
- 置き場所:サイト直下に置くのが無難(影響範囲が広い)。
Sitemap: https://example.com/sitemap.xmlを robots.txtにも記述可。 - 上限:1ファイル=50,000 URL または 50MB(非圧縮)。超える場合は分割し、サイトマップインデックスで束ねます。
- ミニTIP:URLは絶対URLで書きます(
/pageではなくhttps://example.com/page)。
robots.txt:クロール可否のルールブック
何をするもの?
- どのパスをクロールして良い/ダメかをクローラに伝えるテキストファイル。
- サイト直下の
/robots.txtに置きます。
勘違いしやすい重要ポイント
- robots.txtは“インデックス除外”の仕組みではありません。
- ブロックしても、外部からリンクされていればURL自体が検索に出る場合がある(内容はクロール不可でも、URLだけ出る可能性)。
- noindexをrobots.txtに書く方法はGoogleでは非対応です。除外したいならページ側の
<meta name="robots" content="noindex">またはHTTPヘッダーで指定します。
よくある落とし穴
「Disallow と noindex の同時適用」
robots.txtでDisallowすると、ページをクロールできずnoindexの確認もできません。
目的に応じてどちらか一方を使います。
実装サンプル(コピペOK)
1) robots.txt の最小例
User-agent: *
Disallow: /admin/
Disallow: /search/
Allow: / # ルート配下はクロールOK
# サイトマップの場所(複数可)
Sitemap: https://www.example.com/sitemap.xml
目的:管理画面やサイト内検索結果をクロールさせない。
補足:検索結果に出したくないなら noindex(メタ or ヘッダー)や認証で制御。 robots.txtだけではインデックス除外できません。
2) XML サイトマップの最小例
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2026-01-20</lastmod>
</url>
<url>
<loc>https://www.example.com/blog/what-is-seo-beginner</loc>
<lastmod>2026-01-21</lastmod>
</url>
</urlset>
lastmodで更新日を渡せます(再クロールのヒント)。
どちらをいつ使う?(判断チャート)
- 新規/更新URLを早く知ってほしい → サイトマップに含める(+GSCで送信)。
- 管理画面・検索結果などは見に来ないで → robots.txt の Disallow。
- 検索結果から確実に消したい → noindex(メタ or ヘッダー)。robots.txtでは不可。
- ファイルや会員ページを完全非公開に → 認証・アクセス制限(検索側ではなくサーバー側)。
Search Consoleでの運用ポイント
- サイトマップレポート:送信状況/処理エラーを確認。サイトマップは“ヒント”であり保証ではない点に注意。
- ページ インデックス レポート:インデックスされない理由(例:クロール拒否、重複)を把握して対処。
よくある質問(FAQ)
Q. robots.txt を作っていればサイトマップは不要?
A. いいえ。役割が違います。サイトマップはURLの発見支援、robots.txtはクロール可否の指示。併用が基本です。
Q. robots.txtで塞げば検索に出ませんよね?
A. 出ることがあります。外部リンク経由でURLだけがインデックスされる可能性があるため、本当に出したくない場合はnoindexや認証で。
Q. noindex を robots.txt に書けば早い?
A. 非対応です。メタタグかHTTPヘッダーで指定してください。
Q. サイトマップのサイズや件数に上限は?
A. 1ファイル=50,000 URL か 50MB(非圧縮)まで。超える場合は分割し、サイトマップインデックスで束ねます。
公開前チェックリスト(1分でOK)
https://example.com/robots.txtで意図どおりのAllow/Disallowになっている。- Sitemap: 行をrobots.txtに追記した(任意)&Search Consoleから送信した。
- XMLサイトマップは絶対URL/UTF-8/lastmod記載。
- インデックス除外は noindex(メタ or ヘッダー)を使用。robots.txtで除外しようとしていない。
まとめ
- サイトマップ=発見を助けるヒント、robots.txt=クロール可否のルール。
- インデックス除外は noindexで。robots.txt だけでは除外できません。
- Search Consoleで送信・監視し、必要に応じてサイトマップを分割(50,000 URL/50MB)しましょう。