ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
最小の sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-06-11</lastmod>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2026-05-30</lastmod>
</url>
</urlset>
各タグの意味
| タグ | 必須 | 役割 |
|---|---|---|
<urlset> | ○ | ルート要素。名前空間 0.9 を指定 |
<url> | ○ | URL ごとに 1 個 |
<loc> | ○ | 絶対 URL。URL エンコード必須。2048 文字以内 |
<lastmod> | 強推奨 | 最終更新日 (W3C Datetime / YYYY-MM-DD) |
<changefreq> | 任意 | 更新頻度 (Google は無視) |
<priority> | 任意 | 重要度 (Google は無視) |
changefreq / priority は無視されると Google 公式が明言(2017〜)。書いてもエラーにはならないが効果は無い。正確な lastmod が最重要。
1 ファイルの上限と分割
サイトマップ仕様には1 ファイルにつき以下の上限があります:
- URL 件数: 最大 50,000 個
- ファイルサイズ: 非圧縮で 50 MB 未満
超える場合は分割し、sitemap index ファイルで束ねます:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-articles-1.xml.gz</loc>
<lastmod>2026-06-11</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-articles-2.xml.gz</loc>
<lastmod>2026-06-11</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml.gz</loc>
<lastmod>2026-06-10</lastmod>
</sitemap>
</sitemapindex>
index ファイル自体も上限あり: 最大 50,000 sitemap、50 MB 未満。理論上は 5 万 × 5 万 = 25 億 URL まで管理可能。
gzip 圧縮
大規模サイトでは .xml.gz 形式が一般的:
# 作成
gzip -k sitemap.xml
# sitemap.xml と sitemap.xml.gz が並ぶ
# 拡張子なしで保存して中身を圧縮しても OK だが、検索エンジンには .gz の方が伝わる
# Apache で gzip を Content-Encoding 付きで返す例
# .htaccess
AddType application/xml .xml
AddEncoding gzip .gz
拡張 1: 画像サイトマップ
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://example.com/products/foo</loc>
<image:image>
<image:loc>https://example.com/img/foo-1.jpg</image:loc>
<image:title>Foo 商品画像 1</image:title>
</image:image>
<image:image>
<image:loc>https://example.com/img/foo-2.jpg</image:loc>
</image:image>
</url>
</urlset>
1 つの <url> 内に最大 1000 枚の画像情報を入れられます。
拡張 2: 動画サイトマップ
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://example.com/videos/intro</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumb.jpg</video:thumbnail_loc>
<video:title>製品紹介ビデオ</video:title>
<video:description>製品の使い方を 3 分で解説</video:description>
<video:content_loc>https://example.com/video.mp4</video:content_loc>
<video:duration>180</video:duration>
</video:video>
</url>
</urlset>
拡張 3: ニュースサイトマップ(Google ニュース)
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url>
<loc>https://news.example.com/2026/06/11/article</loc>
<news:news>
<news:publication>
<news:name>Example News</news:name>
<news:language>ja</news:language>
</news:publication>
<news:publication_date>2026-06-11T10:00:00+09:00</news:publication_date>
<news:title>新製品発表</news:title>
</news:news>
</url>
</urlset>
ニュースサイトマップは過去 48 時間以内の記事のみ対象。
拡張 4: hreflang(多言語サイト)
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/ja/</loc>
<xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/"/>
</url>
<url>
<loc>https://example.com/en/</loc>
<xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/"/>
</url>
</urlset>
設置とサーチエンジンへの通知
設置
- ドメインルートに置く:
https://example.com/sitemap.xml - サブディレクトリでも OK だが、その配下の URL しか含められない
- HTTPS で配信(HTTP は今や非推奨)
robots.txt で宣言
# /robots.txt
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml
Google Search Console に送信
- Search Console → サイトマップ → 「新しいサイトマップの追加」
sitemap.xmlのパスを入力 → 送信- 「成功しました」と出れば認識完了。検出件数は数日かかる
Bing Webmaster Tools に送信
Bing の Webmaster Tools 管理画面から同様に送信。bing.com/ping?sitemap=URL は廃止済み。
動的生成例: PHP / Laravel
// Laravel: routes/web.php
Route::get('/sitemap.xml', function () {
$articles = Article::where('published', true)->get();
return response()
->view('sitemap', compact('articles'))
->header('Content-Type', 'application/xml');
});
// resources/views/sitemap.blade.php
<?php echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@foreach ($articles as $a)
<url>
<loc>{{ url('/articles/' . $a->slug) }}</loc>
<lastmod>{{ $a->updated_at->toDateString() }}</lastmod>
</url>
@endforeach
</urlset>
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| 「読み取れません」エラー | XML 構文エラー / BOM / 文字化け | UTF-8 (BOM 無し) で出力、XML バリデータで確認 |
| 「URL を取得できません」 | 掲載 URL が 404 / robots.txt でブロック | 該当 URL の HTTP 状態を確認 |
| 登録 URL が反映されない | noindex / canonical で別 URL を指している | noindex 削除、canonical を見直し |
| 圧縮が認識されない | Content-Type / 拡張子ミス | .xml.gz + application/x-gzip |
| 50,000 件を超えた | 分割していない | sitemap-index に切替 |
FAQ
Q: lastmod を毎回 NOW にしてはダメ?
A: ダメ。実際の更新が無いのに新しい日付を返すと、検索エンジンに信用されなくなり再クロール頻度が下がります。本当に更新したときだけ更新を。
Q: 動的生成と静的ファイルどちらが良い?
A: 小規模なら動的でも OK。大規模なら cron で静的ファイルを夜間生成 → CDN 配信が定石。
Q: noindex のページも入れるべき?
A: 入れないでください。サイトマップは「インデックスしてほしい URL」を伝えるものです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- サイトマップの書き方
- サイトマップインデックスの書き方
- エラー一覧 (sitemap.xml)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?