Представьте: ваш клиент заходит на сайт, а интернет в этот момент «лёг». Вместо ошибки он видит полноценную страницу. Или возвращается на сайт во второй раз, и он загружается мгновенно — потому что все файлы уже сохранены в браузере. Это не магия, это Service Worker.

В веб-студии WebForge24 мы настраиваем Service Worker для многих проектов. Это даёт сайту режим офлайн, ускорение загрузки и возможность отправлять push-уведомления. В этой статье мы покажем, как подключить Service Worker к WordPress-сайту в 4 шага.


Что такое Service Worker и зачем он нужен

Service Worker — это JavaScript-скрипт, который работает в фоновом режиме браузера. Он может перехватывать сетевые запросы, кэшировать файлы и отдавать их пользователю даже при отсутствии интернета.

Какие задачи решает Service Worker:

  • Офлайн-доступ — пользователь видит сайт, даже когда интернет пропал.
  • Мгновенная загрузка — файлы берутся из кэша браузера, а не с сервера.
  • Push-уведомления — можно отправлять сообщения, даже когда сайт закрыт.
  • Экономия трафика — браузер не загружает одни и те же файлы повторно.

«Service Worker может перехватывать все запросы браузера и подменять ответы. Это мощный инструмент, который делает сайт независимым от интернета».

Важно: Service Worker работает только через HTTPS (или на localhost для разработки). Если у вашего сайта нет SSL-сертификата — установите его перед настройкой.

Шаг 1: Создайте файл service-worker.js

Для создания Service Worker вам нужно определить, какие файлы кэшировать, и добавить логику работы с кэшем. Самый простой и быстрый способ — воспользоваться нашим бесплатным генератором.



Сгенерировать Service Worker

Просто заполните форму — получите готовый файл и инструкцию

В генераторе вам нужно указать:

  • Версию кэша — например, v1.0.0. При обновлении меняйте версию, чтобы браузер перекачал новые файлы.
  • Название кэша — можно оставить автоматическое.
  • Файлы для кэширования — перечислите все важные файлы: CSS, JavaScript, изображения, шрифты. Каждый файл с новой строки. / — это корень сайта.
  • Офлайн-страницу — страница, которую увидят пользователи при отсутствии интернета (например, offline.html).

Если вы предпочитаете ручную настройку, можно использовать библиотеку Workbox от Google. Она упрощает работу с Service Worker и предлагает готовые стратегии кэширования.

Шаг 2: Подключите Service Worker к сайту

После того как файл service-worker.js создан, его нужно зарегистрировать на сайте. Для этого добавьте следующий код в <head> или перед закрывающим тегом </body>:

<script>
if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/service-worker.js');
}
</script>

Этот код проверяет, поддерживает ли браузер Service Worker, и регистрирует скрипт. Файл должен лежать в корневой папке сайта — например, https://вашсайт.ru/service-worker.js.

Для WordPress: вы можете добавить этот код в файл header.php вашей темы или с помощью плагина для вставки скриптов (например, «Header and Footer Scripts»).

Шаг 3: Создайте страницу для офлайн-режима

Если вы включили офлайн-страницу в настройках генератора, создайте файл offline.html в корне сайта. Это страница, которую увидят пользователи без интернета.

Минимальный пример офлайн-страницы:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Нет интернета</title>
    <style>
        body { text-align: center; padding: 40px; font-family: Arial, sans-serif; }
        h1 { font-size: 2rem; }
        .emoji { font-size: 4rem; }
    </style>
</head>
<body>
    <div class="emoji">📡</div>
    <h1>Похоже, у вас нет интернета</h1>
    <p>Попробуйте перезагрузить страницу, когда соединение восстановится.</p>
</body>
</html>

Шаг 4: Проверьте работу Service Worker

После установки важно убедиться, что Service Worker зарегистрирован и работает правильно.

Как проверить в Chrome:

  1. Откройте ваш сайт в Chrome.
  2. Нажмите F12 → вкладка Application.
  3. В левом меню выберите Service Workers.
  4. Проверьте, что ваш Service Worker отображается и имеет статус «Activated and running».

Как проверить офлайн-режим:

  1. На вкладке Application → Service Workers поставьте галочку Offline.
  2. Обновите страницу — вы должны увидеть кэшированную версию или офлайн-страницу.

Если что-то пошло не так, проверьте консоль (F12 → вкладка Console) — там будут ошибки регистрации.

Какие файлы кэшировать: рекомендации

Кэшируйте все файлы, которые необходимы для базовой работы сайта:

  • Главная страница/
  • CSS и JavaScript — все файлы стилей и скриптов
  • Шрифты.woff, .woff2
  • Иконки и изображения — логотип, иконки соцсетей

Не кэшируйте:

  • Динамические файлы — API-запросы, личные кабинеты, корзины интернет-магазинов.
  • Страницы административной панели — /wp-admin/.

Как обновлять Service Worker

Когда вы меняете файлы сайта (CSS, JS, изображения), нужно обновить версию кэша. Самый простой способ — изменить версию кэша в настройках генератора (например, с v1.0.0 на v1.0.1).

Браузер автоматически обнаружит, что файл изменился, и загрузит новую версию. Также можно изменить сам файл service-worker.js — браузер сравнивает его по байтам и обновляет при изменении.

Как отключить Service Worker

Если вам нужно отключить Service Worker, сделайте следующее:

  1. В Chrome: F12 → вкладка ApplicationService Workers → нажмите Unregister напротив вашего сайта.
  2. Также можно использовать кнопку Clear storage в той же вкладке, чтобы очистить все данные.
  3. Для полного отключения удалите скрипт регистрации из HTML.

Плагины для WordPress: упрощённый путь

Если вы не хотите разбираться в настройке вручную, можно использовать плагины:

  • PWA for WP — автоматически устанавливает Service Worker и кэширует внешние объекты.
  • Super Progressive Web Apps — превращает сайт в PWA с офлайн-режимом и установкой на экран.
  • SiteEase PWA — настраивает кэширование через интерфейс без кода.

Но даже с плагинами вам понадобится файл service-worker.js — его можно создать через наш генератор и затем использовать в настройках плагина.


Что в итоге?

Service Worker — это мощный инструмент, который делает сайт быстрее, доступнее и удобнее для пользователей. Особенно это важно для мобильного трафика и интернет-магазинов, где каждая секунда загрузки влияет на покупку.

Если вы не хотите разбираться в технических деталях — мы поможем. В WebForge24 мы настраиваем Service Worker и полностью адаптируем сайт под стандарты PWA.

Закажите внедрение Service Worker — и ваш сайт будет работать даже без интернета.