Ускоряет загрузку страниц: защита LCP, корректный lazy-loading, приоритет видео на хостингах.
Цель: ускорить загрузку страниц: на видеохостингах — приоритет главному видео, на остальных — приоритет видимому контенту.
Ускоряет загрузку и отображение любых сайтов. Работает незаметно в фоне с первой миллисекунды открытия страницы.
Ключевые улучшения по сравнению с серфингом без скрипта:
На видеохостингах (YouTube, Rutube, Twitch, Vimeo, Odysee и др.) скрипт находит главный плеер на странице и принудительно ставит ему максимальный приоритет загрузки — видео начинает буферизоваться раньше, чем загрузятся баннеры, рекомендации и прочий контент страницы. На YouTube дополнительно отключается внутренняя система сбора метрик ytcsi/ytStats, которая работает в фоне и потребляет CPU; ускоряется загрузка рекомендаций и комментариев через content-visibility:auto. Для ускорения воспроизведения осуществляется «прогрев» CDN соединений: статических — до начала воспроизведения, динамических — в момент начала загрузки видео через PerformanceObserver (определяет реальный CDN-хост первого сегмента). На OK.ru главное видео дополнительно отслеживается через стандартный механизм всплытия событий (W3C MediaEvents) из Shadow DOM плеера.
На обычных сайтах (статьи, новости, блоги, форумы) картинки и iframe вне видимой области экрана не загружаются, пока пользователь до них не доскроллит — браузер направляет весь доступный канал на то, что видно прямо сейчас. Картинки первого экрана грузятся с максимальным приоритетом. На медленном соединении — проактивно, при появлении элемента в DOM; на быстром — реактивно, через LCP Observer после первой отрисовки (флаг LCP_IMAGE_BOOST).
На всех сайтах скрипт блокирует отправку данных популярным трекерам аналитики (Google Analytics, Яндекс.Метрика, Facebook Pixel, Hotjar и др.) и удаляет их элементы из DOM до того как они успевают загрузиться. Внешние веб-шрифты не блокируют рендер текста — страница показывает текст системным шрифтом немедленно, а веб-шрифт догружается в фоне. Плавный скролл (scroll-behavior: smooth) заменяется на мгновенный отклик (кроме чатов, где это важно для UX).
Хост-специфичные оптимизации для VK/OK.ru (скрытие скелетонов и рекламы через CSS), Rutube (изоляция плеера, блокировка рекламы), Яндекс/Dzen (скрытие рекламных меток через ARIA и data-атрибуты), YouTube (расширенный набор блокировок рекламных элементов, endscreen, pause-overlay).
После загрузки страницы скрипт в фоне резолвит DNS для доменов ссылок на уже просмотренных экранах — переход по ссылке будет быстрее.
Оценка качества соединения происходит однократно при старте: через тип соединения ОС, TTFB (с учётом редиректов) и показатели RTT/downlink. На медленном соединении применяются более агрессивные стратегии приоритизации.
Может ставить видео на паузу (кроме PiP «картинка-в-картинке»), если вы переключаетесь на другую вкладку — для экономии трафика и ресурсов (флаг PAUSE_ON_HIDDEN, по умолчанию включено).
В режиме EXTREME (ON[E]) дополнительно: скрипты сторонних доменов получают низкий приоритет загрузки, при этом собственные модули сайта (Vue/React/Next.js чанки) защищены от занижения приоритета (флаг SAME_ORIGIN_SCRIPT_PROTECT).
VIDEO_HOSTSVIDEO_PATH_SEGMENTSVIDEO_HOST_EXCEPTIONSCHAT_SKIP_HOSTS (для них отключаются scroll-оптимизации)VIDEO_CDN_MAP (служит и для статического preconnect)Если часть страницы не открывается из-за блокировки аналитики — закомментируйте элемент в массиве TRACKERS. Если изменились CDN видеохостинга — обновите VIDEO_CDN_MAP.
При долгом нажатии (4 сек) на кнопку отображаются показатели загрузки страницы:
Кнопка циклически переключает режимы:
ON[A] → OFF → ON → ON[E] → ON[A]…
| Режим | Описание |
|---|---|
| ON[A] | Auto — автоматически выбирает ON для Desktop или ON[E] для Mobile |
| ON | Стандартные оптимизации без изменения визуального оформления сайта |
| ON[E] | Extreme — всё что в ON + деприоритизация сторонних скриптов, упрощение визуального оформления; подходит для медленного интернета или Mobile |
| OFF | Скрипт отключён для этого сайта; используйте если страница отображается некорректно |
DEBUG = false (по умолчанию)
Отображение в консоли (F12) метрик производительности: TTFB, load time, LCP-буст (кто назначил приоритет — браузер или IHW), качество соединения (_isSlow), защита собственных скриптов (SOP), canplay время плеера. Полезно для оценки эффекта на конкретной странице.
PAUSE_ON_HIDDEN = true (по умолчанию)
При переключении на другую вкладку ставит видео на паузу, при возврате — возобновляет. Не влияет на PiP. Работает на YouTube и Twitch. Отключите если сайт сам управляет паузой.
LCP_IMAGE_BOOST = true (по умолчанию)
На обычных сайтах (Mixed Content) повышает приоритет загрузки главного изображения страницы (LCP-кандидата). Стратегия зависит от скорости соединения: на медленном — проактивно при появлении элемента, на быстром — реактивно через LCP Observer.
SAME_ORIGIN_SCRIPT_PROTECT = true (по умолчанию)
В режиме ON[E] защищает скрипты собственного домена сайта (бандлы Vue/React/Next.js) от занижения приоритета. Без этого гидратация SPA-сайтов в EXTREME режиме могла задерживаться.
DYNAMIC_PRECONNECT_LIMIT = 3
Максимальное количество динамических preconnect-соединений к CDN видео. Браузер поддерживает ограниченное число параллельных соединений — не превышайте 3.
BTN_BOTTOM = '70px'
Расстояние от нижнего края экрана до кнопки режима. Измените если кнопка перекрывает элементы сайта.
VIDEO_CDN_MAP
Словарь CDN-доменов для каждого видеохостинга. Используется для статического preconnect (до начала воспроизведения). Если CDN изменились — обновите здесь.
STATIC_DELAYS
Задержки (мс) для статического preconnect отдельных хостов или CDN. Например, для TikTok задержка 200мс предотвращает занятие HTTP/2-слотов при старте страницы.