SEOガイド

XMLサイトマップの作り方

sitemap.xmlの書き方から設置方法・Google Search Consoleへの送信手順まで解説します。チェックツールでサイトマップの設置状況を無料診断できます。

6分で読める2026-04-25

XMLサイトマップとは?

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-04-25</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2026-04-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/blog/article-1</loc>
    <lastmod>2026-04-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

なぜサイトマップが重要なのか?

Googleはサイトマップを「ページの存在を知るための重要なシグナル」として利用しています。特に新しいページやリンクが少ないページは、サイトマップ経由で発見されることが多くあります。

50,000

1ファイルあたりの最大URL数

50MB

1ファイルの最大サイズ(非圧縮)

+26%

サイトマップ送信後のインデックス率向上(大規模サイト平均)

サイトマップの書き方(XML構造の解説)

サイトマップは標準のXML形式で記述します。以下の要素(タグ)を組み合わせて構成されます。必須タグは3つだけで、残りはオプションです。

タグ説明必須
<urlset>サイトマップのルート要素。xmlns属性でsitemapプロトコルを宣言します。必須
<url>個々のURLエントリを囲む要素。<urlset>の子要素として複数配置します。必須
<loc>ページの完全なURL。https://を含む絶対URLで記述します。必須
<lastmod>ページの最終更新日。W3C Datetime形式(YYYY-MM-DD)で記述します。任意
<changefreq>更新頻度のヒント。always/hourly/daily/weekly/monthly/yearly/neverから選択。Googleは参考程度に扱います。任意
<priority>サイト内での相対的な優先度。0.0〜1.0の値。Googleはほぼ無視するため設定しなくても問題ありません。任意

50,000URLを超える大規模サイトでは、サイトマップインデックスファイルを使って複数のサイトマップを管理します。

/* サイトマップインデックスの例 */

<?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-04-25</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2026-04-23</lastmod>
  </sitemap>
</sitemapindex>

設置のベストプラクティス

ルートディレクトリに配置(/sitemap.xml)

サイトマップはドメインのルート(https://example.com/sitemap.xml)に配置するのが標準です。検索エンジンのクローラーが最初にチェックする場所であり、robots.txtからの参照も簡潔になります。

robots.txtにサイトマップURLを記述

robots.txtの末尾に「Sitemap: https://example.com/sitemap.xml」と記述してください。これによりGooglebot以外のクローラー(Bingbot等)もサイトマップを自動発見できます。

Google Search Consoleで送信

Search Consoleの「サイトマップ」メニューからURLを送信してください。送信状況・エラー・インデックス済みURL数を管理画面で確認できます。

noindex・canonicalで除外したURLは含めない

noindexメタタグやcanonicalタグで別URLを指定しているページはサイトマップから除外してください。矛盾したシグナルはクロール効率を低下させます。

更新日(lastmod)を正確に設定

lastmodにはページの実際の更新日を設定してください。全ページに同じ日付を設定したり、更新していないのに日付を変更するとGoogleがlastmodを信頼しなくなります。

よくある失敗パターン

存在しないURLを含む(404ページ)

サイトマップに404を返すURLが含まれていると、Googleはサイトマップの品質が低いと判断します。定期的にサイトマップ内のURLを検証し、削除済みページを除外してください。

noindexページを含む

「インデックスしてほしい」というサイトマップのシグナルと「インデックスしないで」というnoindexが矛盾します。Search Consoleで「送信されたURLにnoindexタグが追加されています」というエラーが表示されます。

lastmodを全ページ同じ日付にする

すべてのURLに同じlastmodを設定すると、Googleはlastmodの信頼性を疑い、この情報を無視するようになります。更新していないページの日付は変更しないでください。

サイトマップを更新しない

新しいページを追加しても、サイトマップに反映されなければクローラーは発見できません。CMS連携や自動生成の仕組みを導入し、常に最新の状態を保ちましょう。

CMS別の設定方法

WordPress(Yoast SEO / RankMath)

WordPressでは、Yoast SEOやRankMathなどのSEOプラグインがサイトマップを自動生成します。プラグインを有効化するだけで /sitemap_index.xml(Yoast)または /sitemap_index.xml(RankMath)にアクセスできます。投稿・固定ページ・カテゴリなどの種類別に自動でサイトマップが分割され、新しいコンテンツも自動反映されます。

Next.js(app/sitemap.ts)

Next.js(App Router)では、app/sitemap.ts ファイルを作成するだけでビルド時にサイトマップが自動生成されます。MetadataRoute.Sitemap型を使って型安全にURLリストを返します。

// app/sitemap.ts
import type { MetadataRoute } from "next"

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: "https://example.com",
      lastModified: new Date(),
      changeFrequency: "daily",
      priority: 1,
    },
    {
      url: "https://example.com/about",
      lastModified: new Date(),
      changeFrequency: "monthly",
      priority: 0.8,
    },
  ]
}

手動作成

CMSを使わない静的サイトや小規模サイトでは、テキストエディタで直接XMLファイルを作成し、サーバーのルートディレクトリにアップロードします。URL数が少ない場合はこの方法が最もシンプルです。作成後はW3Cのバリデーターや当サイトのチェックツールで構文エラーがないか確認してください。

あなたのサイトのサイトマップをチェック

URLを入力するだけで、サイトマップの設置状況・robots.txtの記述・インデックス対象ページを無料で診断します。title・meta description・構造化データも同時にチェック。

よくある質問

XMLサイトマップは必要ですか?
すべてのサイトに必須ではありませんが、大規模サイト(500ページ以上)、新規サイト、内部リンクが少ないページがあるサイトでは特に重要です。サイトマップがあるとGoogleのクローラーがサイト構造を効率的に把握でき、インデックス漏れを防げます。小規模サイトでも設置して損はありません。
サイトマップに含めるべきURLは?
インデックスさせたい正規URLのみを含めてください。noindexを指定しているページ、canonical先でないページ、リダイレクト元のURL、404エラーページは含めるべきではありません。サイトマップに含まれるURLは「このページをインデックスしてほしい」というシグナルになるため、厳選することが重要です。
サイトマップの更新頻度はどのくらいがいいですか?
コンテンツを追加・更新したタイミングで自動的にサイトマップも更新されるのが理想です。WordPressならSEOプラグインが自動生成し、Next.jsならビルド時に生成できます。手動管理の場合は、少なくとも月1回は確認・更新しましょう。lastmod日付を正確に設定することでGoogleのクロール効率が向上します。
サイトマップのURL数に上限はありますか?
1つのサイトマップファイルには最大50,000URLまで、ファイルサイズは非圧縮で50MBまでという制限があります。これを超える場合はサイトマップインデックスファイルを作成し、複数のサイトマップを分割して管理します。サイトマップインデックスには最大50,000件のサイトマップを登録できます。
robots.txtにサイトマップのURLを記述すべきですか?
はい、推奨されています。robots.txtの末尾に「Sitemap: https://example.com/sitemap.xml」と記述することで、どの検索エンジンのクローラーもサイトマップの場所を自動的に発見できます。Google Search Consoleで直接送信する方法と併用するのがベストプラクティスです。