Почему ИИ не видит ваш сайт: факты за JavaScript исчезают из ответов
Коротко: ИИ-поисковики вроде ChatGPT читают сырой HTML страницы и не выполняют JavaScript. Если цена или контакты появляются только после подгрузки скриптом — для модели их нет, и она ищет факт у конкурента или на форуме. Проверить свой сайт — 2 минуты: view-source и Ctrl+F.
Что теряет бизнес, когда ИИ не читает сайт
Представьте: пользователь спрашивает ChatGPT «сколько стоит [ваша услуга]». Модель заходит к вам на сайт, находит страницу с ценами — и не может прочитать ни одной цифры, потому что прайс подгружается JavaScript-виджетом. Дальше модель делает то, что и должна: идёт искать факт там, где он есть текстом. Находит у конкурента и в ответе на запрос про вашу услугу называет его.
И это уже не гипотеза: именно так AI-поиск устроен сейчас. Цена вопроса растёт: по данным BrightEdge, AI Overviews Google появляются примерно у 14% запросов и забирают до 30% кликов с первого экрана — то есть доля ответов, которые пользователь получает от машины и не доходит до сайта вручную, уже заметная. Мы в Звонко на GEO/AEO-аудитах видим одну и ту же картину: у сайта хороший дизайн, приличный трафик из Яндекса и Google, а в ответах нейросетей его просто нет. Ниже — как именно ИИ решает, куда идти за фактом, почему JavaScript и картинки для него как будто не существуют, и простой тест, который вы можете прогнать по своему сайту прямо сейчас.
Как ИИ решает, где искать факт
Прежде чем отвечать, модель проверяет, нужен ли ей вообще веб-поиск. На часть вопросов она отвечает «из головы» — по тому, что усвоила при обучении. Но как только вопрос требует свежего или конкретного факта — цены, срока, состава услуги — модель дробит запрос на под-проверки и ищет каждую отдельно.
Например, на вопрос «что входит в услугу X и сколько это стоит у компании Y» модель может отдельно проверить «цена X у Y» и отдельно «состав услуги X у Y» — как две разные под-задачи, каждая со своим поиском. Это ключевая вещь: модель ищет не статью целиком, а конкретный факт внутри страницы. Так процесс проверки под-запросов описывают исследователи, разбиравшие сетевой трафик ChatGPT (первичный разбор и его русскоязычный конспект) — это реверс-инжиниринг, а не официальная документация OpenAI, так что подаём как устойчивое наблюдение, а не как спецификацию.
Практический вывод: выигрывает не самый длинный и красивый текст на странице, а тот, где нужный факт лежит явно, текстом, рядом с понятным маркером — например, символом валюты у цены. Это же лежит в основе GEO-правил извлекаемости, о которых мы писали отдельно: модель забирает не «хороший контент вообще», а извлекаемый факт под конкретный под-запрос.
Почему факт за JavaScript невидим для ИИ
Любая современная страница грузится в два этапа. Сначала сервер отдаёт исходный HTML-код — тот самый «скелет» страницы. Затем браузер выполняет JavaScript и дорисовывает то, что человек в итоге видит на экране: анимации, всплывающие блоки, динамические таблицы цен. Само это разделение на два этапа — базовая механика веба, которую подробно описывает Google Search Central в разделе про JavaScript-рендеринг.

Человек видит финальный результат обоих этапов сразу, для него разницы нет. А вот AI-краулеры — GPTBot, OAI-SearchBot (оба — краулеры OpenAI), PerplexityBot, ClaudeBot и Perplexity-User — в большинстве сценариев ведут себя иначе: читают только этап первый, сырой серверный HTML, и не выполняют JavaScript так, как это делает браузер пользователя. Всё, что появилось на экране на втором этапе, для них попросту не существует.
Картинки та же история, но по другой причине: там для модели вообще нет текста, только пиксели. Прайс, оформленный скриншотом или инфографикой без текстового дубля рядом, ИИ не прочитает, сколько бы раз он ни заходил на страницу. По наблюдениям исследователей трафика ChatGPT, цену модель находит конкретным приёмом: ищет в HTML-коде символ валюты (₽, $, €) рядом с числом. Нет этой пары в коде — нет цены для модели.
Картинки и PDF: тест ловит и их
Ctrl+F по исходному коду не найдёт цену, если она нарисована на скриншоте, лежит в инфографике или в PDF-прайсе — там нет символов, только пиксели. Формально это тот же второй этап, только результат дают уже не скрипты, а картинка с самого начала.
Практический вывод прямой: если критичный факт — прайс, условия рассрочки, перечень услуг — оформлен визуально, продублируйте его текстом рядом. Убирать инфографику не нужно: достаточно подписи или короткого абзаца с теми же цифрами словами. То же с кнопками-картинками контактов — если номер телефона нарисован на кнопке без текстового варианта рядом, для скрейпера его нет, хотя человек видит его прекрасно. Правило простое: любой факт, ради которого человек стал бы спрашивать ИИ (сколько стоит, как позвонить, что входит), должен быть виден в view-source, а не только на экране.
Куда ИИ уходит, если факта нет на вашем сайте
Если модель не нашла факт у вас, она не останавливается — она идёт искать его в другом месте, и таких мест обычно три.

Первое — Reddit и тематические форумы: там весь контент текстом, без JavaScript-надстроек, читать легко. Второе — сайты конкурентов, если у них цена или условие прописаны текстом, а не картинкой. Третье — агрегаторы и отзовики, где факты тоже лежат открытым текстом в структурированном виде.
По наблюдениям исследователей трафика ChatGPT, среди источников, которые модель реально читает «здесь и сейчас», заметную долю занимают сторонние скрейперы вроде Bright Data и Oxylabs — они парсят именно серверный HTML страницы в моменте. Отдельный канал — лицензированные источники вроде Wikipedia и Reuters, но туда малому и среднему бизнесу попасть неоткуда. Остаётся обычная поисковая выдача как входной билет и собственный читаемый HTML как то, что решает исход конкретного запроса.
Итог для владельца сайта простой и неприятный: по вашему же запросу, с вашей же услугой, модель процитирует не вас, а того, у кого факт лежит текстом.
Тест: проверьте свой сайт за 2 минуты
Не нужны никакие инструменты разработчика — только браузер. Откройте страницу с ценами или контактами, нажмите правой кнопкой мыши и выберите «Просмотр исходного кода страницы» (это view-source, отдельная команда от DevTools/инспектора — открывает именно сырой HTML, тот же, что видит краулер).
Дальше нажмите Ctrl+F и вбейте цену, телефон или название услуги — то, что точно видно на экране обычной страницы. Нашлось текстом в исходном коде — хорошо, модель это тоже увидит. Не нашлось, хотя на экране факт есть, — значит, его дорисовывает JavaScript, и для ИИ он невидим.
Отдельно проверьте картинки и инфографику: если прайс или условия оформлены только визуально, без текстового дубля рядом или в подписи, — это ещё одна слепая зона. Из практики Звонко: 9 июля 2026 года мы проверили zvonkooo.ru тем же способом — сырым curl-запросом без выполнения JavaScript. Телефон +7 921 573-66-29, перечень услуг, цены и УТП отдаются текстом уже на этом этапе, плюс продублированы в разметке JSON-LD Organization/ContactPoint. Это и есть тот случай, когда факты читаемы с первого шага.
Что чинить, если тест провалился
Если ключевые факты не нашлись в исходном коде, есть три рабочих способа их туда вернуть.
Первый и самый устойчивый — серверный рендеринг (SSR или SSG) для страниц, где лежат цены, услуги и контакты: тогда факт уже есть в HTML на этапе, который отдаёт сервер, до всякого JavaScript. Второй, если полный переход на SSR/SSG сейчас не вариант, — продублировать критичные факты статическим текстом рядом с динамическим блоком: цена в JS-виджете плюс та же цена простым текстом в подводке или подписи. Третий — привести в порядок контакты: телефон и почта должны быть текстом и в атрибутах tel:/mailto:, а не только картинкой-кнопкой без текстового аналога.
Проверять в первую очередь стоит то, ради чего человек вообще идёт спрашивать ИИ про вашу компанию: цены и тарифы, перечень услуг, контакты (телефон, адрес, мессенджер), УТП и ключевые условия. Красота текста тут ни при чём: важно, чтобы конкретный факт лежал в исходном коде там, где его будет искать модель.

Частые вопросы
Значит ли это, что дизайн сайта на JavaScript — это ошибка?
Нет, современный интерактивный сайт вполне может остаться на JavaScript. Дело в другом: критичные факты — цена, контакты, состав услуги — оказываются доступны только после выполнения скрипта. Решение — дублировать эти конкретные факты текстом или собирать именно эти страницы через SSR/SSG, остальной сайт можно не трогать.
Мой сайт на конструкторе (Tilda, WordPress с билдером) — тест актуален?
Да, и часто там проблема острее: многие конструкторы дорисовывают блоки цен, форм и каруселей через JS уже после загрузки базовой разметки. Тест занимает те же 2 минуты независимо от платформы — откройте view-source конкретной страницы и ищите цифры цены и текст телефона. Если факт есть на экране, но не в исходном коде, вопрос решается на уровне настроек блока или дублем текста, а не переездом с платформы.
Чем view-source отличается от DevTools-инспектора?
View-source показывает именно тот HTML, который сервер отдаёт браузеру до выполнения JavaScript, то есть максимально близко к тому, что видит краулер. Инспектор (DevTools) по умолчанию показывает уже дорисованную DOM-структуру после выполнения скриптов — там факт может выглядеть присутствующим, хотя в исходном коде его нет. Для этого теста нужен именно view-source.
ChatGPT точно не выполняет JavaScript?
По наблюдениям исследователей, разбиравших сетевой трафик ChatGPT, и по общей практике GEO-разбора AI-краулеры вроде GPTBot и OAI-SearchBot в большинстве сценариев читают сырой HTML без выполнения JavaScript так, как это делает браузер пользователя. OpenAI это официально не документировала, но наблюдение устойчивое и подтверждается на практике: страницы с фактами в чистом HTML цитируются заметно охотнее.
Гарантирует ли исправление HTML, что меня начнут цитировать?
Нет, и обещать это было бы нечестно. Читаемый HTML — необходимое условие, но не достаточное: модель ещё должна счесть источник релевантным запросу и попасть в него в момент поиска. Но если факт физически не лежит текстом на странице, цитирования не будет ни при каких обстоятельствах — так что сначала убираем технический барьер, а уже потом работаем над остальным.
С чего начать, если непонятно, сколько у сайта таких проблем?
Начните с прогона теста по 5–10 ключевым страницам: карточки услуг, прайс, контакты, о компании. Отметьте, какие факты не находятся в view-source. Если проблема массовая — на большинстве страниц, а не на одной-двух, — вопрос уже не в точечном дубле текста, а в архитектуре рендеринга сайта, и это разговор с разработчиком.
Влияет ли это на Яндекс.Алису и другие ИИ-поисковики, кроме ChatGPT?
Механика читаемого HTML — общий принцип для всех ИИ-поисковиков, но конкретный вес и путь к цитированию у каждого свой. У Алисы, например, попадание в ответ во многом завязано на топ выдачи обычного поиска Яндекса — подробнее в нашем разборе Яндекс.Вебмастера и Алисы. Мы не обещаем гарантированное цитирование ни в одной системе — но нечитаемый факт не процитирует ни одна из них, это база, с которой стоит начинать в любом случае.
Коротко о главном
- Модель прежде всего решает, нужен ли ей веб-поиск, и если да — ищет не статью целиком, а конкретный факт внутри страницы.
- AI-краулеры в большинстве сценариев читают сырой серверный HTML и не выполняют JavaScript как браузер — факт, дорисованный скриптом, для модели не существует.
- Картинки, инфографика и PDF без текстового дубля тоже невидимы: там для модели нет текста, только пиксели.
- Если факта нет у вас, модель идёт за ним на Reddit, к конкурентам или в агрегаторы — и цитирует их вместо вас.
- Тест бесплатный и занимает 2 минуты: view-source + Ctrl+F по цене, телефону, названию услуги.
- Чинится тремя способами: SSR/SSG для ключевых страниц, текстовый дубль рядом с JS-блоком, текстовые контакты в
tel:/mailto:.
Проверим, видят ли ваш сайт нейросети
С этого чека начинается наш GEO/AEO-аудит в Звонко: смотрим читаемость фактов, доступ AI-краулеров и citability и показываем, где по вашим запросам вас перехватывают конкуренты. Без давления и предоплаты за диагностику — напишите нам.