Чи можуть 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.

Джерела

Інші статті