Nuxt-модуль

Sitemap

Четыре вида источников записей sitemap и нюансы их отдачи.

Sitemap: четыре источника записей

  • Статические роуты — модуль на build-time сканирует app/pages/**; динамические файлы ([id].vue) не включаются.
  • Статические записи — объекты { loc, lastmod?, changefreq?, priority? } прямо в sources.
  • URL-источники — строки ('/api/seo/urls'): роут дергает их $fetch'ем на каждый запрос.
  • Функции-источники — async () => SitemapSourceEntry[]. Сериализуются в серверный бандл через toString() в Nitro virtual-модуль, поэтому функция обязана быть самодостаточной: Nitro-глобалы ($fetch) доступны, замыкания на переменные nuxt.config — нет. Несериализуемая (bound/native) функция даст внятную ошибку сборки.

Нюансы: падение любого источника → console.warn + отдаём что собрали (неполный sitemap лучше 500). loc абсолютизируется против site.url, записи дедупятся, XML экранируется. Путь добавляется в nitro prerender — при nuxt generate источники опрашиваются на билде.

sitemap: { autoRoutes: false } убирает автоматические роуты, собранные из app/pages — используйте его вместе с явными sources, когда роутам нужны локальные префиксы или ручная курация (i18n / multi-app).