Sitemap

Строит sitemap.xml из коллекций Payload и статических страниц и хранит файлы в любом storage adapter.

Сообщество 3 MIT v0.1.0

Установка

pnpm add @seshuk/payload-plugin-sitemap

Описание

Плагин собирает XML-сайтмапы из контента Payload и обновляет их при изменениях. Источники перечисляются в массиве `sources`. Источник может быть коллекцией с шаблоном URL, например '/blog/:slug', статическим списком страниц или кастомной функцией, которая возвращает URL. На выходе получается индексный файл и дочерние sitemap, которые делятся при достижении 50 000 URL или 50 МБ. Для изображений добавляются записи image, а для локалей выводятся hreflang-альтернативы. Исключить страницу из сайтмапа или задать её priority можно прямо в документе. Плагин подписан на изменения документов. Создание, обновление или удаление документа в одной из перечисленных коллекций ставит в очередь job `sitemap-generate`. Job ждёт `jobs.regenerate.delay` (по умолчанию 5 минут), поэтому несколько правок попадают в один запуск. Генерируется XML, в коллекцию files загружаются только изменившиеся файлы через любой storage adapter проекта: S3, R2, Bunny, Vercel Blob, локальный диск или кастомную функцию upload. Опция `publish` отправляет изменившиеся файлы на публичные ключи CDN. Если запуск падает до переключения, предыдущие файлы остаются доступными, потому что публичные эндпоинты переключаются одной записью в скрытый глобал `sitemap-status`. В сайтмап попадают только опубликованные версии документов, а чтение идёт от имени анонимного посетителя (overrideAccess: false). Поэтому набор зависит от правила read коллекции. Если коллекция использует стандартный доступ Payload, она не попадёт в сайтмап, пока не разрешено публичное чтение или не задан `query: { overrideAccess: true }` в источнике. При использовании мультитенантного плагина все тенанты попадают в один сайтмап, если не задана опция `tenants`. Для генерации нужен job runner: `jobs.autoRun`, cron с командой `payload jobs:run` или отдельный worker. В админке появляются страница Sitemap и виджет на дашборде со статусом запусков, таблицей файлов и кнопкой Regenerate. Плагин работает с Payload 4 beta (линейка 1.x) на Next.js или TanStack Start и требует Node.js 24.15 или новее. Для линейки 0.x поддерживается Payload 3.83+.

О пакете

Имя пакета
@seshuk/payload-plugin-sitemap
Последняя версия
0.1.0
Размер
660 кБ
Лицензия
MIT
Последняя публикация
14 окт. 2026 г.

Ещё от maximseshuk

Профиль автора

Похожие плагины

Ещё в категории «SEO»