# Сайт на JavaScript: почему нейросети его не видят и как это проверить за пять минут

Краулеры ChatGPT, Claude и Perplexity не выполняют JavaScript, и сайт-приложение для них пустой. Как проверить сайт за пять минут и что исправить первым.

URL: https://posts.danashkin.ru/guides/sayt-na-javascript-i-neyroseti
Обновлено: 2026-10-10

---

## Коротко

**Главное**

- Сайт, который рисуется в браузере скриптами, для большинства нейросетей пустой. Сервер отдаёт заготовку страницы, текст появляется только после выполнения JavaScript, а краулеры ChatGPT, Claude и Perplexity его не выполняют.
- На своём запуске я проверил это руками: бот без JavaScript видел на каждой странице ноль слов текста и одинаковый заголовок на весь сайт.
- Google и Яндекс скрипты выполнять умеют, но с оговорками: Google рендерит браузером с английской локалью, и сайт с языком «по браузеру» уходит в индекс по-английски.
- Лечение не требует переписывать всё: страницы, которые должны цитироваться, отдаются сервером готовым HTML, у каждой свой заголовок и описание, плюс robots.txt, sitemap.xml и llms.txt.

## Что видит нейросеть, когда открывает сайт на JavaScript?

**Главное**

Почти ничего. Современные сайты часто собраны как одностраничное приложение: сервер отдаёт пустой каркас и файл со скриптом, а текст, кнопки и разделы дорисовывает браузер. Краулер нейросети скрипт не запускает и уходит с пустым каркасом. По исследованию Vercel, ни один крупный AI-краулер 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.
>
> Vercel, [The rise of the AI crawler](https://vercel.com/blog/the-rise-of-the-ai-crawler)

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

## Аудит своего запуска: ноль слов для бота

**Главное**

Zaletai собран как одностраничное приложение. Проверка без браузера показала: бот видел только заголовок и описание из шапки, тело страницы было пустым на всех адресах. Файлы robots.txt, sitemap.xml и llms.txt отдавались той же страницей, а любой мусорный адрес отвечал как настоящий.

Сапожник без сапог - это про меня. Я продаю продвижение в ответах нейросетей, а свой сервис коротких видео [Zaletai](/guides/zaletai-trendvotching-vertikalnyh-video) запустил как классическое приложение на React. Через десять дней после подключения своего домена я провёл аудит: запросил страницы так, как их запрашивают Googlebot, YandexBot и GPTBot, без выполнения скриптов.

| Что проверял | Что увидел бот | Что это значит |
|---|---|---|
| Тело любой страницы | только пустой контейнер, ноль слов | нейросети нечего цитировать |
| Заголовок и описание | один и тот же на всех страницах | главная, тарифы и витрина неотличимы |
| robots.txt, sitemap.xml, llms.txt | вместо файлов - та же HTML-страница | у робота нет ни правил, ни карты сайта |
| Несуществующий адрес | ответ 200, как у настоящей страницы | в индекс может попасть любой мусор |
| Личный кабинет и админка | открыты для индекса | приватное без запрета на индексацию |
| Зеркало с www | работает без перенаправления | две копии сайта на разных адресах |

Отдельной строкой: сайта не было в индексе Google и Bing по запросу site:, а панели вебмастеров не были подключены. Для сервиса, которому нужен трафик, это нулевая точка.

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

## Почему Google видит сайт, а нейросеть нет?

**Главное**

Google и Яндекс умеют выполнять JavaScript: у них есть отдельный этап рендеринга страниц. Краулеры большинства нейросетей такого этапа не имеют. Но и у поисковиков рендеринг с оговорками: Google открывает страницу браузером с английской локалью, а Яндекс сам решает, выполнять ли скрипты, если ты не указал это в Вебмастере.

Google в документации по JavaScript описывает обработку в три фазы: обход, рендеринг и индексирование. Страница с JavaScript встаёт в очередь на рендеринг, и только после него Google видит текст, который нарисовал скрипт.

У Яндекса в Вебмастере есть настройка «Индексирование страниц с JavaScript». По умолчанию робот решает сам: может сравнить страницу со скриптами и без и взять ту, что полезнее. Если сайт целиком на клиентском рендеринге, это решение лучше не оставлять на усмотрение робота.

И вот тут самое интересное. Рендеринг поисковика - тоже браузер, со своими настройками.

Интерфейс Zaletai определял язык по браузеру посетителя, а Google рендерит страницы с английской локалью. В итоге русский сайт уходил в индекс Google по-английски. Это лечится одной строкой - язык по умолчанию русский, английский только по выбору, - но заметить это можно только проверкой глазами робота.

Как отличить настоящих роботов нейросетей от подделок и что разрешать в robots.txt, разбирал в материале о том, [кто из нейросетей заходит на сайт](/guides/boty-neyrosetey-na-sayte).

## Как проверить свой сайт за пять минут?

**Главное**

Открой исходный код страницы, а не то, что нарисовал браузер: если основного текста там нет, нейросеть его не видит. Второй способ - отключить JavaScript в браузере и обновить страницу. Третий - попросить ИИ-агента скачать страницу без выполнения скриптов и пересказать, что в ней есть.

1. **Исходный код страницы**

   В браузере правый клик по странице - «Просмотр кода страницы». Найди поиском первую фразу своего главного текста. Нет её в коде - нет её и для нейросети.

2. **Страница без скриптов**

   В настройках браузера для сайта отключи JavaScript и обнови страницу. Что осталось на экране, то и видит краулер нейросети.

3. **Проверка глазами робота**

   Попроси [ИИ-агента](/concepts/ai-agent) скачать главную, тарифы и одну статью командой без выполнения скриптов, с именем робота GPTBot в запросе, и показать, сколько слов текста в теле каждой страницы.

4. **Служебные файлы**

   Открой адреса /robots.txt, /sitemap.xml и /llms.txt. Должны прийти файлы, а не копия главной страницы.

5. **Мусорный адрес**

   Открой /takoy-stranicy-net. Правильный ответ - страница 404 с кодом 404. Если приходит обычная страница с кодом 200, поисковик может проиндексировать мусор.

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

## Порядок исправлений: публичные страницы первыми

**Главное**

Страницы, которые должны цитироваться, отдать сервером готовым HTML. Каждой публичной странице свой заголовок, описание и канонический адрес. Положить настоящие robots.txt, sitemap.xml и llms.txt. Закрыть кабинет от индекса, отдавать 404 на несуществующие адреса, склеить зеркала. Переписывать всё приложение при этом не нужно.

В Zaletai я не стал переделывать приложение целиком. Порядок был такой:

1. **Статьи - готовым HTML с сервера.** Блог отдаётся сервером полностью, без скриптов: его читают и поисковики, и краулеры нейросетей.
2. **Свои заголовок, описание и канонический адрес** для каждой публичной страницы, подставленные сервером до отправки.
3. **Короткая текстовая сводка** для робота без JavaScript на страницах приложения: название, описание и ссылки на разделы.
4. **robots.txt** с явным разрешением для поисковиков и краулеров нейросетей, **sitemap.xml** с датами и **llms.txt** с картой ключевых страниц. Что класть в llms.txt и зачем он нужен, разбирал в материале про [llms.txt для сайта](/guides/llms-txt-dlya-sayta).
5. **Запрет индексации** личного кабинета, админки и чужих разборов, которые пользователи отправляют друг другу ссылкой.
6. **404 на несуществующие адреса** и один канонический домен вместо двух зеркал.
7. **Разметка schema.org** для организации, сайта и продукта. Какая разметка нужна статье, товару и компании, подробно разобрано в статье про [микроразметку для нейросетей](/guides/mikrorazmetka-dlya-neyrosetey).

**Кабинет может остаться приложением**

Личный кабинет, настройки, оплата нейросети цитировать не нужно. Достаточно, чтобы готовым HTML отдавались страницы, которые отвечают на вопросы покупателя: главная, описание продукта, тарифы, статьи, частые вопросы.

## Как понять, что исправления сработали?

**Главное**

Технически - повторить проверку глазами робота: в теле каждой публичной страницы текст, у каждой свой заголовок, служебные файлы на месте. По результату - через несколько недель смотреть журнал сервера на визиты AI-краулеров и замер ответов нейросетей на вопросы своей категории.

Технический результат проверяется в тот же день. Результат по существу - позже и в двух местах.

Первое место - журнал сервера. Если после правок в нём появились визиты GPTBot, ClaudeBot, PerplexityBot к статьям, значит, двери открыты и роботы ими пользуются.

Второе место - ответы нейросетей. Открытые двери не гарантируют цитирования: нейросеть берёт страницу, когда в ней есть удобный для ответа фрагмент. Поэтому после технических правок начинается работа с содержанием, а измеряется она замером видимости по вопросам покупателя. Как это делается руками и сервисом, разбирал в статье про [замер видимости бренда](/guides/kak-izmerit-vidimost-brenda-v-neyrosetyah).

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

**Главное**

Спрашивают про конструкторы сайтов, про Next.js и про то, нужно ли переписывать сайт ради нейросетей.

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

**Мой сайт на конструкторе. Нужно ли что-то проверять?**

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

**Сайт на Next.js. Это тоже приложение на JavaScript?**

Зависит от настройки. Next.js умеет отдавать страницы готовым HTML с сервера, и тогда проблемы нет. Но страницы, собранные целиком на стороне браузера, будут пустыми для краулера. Проверяй каждый тип страниц отдельно.

**Нужно ли переписывать сайт ради нейросетей?**

Обычно нет. Достаточно отдавать готовым HTML публичные страницы с ответами для покупателя. Внутренние разделы приложения можно оставить как есть.

**Если Google видит мой сайт, значит, его видит и Gemini?**

По данным Vercel, Gemini пользуется инфраструктурой Googlebot и скрипты выполняет. ChatGPT, Claude и Perplexity - нет, поэтому видимость в Google ничего не говорит о видимости для них.

## Главный вывод

**Главное**

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

Я сам наступил на это на собственном запуске, хотя каждый день объясняю клиентам, как нейросети читают сайты. Ловушка в том, что проблема невидима человеку: сайт открывается, всё красиво, и только робот получает пустую коробку.

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

Ты уже смотрел на свой сайт глазами робота, или пока только глазами клиента?

### Источники

- [Prodvig.ai - чек-лист: как подготовить сайт бренда к чтению нейросетями](https://prodvig.ai/sayt-dlya-ai/)
- [The rise of the AI crawler - какие AI-краулеры выполняют JavaScript, а какие нет, Vercel](https://vercel.com/blog/the-rise-of-the-ai-crawler)
- [Understand the JavaScript SEO basics - как Google обходит, рендерит и индексирует страницы с JavaScript, Google Search Central](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
- [Индексирование страниц с JavaScript - настройка выполнения скриптов роботом, справка Яндекс Вебмастера](https://yandex.ru/support/webmaster/ru/yandex-indexing/rendering)
