Скрытый и динамический контент (табы, аккордеоны): индексируется ли он

«Уберём половину текста в аккордеоны и табы, чтобы страница выглядела чище» — звучит разумно с точки зрения дизайна, но регулярно превращается в SEO-катастрофу. Вопрос, который мне задают почти на каждом аудите: индексируется ли контент, спрятанный во вкладках, аккордеонах, спойлерах «читать далее» и подгружаемых по клику блоках? Ответ не бинарный: многое зависит от того, как именно скрыт контент — через CSS display:none, через JavaScript-вставку по событию или через ленивую подгрузку с сервера. Цена ошибки высока: можно потерять из индекса целые блоки ценного текста и не понять, почему страница не ранжируется по запросам, ответ на которые вроде бы есть. В этой статье я разберу, как Google и Яндекс относятся к скрытому контенту, какой вес имеет display:none, что происходит с lazy-подгружаемым и JS-вставляемым контентом, как проверить его индексацию и какие рекомендации дать по мобильной вёрстке, и закрою всё практическим чеклистом.

Контент в табах и аккордеонах: индексируется ли он

Начнём с главного и обнадёживающего факта: контент, который физически присутствует в исходном HTML-коде страницы, но визуально скрыт через CSS (например, неактивная вкладка таба или свёрнутый аккордеон), Google индексирует. Робот видит весь DOM, а не только видимую область экрана, поэтому текст внутри display:none или visibility:hidden попадает в индекс. Аналогично ведёт себя и Яндекс: если контент есть в коде, который отдаёт сервер, поисковик его прочитает. Так что сам факт сворачивания текста в аккордеон не делает его невидимым для индексации.

Однако есть важнейший нюанс — вес такого контента. Google неоднократно заявлял, что в мобильном индексе скрытый по умолчанию контент (за табами и аккордеонами) индексируется полноценно, потому что для мобильных интерфейсов это нормальный паттерн экономии места. Это критично: раз действует mobile-first indexing, именно поведение в мобильной версии определяет вес. На десктопе исторически были периоды, когда скрытому тексту придавали меньший вес, но в эпоху мобильного индекса аккордеоны на мобильных перестали быть проблемой — при условии, что контент в исходном коде.

Спойлеры «читать далее», которые просто раскрывают уже присутствующий в коде абзац, работают так же: текст в индексе. Опасность начинается там, где «читать далее» не разворачивает скрытый блок, а догружает его запросом к серверу или вставляет скриптом. Вот тут граница между «гарантированно проиндексируется» и «может потеряться» становится по-настоящему острой, и её нужно понимать в деталях.

Правило большого пальца: если контент есть в HTML, который отдаёт сервер, он проиндексируется независимо от CSS. Если контента в этом HTML нет и он появляется только после действий пользователя или скриптов — начинаются риски.

display:none и его реальный вес

Вокруг display:none накопилось много мифов. Развею главный: само по себе свойство display:none не является спам-сигналом и не ведёт к санкциям, если оно используется по назначению — для интерфейсных паттернов вроде табов, аккордеонов, мобильных меню, всплывающих подсказок. Поисковики прекрасно понимают, что современные интерфейсы динамичны, и не наказывают за нормальный UX. Санкции прилетают за клоакинг — когда через display:none прячут текст, напичканный ключами, который виден роботу, но никогда не показывается пользователю.

То есть вопрос не в технике, а в намерении. Скрытый текст, который пользователь может раскрыть кликом и который дублирует видимый смысл страницы, — это легитимный интерфейс. Скрытый текст, который пользователь раскрыть не может и который существует только для манипуляции релевантностью, — это нарушение, попадающее под фильтры. Как распознать и не нарваться на санкции за манипулятивные приёмы, я разбираю в материале про ускорение индексации сайта в Яндексе и Google, где затрагиваю и вопросы доверия к контенту.

Что касается веса: ключевой контент страницы — основной ответ на запрос, заголовки, важные смысловые блоки — я не рекомендую прятать по умолчанию ни на десктопе, ни на мобильных. Не потому, что он не проиндексируется, а потому, что скрытый текст с большей вероятностью хуже работает на поведенческие факторы (пользователь его не видит сразу) и в спорных случаях может получить чуть меньший приоритет. В аккордеоны и табы логично убирать вторичную информацию: подробные характеристики, FAQ, дополнительные условия — то, что углубляет страницу, но не является её сутью.

Способ скрытия контентаЕсть в HTML от сервера?Индексируется?
display:none в табе/аккордеонеДаДа, в мобильном индексе полноценно
Спойлер «читать далее» (раскрытие CSS)ДаДа
JS-вставка по клику (нет в исходном коде)НетРискованно, часто нет
Lazy-подгрузка AJAX по скроллу/кликуНетРискованно, зависит от рендеринга
Клоакинг (скрыт навсегда от пользователя)ДаИндексируется, но грозит санкциями
SSR-рендеринг динамического блокаДаДа, надёжно

Lazy-подгружаемый и JS-вставляемый контент

Самая опасная зона — контент, которого нет в исходном HTML и который появляется только после выполнения JavaScript. Google умеет рендерить JS: его краулер откладывает страницу во «вторую волну индексации», запускает рендеринг через Web Rendering Service и затем индексирует получившийся DOM. Но этот процесс не мгновенный, ресурсоёмкий и не гарантированный на 100% — особенно если скрипт ждёт действия пользователя. Контент, который вставляется по клику (например, текст вкладки догружается AJAX-запросом при переключении), робот может не получить вовсе, потому что он не кликает.

С Яндексом ситуация ещё консервативнее: его поддержка JavaScript-рендеринга исторически слабее и менее предсказуема, чем у Google. Поэтому контент, критичный для ранжирования в Яндексе, должен присутствовать в HTML, отдаваемом сервером, без зависимости от выполнения скриптов. Это общее правило JavaScript-SEO, которому я посвятил отдельный большой разбор про JavaScript SEO и продвижение SPA на React — там подробно про вторую волну индексации, гидрацию и подводные камни клиентского рендеринга.

Решение архитектурное: для важного контента использовать серверный рендеринг (SSR) или динамический рендеринг, чтобы робот сразу получал готовый HTML. Разницу между подходами и когда какой выбрать я разбираю в статье про SSR, CSR и динамический рендеринг. Принцип простой: если потеря контента из индекса недопустима — он должен быть в первичном HTML, а табы и аккордеоны должны лишь визуально управлять уже присутствующим текстом, а не догружать его.

Отдельно про ленивую загрузку. Lazy-load изображений и видео — полезная практика для скорости, но важно отличать её от ленивой загрузки текстового контента. Картинки с loading=»lazy» поисковики обрабатывают корректно, если у них есть атрибуты src/srcset в коде. А вот текст, догружаемый по скроллу через бесконечную ленту, робот может не доскроллить. Тонкости правильной реализации я описывал в гайде про lazy-load изображений и видео для SEO.

Как проверить, проиндексирован ли скрытый контент

Гадать не нужно — индексацию скрытого контента можно проверить точными методами. Самый быстрый — поиск по фрагменту: возьмите дословную фразу из скрытого блока (из аккордеона или таба), возьмите её в кавычки и поищите в Google и Яндексе с оператором site:вашдомен. Если страница находится по этой фразе — контент в индексе. Если нет, хотя страница давно проиндексирована, — это красный флаг.

Второй метод — инструмент проверки URL в Google Search Console. Запросите «Проверить страницу», посмотрите отрендеренный HTML и скриншот: то, что видит Googlebot после рендеринга, и попадёт в индекс. Если текста таба нет в отрендеренном HTML — значит, он подгружается по действию пользователя и в индекс не попадёт. Аналогичную проверку отрендеренного кода предоставляет и Яндекс.Вебмастер. Возможности консоли я подробно разбираю в полном гайде по Google Search Console.

Третий метод — просмотр исходного кода. Откройте «Просмотр кода страницы» (View Source) — это HTML до выполнения JS, тот самый, который наиболее надёжно индексируется. Сравните его с DOM в инструментах разработчика (Inspect) — это HTML после JS. Если ваш скрытый контент есть только во втором, но не в первом, его судьба зависит от рендеринга и в Яндексе он почти наверняка потеряется. Дополнительно полезно проверить отдачу страницы с отключённым JavaScript: что осталось — то и есть надёжный фундамент индексации.

  • Поиск точной фразы. «Дословный фрагмент из таба» + site:домен в Google и Яндексе.
  • Проверка URL в Search Console. Смотрим отрендеренный HTML и скриншот глазами Googlebot.
  • View Source против DOM. Контент в исходном коде надёжен, контент только в DOM — рискован.
  • Отключение JavaScript. Что осталось без JS — то и есть фундамент индексации.

Рекомендации по мобильной вёрстке

Поскольку действует mobile-first indexing, мобильная версия — это и есть та версия, которую индексирует поисковик. Отсюда главное предостережение: не давайте мобильной и десктопной версиям разный контент. Распространённая ошибка — на десктопе показывать полный текст, а на мобильных «ради краткости» отдавать урезанный HTML без части блоков. В результате в индекс попадает обеднённая мобильная версия, и страница теряет релевантность по запросам, которые раскрывались в вырезанном тексте.

Правильный подход: контент идентичен на всех устройствах, а табы и аккордеоны лишь управляют его отображением через CSS, не удаляя из кода. Адаптивная вёрстка (responsive) с одним HTML на все экраны — самый безопасный для SEO вариант, в отличие от отдельной мобильной версии на поддомене или динамической отдачи разного кода. Общие принципы безопасной адаптации я разбираю в материале про мобильную оптимизацию сайта.

С точки зрения UX и доступности аккордеоны на мобильных — благо: они сокращают бесконечную прокрутку и помогают пользователю быстро добраться до нужного раздела. Главное — реализовать их на нативных, доступных элементах (button с правильными aria-атрибутами), а не на догрузке по AJAX. Тогда вы получаете и компактный мобильный интерфейс, и полную индексацию, и доступность для скринридеров одновременно.

Скрывать контент визуально — нормально. Скрывать его от поискового робота технически — опасно. Разница между этими двумя ситуациями стоит вам позиций.

Типичные ошибки со скрытым контентом

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

  • Догрузка таба по клику через AJAX. Контента нет в исходном HTML — робот его не получает.
  • Разный контент на мобильной и десктопной версии. В mobile-first индекс попадает обеднённый вариант.
  • Весь основной текст спрятан в аккордеоны. Страница выглядит пустой и теряет в поведенческих факторах.
  • Скрытый текст с ключами для робота. Классический клоакинг — прямой путь под фильтры.
  • Бесконечная лента вместо пагинации. Робот не доскроллит до глубокого контента.
  • Полная зависимость от JS-рендеринга. Особенно фатально для Яндекса со слабой поддержкой JS.

Каждая из этих ошибок лечится одним принципом: критичный контент должен быть в HTML, который отдаёт сервер, идентичным на всех устройствах, а интерфейсные виджеты должны лишь управлять его показом. Если соблюсти это правило, табы и аккордеоны становятся вашими союзниками, а не источником потери трафика.

Чеклист: скрытый контент без потери индексации

Финальный практический чеклист, который стоит прогнать по каждому шаблону страницы со скрываемым контентом. Он защищает и от потери текста из индекса, и от случайного клоакинга.

  • Контент в исходном HTML. Текст табов и аккордеонов присутствует в View Source, а не только в DOM.
  • Идентичность версий. Мобильная и десктопная версии содержат одинаковый контент.
  • Основное — на виду. Ключевой ответ на запрос не спрятан по умолчанию.
  • Виджеты управляют, а не догружают. Табы/аккордеоны переключают видимость, а не делают AJAX-запросы.
  • Никакого клоакинга. Любой скрытый текст пользователь может раскрыть.
  • Проверка индексации. Точная фраза из скрытого блока находится через site: и кавычки.
  • SSR для динамики. Важный динамический контент рендерится на сервере.
  • Доступные элементы. Аккордеоны на button с aria-expanded, а не на кликабельных div.

Прогон этого чеклиста занимает считаные минуты на шаблон, но избавляет от самой обидной категории потерь — когда контент написан, оплачен и опубликован, но поисковик его попросту не видит.

Вывод: скрывайте умно

Скрытый и динамический контент — это не зло и не запрет, а инструмент, который требует понимания механики индексации. Контент в исходном HTML, скрытый через CSS в табах и аккордеонах, индексируется полноценно в мобильном индексе; контент, догружаемый по действию пользователя или зависящий от JS-рендеринга, — зона риска, особенно в Яндексе. Держите критичный текст в серверном HTML, не различайте мобильную и десктопную версии, не прячьте от пользователя то, что показываете роботу, и проверяйте индексацию точными методами — и тогда красивый компактный интерфейс не будет стоить вам позиций.

Если вы сомневаетесь, видит ли поисковик весь ваш контент, и хотите найти скрытые потери трафика, начните с диагностики — закажите бесплатный SEO-аудит, который выявит непроиндексированные блоки и проблемы рендеринга. А для глубокой технической проработки структуры, рендеринга и индексации подключите комплексный SEO-аудит сайта от «LSI Продвижение» — мы сделаем так, чтобы каждый написанный вами абзац работал на позиции, а не пылился вне индекса.

Услуги LSI Продвижение

Наша команда предлагает полный спектр услуг по SEO-продвижению и технической доработке сайтов. Мы работаем только белыми методами, ориентируемся на реальный бизнес-результат — трафик, заявки и продажи, а не только позиции в отчёте, — и выстраиваем продвижение системно, под конкретные задачи и нишу вашего проекта. Начать можно с бесплатной диагностики, чтобы понять текущее состояние сайта и точки роста, а затем перейти к комплексной работе. Выберите подходящую услугу из списка ниже:

Закажите SEO продвижение сайта

Выведем ваш сайт в ТОП Яндекса и Google. Бесплатная консультация — разберём сайт, найдём точки роста и предложим стратегию продвижения.

Оставить заявку Бесплатный SEO аудит
Аудит сайта

Comments

  • Андрей

    Всегда боялся прятать текст в аккордеоны, думал, что вылетит из индекса. После статьи выдохнул: если это display:none в HTML, а не JS-подгрузка, контент индексируется. Спасибо, что разложили по типам скрытия.

  • Марина Голубева

    У меня FAQ в аккордеонах, весь текст сразу в HTML, просто свёрнут стилями. Правильно понимаю, что робот его видит и такой формат безопасен для SEO?

  • Виктор

    А вот про lazy-подгрузку по клику — это и есть опасный вариант? У нас отзывы грузятся аяксом при прокрутке, и я подозреваю, что робот их просто не видит.

    • Анатолий Кузнецов

      Марина, всё верно: если текст FAQ целиком присутствует в исходном HTML и просто свёрнут через CSS (display:none или height), поисковики его видят и индексируют. Аккордеоны такого типа безопасны и давно стали стандартом, особенно на мобильных. Опасен другой вариант — когда содержимое подгружается JavaScript-ом только по клику и до этого в разметке его нет. Ваш случай — рабочий.

  • Ольга

    Спор с дизайнером: он хочет убрать половину описания товара в спойлер «читать далее». Я боюсь за индексацию. Если спойлер это просто CSS, а текст в исходнике — можно соглашаться?

  • Григорий Панов

    Проверил через «Посмотреть как Яндекс» и кеш — контент из табов в сохранённой копии есть. Значит, индексируется. Хорошо, что в статье есть конкретный способ проверки, а не просто теория.

  • Вера

    А правда, что раньше Google понижал вес скрытого контента, а теперь на мобильных, наоборот, аккордеоны норма из-за мобильной вёрстки? Или я что-то путаю про display:none?

  • Денис

    У нас табы с описанием, характеристиками и отзывами. Весь текст в HTML сразу. Позиции нормальные, так что подтверждаю вывод статьи: display:none индексации не мешает, если контент в разметке.

  • Юлия Крамаренко

    Немного сомневаюсь: если весь текст в HTML, но скрыт, не сочтёт ли Яндекс это попыткой напихать ключей, которые пользователь не видит? Где грань между нормальным аккордеоном и скрытым переспамом?

    • Анатолий Кузнецов

      Юлия, грань в намерении и объёме. Нормальный аккордеон/таб скрывает контент ради удобства чтения, но текст релевантный и предназначен пользователю, который развернёт блок. Переспам — это когда в display:none прячут простыню ключей, которую человек в принципе не должен читать. Поисковики хорошо отличают юзабилити-скрытие от манипуляции. Пишите для людей, сворачивайте ради удобства — и проблем не будет.

  • Артур

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

    • Анатолий Кузнецов

      Артур, самый надёжный способ для Яндекса — посмотреть сохранённую копию страницы и текстовую версию в Вебмастере (инструмент проверки/переобхода): если фраза из скрытого блока есть в сохранённой копии, значит робот её получил. Дополнительно проверяйте поиском по точной цитате из скрытого текста в кавычках — если страница находится по этой фразе, контент в индексе. Комбинация кеш + поиск по цитате даёт достоверную картину.

  • Наталья

    У меня была ровно катастрофа из вступления — убрали пол-страницы в аккордеоны через JS-вставку по клику, и блоки выпали из индекса. Трафик просел, месяц искали причину. Ваша статья прям про нашу боль.

  • Павел Ежов

    А как быть с контентом, который вставляется JavaScript после загрузки? Робот же рендерит JS. Реально ли он такой контент видит или всё равно рискованно на него полагаться?

    • Анатолий Кузнецов

      Павел, JS-вставленный контент — это зона риска, а не гарантия. Яндекс и Google умеют рендерить JavaScript, но делают это по остаточному бюджету, с задержкой и не всегда стабильно. Для важного контента (описания, характеристики, отзывы) я всегда рекомендую серверный рендеринг или отдачу текста в исходном HTML, а JS оставлять для сворачивания-разворачивания. Полагаться на рендеринг там, где стоит трафик, — лишний риск.

  • Ирина

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

  • Станислав

    Вопрос по мобильной вёрстке: на мобильном аккордеоны почти неизбежны, иначе простыня текста. Получается, для мобайла скрытие через display:none это норма и даже хорошо? Или всё равно есть нюансы?

  • Алёна Тихая

    Отличный разбор разницы между display:none и JS-вставкой. Я и не подозревала, что механизм скрытия так принципиально меняет судьбу текста в индексе. Думала, скрыто и скрыто.

  • Виталий

    У нас на карточках товара характеристики подгружаются аяксом только при клике на вкладку. Проверил кеш — их там нет. Похоже, надо переделывать на отдачу в HTML сразу, как вы советуете.

    • Анатолий Кузнецов

      Виталий, вы поставили верный диагноз: раз характеристик нет в сохранённой копии, робот их не получает — аяксовая подгрузка по клику как раз тот опасный сценарий из статьи. Переделайте на отдачу характеристик сразу в HTML (свернуть можно стилями), и они подтянутся в индекс. Если нужно помочь с технической стороной такой переделки на карточках — это как раз профиль команды LSI Продвижение.

  • Кристина

    А спойлеры «читать далее», которые подрезают текст через max-height и градиент, но весь текст в HTML — это безопасный вариант? Или робот тоже как-то это учитывает?

  • Роман Дубов

    Внедрил рекомендацию: перенёс отзывы из ленивой аяксовой подгрузки в серверный рендеринг, отдаём сразу в HTML. Через пару недель отзывы появились в кеше и подтянулись длинные хвосты запросов. Работает.

  • Оставить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.