PWA может продолжать показывать старую версию сайта даже после выкладки нового кода. Для пользователя это выглядит как баг: у одних уже новый интерфейс, у других старый.

Такая проблема мешает релизам, поддержке и исправлению критических ошибок, потому что часть аудитории остается на старой версии.

Коротко: нужно настроить стратегию кеширования HTML, версионирование assets и понятное обновление service worker.

Почему возникает проблема

Чаще всего service worker кеширует HTML по cache-first, не удаляет старые кеши, не активируется из-за открытых вкладок или assets публикуются без версий.

Что проверяю в первую очередь

  • кешируется ли HTML
  • меняется ли версия assets
  • активируется ли новый service worker
  • удаляются ли старые кеши
  • видит ли пользователь кнопку обновления

Как исправляю

Я разделяю кеширование shell, assets и API, чтобы новая версия доходила предсказуемо.

  • меняю стратегию кеширования HTML
  • добавляю версионирование assets
  • очищаю старые cache storage
  • настраиваю skipWaiting/clientsClaim аккуратно
  • показываю пользователю кнопку обновления

Что подготовить перед обращением

  • ссылка на сайт или кабинет
  • скриншот проблемы
  • пример пользователя, заказа или события
  • время, когда ошибка повторялась
  • доступы или выгрузка логов без лишних персональных данных

Какой результат нужен

После публикации новая версия появляется у пользователей без ручной очистки кеша и без бесконечных перезагрузок.

Чего лучше не делать

Не просите всех чистить кеш браузера. Это обход, а не исправление стратегии обновления.

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

Почему обычный сайт обновился, а PWA нет?

PWA обслуживает service worker, который мог вернуть старый кеш.

Можно ли обновлять принудительно?

Можно, но нужно не потерять данные пользователя и не зациклить перезагрузку.

Нужно ли кешировать API?

Только осознанно, особенно если данные персональные или часто меняются.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот, лог ошибки или пример заказа, и я подскажу, с чего безопасно начать исправление.

Итог

Обновление PWA зависит от правильной стратегии service worker: HTML, assets, старые кеши и активация должны быть управляемыми.