Legan Studio
Все статьи
~ 6 мин чтения

Robots, sitemap, RSS, JSON-LD: SEO-обвязка сайта

Технический SEO-минимум для современного сайта на Next.js. Что генерировать автоматически и как не сломать индексацию.

  • сайт
  • SEO

«SEO» в большинстве голов — это про ключевые слова и тексты. На деле половина результата — техническая обвязка: правильные мета-теги, robots, sitemap, разметка Schema.org. Без них хороший контент не доходит до поисковика. Разберём минимум, который должен быть на любом сайте.

robots.txt

Файл лежит по /robots.txt, открывает или закрывает обход сайта поисковиками. Минимум: разрешить полезные краулеры (Yandex, Googlebot, Bingbot), запретить служебные пути (/api/, /admin/, /_next/).

В Next.js 15 файл генерируется через app/robots.ts. Это удобно: контент зависит от окружения (на staging закрываем всё), Next автоматически кладёт файл в правильное место.

Отдельная история — AI-краулеры (GPTBot, ClaudeBot, CCBot, PerplexityBot). Их можно разрешить, если хотите попасть в обучающие данные и AI-ответы, или запретить, если содержание уникально и его ценность падает при пересказе LLM.

sitemap.xml

Карта сайта в формате XML — список всех публичных URL с приоритетом и датой обновления. Поисковики используют её, чтобы быстрее находить новые и обновлённые страницы.

В Next.js 15 — app/sitemap.ts, экспортирует функцию, возвращающую массив объектов с url, lastModified, changeFrequency, priority. Для блога подтягиваем список постов, для каталога — товары, для статических страниц — фиксированный список.

Правило: один sitemap на 50000 URL и менее 50 МБ. На крупных каталогах разбиваем на несколько и собираем sitemap-index. Адрес sitemap указываем в robots.txt — поисковик найдёт сам.

RSS / Atom для блога

RSS не умер, и Yandex по-прежнему индексирует его быстрее, чем sitemap. Для блогов и новостных разделов это must-have. Дополнительный плюс — пользователи в Feedly и аналогах подписываются и регулярно возвращаются.

Реализация: статический feed.xml или динамический роут с правильным Content-Type. Включаем последние 20–30 материалов с заголовком, описанием, датой, ссылкой и автором. Картинку и полный текст по желанию.

JSON-LD: Schema.org

Структурированные данные — самый важный элемент технического SEO в 2026. Именно они дают rich snippets в выдаче: рейтинг, цена, FAQ, хлебные крошки.

Минимальный набор для коммерческого сайта: Organization (на главной), WebSite с SearchAction, BreadcrumbList на каждой странице, FAQPage где есть FAQ, Product/Offer в каталоге, Article в блоге.

В Next.js рендерим JSON-LD на сервере (<script type="application/ld+json">), не клиентом. Серверный рендер гарантирует, что краулеры увидят разметку даже без выполнения JS.

Open Graph и Twitter Cards

OG-теги управляют тем, как ссылка выглядит при шаринге в соцсетях и мессенджерах. Без них в превью либо ничего не видно, либо случайный кусок текста — и кликабельность падает в разы.

Минимум: og:title, og:description, og:image, og:url, og:type. Картинка — 1200x630, оптимизированная (PNG или JPEG менее 300 КБ). Twitter Cards дублируют то же через twitter:* теги.

В Next.js — генерация через generateMetadata и app/opengraph-image.tsx. Edge-runtime рендерит превью динамически на лету, можно подставлять заголовок статьи и брендинг.

Канонические URL и hreflang

<link rel="canonical"> указывает поисковику основную версию страницы — спасает от штрафа за дубли (фильтры, UTM, разные сортировки). Ставим всегда, даже если кажется, что дублей нет.

hreflang — для мультиязычных и мультирегиональных сайтов. Указывает связь между языковыми/региональными версиями одной страницы. Yandex и Google используют это для показа пользователю правильной версии.

Скорость как SEO-фактор

Core Web Vitals — официальный фактор ранжирования с 2021. LCP менее 2.5 секунды, CLS менее 0.1, INP менее 200 мс. Сайт, не проходящий эти метрики, теряет позиции в выдаче на конкурентных запросах.

Next.js 15 со Server Components даёт CWV в зелёной зоне без ручной оптимизации. Главное — не убить это: тяжёлые сторонние скрипты, шрифты без font-display: swap, неоптимизированные картинки.

Типичные ошибки

noindex забыли убрать со staging-окружения после релиза — сайт пропадает из выдачи. Дубли страниц на разных URL без canonical. Sitemap содержит 500-страницы или 404. JSON-LD с ошибками валидации (Schema Markup Validator от Yandex и Rich Results Test от Google).

Проверяйте сайт после релиза через Yandex Webmaster и Google Search Console. Большинство технических проблем оба показывают в первые сутки после краула.

Итого

SEO-обвязка — это не «один день перед релизом», а система, которая собирается с самого старта. Robots, sitemap, RSS, JSON-LD, OG, hreflang, CWV — каждый элемент закрывает свою задачу. На современном Next.js всё это автоматизируется и ломается редко. Главное — не забыть проверить после релиза в Webmaster и Search Console.

Частые вопросы

Как правильно настроить robots.txt для сайта в 2026?

Файл лежит по /robots.txt, открывает или закрывает обход сайта поисковиками. Минимум: разрешить полезные краулеры (Yandex, Googlebot, Bingbot), запретить служебные пути (/api/, /admin/, /_next/). В Next.js 15 файл генерируется через app/robots.ts. Это удобно: контент зависит от окружения (на staging закрываем всё), Next автоматически кладёт файл в правильное место. AI-краулеры (GPTBot, ClaudeBot, CCBot, PerplexityBot) можно разрешить для попадания в AI-ответы или запретить для уникального контента.

Зачем нужен sitemap.xml и как его делать?

Карта сайта в формате XML — список всех публичных URL с приоритетом и датой обновления. Поисковики используют её, чтобы быстрее находить новые и обновлённые страницы. В Next.js 15 — app/sitemap.ts, экспортирует функцию, возвращающую массив объектов с url, lastModified, changeFrequency, priority. Правило: один sitemap на 50000 URL и менее 50 МБ. На крупных каталогах разбиваем на несколько и собираем sitemap-index. Адрес sitemap указываем в robots.txt — поисковик найдёт сам.

Какие схемы JSON-LD обязательны для коммерческого сайта?

Минимальный набор: Organization (на главной), WebSite с SearchAction, BreadcrumbList на каждой странице, FAQPage где есть FAQ, Product/Offer в каталоге, Article в блоге. Структурированные данные — самый важный элемент технического SEO в 2026. Именно они дают rich snippets в выдаче: рейтинг, цена, FAQ, хлебные крошки. В Next.js рендерим JSON-LD на сервере (script type="application/ld+json"), не клиентом. Серверный рендер гарантирует, что краулеры увидят разметку даже без выполнения JS.

Зачем нужен RSS на современном сайте?

RSS не умер, и Yandex по-прежнему индексирует его быстрее, чем sitemap. Для блогов и новостных разделов это must-have. Дополнительный плюс — пользователи в Feedly и аналогах подписываются и регулярно возвращаются. Реализация: статический feed.xml или динамический роут с правильным Content-Type. Включаем последние 20–30 материалов с заголовком, описанием, датой, ссылкой и автором. Картинку и полный текст по желанию. Особенно важно для AI-краулеров и сторонних агрегаторов контента.

Как настроить Open Graph и Twitter Cards?

OG-теги управляют тем, как ссылка выглядит при шаринге в соцсетях и мессенджерах. Без них в превью либо ничего не видно, либо случайный кусок текста — и кликабельность падает в разы. Минимум: og:title, og:description, og:image, og:url, og:type. Картинка — 1200x630, оптимизированная (PNG или JPEG менее 300 КБ). Twitter Cards дублируют то же через twitter:* теги. В Next.js — генерация через generateMetadata и app/opengraph-image.tsx. Edge-runtime рендерит превью динамически.

Какие типичные ошибки SEO-обвязки?

Noindex забыли убрать со staging-окружения после релиза — сайт пропадает из выдачи. Дубли страниц на разных URL без canonical — поисковики штрафуют. Sitemap содержит 500-страницы или 404. JSON-LD с ошибками валидации (проверяйте Schema Markup Validator от Yandex и Rich Results Test от Google). Проверяйте сайт после релиза через Yandex Webmaster и Google Search Console. Большинство технических проблем оба показывают в первые сутки после краула. Также не забывайте про Core Web Vitals — это фактор ранжирования.