Предзагрузка ссылок за 65мс до клика. Пользователь не успевает моргнуть, а страница уже загружена. Оптимизировано для российского веба.
<!-- На body для максимальной скорости -->
<body data-prefetch-specrules
data-prefetch-specrules-fallback>
<!-- Перед </body> -->
<script src="//cdn.prefetch.ru/v1.1.2/prefetch.min.js"
integrity="sha384-BDLxwRTwyIWnAEmc+2Rkw41jVvctV3HxxTu1ryrmagtHh18GekSP+bfqy5/YswEW"
crossorigin="anonymous"
type="module"
defer></script>
Поддержка российских браузеров, CMS и платформ из коробки
Используем современный API для Chromium 109+. Prerender загружает страницу полностью в фоне — переход мгновенный.
WebKit не поддерживает prefetch? Не проблема. Автоматический fallback на fetch с force-cache для всех браузеров iOS.
Не ломает Яндекс.Метрику, Google Analytics и Matomo. Prefetch — фоновая загрузка, не влияет на события кликов.
Автоматически отключается при медленном соединении (2G, 3G) и режиме экономии трафика. Лимиты для мобильных устройств.
Data-атрибуты для конфигурации: задержка hover, режим viewport, белые списки, DOM observer для SPA.
Не загружает внешние ссылки по умолчанию. Исключает служебные URL, формы авторизации и файлы.
Один скрипт для любых сайтов — без настройки и интеграций
WordPress, OpenCart, Joomla, Drupal и любые другие — просто добавьте скрипт и он заработает. Специальная оптимизация для 1С-Битрикс и Tilda
Для лидера российского рынка — автоопределение, исключение служебных URL, работа с AJAX-компонентами
Умные исключения: автоматически пропускает ссылки авторизации (/login, /logout, /auth), действия (/cart, /add, /delete), файлы и служебные URL
Мозг воспринимает задержку менее 100мс как мгновенную
Пользователь наводит курсор на ссылку
Скрипт начинает загрузку страницы
Пользователь решает перейти
Страница уже в кэше браузера
Наведите на ссылки и почувствуйте разницу
✓ Мгновенный переход!
Это упрощённая демонстрация. В реальности разница ещё заметнее — браузер загружает весь HTML, CSS, JS и изображения целевой страницы до клика.
Мгновенные переходы улучшают ключевые показатели качества сайта
Prerender загружает и рендерит страницу в фоне до клика. При переходе — контент отображается мгновенно, время загрузки стремится к нулю.
Предзагруженные страницы реагируют на взаимодействия без задержки — JavaScript уже выполнен, DOM готов к интерактивности.
Полностью отрендеренная страница отображается стабильно — без прыжков контента при загрузке изображений и шрифтов.
Типичные результаты оптимизации скорости загрузки
Пользователи не уходят с медленных страниц — они загружаются до того, как появится желание закрыть вкладку
Мгновенные переходы снижают «трение» навигации — пользователи просматривают больше страниц за визит
Быстрый сайт воспринимается как качественный — посетители задерживаются дольше и возвращаются чаще
Каждые 100мс задержки снижают конверсию. Мгновенная загрузка убирает этот барьер полностью
*Данные основаны на исследованиях Google, Amazon, Walmart по влиянию скорости загрузки на метрики сайтов
53% мобильных пользователей покидают сайт, если он загружается дольше 3 секунд. С предзагрузкой страницы открываются быстрее, чем пользователь успевает это заметить — создаётся ощущение нативного приложения.
Без сборщиков, без зависимостей, без настройки
Data-атрибуты для конфигурации и JavaScript API для программного контроля
data-prefetch-intensity
Режим срабатывания предзагрузки
65задержка hover в мс (по умолчанию)mousedownпо нажатию кнопки мышиviewportпри появлении в видимой области (mobile)viewport-allviewport для всех устройствdata-prefetch-specrules
Включить Speculation Rules API (Chromium 109+). Требует явного указания атрибута
(пусто)prefetch — предзагрузка HTMLprerenderполный рендер страницы в фонеnoявно отключить Speculation Rulesdata-prefetch-specrules-fallback
Включить fallback при Speculation Rules. По умолчанию отключён для избежания двойного трафика
data-prefetch-whitelist
Режим белого списка — загружать только ссылки с атрибутом data-prefetch
data-prefetch-allow-query-string
Разрешить ссылки с параметрами (?id=1, ?page=2)
data-prefetch-allow-external-links
Разрешить внешние ссылки (другие домены)
data-prefetch-observe-dom
Отслеживать новые ссылки в DOM (для SPA)
data-prefetch-nonce
Nonce для CSP. Используется для вставки speculationrules на сайтах со строгим CSP
data-prefetch-prerender-all
Разрешить prerender для всех ссылок (не рекомендуется — может влиять на аналитику)
data-prefetch
Включить предзагрузку для ссылки. Используется в режиме whitelist или для включения внешних ссылок/query string.
data-no-prefetch
Исключить ссылку из предзагрузки. Полезно для ссылок корзины, авторизации и т.д.
data-prefetch-prerender
Точечный prerender для ссылки. Работает при data-prefetch-specrules="prerender" на body.
// Объект window.PrefetchRu (или Prefetch) доступен после загрузки
// Версия библиотеки
console.log(PrefetchRu.version) // "1.1.2"
// Программная предзагрузка URL (проходит те же проверки)
PrefetchRu.preload('/catalog/product-123')
// Обновить состояние при навигации в SPA
PrefetchRu.refresh()
// Отключить библиотеку
PrefetchRu.destroy()
<!-- На body для максимальной скорости -->
<body data-prefetch-specrules
data-prefetch-specrules-fallback>
<!-- Перед </body> -->
<script src="//cdn.prefetch.ru/v1.1.2/prefetch.min.js"
integrity="sha384-BDLxwRTwyIWnAEmc+2Rkw41jVvctV3HxxTu1ryrmagtHh18GekSP+bfqy5/YswEW"
crossorigin="anonymous"
type="module"
defer></script>
<body data-prefetch-specrules="prerender"
data-prefetch-specrules-fallback>
<!-- Страницы полностью отрисовываются в фоне -->
</body>
<body data-prefetch-whitelist>
<a href="/catalog" data-prefetch>Каталог</a>
<a href="/cart">Корзина</a> <!-- не загружается -->
</body>
<a href="/logout" data-no-prefetch>Выйти</a>
<a href="/order/delete/123" data-prefetch-no>Удалить заказ</a>
<!-- /cart, /add, /delete автоисключены -->
<body data-prefetch-specrules
data-prefetch-specrules-fallback
data-prefetch-nonce="abc123">
<!-- или nonce на скрипте -->
<script src="//cdn.prefetch.ru/v1.1.2/prefetch.min.js"
integrity="sha384-BDLxwRTwyIWnAEmc+2Rkw41jVvctV3HxxTu1ryrmagtHh18GekSP+bfqy5/YswEW"
crossorigin="anonymous"
nonce="abc123"
type="module"
defer></script>
</body>
<body data-prefetch-specrules="prerender"
data-prefetch-specrules-fallback>
<a href="/pricing" data-prefetch-prerender>Тарифы</a>
<a href="/blog">Блог</a> <!-- prefetch -->
</body>
Оптимизировано для реального российского рынка браузеров
Это не баг и не упущение — это сознательный выбор безопасности
Многие сайты вешают на GET-ссылки действия: «Удалить», «Добавить в корзину», «Отправить». Браузер предзагрузит — и случайно выполнит действие до клика.
/cart, /basket, /add, /delete, /remove, /login, /logout, /auth. Плюс data-no-prefetch для точечного контроля
Prerender держит в памяти целую страницу: 5-50 МБ каждая. Chrome ограничивает: 10 prerender на мобильных, 2 на десктопе. Иначе — тормоза и разряд батареи.
data-prefetch-specrules="prerender" opt-in
Prefetch помечен как «lowest priority», но на практике конкурирует с основным контентом. На медленных сетях это замедляет загрузку текущей страницы.
Prerender выполняет весь JavaScript целевой страницы. Старая аналитика засчитает просмотр, API получит запрос, видео запустится — до реального перехода.
Speculation Rules — API только для Chromium. Firefox и Safari сознательно отклонили эту функцию как преждевременную. 30%+ трафика без поддержки.
rel=prefetch для Firefox
Между prefetch и переходом может измениться CSRF-токен, session-ID или cookies. Кэш станет неактуальным — странное поведение на сайте.
/login, /logout, /auth, /register, /cart исключены. Для остального — data-no-prefetch
Браузеры консервативны, потому что работают со всеми сайтами в интернете. Мы добавили умные исключения по умолчанию и дали вам data-атрибуты для точной настройки под ваш сайт.
Небольшой трафик «впустую» — это плата за мгновенную загрузку для тех, кто реально перешёл
Часть prefetch-запросов не приведёт к переходу — пользователь передумал или навёл случайно. Это нормально.
Дополнительные запросы к серверу. На большинстве сайтов незаметно, но на highload стоит мониторить.
Основные исключения встроены. Проверьте свои GET-ссылки — если есть действия, добавьте data-no-prefetch
На 2G/3G prefetch может конкурировать с основным контентом. Мы отключаемся автоматически, но edge-cases возможны.
10-20% «лишнего» трафика против −35% отказов и +40% глубины просмотра. Мгновенная навигация конвертирует лучше, чем экономия на prefetch-запросах.
Скрипт работает локально в браузере пользователя и не передаёт никакие данные
Скрипт не устанавливает и не читает cookies. Никаких баннеров о согласии не требуется.
Не собираем статистику, не трекаем пользователей, не передаём данные третьим сторонам.
CDN на базе Yandex Cloud. Все ресурсы размещены на территории Российской Федерации.
MIT лицензия. Весь исходный код доступен на GitHub — проверяйте, форкайте, улучшайте.
Весь код исполняется в браузере пользователя. Никаких серверных запросов к нашим серверам.
Не обрабатывает персональные данные. Не требует согласия пользователей и политики конфиденциальности.
Мы загружаем только статический JavaScript-файл. Скрипт не делает никаких запросов к внешним серверам, не собирает fingerprints, не использует localStorage/sessionStorage для отслеживания. Ваши пользователи остаются анонимными.
Браузер проверяет хэш-сумму файла. Если хостинг взломают и подменят код — скрипт просто не загрузится
Запрос без cookies и credentials. Наш сервер не получает никаких данных о пользователе — полная анонимность
ES-модуль в строгом режиме. Изолированная область видимости, не загрязняет глобальный window
Загрузка не блокирует рендер страницы. Скрипт выполнится после парсинга DOM
Не доверяете внешним CDN? Это нормально. Клонируйте репозиторий, проверьте код, соберите локально командой npm run build и хостите на своём сервере. Полный контроль — это ваше право.
Мгновенная загрузка страниц — это одна строка кода
Потому что это не стартап. Это скрипт.
Стартап продаёт инфраструктуру. Скрипт — это честность.
Тем не менее, CDN и обслуживание стоят денег. Если хотите стать спонсором (ресурсами хостинга или оплатой) — с радостью. Пишите на: feedback@prefetch.ru