prndr — пререндер для SPA. Чтобы Google, Яндекс и Telegram видели ваш сайт.

Боты и мессенджеры не исполняют JavaScript и видят пустой <div id="root">. prndr рендерит страницу в настоящем браузере и отдаёт им готовый HTML с заголовком, описанием и картинкой. Пользователи по-прежнему получают ваше SPA.

Получить ранний доступ

Закрытая бета, бесплатно.

# без prndr: бот видит пустую страницу
$ curl -A "TelegramBot" https://shop.example/product/42 | grep og:title
(ничего)

# с prndr
$ curl -A "TelegramBot" https://shop.example/product/42 | grep og:title
<meta property="og:title" content="Кроссовки Run 42 — 5 990 ₽">

Знакомо?

Single Page Application удобно разрабатывать, но для роботов такой сайт почти пуст.

Нет превью в мессенджерах

Ссылку на товар или событие отправили в Telegram, VK или WhatsApp, а в карточке только адрес. Ни заголовка, ни картинки, ни цены, и по такой ссылке кликают реже.

Пустая выдача

Яндекс и часть ботов Google не дожидаются JavaScript. Страницы не попадают в индекс или попадают с одинаковым заголовком на весь сайт.

SSR — это переписывать

Переход на Next.js или Nuxt — недели работы, новая инфраструктура и новые баги. Ради ботов это слишком дорого.

Как работает

Подключение занимает 15 минут, код сайта менять не нужно.

1

Вставляете сниппет

Несколько строк в конфиг nginx, Apache или Express middleware. Веб-сервер узнаёт ботов по User-Agent и отправляет их запросы в prndr.

2

Мы рендерим

Открываем страницу в Chromium, ждём загрузки данных и сохраняем готовый HTML в кэш. Повторные заходы ботов обслуживаются за миллисекунды.

3

Боты получают HTML

Title, description, Open Graph, микроразметка и контент. Обычные посетители этого не замечают: им по-прежнему отдаётся ваше SPA.

Для кого

Для любого сайта, где контент появляется после выполнения JavaScript.

React SPA Vue Angular PWA Лендинги на Vite Интернет-магазины Афиши и билетные сервисы

Отличия

Работает как привычные зарубежные сервисы пререндера, но для российских сайтов.

  • Российский сервисПоддержка на русском языке, без VPN и зарубежных аккаунтов.
  • Оплата в рубляхБез зарубежных карт и валютного контроля.
  • Данные в РФРендер и кэш на серверах в России.
  • Совместимость с prerender.ioТот же формат API: для переезда достаточно заменить URL сервиса и токен в готовом middleware.
  • Recache-вебхукиОбновили товар или событие — один POST-запрос, и боты увидят новую версию.
  • Сигнал готовностиwindow.prerenderReady, мета-теги для кодов ответа и редиректов — 404 останется 404.

Ранний доступ

Сервис в закрытой бете, бесплатно. Оставьте почту — напишем, когда откроем доступ.

Вопросы и ответы

Что такое пререндер?

Когда на сайт заходит поисковый бот или мессенджер, мы открываем страницу в настоящем браузере, дожидаемся загрузки данных и отдаём боту итоговый HTML. Бот видит тот же контент, что и человек, без выполнения JavaScript.

Чем это отличается от SSR?

SSR (Next.js, Nuxt) рендерит страницы на вашем сервере при каждом запросе, и под него обычно переписывают приложение. Пререндер подключается снаружи и только для ботов. Код сайта не меняется, нагрузка на ваш сервер почти не растёт.

Как подключить?

Добавляете в конфиг nginx или Apache готовый блок с вашим токеном либо подключаете middleware prerender-node в Express. Если вы уже работаете с prerender.io, достаточно поменять адрес сервиса на render.prndr.online и токен.

Какие боты поддерживаются?

Googlebot, YandexBot, Bingbot, Applebot, а также боты превью: Telegram, VK, WhatsApp, Facebook, X/Twitter, LinkedIn, Slack, Discord, Viber, Одноклассники и Mail.ru. Список задаётся в сниппете, его можно расширить.

Что с динамическим контентом — ценами, остатками, расписанием?

Страницы кэшируются, срок жизни кэша вы задаёте сами. Когда данные меняются, отправьте запрос на recache API: страница перерендерится, и следующий бот получит свежую версию. Если страница грузит данные долго, выставьте window.prerenderReady = false, а когда всё готово, переключите на true.