ax.SEO
🐱 🦊 🐼 🦝 🐰 🦉
Кто сегодня с нами? 🐾

Животные меняются при загрузке страницы

Главная / Блог / SEO‑проверка headless CMS: как обеспечить индексацию статей без традиционных страниц

SEO‑проверка headless CMS: как обеспечить индексацию статей без традиционных страниц

Чек‑лист, таблицы ошибок и пошаговый план помогут гарантировать индексацию статей в headless CMS через статические URL, мета‑данные, sitemap и robots.
🐱
Читать проще с подсказками

Карточки, чек-листы, таблицы и примеры помогают быстро найти нужный ответ.

✅ чек-листы 📈 SEO-практика ⚡ быстро

Headless CMS — футуристический подход к управлению контентом, но поисковикам это может стать «потенциальной ловушкой» из‑за отсутствия статических страниц. В этой статье вы получите практический чек‑лист, таблицы ошибок и пошаговый план, чтобы гарантировать, что ваши статьи видны поисковым системам.

Чтобы статьи в headless CMS индексировались, нужно убедиться, что контент доступен в виде статических URL, правильно настроены мета‑данные, sitemap, robots, canonical, и что API‑эндпойнты не блокируются. Далее – пошаговый чек‑лист.

Короткий ответ

Headless CMS отдаёт контент через API, но поисковики ожидают полноценный HTML‑ответ. Без правильной структуры страницы индексация падает, а статьи остаются «невидимыми» для поисковиков.

Что проверить:

  • HTTP‑статус ответа (200 / 301 / 404 / 5xx) – все статьи должны отдавать 200.
  • Наличие <title>, <meta name="description"> и уникальных заголовков H1.
  • Canonical‑тег: он должен указывать на «чистый» URL статьи, без параметров.
  • Robots‑тег и robots.txt: убедитесь, что не блокируется /* или /api/.
  • Содержимое sitemap.xml – все статьи должны присутствовать.
  • Структурированные данные (JSON‑LD) с типом Article и полями headline, datePublished, author.
  • Отсутствие дублирующих URL (например, /article?id=123 и /article/123).
  • Проверка на noindex в meta‑тегах (отключено).

Частые ошибки:

  • Отсутствие <head> в клиентском рендеринге – поисковики не видят метатеги.
  • Неправильный canonical, указывающий на динамический URL с параметрами.
  • Блокировка /api/ в robots.txt, из‑за чего страницы генерируются, но не индексируются.
  • Отсутствие sitemap.xml или неполный перечень статей.
  • Отсутствие или неверный JSON‑LD – лишняя возможность потерять богатый сниппет.
  • Проблемы с кэшированием: статический контент меняется, но сервер отдаёт старый HTML.

Что сделать:

  1. Включить SSR или pre‑renderинг для каждой статьи, чтобы поисковики видели полную <head>.
  2. Генерировать sitemap.xml автоматически при публикации новых статей.
  3. Проверить robots.txt на наличие строк вида Disallow: /api/ и удалить их.
  4. Установить canonical на чистый путь: <link rel="canonical" href="https://example.com/articles/123">.
  5. Добавить JSON‑LD в шаблон статьи:
    {
      "@context": "https://schema.org",
      "@type": "Article",
      "headline": "Заголовок статьи",
      "datePublished": "2024-05-08",
      "author": {
        "@type": "Person",
        "name": "Имя автора"
      }
    }
  6. Проверить статус кодов через инструменты вроде curl -I https://example.com/articles/123 и убедиться в 200.
  7. Сразу после исправлений отправить обновлённый sitemap в Google Search Console и проверить индексацию через site:example.com/articles.

Вывод: Главная задача – предоставить поисковикам полноценный HTML‑ответ с корректными метатегами и canonical, а также гарантировать, что статьи присутствуют в sitemap и не блокируются robots.txt. Это единственный способ обеспечить индексацию в headless среде.

# robots.txt
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

# sitemap.xml (пример)


  
    https://example.com/articles/123
    2024-05-08
    daily
    0.8
  
  

Путь URL Статус код Ключевой тег
/articles/123 200 Canonical → /articles/123
/api/articles/123 404

Понимание headless CMS и индексации

Headless CMS отделяет хранение и управление контентом от фронтенд‑приложения. Вместо того чтобы отдавать готовый HTML‑страницы, он выдаёт JSON‑ответы, которые клиент‑приложение рендерит на лету. Это открывает гибкость, но одновременно скрывает контент от поисковых ботов, если не настроить серверный рендеринг, прогрессивную загрузку или специальные мета‑данные.

Что проверить:

  • Наличие robots.txt с директивой Allow: / и исключением Disallow: /api/ (если API используется).
  • Отправка sitemap.xml, содержащей URL‑адреса, которые доступны для индексации.
  • Коды ответа: 200 для страниц, 301/302 отредиректов, 404/410 для удалённого контента.
  • Наличие noindex в meta‑тегах на страницах, которые не должны индексироваться.
  • Проверка скорости рендеринга через Structured Data Testing Tool и Render Test.

Частые ошибки:

  • Отказ от canonical при дублировании контента в разных форматах.
  • Неправильный Content-Type (например, application/json вместо text/html для страниц, видимых ботам).
  • Наличие robots meta‑тега noindex в шаблонах, которые не используют.
  • Отсутствие hreflang атрибутов при мультиязычных версиях.
  • Неправильная обработка редиректов из API‑эндпоинтов, ведущих к 404.

Что сделать:

  1. Внедрить серверный рендеринг (SSR) или динамический прогрессивный рендеринг (SPA+Hydration) для ключевых страниц.
  2. Создать и регулярно обновлять sitemap.xml, включив в него только публичные URL‑адреса.
  3. Оптимизировать robots.txt так, чтобы поисковые боты имели доступ к API‑эндпоинтам, возвращающим контент.
  4. Использовать Link: robots.txt в HTTP‑заголовках, чтобы гарантировать доступ.
  5. Проверять индексацию через Search Console, используя «URL inspection» для статей, опубликованных в headless‑системе.

Вывод: В headless CMS индексация возможна, но требует явной настройки серверного рендеринга, правильной конфигурации robots, sitemap и HTTP‑заголовков. Ошибки в этих областях чаще всего приводят к потере видимости статей в поиске.

Ключевые параметры проверки

Headless CMS‑модели разрушают привычную структуру страниц, но поисковая индексация остаётся критической. Если API‑эндпойнты, URL‑схема или мета‑данные не оптимизированы, поисковые роботы просто не найдут контент. Ниже – конкретный чек‑лист, ошибки и пошаговый план действий, которые гарантируют, что каждый «виртуальный» пост попадёт в выдачу.

Что проверить:

  • URL‑структура – каждое API‑ответ содержит «canonical» URL (например, /articles/12345), без лишних параметров.
  • API‑эндпойнты – доступны по HTTPS, поддерживают GET и возвращают 200 OK при корректном запросе.
  • Мета‑данные – в JSON‑LD присутствует article тип, headline, datePublished и author.
  • Sitemap – XML‑файл содержит ссылки на все публичные эндпойнты, обновляется автоматически.
  • Robots.txt – не блокирует API‑путь, содержит директивы Allow и Sitemap.
  • Canonical – в каждом ответе link rel="canonical" указывает на основной URL.
  • Коды ответа404 для несуществующих записей, 301/302 только при перенаправлениях.
  • Скорость – время ответа ≤200 мс, GZIP включён, кеширование через Cache‑Control.

Частые ошибки:

  • Параметризованные URL (например, ?utm_source=…) в sitemap.
  • Отсутствие canonical в API‑ответах.
  • Служебные эндпойнты (admin, debug) не исключены из robots.
  • Неправильные коды (404 вместо 410, 500 при простом отсутствии записи).
  • Отсутствие кеша, что приводит к медленной выдаче.

Что сделать:

  1. Проверьте robots.txt: User-agent: * + Allow: /api/articles/ + Sitemap: https://example.com/sitemap.xml.
  2. Создайте sitemap.xml через скрипт, который парсит базу и генерирует <url> с <loc> и <lastmod>.
  3. В каждом API‑ответе включите link rel="canonical" и meta name="robots" content="index,follow".
  4. Настройте Cache‑Control: max-age=3600, stale-while-revalidate=60 и включите GZIP.
  5. Проверьте коды ответа с помощью Postman или curl: curl -I https://example.com/api/articles/12345.
  6. Сделайте нагрузочный тест, измерив время отклика в среде, близкой к продакшену.

Вывод: В headless CMS индексация сводится к правильной конфигурации API и метаданных. Чек‑лист минимизирует риск «невидимости» контента, а быстрый ответ и корректные коды гарантируют, что поисковые роботы увидят и проиндексируют статьи.

Пошаговая инструкция проверки

В headless CMS контент отдаётся как JSON/HTML‑snippet, а не как статичная страница. Это меняет подход к проверке индексации, но базовые принципы остаются теми же: убедиться, что Google видит URL, что он возвращает правильный код, что sitemap, robots, canonical и Core Web Vitals соответствуют требованиям.

Что проверить:

  • URL‑схема (корректность, отсутствие лишних параметров)
  • Публичный доступ к sitemap.xml и robots.txt
  • Наличие canonical и его соответствие canonical‑у в ответе
  • Код ответа 200/301/302/404/500 и отсутствие 5xx
  • Скорость загрузки first-contentful-paint и first-meaningful-paint
  • Core Web Vitals: LCP

Частые ошибки:

  • URL с динамическими параметрами, которые нельзя проиндексировать (например, ?session=…)
  • robots.txt, блокирующее sitemap или ключевые разделы
  • canonical, указывающий на другой домен или на страницу‑пустышку
  • Код ответа 404 для статей, которые уже существуют в базе
  • Отсутствие rel="preload" для критических ресурсов, ухудшающее LCP
  • Неправильный viewport‑мета‑тег, вызывающий CLS

Что сделать:

  1. Сгенерировать sitemap в формате https://example.com/sitemap.xml и убедиться, что в Google Search Console он проиндексирован.
  2. Проверить robots.txt: User-agent: * + Disallow: только для нужных путей. Включить Allow: / для контента.
  3. Для каждого URL проверить curl -I https://example.com/article/123 – код 200, заголовок Content-Type: text/html, отсутствие X-Robots-Tag: noindex.
  4. Внутри HTML‑snippet вставить <link rel="canonical" href="https://example.com/article/123"> и убедиться, что он совпадает с URL‑адресом в адресной строке.
  5. Запустить Lighthouse/Chrome DevTools и зафиксировать LCP, FID, CLS. Если показатели хуже порогов, оптимизировать изображения, критический CSS и JS.
  6. Обновить robots.txt, если он блокирует sitemap: Sitemap: https://example.com/sitemap.xml.
  7. Проверить, что в headless CMS включена настройка «Allow indexing» для каждого статуса публикации.
Проверяемый элементКритерийПроблемаРешение
URLСтатический путь, без лишних параметровДинамические query‑параметрыПеренаправление на чистый URL
robots.txtРазрешает sitemap и контентDisallow на нужные путиУбрать Disallow или добавить Allow
canonicalУказывает на текущий URLПоказывает другой доменИсправить href
Код ответа200/301/302 без 5xx404 для существующей статьиПроверьте статус публикации
Core Web VitalsLCP Плохие показателиОптимизировать ресурсы, lazy‑load

Вывод: В headless CMS индексация зависит от того, как правильно настроить URL‑схему, sitemap, robots, canonical, коды ответа и Core Web Vitals. Проверка этих элементов в Search Console, Lighthouse и через curl‑запросы позволяет быстро выявить и исправить ошибки, гарантируя, что статьи видны и ранжируются поисковыми системами.

Таблица типичных ошибок

Headless CMS‑модель отделяет контент от представления, поэтому индексация зависит от того, как сервер отдаёт готовый HTML или JSON‑payload. Ошибки в этой цепочке чаще всего приводят к тому, что поисковые роботы видят только «пустую» страницу или «неправильный» код, а значит, контент теряется в выдаче.

Что проверить:

  • Наличие статического index.html или SSR‑ответа со всеми метатегами.
  • Корректность robots.txt: нет ли блокировки /* или Disallow: /api/ лишний раз.
  • Включён ли Content-Type: text/html в заголовках, если отдаётся HTML‑сериализованный контент.
  • Наличие canonical и hreflang в SSR‑ответе.
  • Отсутствие JavaScript‑гипертекстовых переходов, которые не рендерятся при первой загрузке.
Ошибка Влияние Как исправить
Отсутствие SSR‑HTML для ключевых страниц Проблема «headless» приводит к тому, что поисковики видят только index.html без контента, трафик падает, страницы не индексируются. Включить серверную рендеринг‑плагин (Next.js, Nuxt, Gatsby) или использовать Prerender.io для генерации статических копий.
Неправильный Content-Type (JSON вместо HTML) Googlebot не распознаёт страницу как HTML, метатеги игнорируются, контент не индексируется. Установить заголовок Content-Type: text/html в ответе, если отдаёте предварительно сгенерированный HTML.
Блокировка robots.txt ключевых путей Бот не может получить контент, страницы остаются вне индекса. Разместить в robots.txt правило Allow: /content/ и проверить через Robot‑Testing‑Tool.
Отсутствие canonical на динамических маршрутах Дублирование URL приводит к разбросу ссылочного веса, снижение позиции. Генерировать <link rel="canonical" href="…"> в SSR‑ответе и проверять через Search Console.
JavaScript‑переходы без fallback‑HTML Клики на ссылки не приводят к реальному URL, бот остаётся на «пустой» странице. Добавить атрибут rel="prefetch" и link rel="canonical" в статическом шаблоне, использовать Next.js Link с prefetch.
Неправильные HTTP‑статусы (4xx/5xx) при SSR‑запросах Бот видит ошибку, страница не индексируется, возможны падения индекса. Внедрить обработку ошибок в сервере, возвращать 200 с 404-страницей в теле, если контент отсутствует.

Что сделать:

  1. Запустить curl -I https://example.com/articles/123 и проверить заголовки Content-Type и Status.
  2. Включить next/head в каждом компоненте, чтобы метатеги генерировались при SSR.
  3. Создать robots.txt с правилами Allow: /articles/ и Disallow: /api/.
  4. Добавить link rel="canonical" и hreflang в SSR‑шаблон, использовать динамический href.
  5. Внедрить preconnect и prefetch для ключевых ресурсов, чтобы ускорить загрузку контента.
  6. Проверить в Search Console, что страницы индексируются, и устранить любые обнаруженные ошибки.

Вывод: Индексация в headless CMS зависит от того, как сервер рендерит контент и какие заголовки отправляются. Ошибки в SSR, Content‑Type, robots.txt и canonical приводят к потере страниц в поиске. Проверка статуса, правильная настройка заголовков и fallback‑HTML обеспечивают, чтобы контент был виден и ценен для поисковых систем.

Практические рекомендации по исправлению

Headless CMS – это система, в которой контент хранится отдельно от фронтенда. Для того чтобы поисковые роботы видели статьи, нужно, чтобы API отдавал данные в формате, пригодном для индексации, а клиент генерировал страницы либо статически, либо через серверный рендеринг. В итоге поисковик получает полноценный HTML‑фрагмент, а не просто запрос к API.

Что проверить:

  • API‑ответ содержит Content-Type: application/json и статус 200.
  • Содержит ключи title, description, canonical, image, author, published_at.
  • Фронтенд использует SSR/SSG и возвращает готовый HTML в 200 OK.
  • В sitemaps.xml перечислены все статические URL‑ы.
  • robots.txt допускает Allow: /blog/ и не блокирует /*.
  • Микроразметка JSON‑LD присутствует в заголовке каждой статьи.

Частые ошибки:

  • Проблемы с CORS‑заголовками: Access‑Control‑Allow‑Origin: * отсутствует, роботы не могут получить данные.
  • Отсутствие canonical приводит к дублированию URL‑ов.
  • Серверный рендеринг отключён, страницы выдаются как SPA‑содержимое без meta‑тегов.
  • Неправильный robots.txt блокирует blog/*.
  • JSON‑LD с неверными свойствами (author как строка, а не объект) нарушает схему.

Что сделать:

  1. Настройте API‑эндпоинт: /api/articles/{id} возвращает JSON с полями, перечисленными выше.
  2. Включите SSR/SSG в фреймворке (Next.js, Nuxt, Astro). На этапе сборки генерируйте статические страницы из API‑данных.
  3. Сформируйте sitemap.xml, используя список статей из CMS, обновляемый при каждом изменении.
  4. Добавьте robots.txt: User-agent: * Allow: /blog/ Disallow: /admin/.
  5. Вставьте JSON‑LD в head каждой статьи:
    {
      "@context": "https://schema.org",
      "@type": "Article",
      "headline": "Example Title",
      "description": "Short summary",
      "image": "https://example.com/img.jpg",
      "author": {
        "@type": "Person",
        "name": "Author Name"
      },
      "datePublished": "2024-05-08",
      "url": "https://example.com/blog/example-title"
    }
  6. Проверьте индексацию через Search Console: запрос site:example.com/blog/ должен вернуть все статьи.
Метод Плюсы Минусы
SSR Полностью готовый HTML на каждый запрос Более высокая нагрузка на сервер
SSG Скорость, кэширование, статические файлы Требует пересборки при каждом обновлении контента
API + SPA Гибкость, разделение слоёв Не подходит для SEO без SSR/SSG

Вывод: Чтобы headless CMS индексировалась, API должен отдавать структурированный JSON, фронтенд – генерировать страницы через SSR/SSG, а в каждой статье присутствовать корректная микроразметка и canonical. Периодический аудит sitemap и robots‑файла гарантирует, что поисковики видят весь контент без блокировок.

Контрольные точки после внедрения

Headless CMS скрывает контент за API‑слоем, поэтому индексация, позиции и трафик требуют «проверки через фронтенд». Важнее, чтобы каждая статья имела собственную URL‑страницу, корректный meta‑тег, sitemap‑запись и доступность для поисковых ботов.

Что проверить:

  • Публичный доступ к robots.txt – отсутствие блокировок ключевых каталогов.
  • Наличие canonical в каждой статье – ссылка на оригинальный URL, если есть дубли.
  • Правильный HTTP‑код 200 для статей и 404/410 для удалённых.
  • Отправка sitemap.xml в Google Search Console и Yandex Webmaster.
  • Наличие structured data (Article schema) в JSON‑LD.
  • Отслеживание позиций через API поисковика (например, Google Search Console API).
  • Сравнение органического трафика в GA4 с данными Search Console.
  • Регулярные аудиты (каждые 3 месяца) – проверка новых статей, изменений в URL и метатегах.

Частые ошибки:

  • Отсутствие robots.txt или блокировка /api/ путей, где лежат HTML‑страницы.
  • Отсутствие canonical → дублирование контента в разных URL.
  • Неправильный HTTP‑код (302 вместо 200) при генерации статей.
  • Необновлённый sitemap – новые статьи не попадают в индексацию.
  • Отсутствие structured data → потеря возможности отображения rich snippets.
  • Неправильная настройка viewport и медленная загрузка – снижение CTR.
  • Отсутствие переходов из внутренних ссылок – слабый сигнал релевантности.

Что сделать:

  1. Проверь robots.txt – убедись, что Disallow: /api/ не блокирует страницы с контентом. Пример:
User-agent: *
Disallow: /api/
Allow: /articles/
Sitemap: https://example.com/sitemap.xml
  1. Добавь canonical в каждый шаблон статьи:
<link rel="canonical" href="https://example.com/articles/unique-slug" />
  1. Размести JSON‑LD в head каждой статьи:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Заголовок статьи",
  "author": { "@type": "Person", "name": "Автор" },
  "datePublished": "2024-05-08"
}
</script>
  1. Отправь обновлённый sitemap в консоли поисковика и проверь статус индексации.
  2. Запланируй ежемесячный экспорт позиций из Search Console и сравни с GA4.
  3. Проверь скорость загрузки каждой статьи в PageSpeed Insights – цель 90+.
  4. Настрой уведомления о 404/410 в Search Console.
  5. Проводи аудит раз в 3 месяца: проверка новых статей, канонических ссылок, структурированных данных и скорости.
ПроверкаКак проверитьИнструмент
Доступность URLПинг, curlcurl, Postman
HTTP‑кодcurl -Icurl
RobotsОткрыть robots.txtБраузер
SitemapОтправить в GSCGoogle Search Console
Structured dataRich Results TestGoogle Rich Results Test
ПозицииAPI запросыSearch Console API
ТрафикСравнение с Search ConsoleGA4, Search Console

Вывод: Headless CMS не меняет фундаментальных правил индексации, но требует чёткого контроля URL‑структуры, метатегов и API‑сигналов. Регулярные проверки и аудит – ключ к тому, чтобы каждая статья оставалась видимой и конкурентоспособной в поиске.

Частые ошибки при работе с headless CMS

Headless‑CMS не выводит контент в виде готовых страниц, поэтому индексация зависит от того, как вы генерируете URL‑ы, отправляете карты сайта и открываете API‑эндпоинты. Любая «потеря» информации о структуре сайта сразу отразится на видимости статей в поиске.

Что проверить:

  • Структура URL‑ов соответствует семантике контента.
  • В каждом ответе содержится корректный canonical.
  • Файл sitemap.xml обновляется при каждом изменении.
  • API‑эндпоинты доступны без блокировок robots.txt и CSP.
  • HTTP‑коды ответа отражают реальное состояние страницы (200, 301, 404, 500).

Частые ошибки:

  • Проблемные URL‑ы: дубли, лишние параметры, «/index.html» в конце.
  • Отсутствие canonical либо ссылок на саму страницу.
  • Старый sitemap, в котором пропущены новые статьи.
  • Блокировка API через Disallow: /api/ или CSP‑политику.
  • Неправильные коды: 301 для динамических страниц, 404 вместо 200 при ошибках в шаблоне.

Что это значит на практике? Когда поисковый бот получает «плохую» ссылку, он не может построить карту сайта, а значит и не увидит новых статей. Блокировка API лишает индексацию всех динамических ресурсов, которые формируют страницы.

Почему это влияет на SEO? Поисковый робот полагается на URL‑ы, карты сайта и коды ответа, чтобы определить, какие страницы он должен индексировать и как часто. Ошибки в этих элементах приводят к пропуску контента, дублированию и потере ранжирования.

Как проверить?

  • Проверьте URL‑ы через curl -I и убедитесь, что они не содержат лишних параметров.
  • Используйте curl -I для проверки canonical в заголовке Link.
  • Сгенерируйте sitemap.xml и проверьте его валидность в Google Search Console.
  • Отправьте запрос к API‑эндпоинту с curl -H 'User-Agent: Googlebot' и убедитесь, что ответ не блокируется.
  • Проверьте коды ответа через curl -I и сравните их с ожидаемыми.

Что сделать:

  1. Устраните лишние параметры из URL‑ов и примените постоянные редиректы 301 для старых адресов.
  2. Добавьте в шаблон вывод <link rel="canonical" href="…"/> со ссылкой на актуальную страницу.
  3. Настройте автоматический генератор sitemap.xml (например, через CMS‑плагин) и подключите его к Google Search Console.
  4. Проверьте robots.txt и убедитесь, что строки Disallow: /api/ отсутствуют; если нужна защита, используйте Allow для нужных эндпоинтов.
  5. Проверьте и исправьте коды ответа: 404 → 200, 301 → 200 там, где необходимо, и 500 → 200 при отсутствии ошибок сервера.
Ошибка Влияние Решение
Неправильные URL‑ы Потеря индексации, дублирование Постоянные редиректы 301, очистка параметров
Отсутствие canonical Потенциальный дублирующий контент Добавить canonical в шаблон
Старый sitemap Пропущенные новые статьи Автоматический генератор и отправка в GSC
Блокировка API Невозможность индексировать динамический контент Разрешить API в robots.txt и CSP
Неправильные коды ответа Индексатор может игнорировать страницу Корректировка кода ответа в сервере
# Пример robots.txt для headless‑CMS
User-agent: *
Allow: /blog/
Disallow: /api/
Allow: /api/content/
Sitemap: https://example.com/sitemap.xml

Вывод: Ошибки в URL‑ах, canonical, sitemap, API‑блокировках и HTTP‑кодах — самые частые причины потери индексации в headless‑CMS. Регулярный чек‑лист, автоматизация генерации sitemap и правильная настройка доступа к API позволяют держать контент в поиске без потерь.

Вопросы и ответы

Как проверить, что статьи индексируются в Google?

1️⃣ Введите в Google: site:yourdomain.com/slug-статьи. 2️⃣ Откройте Google Search Console → Индекс → Страницы. 3️⃣ Убедитесь, что URL‑адреса находятся в статусе «Индексировано». <ax-content-card><ul><li>Если URL не найден – проверьте robots.txt и meta‑tag noindex.</li><li>Если виден, но статус «Не проиндексировано» – проверьте наличие ошибок сканирования.</li></ul></ax-content-card>

Что делать, если в Search Console показывается «Нет доступных страниц»?

Проверьте, что ваш headless CMS генерирует серверный рендеринг (SSR) или статический экспорт (SSG). Если только клиентский рендеринг, добавьте <script type="application/ld+json">JSON‑LD</script> с ключевыми словами и структуру данных. <ax-code-block># Пример JSON‑LD { "@context": "https://schema.org", "@type": "Article", "headline": "Заголовок статьи", "author": "Автор" } </ax-code-block> После этого повторите проверку в Search Console.

Как настроить canonical для динамических страниц?

В head‑разметке каждой статьи добавьте <link rel="canonical" href="https://yourdomain.com/slug-статьи">. Для динамических маршрутов используйте компонент <Head> в Next.js: <ax-code-block>import Head from 'next/head'; export default function Post({slug}) { return ( <Head> <link rel="canonical" href={`https://yourdomain.com/${slug}`} /> </Head> ); } </ax-code-block> Это предотвращает канонические дубли и сообщает поисковикам, какой URL считать основным.

Нужно ли использовать SSR/SSG в headless CMS?

Да, если ваша аудитория ищет контент через поисковики. SSR/SSG гарантируют, что контент виден сканерам. Если ваш сайт полностью одностраничный и использует динамический роутинг, добавьте <meta name="robots" content="index,follow"> и убедитесь, что данные загружаются до рендеринга. В противном случае Google может не индексировать страницы.

Как убедиться, что sitemap обновляется автоматически?

Включите генерацию sitemap в CI/CD: <ax-code-block>npm run build && node scripts/generate-sitemap.js </ax-code-block> В скрипте «generate-sitemap.js» используйте API headless CMS для получения всех slug‑ов, сформируйте XML‑файл и разместите его в публичной папке. После публикации обновите URL в Search Console через «Обновить карту сайта».

Как проверить, что Google видит контент, а не JavaScript‑загруженную часть?

Используйте инструмент «Проверка URL» в Search Console. Выберите «Показать как Google». Если в отчёте виден полностью отрендеренный HTML, значит контент доступен. Если виден только скелет страницы, включите SSR/SSG или добавьте <noscript> fallback.

Что делать, если Search Console показывает «Нет доступных страниц» для конкретного slug?

Проверьте, не блокирует ли robots.txt этот путь: <ax-code-block>User-agent: * Disallow: /api/ Disallow: /admin/</ax-code-block> Убедитесь, что slug не попадает в «Disallow». Также проверьте, нет ли динамического перенаправления 301 на «не найдено».

Как оптимизировать мета‑теги для headless CMS?

В каждом посте генерируйте уникальные <title> и <meta name="description">. Используйте ключевые слова, но не превышайте 60 и 160 символов соответственно. Добавьте Open Graph и Twitter Card теги для соцсетей: <ax-code-block><meta property="og:title" content="Заголовок" /> <meta property="og:description" content="Описание" /> </ax-code-block>

Можно ли использовать динамические URL без trailing slash и как это влияет на SEO?

Да, но важно поддерживать консистентность. Если вы решите убрать trailing slash, настройте 301‑перенаправление с slash на без него. Это предотвращает дублирование контента и сохраняет ссылочный вес. В Search Console проверьте, что все URL находятся в одном формате.

Как убедиться, что карта сайта не содержит устаревших ссылок?

Включите в скрипт генерации sitemap проверку статуса публикации: если статья помечена как «draft» или «archived», исключите её из карты. Добавьте поле <lastmod> для каждой страницы, чтобы Google понимал, когда она обновилась. <ax-content-table><thead><tr><th>Поле</th><th>Описание</th></tr></thead><tbody><tr><td>lastmod</td><td>Дата последнего обновления</td></tr></tbody></ax-content-table>

Что делать, если я использую многоязычный headless CMS и не вижу индексацию переводов?

Убедитесь, что hreflang‑теги корректно прописаны: <ax-code-block><link rel="alternate" hreflang="ru" href="https://yourdomain.com/ru/slug" /> <link rel="alternate" hreflang="en" href="https://yourdomain.com/en/slug" /> </ax-code-block> Проверьте, что sitemap содержит отдельные URL для каждой локали и что они доступны сканерам.

Как проверить, что Google не игнорирует meta‑tag noindex на динамических страницах?

В Search Console откройте «Покрытие» → «Исключения» → «noindex». Если ваша страница находится в списке, убедитесь, что тег действительно присутствует в финальном HTML. В headless CMS настройте условие: <ax-code-block>{isDraft && <meta name="robots" content="noindex,follow" />}</ax-code-block> Это гарантирует, что только черновики не индексируются.

Важно

Материал носит информационный характер. Перед внедрением рекомендаций учитывайте нишу, регион, конкурентов, текущее состояние сайта и бизнес-цели проекта.

Редакционная проверка

Материал подготовлен и проверен редакцией AX.SEO

Проверено
AX
Автор Редакция AX.SEO
Digital-редактор 7 лет опыта

Редакция AX.SEO готовит материалы о SEO, разработке, AI, аналитике, маркетинге и росте digital-проектов.

Проверил Александр SEO
SEO-специалист 10 лет опыта

Проверяет практическую применимость рекомендаций, корректность терминов и соответствие материала digital-тематике.

AX.SEO объясняет digital простым языком: без магии, пустых обещаний и “секретных кнопок роста”.