
Добавляем sitemap.xml в Next.js приложение
Важным элементом SEO-оптимизации является наличие файла sitemap.xml. В этой статье вы узнаете, что такое sitemap.xml и как добавить его в свое приложение на Next.js.
Что такое sitemap.xml?
Sitemap.xml - это файл формата Sitemaps XML format, который сообщает поисковым системам (например Google или Yandex), какие страницы есть на вашем сайте и как часто они обновляются.
Этот файл должен находиться в корневой папке вашего сайта, и обычно доступен по адресу:
Например, sitemap.xml этого блога лежит по адресу https://alexeybaranov.dev/sitemap.xml и выглядит следующим образом:
Более подробную информацию о том как как поисковые системы обрабатывают файлы sitemap.xml можно найти в справке от Яндекса или документации Google.
Первый способ: Добавляем статический файл
Первый способ - очень простой. Next.js из коробки умеет отдавать статические файлы, например изображения, добавленные в папку public в корне проекта.
Этот же подход можно использовать для добавления файла sitemap.xml. Всё что необходимо сделать - добавить файл в папку public.
Подробнее про работу со статикой и папку public можно почитать в официальной документации Next.js.
Как видите, способ действительно очень простой, но подойдёт он вам только в случае, если у вас небольшой сайт, с редко меняющимся содержимым. В противном случае лучше прибегнуть к динамической генерации sitemap.xml.
Альтернативный способ добавления статического файла
Начиная с версии 13.3 Next.js умеет корректно обрабатывать статический файл sitemap.xml лежащий в корне папки app.
Подробнее в документации.
Второй способ: Динамическая генерация sitemap.xml
Для того чтобы динамически создавать файл sitemap.xml необходимо в папку app добавить файл robots.js или robots.ts, который будет возвращать объект типа MetadataRoute.Sitemap.
Данный код сгенерирует файл со следующим содержимым:
Генерация Image Sitemaps
Так же, начиная с 15 версии в Next.js есть встроенная возможность генерировать Image Sitemaps. Для этого надо всего лишь добавить свойство images (см. спецификацию) к странице.
В результате получим следующий файл:
Генерация Video Sitemaps
Так же, начиная с 15 версии в Next.js есть встроенная возможность генерировать Video Sitemaps. Для этого надо всего лишь добавить свойство videos (см. спецификацию) к странице.
В результате получим следующий файл:
Генерация локализованных Sitemaps
В Next.js есть встроенная возможность добавлять ссылки на версии страниц на другом языке при генерации sitemap.xml. Для этого надо всего лишь добавить свойство alternates (см. спецификацию) к странице.
В результате получим следующий файл:
Спецификация MetadataRoute.Sitemap
Вот полная спецификация MetadataRoute.Sitemap, взятая из официального репозитория на Github.
Альтернативные решения
Так же есть несколько альтернативных решений для генерации sitemap.xml в виде npm-пакетов. Например пакет next-sitemap.
Бонус: Валидация sitemap.xml
Для того чтобы удостовериться что содержимое sitemap.xml валидно и будет работать как и задумано, можно воспользоваться несколькими бесплатными инструментами:
На этом всё! 🎉
Подписывайтесь на мой Youtube канал, Telegram и на сообщество Вконтакте 🙂