Чому сайт видно в Google AI Overviews і не видно в ChatGPT: справа в JavaScript

Чому сайт видно в Google AI Overviews і не видно в ChatGPT: справа в JavaScript

Коротка відповідь: спеціалізовані ШІ-краулери не виконують JavaScript. Вони завантажують HTML, читають те, що прийшло в первинній відповіді, і на цьому зупиняються. Googlebot, навпаки, рендерить сторінку повністю, а AI Overviews і Gemini користуються тим самим конвеєром рендерингу. Звідси асиметрія, через яку сперечаються цілі команди: один і той самий сайт може цитуватись у відповідях Google і бути повністю невидимим для ChatGPT, Claude та Perplexity.

Нижче цифри, механіка й перевірка, яка займає десять хвилин і не потребує жодного платного інструмента.

Що саме показали логи

Найбільший публічний замір такого роду це аналіз серверних логів Vercel спільно з MERJ, опублікований 17 грудня 2024 року. Вибірка перевищує 500 мільйонів звернень GPTBot, плюс окремі зрізи по інших агентах.

Агент Тягне JS-файли Виконує JavaScript
GPTBot, OpenAI 11,50% запитів ні, жодного разу
ClaudeBot, Anthropic 23,84% запитів ні
PerplexityBot тільки сирий HTML ні
Meta-ExternalAgent, Bytespider, CCBot тільки сирий HTML ні
Googlebot 15,25% запитів так, повний рендеринг
AppleBot браузерний так

Цифри в першій колонці збивають з пантелику, тому варто пояснити окремо. Краулер справді завантажує файл скрипта, але поводиться з ним як з текстом, а не як з програмою. Він не створює DOM, не чекає на запити до API, не бачить нічого, що ваш фронтенд домальовує після завантаження.

Практично це означає одне: для цих агентів ваша сторінка це рівно те, що сервер віддав у першій відповіді. Усе решта для них не існує.

Звідки береться асиметрія з Google

Тут ховається половина непорозумінь у розмовах про ШІ-видимість.

AI Overviews і Gemini не мають окремого краулера, який ходив би по сайтах замість Googlebot. Вони спираються на той самий індекс і той самий конвеєр рендерингу, що й звичайний пошук. А Googlebot рендерить сторінки повністю вже багато років.

Тому сайт на React або Vue, який віддає порожню оболонку і домальовує вміст скриптами, потрапляє в дивний стан. Google його бачить, індексує й може процитувати в AI Overviews. ChatGPT, Claude і Perplexity бачать порожню оболонку.

Команда при цьому дивиться на одну панель, бачить нормальні позиції й нормальну присутність в оглядах Google, і робить хибний висновок, що з технічною базою все гаразд. Насправді половина ринку ШІ-відповідей для неї закрита, і закрита не через контент, а через спосіб доставки контенту.

Хто виконує JavaScript, а хто ні. Серверні логи Vercel і MERJ, 17 грудня 2024.

Хто виконує JavaScript, а хто ні. Серверні логи Vercel і MERJ, 17 грудня 2024.

Перевірка за десять хвилин

Порядок дій простий, і він не потребує нічого, крім терміналу й браузера.

Крок 1. Подивіться, що віддає сервер. Заберіть сторінку так, як її бачить агент, тобто без виконання скриптів. Найпростіше це `curl` з потрібним user-agent і збереженням у файл.

Крок 2. Знайдіть у цьому файлі свій текст. Візьміть характерне речення з середини сторінки, те, яке точно унікальне, і пошукайте його у відповіді. Якщо речення там є, ви в нормі. Якщо немає, для ШІ-краулерів цієї сторінки не існує.

Крок 3. Порівняйте з тим, що бачите в браузері. Різниця між первинною відповіддю й фінальним DOM це і є та частина, яку ШІ-агенти не побачать ніколи.

Крок 4. Перевірте ключові типи сторінок, а не одну. Головна часто зроблена статично, а картки товарів, статті й фільтри підвантажуються. Саме там зазвичай і виявляється діра.

Крок 5. Подивіться логи. Якщо є доступ до серверних логів, відфільтруйте звернення за назвами агентів і подивіться, які коди відповіді вони отримують. Це найчесніше джерело, бо показує реальну поведінку, а не припущення.

Що з цим робити технічно

Варіантів небагато, і вони давно відомі.

Серверний рендеринг. Найпряміший шлях: сторінка формується на сервері й приходить агенту вже з текстом. Для сучасних фреймворків це штатний режим, а не екзотика.

Попередній рендеринг для ботів. Компроміс, коли переписувати застосунок дорого. Сервер віддає готовий HTML тим агентам, які не рендерять, і звичайний застосунок людям. Важливо, щоб вміст в обох варіантах збігався, інакше це вже інша історія з іншими наслідками.

Статична генерація для контентних розділів. Блог, довідка, посадкові сторінки рідко потребують клієнтської логіки. Винести їх у статику зазвичай найдешевше рішення з усіх.

Чого робити не варто, так це віддавати ботам іншу за змістом сторінку. Це вже не оптимізація доставки, а підміна вмісту, і ставлення пошукових систем до неї не змінилось.

Чого ці цифри не доводять

Кілька меж, без яких висновки будуть завеликими.

Замір опубліковано в грудні 2024 року. Це найбільше публічне вимірювання такого масштабу, але з того часу минув час, і поведінка агентів могла змінитись. Свої логи надійніші за будь-яку чужу статистику, включно з цією.

Серверний HTML не гарантує цитування. Він гарантує лише те, що вас прочитали. Далі працює відбір фрагмента, а це окрема задача з іншими правилами.

І сама частка завантажених JS-файлів нічого не каже про наміри. Ми не знаємо, навіщо агент забирає скрипти, якщо не виконує їх. Можливо, для аналізу, можливо, просто тому, що ходить по всіх посиланнях підряд.

Часті питання

Чи бачить ChatGPT контент, який підвантажується після кліку?

Ні. Він не клікає й не виконує скрипти. Для нього існує тільки те, що прийшло в первинній відповіді сервера.

Чи допоможе динамічний рендеринг тільки для ботів?

Технічно так. Але вміст для ботів і для людей має збігатись, інакше це вже підміна сторінки.

Ми в топі Google і в AI Overviews, значить з рендерингом усе гаразд?

Не значить. Google рендерить, а спеціалізовані ШІ-краулери ні. Присутність в оглядах Google нічого не каже про ChatGPT і Claude.

Чи достатньо перевірити головну сторінку?

Ні. Найчастіше діра саме в шаблонах карток і статей, бо головну зазвичай роблять статичною.

Чи впливає швидкість на цих агентів?

Впливає доступність. Якщо сервер відповідає повільно або віддає помилку, агент піде без вмісту, і жодні оптимізації тексту вже не спрацюють.

Підсумок

Спеціалізовані ШІ-краулери не виконують JavaScript. GPTBot забирає JS-файли в 11,5% запитів і не запускає їх, ClaudeBot у 23,84% з тим самим результатом, PerplexityBot працює тільки з сирим HTML. Googlebot рендерить повністю, і саме тому AI Overviews бачать те, чого не бачить ChatGPT.

Для бізнесу висновок практичний. Присутність у відповідях Google не є доказом технічної готовності до ШІ-пошуку загалом. Перевіряти треба первинну відповідь сервера, по кожному важливому типу сторінок, і робити це на своїх логах, а не за чужими зрізами.


Матеріал підготували Євгеній Чиж, засновник Chyzh Agency, і Дмитро Попрядухін, Head of SEO.

Поділитися
У пошуках підрядника з SEO?
Заходьте до нашого online каталогу SEO агентств та вибирайте партнера за рядом критеріїв: бал, портфоліо, відгуки, кейси та статті. Або організуйте тендер в даному каталозі, вибравши компанії, що вам сподобалися.
Більше не потрібно шукати та обдзвонювати діджитал-агентства!
Створіть тендер та отримайте пропозиції від найкращих веб-студій України.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.
Створити тендер
Bug