Коротко
Что видит нейросеть, когда открывает сайт на JavaScript?
Разберём простым языком, как это устроено. Когда ты открываешь сайт, браузер делает две вещи: скачивает страницу и выполняет скрипты, которые на ней лежат. На классическом сайте текст уже есть в скачанной странице. На сайте-приложении в скачанной странице только каркас вида «здесь будет приложение», а весь текст приносит скрипт.
Человек разницы не замечает. Робот замечает, если не умеет выполнять скрипты.
Vercel проанализировал поведение AI-краулеров и сделал однозначный вывод: ни один крупный AI-краулер не рендерит JavaScript. В списке краулеры OpenAI (GPTBot, OAI-SearchBot, ChatGPT-User), Anthropic (ClaudeBot), Perplexity, Meta и ByteDance. Исключения - Gemini, который пользуется инфраструктурой Googlebot, и Applebot: эти скрипты выполняют.
ChatGPT and Claude don't execute JavaScript, so any important content should be server-rendered.
Для бренда это значит простую вещь. Можно годами вкладываться в тексты на сайте, а нейросеть, которая отвечает покупателю, их ни разу не прочитает.
Аудит своего запуска: ноль слов для бота
Сапожник без сапог - это про меня. Я продаю продвижение в ответах нейросетей, а свой сервис коротких видео Zaletai запустил как классическое приложение на React. Через десять дней после подключения своего домена я провёл аудит: запросил страницы так, как их запрашивают Googlebot, YandexBot и GPTBot, без выполнения скриптов.
| Что проверял | Что увидел бот | Что это значит |
|---|---|---|
| Тело любой страницы | только пустой контейнер, ноль слов | нейросети нечего цитировать |
| Заголовок и описание | один и тот же на всех страницах | главная, тарифы и витрина неотличимы |
| robots.txt, sitemap.xml, llms.txt | вместо файлов - та же HTML-страница | у робота нет ни правил, ни карты сайта |
| Несуществующий адрес | ответ 200, как у настоящей страницы | в индекс может попасть любой мусор |
| Личный кабинет и админка | открыты для индекса | приватное без запрета на индексацию |
| Зеркало с www | работает без перенаправления | две копии сайта на разных адресах |
Отдельной строкой: сайта не было в индексе Google и Bing по запросу site:, а панели вебмастеров не были подключены. Для сервиса, которому нужен трафик, это нулевая точка.
Ничего из этого не видно глазами в браузере. Сайт открывается, всё работает, красиво. Проблема существует только для робота, и поэтому её годами никто не замечает.
Почему Google видит сайт, а нейросеть нет?
Google в документации по JavaScript описывает обработку в три фазы: обход, рендеринг и индексирование. Страница с JavaScript встаёт в очередь на рендеринг, и только после него Google видит текст, который нарисовал скрипт.
У Яндекса в Вебмастере есть настройка «Индексирование страниц с JavaScript». По умолчанию робот решает сам: может сравнить страницу со скриптами и без и взять ту, что полезнее. Если сайт целиком на клиентском рендеринге, это решение лучше не оставлять на усмотрение робота.
И вот тут самое интересное. Рендеринг поисковика - тоже браузер, со своими настройками.
Интерфейс Zaletai определял язык по браузеру посетителя, а Google рендерит страницы с английской локалью. В итоге русский сайт уходил в индекс Google по-английски. Это лечится одной строкой - язык по умолчанию русский, английский только по выбору, - но заметить это можно только проверкой глазами робота.
Как отличить настоящих роботов нейросетей от подделок и что разрешать в robots.txt, разбирал в материале о том, кто из нейросетей заходит на сайт.
Как проверить свой сайт за пять минут?
Исходный код страницы
В браузере правый клик по странице - «Просмотр кода страницы». Найди поиском первую фразу своего главного текста. Нет её в коде - нет её и для нейросети.
Страница без скриптов
В настройках браузера для сайта отключи JavaScript и обнови страницу. Что осталось на экране, то и видит краулер нейросети.
Проверка глазами робота
Попроси ИИ-агента скачать главную, тарифы и одну статью командой без выполнения скриптов, с именем робота GPTBot в запросе, и показать, сколько слов текста в теле каждой страницы.
Служебные файлы
Открой адреса /robots.txt, /sitemap.xml и /llms.txt. Должны прийти файлы, а не копия главной страницы.
Мусорный адрес
Открой /takoy-stranicy-net. Правильный ответ - страница 404 с кодом 404. Если приходит обычная страница с кодом 200, поисковик может проиндексировать мусор.
Если хотя бы один шаг провален, сайт нуждается в доработке до того, как ты начнёшь вкладываться в контент на нём.
Порядок исправлений: публичные страницы первыми
В Zaletai я не стал переделывать приложение целиком. Порядок был такой:
- Статьи - готовым HTML с сервера. Блог отдаётся сервером полностью, без скриптов: его читают и поисковики, и краулеры нейросетей.
- Свои заголовок, описание и канонический адрес для каждой публичной страницы, подставленные сервером до отправки.
- Короткая текстовая сводка для робота без JavaScript на страницах приложения: название, описание и ссылки на разделы.
- robots.txt с явным разрешением для поисковиков и краулеров нейросетей, sitemap.xml с датами и llms.txt с картой ключевых страниц. Что класть в llms.txt и зачем он нужен, разбирал в материале про llms.txt для сайта.
- Запрет индексации личного кабинета, админки и чужих разборов, которые пользователи отправляют друг другу ссылкой.
- 404 на несуществующие адреса и один канонический домен вместо двух зеркал.
- Разметка schema.org для организации, сайта и продукта. Какая разметка нужна статье, товару и компании, подробно разобрано в статье про микроразметку для нейросетей.
Личный кабинет, настройки, оплата нейросети цитировать не нужно. Достаточно, чтобы готовым HTML отдавались страницы, которые отвечают на вопросы покупателя: главная, описание продукта, тарифы, статьи, частые вопросы.
Как понять, что исправления сработали?
Технический результат проверяется в тот же день. Результат по существу - позже и в двух местах.
Первое место - журнал сервера. Если после правок в нём появились визиты GPTBot, ClaudeBot, PerplexityBot к статьям, значит, двери открыты и роботы ими пользуются.
Второе место - ответы нейросетей. Открытые двери не гарантируют цитирования: нейросеть берёт страницу, когда в ней есть удобный для ответа фрагмент. Поэтому после технических правок начинается работа с содержанием, а измеряется она замером видимости по вопросам покупателя. Как это делается руками и сервисом, разбирал в статье про замер видимости бренда.
Частые вопросы
Частые вопросы
Главный вывод
Я сам наступил на это на собственном запуске, хотя каждый день объясняю клиентам, как нейросети читают сайты. Ловушка в том, что проблема невидима человеку: сайт открывается, всё красиво, и только робот получает пустую коробку.
Практический шаг на сегодня: открой исходный код своей главной страницы и найди в нём первую фразу главного текста. Это одна минута, и она покажет, видит ли тебя ChatGPT.
Ты уже смотрел на свой сайт глазами робота, или пока только глазами клиента?
Источники
- Prodvig.ai - чек-лист: как подготовить сайт бренда к чтению нейросетями
- The rise of the AI crawler - какие AI-краулеры выполняют JavaScript, а какие нет, Vercel
- Understand the JavaScript SEO basics - как Google обходит, рендерит и индексирует страницы с JavaScript, Google Search Central
- Индексирование страниц с JavaScript - настройка выполнения скриптов роботом, справка Яндекс Вебмастера
