Индексация

Сайт на JavaScript: видит ли поисковик ваш контент

Иллюстрация к статье «Сайт на JavaScript: видит ли поисковик ваш контент»
В избранное — зарегистрироватьсяНравится — зарегистрироваться

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

Сравните три вида одной страницы

Для учебного примера возьмите example.ru/catalog/item/. Первый вид — исходный HTML ответа сервера: есть ли в нём название товара, описание, ссылки и корректный title? Второй — страница после выполнения JavaScript в обычном браузере. Третий — обработанная страница в проверке URL у Google и в инструменте рендеринга Яндекс Вебмастера. Запишите различия. Красивая страница на вашем компьютере ещё не доказывает, что робот увидел тот же материал.

Google описывает отдельные этапы обхода, рендеринга и индексирования JavaScript-страниц. Яндекс Вебмастер даёт настройку выполнения JavaScript и инструменты проверки. Их поведение и даты обработки могут отличаться, поэтому анализируйте результат по каждому поисковику и URL, а не делайте вывод по одному скриншоту.

Найдите, на каком этапе пропадает материал

Если сервер возвращает ошибку, начните с <a href="/blog/kody-otveta-servera">кода ответа</a>. Если HTML загружается, но скрипты или API недоступны роботу, ищите ошибку загрузки ресурсов и ограничения в robots.txt. Если браузер показывает текст только после нажатия кнопки, прокрутки или авторизации, проверьте, может ли робот вообще выполнить это действие. Контент, который появляется только в личном кабинете, не следует считать публичным материалом страницы.

Для внутренних переходов используйте обычные ссылки с href на существующие URL. Кнопка с обработчиком клика не заменяет надёжную ссылку для обнаружения страниц. Если приложение отвечает 200 даже для несуществующего адреса и рисует сообщение «не найдено», настройте корректный HTTP-ответ или другой рекомендованный для вашей архитектуры способ сообщить об ошибке; иначе возможна мягкая 404.

Выберите способ отдавать важное содержимое

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

Не делайте отдельную версию специально с другим содержимым для робота. Сравните то, что получает поисковик, с тем, что видит обычный пользователь. Сохраняйте в HTML понятные адреса, title и метатег robots; проверяйте, чтобы JavaScript не менял их непредсказуемо после загрузки.

Проверьте исправление на конкретных URL

Возьмите главную, категорию, карточку и статью. Для каждой запишите исходный код ответа, фрагмент важного текста в HTML, наличие ссылок и результат обработки у поисковика. Исправьте дефект в шаблоне, повторите те же проверки и отдельно отслеживайте новый обход. Не считайте отсутствие URL в поиске доказательством ошибки JavaScript: возможны и другие технические или содержательные причины, которые разбирает статья <a href="/blog/sayt-ne-indeksiruetsya">о проблемах индексации</a>.

Первоисточники

FAQ

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

Google и Яндекс вообще выполняют JavaScript?

Оба поисковика описывают обработку JavaScript. Результат нужно проверять на конкретной странице: работа скрипта в вашем браузере не равна его работе при обходе.

Достаточно ли ответа 200 для индексации?

Нет. Код 200 говорит об успешной загрузке ответа сервера; важные текст и ссылки ещё должны быть доступны роботу, а сама страница — полезной для запроса.

Что проверить в исходном HTML?

Title, метатег robots, важный текст, ссылки с href и конечный код ответа. Затем сравните исходный и обработанный HTML.

Обязательно ли переходить на SSR?

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

Проверьте себя

Вопрос 1 из 2. Результат увидите только вы.

Что означает ответ 200 от пустого HTML?

Обсуждение

На какой странице вашего JavaScript-сайта текст или ссылка появляется только после загрузки — и видна ли она в проверке поисковика?

Войдите, чтобы оставить комментарий. Читать обсуждение могут все. Комментарии проходят автоматическую и редакционную проверку.