システム開発AI活用

XMLサイトマップのpriorityは不要?RSSとの使い分けと推奨設定

  • #SEO
  • #XMLサイトマップ
  • #RSS
  • #WebSub
  • #Search Console

「記事を公開したのに、何日たっても検索に出てこない」。このブログでも同じことが起きました。この記事では、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が取りに来る頻度低め高め
役割全ページを漏れなく知らせる新しい記事を早く知らせる
更新日のタグlastmodRSSは 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つだけです。

  1. フィードにハブのURLを書く
  2. 記事を公開したら、ハブに「このフィードが更新された」と通知する

このブログでは、Googleが運営するハブ(pubsubhubbub.appspot.com)を使っています。

feed.xml(channel 内に追加)
<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"/>
scripts/publish-blog.mjs(公開時にハブへ通知)
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 を信用しなくなり、ブログ記事の正しい更新日まで無視されるおそれがあります。

app/sitemap.ts(修正後)
// 固定ページは 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点を満たしていれば、サイトマップとフィードの基本はできています。

  1. XMLサイトマップに全ページの正規URLだけが載っている
  2. robots.txt でブロックしたURLや、404のURLが混ざっていない
  3. lastmod は内容を変えたときだけ更新され、ビルド時刻や配信時刻になっていない
  4. RSS/Atomフィードがあり、新しい記事が追加されている
  5. フィードにWebSubのハブを書き、公開時に通知している
  6. 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を書き、更新時にハブへ通知します。

システム開発のご相談はスエキチシステムへ

要件が固まっていなくても大丈夫です。まずはお気軽にご相談ください。

この記事を書いた会社

スエキチシステム

「企業品質を、個人価格で。」を掲げる福岡のシステム開発会社。HP制作・業務システム開発・LINE予約アプリ・AI導入支援を手がけています。 開発現場で得た知見を発信しています。

IT・システムの仕組みは、YouTubeのショート動画でも解説しています:システムのオタク