sitemap.xmlの作成と活用ガイド|検索エンジンにサイト構造を正しく伝える方法
sitemap.xmlとは
sitemap.xmlは、Webサイト内のページ一覧をXML形式で記述したファイルです。検索エンジンのクローラーに対して「このサイトにはこれらのページが存在する」という情報を提供する役割を果たします。
クローラーは通常、ページ内のリンクをたどってサイトを巡回しますが、すべてのページが内部リンクで十分に結ばれているとは限りません。新しく公開したページ、階層が深いページ、動的に生成されるページなどは、クローラーが発見しにくいケースがあります。sitemap.xmlを設置することで、クローラーにサイトの全体像を効率よく伝えられるのです。
sitemap.xmlが特に重要なケース
すべてのサイトにsitemap.xmlが必要というわけではありませんが、以下のケースでは設置が強く推奨されます。
- 大規模サイト(数百ページ以上):クローラーがすべてのページを発見するのに時間がかかる
- 新規サイト:外部からの被リンクが少なく、クローラーの訪問頻度が低い
- 内部リンクが不十分なサイト:孤立したページが存在する可能性がある
- ECサイト・メディアサイト:商品ページや記事ページが頻繁に追加される
- 動的コンテンツを多く持つサイト:JavaScriptで生成されるページなど
逆に、ページ数が少なく(50ページ以下)、すべてのページが内部リンクで適切に結ばれている小規模サイトでは、sitemap.xmlがなくても大きな問題にはなりにくいです。
sitemap.xmlのXML構造
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-03-18</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2026-03-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://example.com/blog/my-first-post</loc>
<lastmod>2026-03-15</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
各要素の説明
| 要素 | 必須 | 説明 |
|---|---|---|
<urlset> | はい | ルート要素。名前空間を必ず指定する |
<url> | はい | 各ページのエントリ |
<loc> | はい | ページの完全なURL(https://から始まる絶対URL) |
<lastmod> | 推奨 | 最終更新日(ISO 8601形式: YYYY-MM-DD) |
<changefreq> | 任意 | 更新頻度の目安(always/hourly/daily/weekly/monthly/yearly/never) |
<priority> | 任意 | サイト内での相対的な優先度(0.0〜1.0) |
lastmod・changefreq・priorityの扱い
lastmodは検索エンジンが最も参考にする要素です。ページを更新したら正確な日付を設定しましょう。実際に更新していないのにlastmodを更新する行為は、検索エンジンからの信頼を損ないます。
changefreqとpriorityについて、Googleは公式に「これらの値は無視する」と明言しています。ただし、Google以外の検索エンジン(Bingなど)では参考にされる場合があるため、設定しておいて損はありません。
sitemap.xmlの作成方法
手動作成
小規模サイトであれば、テキストエディタで直接XMLを記述できます。ただし、ページの追加・削除に合わせて手動で更新する必要があるため、メンテナンスの手間を考えると他の方法が推奨されます。
オンラインジェネレーター
無料のsitemap生成ツールを使う方法です。URLを入力するとサイトをクロールしてsitemap.xmlを自動生成してくれます。代表的なツールとしてはXML-Sitemaps.comなどがあります。ただし、定期的な再生成が必要な点は手動と同様です。
CMSプラグイン
WordPressを利用している場合、プラグインで自動生成するのが最も簡単です。
- Yoast SEO:sitemap.xmlを自動生成・更新。投稿タイプごとに分割されたサイトマップを生成する
- Google XML Sitemaps:シンプルなサイトマップ生成プラグイン
- Rank Math:sitemap.xmlの自動生成に加え、画像サイトマップにも対応
いずれのプラグインも、記事の公開・更新に連動してsitemap.xmlが自動更新されます。
Next.jsでの動的生成
Next.js(App Router)では、app/sitemap.ts(またはapp/sitemap.xml/route.ts)でサイトマップを動的に生成できます。
// app/sitemap.ts
import { MetadataRoute } from 'next';
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://example.com';
// 静的ページ
const staticPages = [
{ url: baseUrl, lastModified: new Date(), changeFrequency: 'weekly' as const, priority: 1.0 },
{ url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: 'monthly' as const, priority: 0.8 },
];
// 動的ページ(ブログ記事など)
const posts = getAllPosts(); // 記事データ取得関数
const blogPages = posts.map((post) => ({
url: `${baseUrl}/blog/${post.slug}`,
lastModified: new Date(post.date),
changeFrequency: 'yearly' as const,
priority: 0.6,
}));
return [...staticPages, ...blogPages];
}
この方法なら、コンテンツの追加に連動してsitemap.xmlが自動的に最新の状態に保たれます。
サイトマップインデックスファイル
サイトマップ1ファイルには最大50,000件のURL(ファイルサイズは50MB以下)という制限があります。大規模サイトではこの上限を超えるため、サイトマップインデックスファイルを使って複数のサイトマップを束ねます。
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-03-18</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-blog.xml</loc>
<lastmod>2026-03-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2026-03-10</lastmod>
</sitemap>
</sitemapindex>
コンテンツの種類ごとにサイトマップを分割すると、管理がしやすくなるうえ、どのセクションのクロールに問題があるかを把握しやすくなります。
Google Search Consoleへの送信
sitemap.xmlを作成したら、Google Search Consoleに送信してクロールを促しましょう。
- Google Search Consoleにログイン
- 対象のプロパティを選択
- 左メニューから「サイトマップ」を選択
- sitemap.xmlのURLを入力して「送信」をクリック
送信後は、Search Console上でサイトマップのステータス(成功/エラー)、検出されたURL数、インデックス登録されたURL数を確認できます。
robots.txtへの記載
robots.txtにもサイトマップの場所を記載しておくと、Search Console以外のクローラーもサイトマップを発見しやすくなります。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
よくある間違いと注意点
noindexページをサイトマップに含める
noindexを設定しているページをsitemap.xmlに含めると、「インデックスしてほしいのか、しないでほしいのか」という矛盾したシグナルを送ることになります。noindexページはサイトマップから除外しましょう。
lastmodを実態と合わせない
毎日すべてのページのlastmodを更新するようなサイトが稀に見られますが、これは逆効果です。検索エンジンがlastmodを信頼しなくなり、本当に更新したページの再クロールが遅れる原因になります。
URLの表記ゆれ
https://example.com/pageとhttps://example.com/page/のように、末尾のスラッシュの有無でURLが異なる場合があります。サイトマップに記載するURLは、canonical URLと一致させてください。
404ページや301リダイレクト先を含める
存在しないページやリダイレクトされるURLをサイトマップに含めると、クロールバジェットの無駄遣いになります。定期的にサイトマップ内のURLを検証し、問題のあるURLを削除しましょう。
IndexReadyでsitemap.xmlをチェック
当サイトのSEOスコアリングツール「IndexReady」では、sitemap.xmlの有無と妥当性をSEOカテゴリの項目として自動チェックしています(6点満点)。URLを入力するだけで、sitemap.xmlの設置状況を含むSEO・GEO対策の総合診断が可能です。まだサイトマップを設置していない方は、まずIndexReadyで現状を確認してみてください。
まとめ
sitemap.xmlは、検索エンジンにサイト構造を正しく伝えるための基本的かつ重要なSEO施策です。特に大規模サイトや新規サイトでは、クロール効率の改善とインデックス促進に直接貢献します。
CMSプラグインやNext.jsの組み込み機能を活用すれば自動生成・自動更新が可能なので、設置のハードルは決して高くありません。まだ設置していない場合は、今日から対応を始めましょう。
よくある質問(FAQ)
sitemap.xmlがないと検索結果に表示されませんか?
いいえ、sitemap.xmlがなくてもクローラーがリンクをたどってページを発見できれば、検索結果に表示されます。ただし、サイトマップがあることでクロールの効率が向上し、新しいページの発見が早まるため、設置を推奨します。
sitemap.xmlの更新頻度はどのくらいが適切ですか?
コンテンツの更新頻度に合わせるのが理想です。CMSやフレームワークの自動生成機能を使えば、記事の公開・更新に連動して自動的にサイトマップも更新されます。手動管理の場合は、少なくとも月に1回は見直しましょう。
sitemap.xmlに画像や動画も含められますか?
はい、画像サイトマップ(<image:image>)や動画サイトマップ(<video:video>)として拡張要素を含めることができます。特に画像検索からのトラフィックを重視するサイトでは、画像サイトマップの設置が効果的です。
sitemap.xmlのサイズや件数に制限はありますか?
1つのサイトマップファイルにはURLを最大50,000件、ファイルサイズは50MB以下という制限があります。これを超える場合は、サイトマップインデックスファイルを使って複数のサイトマップに分割してください。