ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
sitemap.xml とは
sitemap.xml は、検索エンジン(Google・Bing 等)にサイト内のクロールしてほしい URL の一覧を伝える XML ファイルです。クローラーはリンク経由でサイトを巡回しますが、新規ページや更新の見落としを減らすため、サイトマップの提出が推奨されています。
SEO の必須対策ではないものの、ニュースサイト・EC サイト・大規模 Wikiのように URL 数が多いサイトでは効果が大きく、Google Search Console での状態確認にも役立ちます。
基本構造
<?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>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2026-05-30</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
各要素の意味
| 要素 | 必須 | 意味 | Google の扱い |
|---|---|---|---|
<loc> | 必須 | ページの URL(絶対 URL) | 重視 |
<lastmod> | 任意 | 最終更新日(W3C Datetime) | 重視(再クロール判定に使用) |
<changefreq> | 任意 | 更新頻度の目安 | ほぼ無視 |
<priority> | 任意 | サイト内での相対重要度(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 万を超える場合はサイトマップを分割し、それらをまとめるサイトマップインデックスを用意します。
<?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</loc>
<lastmod>2026-06-11</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-articles-2.xml</loc>
<lastmod>2026-06-11</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-images.xml</loc>
<lastmod>2026-06-10</lastmod>
</sitemap>
</sitemapindex>
配置と通知
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 '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach ($articles as $a) {
echo '<url>';
echo ' <loc>https://example.com/article/' . $a->id . '</loc>';
echo ' <lastmod>' . $a->updated_at->format('Y-m-d') . '</lastmod>';
echo '</url>';
}
echo '</urlset>';
Node.js / Express
app.get('/sitemap.xml', async (req, res) => {
const articles = await db.articles.findAll();
res.set('Content-Type', 'application/xml');
res.send(`<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${articles.map(a => `
<url>
<loc>https://example.com/articles/${a.id}</loc>
<lastmod>${a.updatedAt.toISOString().slice(0, 10)}</lastmod>
</url>`).join('')}
</urlset>`);
});
含めるべき URL / 含めない URL
| 含める | 含めない |
|---|---|
| 200 OK で返るページ | 404 / 410 のページ |
| canonical URL(正規 URL) | noindex のページ |
| クロール対象のページ | robots.txt でブロックされたページ |
| 同一ドメイン内のページ | パラメータ違いの重複 URL |
| HTTPS のページ | リダイレクト先(リダイレクト元は不要) |
画像 / 動画 / ニュース用の拡張
標準スキーマに加え、画像専用・動画専用・ニュース専用の拡張スキーマがあります。記事ページにメイン画像が紐づくならまとめて記載すると、画像検索のインデックス機会が増えます。
<?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/recipe/1</loc>
<image:image>
<image:loc>https://example.com/img/recipe1.jpg</image:loc>
<image:title>カルボナーラ</image:title>
</image:image>
</url>
</urlset>
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 — サイトマップ送信とインデックス確認
📚 関連: ファイル形式・拡張子セクション — 主要なファイル拡張子・形式を体系的に解説。XML(.xml)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 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
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 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
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 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
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?