Скрытый и динамический контент (табы, аккордеоны): индексируется ли он
«Уберём половину текста в аккордеоны и табы, чтобы страница выглядела чище» — звучит разумно с точки зрения дизайна, но регулярно превращается в 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 аудит сайта — автоматическая проверка на 50+ параметров за 2 минуты
- Комплексный SEO аудит — глубокий ручной анализ с рекомендациями от эксперта
- Продвижение сайтов — вывод в ТОП Яндекса и Google по целевым запросам
- SEO консультация — разбор вашего сайта с конкретными рекомендациями
- LSI тексты — экспертный контент, оптимизированный для поисковых систем
- Доработка сайта — техническая оптимизация и исправление ошибок
- Создание сайта под ключ — разработка с нуля с SEO-оптимизацией
- Стоимость продвижения — прозрачные тарифы и условия
- Портфолио и кейсы — реальные результаты наших клиентов
Закажите SEO продвижение сайта
Выведем ваш сайт в ТОП Яндекса и Google. Бесплатная консультация — разберём сайт, найдём точки роста и предложим стратегию продвижения.
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. Через пару недель отзывы появились в кеше и подтянулись длинные хвосты запросов. Работает.
Оставить комментарий
Мы используем cookies
Для улучшения работы сайта и вашего удобства. Оставаясь на сайте, вы соглашаетесь с политикой конфиденциальности.