sitemap.xmlの作り方|ツールで作るか、自動生成にするか
三橋竜彰・
sitemap.xml は、サイトにどんなURLがあるかを検索エンジンに一覧で伝えるファイルです。作り方は3通りあり、サイトの作りによって適したものが変わります。
先に結論を書きます。手で作る・ツールで一度だけ作る方法は、記事が増えるサイトには向きません。必ず古くなるからです。
3つの作り方
| 方法 | 向いているサイト | 更新のされ方 |
|---|---|---|
| 生成ツール | ページが増えない小規模サイト | 手動で作り直す |
| CMSのプラグイン | WordPress など | 記事追加時に自動 |
| コードで自動生成 | 自分でビルドするサイト | ビルド時に自動 |
1. 生成ツールで作る
URLを入力するとクロールして sitemap.xml を作ってくれるサービスがあります。ダウンロードしてサーバーのルートに置きます。
手軽ですが、記事を追加するたびに作り直す必要があります。実際には作り直されないまま放置され、新しい記事が載っていない状態になりがちです。
2. CMSのプラグインに任せる
WordPress なら SEO 系プラグインが sitemap.xml を出力します。記事を公開すると自動で反映されるので、更新漏れは起きません。
注意点は何が載るかの制御です。カテゴリページ・タグページ・添付ファイルページまで載る設定になっていることがあり、薄いページが大量に並びます。設定画面で対象を絞ってください。
3. コードで自動生成する
自分でサイトをビルドしている場合は、記事の一覧から sitemap を組み立てるのが最も確実です。運営者のサイトはこの方式です。
ビルドのたびに記事一覧から作り直されるので、更新漏れが原理的に起きません。
自動生成にすると効いてくること
コードで作る場合、単に楽になるだけでなく別の問題も同時に解けます。
公開予定の記事を載せない
予約公開を使っている場合、公開日が来ていない記事を sitemap に載せてはいけません。載せると、まだ存在しないURLを検索エンジンに知らせることになります。
自動生成なら、記事一覧を絞り込む条件に「公開日が今日以前」を入れるだけで済みます。運営者のサイトでは、この判定を sitemap の生成とページの生成で同じ条件から作っているため、片方だけ漏れることがありません。
手動やプラグインでは、記事は非公開なのに sitemap には載っている、という食い違いが起こりえます。「200なのに sitemap 未掲載」を検知できる
運営者は公開後に、記事URLが200を返すことと sitemap に載っていることの両方を機械で確認しています。片方だけ通ることが実際にあるためです。
- URLは200だが sitemap に無い → ビルドが走っていない
- sitemap にあるがURLが404 → 配信側の問題
この2つは原因が違うので、分けて見ないと対処を誤ります。
書式そのものは単純
参考までに最小の形です。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/blog/example</loc>
<lastmod>2026-09-14</lastmod>
</url>
</urlset>
必須なのは <loc> だけです。lastmod は任意ですが、正確に運用できるなら入れる価値があります。更新していないのに毎回今日の日付を入れるような使い方は、信号として意味を持ちません。
priority と changefreq は、現在ほぼ参照されないとされています。入れても害はありませんが、労力をかけるところではありません。
設置と登録
作ったら2つやります。
- robots.txt に場所を書く:
Sitemap: https://example.com/sitemap.xmlの1行。書き方はrobots.txtの書き方|設定でよくある間違いと確認方法に整理しました - Search Console から送信する:サイトマップの画面でURLを登録する
sitemap に載せることは「クロールしてほしい」という申告であって、インデックスを保証するものではありません。載せたのに登録されないときは、原因が別のところにあります。切り分けはインデックスされない原因の切り分け方|まず見る3つの分岐、個別URLの登録依頼はインデックス登録リクエストの効果と正しい期待値で扱っています。
構造化データも同じくビルド時に生成しておくと、本文とずれません。考え方はJSON-LDの書き方|どの型を使い、どう検証するかにまとめました。
よくある質問
sitemap.xmlはどうやって作りますか?
3通りあります。URLを入力してクロールさせる生成ツール、CMSのプラグイン、そして自分でビルドしているサイトならコードでの自動生成です。記事が増えるサイトでは、生成ツールで一度だけ作る方法は必ず古くなるため向きません。
sitemap.xmlに何を書けば必須ですか?
必須なのは各URLを示す loc だけです。lastmod は任意ですが、正確に運用できるなら入れる価値があります。priority と changefreq は現在ほぼ参照されないとされており、労力をかけるところではありません。
予約公開の記事はsitemapに載せてよいですか?
載せてはいけません。公開日が来ていないURLを検索エンジンに知らせることになります。自動生成なら記事一覧の絞り込み条件に「公開日が今日以前」を入れるだけで済み、ページ生成と同じ条件から作れば片方だけ漏れることがありません。
sitemapに載せればインデックスされますか?
されるとは限りません。sitemap への掲載は「クロールしてほしい」という申告であって、インデックスを保証するものではありません。載せたのに登録されない場合は、原因が別のところにあります。
作ったあと何をすればいいですか?
robots.txt に Sitemap の行を1行書き、Search Console のサイトマップ画面からURLを登録します。あわせて、公開後に記事URLが200を返すことと sitemap に載っていることの両方を確認してください。片方だけ通ることが実際にあります。
まとめ
- 作り方は生成ツール・CMSプラグイン・コードでの自動生成の3通り
- 記事が増えるサイトで手動・一度きりの生成は必ず古くなる
- 自動生成にすると、予約公開の記事を載せない制御が同じ仕組みで解ける
- 必須は
locだけ。priorityとchangefreqに労力をかけない - 掲載はインデックスの保証ではない。載っているのに登録されないなら原因は別
作ること自体は難しくありません。難しいのは、増え続けるサイトで正しい状態を保つことです。