Как устроено

В 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 — скорость первой отрисовки. Чем быстрее — тем выше ранжирование.