Как устроено
В nginx на {shop}.vitrina-ai.ru:
Nginx configuration file
location ~ ^/product/ {
set $is_bot 0;
if ($http_user_agent ~* "(googlebot|gptbot|perplexitybot|...)") {
set $is_bot 1;
}
if ($is_bot = 1) {
rewrite ^/product/(.*)$ /api/v1/seo/product/$1 last;
}
# Обычные пользователи → Next.js SSR
proxy_pass http://vitrina-web:3000;
}
Что получают боты
GET /api/v1/seo/product/platje-rubashka:
- HTML: минимум CSS, только контент (заголовок, описание, цена, фото)
- OG-теги: полный набор
- JSON-LD: Product + FAQPage + Rating
- Без JS: всё доступно без hydration
Список ботов
- Поисковики: Googlebot, Bingbot, YandexBot, DuckDuckBot
- AI-агенты: GPTBot (ChatGPT), PerplexityBot, ClaudeBot, CCBot
- Соцсети: TwitterBot, TelegramBot, WhatsApp, SlackBot
- Сервисы: LinkedInBot, FacebotExternalHit
Почему это лучше чем Next.js SSR для всех
- Next.js рендер: ~200ms + hydration payload ~200KB
- SEO-HTML: ~50ms + ~10KB (чистый контент без React-мишуры)
Для Googlebot critical path — скорость первой отрисовки. Чем быстрее — тем выше ранжирование.