タイトル: sitemap.xml
SEOタイトル: sitemap.xml 完全ガイド(書き方 / 上限 / Search Console 送信 / 動的生成 / lastmod / changefreq)
| この記事の要点 |
|
sitemap.xml とは
sitemap.xml は、検索エンジン(Google・Bing 等)にサイト内のクロールしてほしい URL の一覧を伝える XML ファイルです。クローラーはリンク経由でサイトを巡回しますが、新規ページや更新の見落としを減らすため、サイトマップの提出が推奨されています。
SEO の必須対策ではないものの、ニュースサイト・EC サイト・大規模 Wikiのように URL 数が多いサイトでは効果が大きく、Google Search Console での状態確認にも役立ちます。
基本構造
https://example.com/
2026-06-11
daily
1.0
https://example.com/about
2026-05-30
monthly
0.5
各要素の意味
| 要素 | 必須 | 意味 | Google の扱い |
|---|---|---|---|
| 必須 | ページの URL(絶対 URL) | 重視 |
| 任意 | 最終更新日(W3C Datetime) | 重視(再クロール判定に使用) |
| 任意 | 更新頻度の目安 | ほぼ無視 |
| 任意 | サイト内での相対重要度(0.0-1.0) | ほぼ無視 |
changefreq の値
always / hourly / daily / weekly / monthly / yearly / never のいずれか。前述のとおり Google は無視するため、書かなくても問題ありません。
lastmod の書式
W3C Datetime 形式。日付のみ 2026-06-11、時刻まで含めるなら 2026-06-11T14:30:00+09:00。正確な値を出せないなら書かないほうがよい(嘘の lastmod はクロールバジェットを浪費)。
制限
| 制限 | 値 |
|---|---|
| 1 ファイルあたりの URL 数 | 50,000 件 |
| 1 ファイルの最大サイズ(非圧縮) | 50MB |
| gzip 圧縮(推奨) | 可(拡張子 .xml.gz) |
サイトマップインデックス
URL 数が 5 万を超える場合はサイトマップを分割し、それらをまとめるサイトマップインデックスを用意します。
https://example.com/sitemap-articles-1.xml
2026-06-11
https://example.com/sitemap-articles-2.xml
2026-06-11
https://example.com/sitemap-images.xml
2026-06-10
配置と通知
1. 配置場所
サイトのルート(例: https://example.com/sitemap.xml)に置くのが慣例。サブディレクトリでも動作はしますが、ルート配置が推奨です。
2. robots.txt で参照
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
3. Google Search Console で送信
Search Console → 「サイトマップ」→ サイトマップ URL を入力 → 「送信」。送信後の処理状態と検出 URL 数を確認しましょう。
動的生成の例
PHP(Laravel 等)
header('Content-Type: application/xml');
echo '';
echo '';
foreach ($articles as $a) {
echo '';
echo ' https://example.com/article/' . $a->id . ' ';
echo ' ' . $a->updated_at->format('Y-m-d') . ' ';
echo ' ';
}
echo ' ';
Node.js / Express
app.get('/sitemap.xml', async (req, res) => {
const articles = await db.articles.findAll();
res.set('Content-Type', 'application/xml');
res.send(`
${articles.map(a => `
https://example.com/articles/${a.id}
${a.updatedAt.toISOString().slice(0, 10)}
`).join('')}
`);
});
含めるべき URL / 含めない URL
| 含める | 含めない |
|---|---|
| 200 OK で返るページ | 404 / 410 のページ |
| canonical URL(正規 URL) | noindex のページ |
| クロール対象のページ | robots.txt でブロックされたページ |
| 同一ドメイン内のページ | パラメータ違いの重複 URL |
| HTTPS のページ | リダイレクト先(リダイレクト元は不要) |
画像 / 動画 / ニュース用の拡張
標準スキーマに加え、画像専用・動画専用・ニュース専用の拡張スキーマがあります。記事ページにメイン画像が紐づくならまとめて記載すると、画像検索のインデックス機会が増えます。
https://example.com/recipe/1
https://example.com/img/recipe1.jpg
カルボナーラ
FAQ
Q: サイトマップを送らないと検索されない?
A: いいえ。リンクでつながっていればクロールはされます。サイトマップはクロール効率を上げる補助です。
Q: lastmod は嘘でも順位が上がる?
A: 上がりません。むしろ Google が「lastmod が当てにならない」と判断するとシグナルを無視されます。
Q: 圧縮版(.xml.gz)と非圧縮、どちらがよい?
A: 大規模サイトなら圧縮版を推奨。Google は両方サポートしています。
Q: Search Console で「検出 — インデックス未登録」になる
A: サイトマップで提出しても、Google がそのページをインデックスする価値があると判断しないと登録されません。重複コンテンツ / 薄い内容 / 内部リンクが薄いなどが原因です。
関連
- robots.txt — クロール制御
- canonical タグ — 正規 URL の指定
- noindex — インデックス除外
- Google Search Console — サイトマップ送信とインデックス確認