XMLサイトマップの priorityは 不要?RSSとの 使い分けと 推奨設定
「記事を公開したのに、何日たっても検索に出てこない」。このブログでも同じことが起きました。この記事では、Googleが公開しているXMLサイトマップとRSS/Atomフィードのベストプラクティスを整理し、2014年の推奨から変わった点と、自社ブログで実際に直した設定を紹介します。
元になっているのは、Google検索セントラルの「Best practices for XML sitemaps and RSS/Atom feeds」(2014年10月)です。
XMLサイトマップと RSS/Atomフィードの 違いは?
XMLサイトマップはサイト全体のURLの一覧、RSS/Atomフィードは最近の更新の一覧です。Googleは、最適なクロールのために両方を使うことを推奨しています。
| 項目 | XMLサイトマップ | RSS/Atomフィード |
|---|---|---|
| 載せるもの | サイトの全ページ | 最近追加・更新したページ |
| サイズ | 大きくなりやすい | 小さい |
| Googleが取りに来る頻度 | 低め | 高め |
| 役割 | 全ページを漏れなく知らせる | 新しい記事を早く知らせる |
| 更新日のタグ | lastmod | RSSは pubDate、Atomは updated |
つまり、サイトマップだけでは新しい記事に気付いてもらうまでに時間がかかることがあります。新着を早く伝えるのがフィードの役割です。なお、Googleはどちらを送信してもインデックス登録は保証されないとも書いています。
Googleが 重視する 項目は 何か?
Googleにとって重要なのは、URLそのものと最終更新日時の2つです。
URLの ルール
- Googlebotが取得できるURLだけを載せる(
robots.txtでブロックしたURLや、存在しないページを入れない) - 正規URL(canonical)だけを載せる。重複ページを入れるとサーバーの負荷が増えるだけで、インデックスは改善しない
最終更新日時の ルール
- 内容が意味のある形で変わったときだけ更新する
- サイトマップやフィードを配信するたびに、現在時刻を入れない
- 形式を守る(XMLサイトマップはW3C Datetime、AtomはRFC 3339、RSSはRFC 822)
現在の公式ドキュメント「Build and submit a sitemap」では、Googleは lastmod の値が一貫して正確だと確認できる場合に使うと説明されています。著作権表記の年を変えただけ、といった変更は「意味のある更新」に当たりません。
2014年の 推奨から 何が 変わったのか?
**sitemap pingは廃止され、changefreqとpriorityは使われていません。**元記事の内容をそのまま実装すると、効果のない作業が混ざります。
| 項目 | 2014年の記事 | 現在 |
|---|---|---|
| サイトマップ更新の通知 | Googleにpingを送る | 2023年に廃止。Search Console・Search Console API・robots.txt の Sitemap: 行で伝える |
lastmod | 正確に設定する | 正確な場合だけクロールの判断に使う |
changefreq / priority | 記載なし | Googleは値を無視する |
| サイズの上限 | 1ファイル5万URL・圧縮前10MB(記事内の追記で50MBに引き上げ) | 1ファイル5万URL・圧縮前50MB |
| フィードの更新通知 | WebSub(当時の名前はPubSubHubbub)を推奨 | 推奨はそのまま |
pingの廃止は、Googleの「Sitemaps ping endpoint is going away」(2023年6月)で発表されました。認証のない送信はあまり役に立たず、大半がスパムだったことが理由です。
サイトマップの priorityと changefreqは 設定すべき?
**Google向けには設定する必要はありません。**Googleは公式ドキュメントで、XMLサイトマップの priority と changefreq の値を使わないと明言しています。
priority は「サイト内でどのページが大事か」を0.0〜1.0で、changefreq は「どのくらいの頻度で更新されるか」を伝えるための項目です。どちらもサイト側の自己申告で、実際の更新とずれやすいため、Googleは判断の材料にしていません。
| 項目 | 意味 | Googleでの扱い | おすすめの対応 |
|---|---|---|---|
priority | ページの重要度(0.0〜1.0) | 使われない | 書かなくてよい |
changefreq | 更新の頻度(daily など) | 使われない | 書かなくてよい |
lastmod | 最終更新日時 | 正確な場合だけ使われる | 内容を変えたときだけ正確に更新する |
書いてもエラーにはならず、ほかの検索エンジンでは扱いが異なる場合もあるため、すでに書いてあるものを急いで消す必要はありません。このサイトのサイトマップにも残っていますが、効果は期待していません。**手間をかけるなら、lastmod を正確にするほうがはるかに大切です。**ページの重要度を伝えたいときは、トップページや関連記事からの内部リンクを増やすほうが効果があります。
WebSubとは?フィードの 更新を どう 伝えるのか?
WebSubは、フィードが更新されたことをハブ経由で購読者に即座に伝える仕組みです。Googleは、フィードの更新を取りこぼさないための最善の方法としてWebSubを挙げています。
設定は2つだけです。
- フィードにハブのURLを書く
- 記事を公開したら、ハブに「このフィードが更新された」と通知する
このブログでは、Googleが運営するハブ(pubsubhubbub.appspot.com)を使っています。
<atom:link href="https://suekichi-system.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
<atom:link href="https://pubsubhubbub.appspot.com/" rel="hub"/>const res = await fetch('https://pubsubhubbub.appspot.com/', {
method: 'POST',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
'hub.mode': 'publish',
'hub.url': 'https://suekichi-system.com/blog/feed.xml',
}),
});
// 204 が返れば受付完了自社ブログでは 何が 問題だったのか?
**記事は「検出」されていたのに、1件もクロールされていませんでした。**このブログは、記事をpushすると本番への反映を確認し、IndexNowで通知して、Search Console APIでサイトマップを送信する仕組みにしています(作り方は「Next.jsの静的書き出しでMDXブログを作る方法」で紹介しています)。それでも検索に出てこないため、Search ConsoleのURL検査APIで全9記事の状態を調べました(2026年10月19日時点)。
| 状態 | 記事数 |
|---|---|
| 検出 - インデックス未登録 | 6 |
| URL が Google に認識されていません | 3 |
| 最終クロールあり | 0 |
配信の仕組みに問題はなく、Googleに後回しにされている状態でした。新しいドメインではよくあることですが、見直すとベストプラクティスに反する設定も見つかりました。
つまずいた 点:固定ページの lastmod が ビルド時刻だった
Next.jsの sitemap.ts で、固定ページの lastModified に new Date()(ビルド時刻)を入れていました。こうすると、デプロイのたびに全ページが「更新された」ことになります。Googleが lastmod を信用しなくなり、ブログ記事の正しい更新日まで無視されるおそれがあります。
// 固定ページは lastModified を載せない(ビルド時刻を入れると毎回全URLが更新扱いになる)
const staticPages = PAGES.map(({ path, priority, changeFrequency }) => ({
url: `${SITE_URL}${path}`,
changeFrequency,
priority,
}));
// 記事は frontmatter の updatedAt を使う
const blogPages = posts.map((post) => ({
url: `${SITE_URL}/blog/${post.slug}`,
lastModified: new Date(post.updatedAt),
}));正確な日付を出せないページは、lastmod を書かないほうが安全です。
あわせて 行った 対策
- RSSにWebSubのハブを指定し、公開時に通知する
- Search ConsoleにXMLサイトマップに加えてRSSも送信する
- RSSの
pubDateを公開日から更新日に変える(GoogleはpubDateを最終更新日時として扱うため) - 公開時に、記事の
lastmodが更新日と一致するか、ビルド時刻のようなlastmodが紛れていないかを自動で検査する - 毎回URL検査APIで記事の状態を調べ、未登録の記事はSearch Consoleの「URL 検査」へのリンクをGitHub Actionsのジョブの概要に出す
- トップページに新着記事へのリンクを置き、もっともクロールされるページから記事へたどれるようにする
なお、URL検査APIでは状態を確認できるだけで、インデックス登録のリクエストはできません。急ぐ記事は、Search Consoleの「URL 検査」から手作業で「インデックス登録をリクエスト」します。AI検索での見つかりやすさについては「LLMO(AI検索最適化)とは?」で解説しています。
設定を 見直す チェックリストは?
次の6点を満たしていれば、サイトマップとフィードの基本はできています。
- XMLサイトマップに全ページの正規URLだけが載っている
robots.txtでブロックしたURLや、404のURLが混ざっていないlastmodは内容を変えたときだけ更新され、ビルド時刻や配信時刻になっていない- RSS/Atomフィードがあり、新しい記事が追加されている
- フィードにWebSubのハブを書き、公開時に通知している
- Search Consoleにサイトマップ(とフィード)を送信し、
robots.txtにSitemap:行がある
まとめ
- XMLサイトマップで全ページを、RSS/Atomフィードで新着を伝える。Googleの推奨は両方の併用
lastmodは正確さがすべて。ビルド時刻を入れるくらいなら書かない- sitemap pingは廃止済み。今はSearch Console、
robots.txt、RSS+WebSubで伝える
「記事を書いているのに検索に出てこない」「サイトの仕組みから見直したい」という方は、スエキチシステムのHP制作をご覧のうえ、お気軽にご相談ください。
よくある質問
XMLサイトマップに changefreq と priority は書くべきですか?
Googleは changefreq と priority の値を使わないと公式ドキュメントで明言しています。書いてもエラーにはなりませんが、Google向けの効果はありません。手間をかけるなら lastmod を正確にするほうが重要です。
RSSフィードをSearch Consoleにサイトマップとして送信できますか?
できます。GoogleはRSS 2.0とAtom 1.0をサイトマップとして受け付けています。ただしフィードには最近のURLしか載らないため、サイト全体を伝えるXMLサイトマップの代わりにはならず、併用が前提です。
サイトマップを送信すれば記事はすぐインデックスされますか?
されるとは限りません。Googleもサイトマップやフィードの送信はインデックス登録を保証しないとしています。新しいサイトでは「検出 - インデックス未登録」のまま待たされることも多く、急ぐ場合はSearch ConsoleのURL検査から登録をリクエストします。
WordPressでもWebSubは使えますか?
WebSubに対応したプラグインを入れると、記事の公開時にハブへ自動で通知できます。仕組みはこの記事で紹介しているものと同じで、フィードにハブのURLを書き、更新時にハブへ通知します。
システム開発の
要件が固まっていなくても大丈夫です。まずはお気軽にご相談ください。