Могут ли AI-краулеры читать контент, который отрисовывает JavaScript

Опубликовано

Короткий ответ

Часто нет. Googlebot рендерит JavaScript отдельным, более поздним шагом, а большинство AI-краулеров не заявляют, что делают это, и сам Google отмечает, что не все боты умеют выполнять JavaScript. Если ваш текст появляется только после выполнения скриптов, AI-краулер может получить пустую страницу. Отдавайте основной контент в исходном HTML через серверный рендеринг или статические страницы.

Одностраничные приложения и клиентские фреймворки повсюду, и в браузере они выглядят нормально. Краулер, который читает только HTML от вашего сервера, видит другое: <div id="root"></div>, несколько тегов script и почти никакого текста. Для AI-ответов на такой странице нечего цитировать.

На этой странице
  1. Почему AI-краулеры не видят контент на JavaScript
  2. Как проверить, что получает краулер
  3. Какие страницы в зоне наибольшего риска
  4. Как исправить контент, существующий только в JavaScript
  5. Блокируют ли AI-краулеров экраны логина, согласия и платной стены
  6. Как AISeeWhy находит страницы только на JavaScript

Почему AI-краулеры не видят контент на JavaScript

Выполнять JavaScript дорого. Краулеру нужно скачать скрипты, выполнить их в движке браузера и дождаться загрузки данных. Google делает это для Поиска: он обходит страницы, ставит их в очередь на рендеринг и рендерит в headless Chromium, когда хватает ресурсов. Тем не менее Google рекомендует серверный рендеринг или пререндеринг, потому что он быстрее для пользователей и краулеров, и отмечает, что не все боты умеют выполнять JavaScript.

OpenAI, Anthropic и Perplexity не заявляют в документации по краулерам, что их агенты выполняют JavaScript. Apple сообщает, что Applebot может рендерить страницы в браузере. Без чёткого заявления безопасно считать, что AI-краулеры читают только исходный HTML.

Как проверить, что получает краулер

Смотрите на сырой HTML, а не на отрисованную страницу. Инструменты разработчика в браузере показывают DOM после выполнения скриптов, а краулер получает не это. Используйте view-source или сохраните сырой HTML из командной строки и поищите в нём:

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

Результат 0 означает, что фразы нет в HTML, который отправил сервер, и краулеры, не выполняющие скрипты, её не найдут. Остальное видно по беглому взгляду на файл: в статье с серверным рендерингом там весь текст; у клиентской оболочки пустой корневой элемент и список скриптов.

Какие страницы в зоне наибольшего риска

Как исправить контент, существующий только в JavaScript

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

Не нужно переводить на это целое приложение сразу. Начните со страниц, на которые хотите получать цитирования: статьи, документация, страницы продукта и цен. Личные кабинеты и панели управления могут остаться клиентскими, потому что они всё равно за логином.

Не отдавайте краулерам другую страницу, чем пользователям, в зависимости от user agent. Один и тот же HTML для всех проще поддерживать, и он исключает любые сомнения в клоакинге.

Блокируют ли AI-краулеров экраны логина, согласия и платной стены

Да. Краулер не входит в аккаунт, не нажимает на баннер cookie и не проходит проверки. Anthropic заявляет, что её боты не пытаются обходить CAPTCHA. Если менеджер согласий подменяет страницу полноэкранным оверлеем в HTML или перенаправляет новых посетителей на страницу согласия, краулер получит именно это, а не ваш контент.

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

Как AISeeWhy находит страницы только на JavaScript

AISeeWhy читает исходный HTML в том виде, в каком его получает каждый краулер, не выполняя скрипты. Если на странице почти нет видимого текста, но есть корневой элемент фреймворка и скрипты, он сообщает о находке P1: контент требует JavaScript. Он также отмечает редиректы, которые ведут краулеров не на ту страницу, что получает браузер.

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

Рендерит ли Googlebot JavaScript?

Да. Google обходит HTML, ставит страницы в очередь на рендеринг и рендерит их в headless Chromium, когда хватает ресурсов. Всё равно Google рекомендует серверный рендеринг или пререндеринг.

Выполняют ли краулеры ChatGPT, Claude и Perplexity JavaScript?

В документации их вендоров об этом не сказано. Пока вендор не заявит иное, считайте, что краулер читает исходный HTML, и позаботьтесь, чтобы ваш контент в нём был.

Хорошая ли идея динамический рендеринг для ботов?

Как временная мера он работает, но добавляет второй путь рендеринга, который нужно поддерживать. Серверный рендеринг или статический HTML отдают один и тот же контент всем и остаются более простым долгосрочным решением.

Учитывается ли JSON-LD, добавленный через JavaScript?

Google может прочитать его после рендеринга, но краулеры, не выполняющие скрипты, его не увидят. Размещайте JSON-LD в исходном HTML.

Источники

Другие статьи