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/getting-started</loc>
<lastmod>2026-03-15</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
各要素の説明
| 要素 | 必須 | 説明 |
|---|---|---|
<urlset> | はい | ルート要素。sitemaps.orgの名前空間を必ず指定する |
<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はオプション3要素の中で最も価値のある要素です。検索エンジンはlastmodの値を見て、そのページを再クロールする必要があるかどうかを判断します。ページを更新したら正確な日付を設定しましょう。実際にコンテンツを変更していないのにlastmodを更新する行為は、クローラーからの信頼を損ない、本当に更新したページの再クロールが遅れる原因になります。
changefreqとpriorityについて、Googleは公式に「これらの値は完全に無視する」と明言しています。ただし、Bingなど他の検索エンジンでは参考にされる場合があるため、設定しておいて損はありません。
sitemap.xmlの作成方法
手動作成
小規模サイトであれば、テキストエディタで直接XMLを記述できます。この方法はシンプルですがスケールしにくく、ページの追加・削除に合わせて手動で更新する必要があります。
オンラインジェネレーター
XML-Sitemaps.comなどの無料ツールを使えば、サイトをクロールしてsitemap.xmlを自動生成できます。ただし、コンテンツを更新するたびに再生成が必要なため、定期的なメンテナンスが欠かせません。
CMSプラグイン
WordPressを利用している場合、プラグインで自動生成するのが最も簡単です。
- Yoast SEO:投稿タイプごとに分割されたサイトマップインデックスを自動生成・更新
- Rank Math:sitemap.xmlの自動生成に加え、画像サイトマップにも対応
- Google XML Sitemaps:シンプルなサイトマップ生成に特化した軽量プラグイン
いずれのプラグインも、記事の公開・更新に連動してsitemap.xmlが自動更新されます。
Next.jsでの動的生成
Next.js(App Router)では、app/sitemap.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];
}
この方法なら、サイトのビルド時やルートのリクエスト時にサイトマップが自動的に現在のページ状態を反映するため、コンテンツとサイトマップの同期を常に保つことができます。
サイトマップインデックスファイル
サイトマップ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に発見を促しましょう。
- Google Search Consoleにログイン
- 対象のプロパティを選択
- 左メニューから「サイトマップ」を選択
- sitemap.xmlのURLを入力して「送信」をクリック
送信後は、Search Console上でサイトマップのステータス(成功/エラー)、検出されたURL数、インデックス登録されたURL数を確認できます。
robots.txtへの記載
robots.txtにもサイトマップの場所を記載しておくと、Google以外のクローラーもサイトマップを自動的に発見しやすくなります。Webマスターツールのインターフェースを持たない検索エンジンに対しては特に有効です。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
よくある間違いと注意点
noindexページをサイトマップに含める
noindexのmeta robotsタグやX-Robots-Tagヘッダーが設定されているページをsitemap.xmlに含めると、「このページをインデックスしてほしい」(サイトマップ)と「このページをインデックスしないでほしい」(noindex)という矛盾したシグナルを送ることになります。noindexページはサイトマップから除外してください。
lastmodを実態と合わせない
毎日すべてのページのlastmodを更新するようなサイトが稀に見られますが、これは逆効果です。検索エンジンがlastmodの値を信頼しなくなり、本当に更新したページの再クロールが遅れる原因になります。lastmodは実際にコンテンツが変更された日付のみを設定してください。
URLの表記ゆれ
https://example.com/pageとhttps://example.com/page/のように、末尾のスラッシュの有無でURLが異なる場合があります。サイトマップに記載するURLは、canonical URLと完全に一致させてください。URLの不一致はクロールバジェットの無駄遣いや重複コンテンツの問題を引き起こす可能性があります。
404ページや301リダイレクトURLを含める
404エラーや301リダイレクトを返すページをサイトマップに含めると、クロールバジェットの無駄遣いになります。定期的にサイトマップ内のURLを検証し、200ステータスを返さないURLは削除しましょう。サイトマップを常にクリーンな状態に保つことで、クロールバジェットを生きたページに確実に使えます。
サイトマップの更新を忘れる
新しいページを含まない古いサイトマップは、設置している意味が薄れてしまいます。手動でサイトマップを管理している場合は、ページの追加・削除のたびにサイトマップも更新するリマインダーを設定しましょう。理想的には、自動生成の仕組みを導入することをおすすめします。
IndexReadyでsitemap.xmlをチェック
当サイトのSEOスコアリングツール「IndexReady」では、sitemap.xmlの有無と妥当性をSEOカテゴリの項目として自動チェックしています(6点満点)。URLを入力するだけで、sitemap.xmlの設置状況を含むSEO・GEO対策の総合診断が可能です。サイトマップが正しく設定されているか不安な方は、IndexReadyで問題点をすばやく特定できます。
まとめ
sitemap.xmlは、検索エンジンにサイト構造を正しく伝えるための基本的かつ重要なSEO施策です。直接的に検索順位を向上させるものではありませんが、コンテンツの発見を確実にします。特に大規模サイト、新規サイト、内部リンクが限定的なページが多いサイトでは、クロール効率の改善とインデックス促進に直接貢献します。
CMSプラグインやNext.jsなどのフレームワークを活用すれば、サイトマップの自動生成・自動更新が可能です。設置のハードルは決して高くありません。まだ設置していない場合は、今日から対応を始めて、Google Search Consoleへの送信も忘れずに行いましょう。
よくある質問(FAQ)
sitemap.xmlがないと検索結果に表示されませんか?
いいえ、sitemap.xmlがなくてもクローラーがリンクをたどってページを発見できれば、検索結果に表示されます。ただし、サイトマップがあることでクロールの効率が向上し、新しいページの発見が早まるため、設置を推奨します。手間がかからず効果の高い施策です。
sitemap.xmlの更新頻度はどのくらいが適切ですか?
サイトマップは常に現在のサイト構造を反映している状態が理想です。CMSやフレームワークの自動生成機能を使えば、コンテンツの公開・更新に連動して自動的にサイトマップも更新されます。手動管理の場合は、少なくとも月に1回は見直しましょう。
sitemap.xmlに画像や動画も含められますか?
はい、サイトマッププロトコルは画像(<image:image>)と動画(<video:video>)の拡張要素をサポートしています。特に画像サイトマップは、画像検索からのトラフィックを重視するサイトでは非常に有効です。通常のクロールでは発見しにくい画像をクローラーに伝えることができます。
sitemap.xmlのサイズや件数に制限はありますか?
1つのサイトマップファイルにはURLを最大50,000件、ファイルサイズは50MB(非圧縮)以下という制限があります。これを超える場合は、サイトマップインデックスファイルを使って複数のサイトマップに分割してください。