Closed5

Next.js App Routerでsitemap.xmlを生成する

Hirotaka MiyagiHirotaka Miyagi

取り急ぎドキュメント通りに sitemap() 関数を置いてみると、sitemap.xmlが生成される

import type { MetadataRoute } from "next";

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: "https://acme.com",
      lastModified: new Date(),
      changeFrequency: "yearly",
      priority: 1,
    },
    {
      url: "https://acme.com/about",
      lastModified: new Date(),
      changeFrequency: "monthly",
      priority: 0.8,
    },
    {
      url: "https://acme.com/blog",
      lastModified: new Date(),
      changeFrequency: "weekly",
      priority: 0.5,
    },
  ];
}

Hirotaka MiyagiHirotaka Miyagi

https://www.sitemaps.org/ja/protocol.html

lastmod
ファイルの最終更新日です。 この日付は W3C Datetime 形式で記述します。 必要な場合は、時刻の部分を省略して YYYY-MM-DD の形式で記述することもできます。

この日付は、サイトマップが生成されたときではなく、リンク先のページが最後に更新された日に設定しなければならないことに注意してください。

このタグは、サーバーが返す If-Modified-Since (304) ヘッダーとは別のものです。検索エンジンは、両方のソースからの情報を別々に使用することがあります。


https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap?hl=ja

  • 他の XML ファイルと同様に、すべてのタグ値をエスケープする必要があります。
  • Google は、<priority> と <changefreq> の値を無視します。
  • Google は、<lastmod> 値が一貫して正確であることを(ページの最終更新との比較などにより)検証できる場合に、この値を使用します。

lastmodを適当に設定しているとgooglebotは利用しないのかー
changefreq と priority を無視するのもなるほど


https://developers.google.com/search/blog/2023/06/sitemaps-lastmod-ping?hl=ja

lastmod 要素が有用であるためには、まずサポートされている日付形式(sitemaps.org に記載)であることが必要です。サイトマップをいったん送信すると、サポートされている形式でない場合、Search Console から通知が来ます。次に、事実と一致していることが必要です。ページが 7 年前に変更されているのに、lastmod 要素で前日に変更したと伝えていては、ページの最終更新日に関して信用が得られなくなります。

サイトマップのすべてのページに lastmod 要素を使用することも、自信のあるページだけに使用することもできます。たとえば、一部のサイトのソフトウェアは、サイト上の他のページを集約しているにすぎないため、ホームページやカテゴリページの最終更新日を判断するのが難しい場合があります。そのような場合は、そのページの lastmod を除外してもかまいません。

lastmod要素を頑張って生成するより、正確に指定できる時だけ使う形でも良いのか


https://blogs.bing.com/webmaster/february-2023/The-Importance-of-Setting-the-lastmod-Tag-in-Your-Sitemap

How Bing uses lastmod tag?

As a result of this study, we are revamping our crawl scheduling stack to better utilize the information provided by the "lastmod" tag in sitemaps. This will enhance our crawl efficiency by reducing unnecessary crawling of unchanged content and prioritizing recently updated content. We have already begun implementing these changes on a limited scale and plan to fully roll them out by June.

What’s about sitemap changefreq and priority tags?

Our analysis revealed that the majority of "changefreq" and "priority" tags in sitemaps are not set correctly. They are often assigned the same values across a sitemap and do not accurately reflect the likelihood of a page being updated or the relative importance of a URL in comparison to others. As a result, Bing largely disregards these fields.

Bingもlastmod要素は重要視しており、sitemapの生成時ではなくコンテンツの更新日にする必要がある
changefreqとpriorityはほぼ無視している

Hirotaka MiyagiHirotaka Miyagi

今回の方針

  • このサイトはブログサイトのため、lastmodは記事ページでのみ設定する
  • changefreq, priorityは設定しない
このスクラップは2024/02/11にクローズされました