ИИ-краулер обычно ведёт себя как curl, а не как браузер: он запрашивает URL, читает сырой HTML-ответ и двигается дальше в рамках короткого таймаута. Если ваши тарифы, возможности или ответы FAQ появляются только после гидратации клиентским JavaScript, этот краулер видит почти пустую оболочку - серверный рендеринг и настоящая семантическая разметка делают контент структурно понятным для модели с самого начала.
Почему это важно для AEO. Большинство ИИ-краулеров запрашивают сырой HTML с коротким таймаутом и не выполняют тяжёлый клиентский JavaScript. Медленные серверы, блокирующие рендер скрипты и контент, который появляется только после гидратации, фактически невидимы для них.
Как это сделать
- Рендерите на сервере или собирайте статически основной контент каждой страницы, которая должна быть цитируемой - не полагайтесь на клиентский JS для отрисовки текста.
- Используйте настоящие семантические теги (h1-h3, p, ul/ol, table) вместо "дивной каши" - именно это позволяет LLM корректно распознавать структуру вроде "шагов" или "строк сравнения".
- Держите Time to First Byte низким (примерно до 600 мс) и избегайте блокирующих рендер сторонних скриптов в верхней части страницы.
- Используйте один чёткий H1 на страницу с логичной структурой H2/H3 под ним - это отражает то, как ИИ-системы разбивают страницу на части для извлечения.
Как проверить. Выполните curl -s yourdomain.com/page | grep -c '<h1' - если результат 0, ваш H1 рендерится на клиенте и краулеры могут его не увидеть. Проверьте через view-source (не через DevTools Elements), что настоящий текст присутствует.
Пример
view-source:https://yourdomain.com/pricing
# названия тарифов и цены должны быть видны в сыром HTML,
# а не только после выполнения клиентского JS.