ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?