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).