Chrome potrafi przeładować stronę nawet wtedy, gdy sam użytkownik nic nie robi – i to z kilku zupełnie różnych powodów. Niektóre odświeżenia wywołuje przeglądarka, inne sama strona, a rozróżnienie między nimi decyduje o tym, jakie rozwiązanie w ogóle ma szans zadziałać. Ten artykuł wyjaśnia mechanizmy stojące za samoczynnym odświeżaniem i pokazuje, jak je kontrolować krok po kroku.
Najważniejsze informacje z tego artykułu:
- Chrome nie ma jednej opcji wyłączającej automatyczne odświeżanie – problem może mieć źródło w przeglądarce lub w samej stronie.
- Odświeżanie po powrocie do nieaktywnej karty najczęściej powoduje mechanizm tab discarding, czyli zwalnianie pamięci RAM przez ubijanie procesów kart w tle.
- Adres chrome://discards pozwala sprawdzić, które karty są kandydatami do automatycznego odrzucenia, i zdiagnozować przyczynę przeładowania.
- Trwałe wyłączenie automatycznego odświeżania kart w Chrome wymaga rozszerzenia lub polityki enterprise – natywne flagi Chrome są niestabilne i zmieniają się między wersjami.
- Jeśli strona odświeża się niezależnie od przeglądarki, przyczyna może leżeć w tagu meta refresh, skrypcie JavaScript lub mechanizmie Service Worker.
Jak wyłączyć automatyczne odświeżanie strony w Chrome?
Zanim cokolwiek wyłączysz, musisz wiedzieć, co tak naprawdę odświeża stronę. Chrome nie ma jednej natywnej opcji „wyłącz auto-refresh” dla wszystkich stron – i to nie jest przeoczenie twórców przeglądarki, lecz konsekwencja tego, że odświeżanie może mieć kilka niezależnych źródeł.
Skąd pochodzi odświeżenie – przeglądarka czy strona?
Dwa zupełnie różne mechanizmy wyglądają identycznie z perspektywy użytkownika:
- Tab discarding – Chrome zwalnia pamięć RAM, ubijając procesy kart otwartych w tle. Kiedy wracasz do takiej karty, strona ładuje się od zera. To nie jest odświeżenie wywołane przez stronę – to restart procesu przeglądarki.
- Odświeżanie strony – sama witryna wymusza przeładowanie przez tag
<meta http-equiv="refresh">, skrypt JavaScript (location.reload(),setInterval) lub mechanizm Service Worker (pracownik usługi), który po aktualizacji wysyła żądanie ponownego załadowania klienta.
Wyłączenie mechanizmów Chrome nie zatrzyma odświeżeń wywoływanych przez samą stronę – i odwrotnie: żadne narzędzie po stronie witryny nie zapobiegnie tab discardingowi.
Szybki test: wpisz document.wasDiscarded w konsoli DevTools (skrót klawiszowy F12, zakładka Console). Jeśli wynik to true, strona załadowała się po tym, jak Chrome odrzucił jej kartę z pamięci – przyczyną jest tab discarding, a nie logika witryny.
Jak wyłączyć tab discarding przez ustawienia Chrome?
Chrome ma funkcję Oszczędzanie pamięci (Memory Saver), która celowo uśpia nieaktywne karty. Możesz dodać konkretne strony do wyjątków, żeby Chrome nigdy ich nie usypiał.
Oto jak to zrobić:
- Otwórz Chrome i kliknij trzy kropki w prawym górnym rogu.
- Wybierz Ustawienia.
- Przejdź do sekcji Wydajność.
- Upewnij się, że widzisz włączoną opcję Oszczędzanie pamięci.
- Kliknij Dodaj przy sekcji z wyjątkami (Always keep these sites active).
- Wpisz adres strony, która nie powinna być usypiana.
To rozwiązanie zapobiega usypianiu przez Memory Saver, ale nie blokuje reloadów zaprogramowanych przez samą witrynę. Przypięte karty (pinned tabs) też nie są pełną ochroną – przy dużej presji pamięci Chrome może odrzucić ich procesy renderowania mimo wszystko.
Wskazówka: Przed instalacją jakiegokolwiek rozszerzenia sprawdź w chrome://discards, czy kolumna Discarded ma wartość Yes dla problematycznej karty. Jeśli tak – przyczyną jest tab discarding i wystarczy rozszerzenie blokujące to zachowanie. Jeśli nie – szukaj przyczyny po stronie strony.
Jak trwale wyłączyć automatyczne odrzucanie kart przez rozszerzenie?
Ustawienia Chrome dają tylko częściową kontrolę. Trwałe i niezawodne wyłączenie tab discardingu wymaga rozszerzenia, które ustawia flagę AutoDiscardable na false dla kart przez API przeglądarki.
Dostępne rozszerzenia różnią się zakresem działania:
| Rozszerzenie | Zakres | Obsługa polityk enterprise | Granularność |
|---|---|---|---|
| Disable automatic tab discarding | Wszystkie karty | Nie | Globalna |
| No-Tabs-Auto-Discard | Wszystkie karty lub wybrane domeny | Tak | Domeny / globalna |
| DoNotDiscard | Wybrane adresy URL | Nie | Filtrowanie URL |
Instalacja rozszerzenia Disable automatic tab discarding działa następująco:
- Przejdź do Chrome Web Store i wyszukaj Disable automatic tab discarding.
- Kliknij Dodaj do Chrome i potwierdź uprawnienia.
- Po instalacji rozszerzenie automatycznie ustawia flagę AutoDiscardable na
falsedla każdej karty – nowej i istniejącej. - Zweryfikuj efekt: otwórz
chrome://discardsi sprawdź, czy kolumna AutoDiscardable pokazuje krzyżyk (wartość false) dla Twoich kart.
Rozszerzenie nie daje stuprocentowej gwarancji – przy ekstremalnym niedoborze pamięci system operacyjny może wymusić zamknięcie procesów przeglądarki mimo wszystko. W normalnej codziennej pracy jednak eliminuje zdecydowaną większość niechcianych przeładowań kart.
Czy można wyłączyć odświeżanie przez flagi Chrome?
W starszych wersjach Chrome (ok. 48–67) istniała flaga #automatic-tab-discarding, którą można było wyłączyć pod adresem chrome://flags. Flaga zniknęła około Chrome 75, a jej rolę przejął bardziej złożony mechanizm o nazwie Proactive Tab Freeze and Discard. W niektórych wersjach pośrednich pojawiła się opcja freeze only, która wyłączała odrzucanie kart, pozostawiając tylko ich zamrażanie (czyli zawieszanie procesów bez ubijania).
Oparcie rozwiązania wyłącznie na flagach Chrome jest ryzykowne – Google usuwa je, zmienia nazwy i semantykę między wersjami bez ostrzeżenia. Flagi sprawdzają się jako tymczasowy test diagnostyczny, ale nie jako trwałe rozwiązanie produkcyjne.
Jak zablokować odświeżanie strony wywołane przez samą witrynę?
Jeśli document.wasDiscarded zwraca false, a strona i tak się przeładowuje, źródło leży po stronie witryny. Mechanizmy, które mogą to powodować, to:
- Meta refresh – tag
<meta http-equiv="refresh" content="30">w kodzie HTML wymusza przeładowanie co 30 sekund, niezależnie od Chrome. - JavaScript – funkcje takie jak
setTimeout(() => location.reload(), 30000)lubsetIntervaluruchamiają reload w zaplanowanym czasie. - Nagłówek HTTP Refresh – działa podobnie do meta refresh, ale nie jest widoczny w kodzie źródłowym strony; można go zobaczyć wyłącznie w DevTools w zakładce Network → Headers dla danego żądania.
- Service Worker – po aktualizacji aplikacji webowej Service Worker może wysłać żądanie
clients.claim()lubskipWaiting(), co powoduje przeładowanie karty.
Warto też wiedzieć, że strony typu SPA (Single Page Application, czyli aplikacje jednostronicowe) często odświeżają dane po zdarzeniu visibilitychange – czyli w momencie, gdy użytkownik wraca do karty. To może wyglądać jak pełne przeładowanie strony, choć technicznie jest tylko ponownym pobraniem danych z API bez restartu całej karty.
Jak zablokować konkretny mechanizm odświeżania strony:
- Meta refresh – rozszerzenia blokujące auto-refresh (np. Auto Refresh Blocker) usuwają tag meta refresh z kodu strony; część z nich nie radzi sobie jednak z nagłówkiem HTTP Refresh.
- JavaScript – wyłączenie JavaScriptu w Chrome (zakładka Ustawienia witryny) zatrzyma reloady oparte na
setTimeoutisetInterval, ale uwaga: niektóre strony mają meta refresh ukryty w sekcjinoscripti paradoksalnie wyłączenie JavaScriptu może wtedy uruchomić odświeżanie zamiast je zablokować. Jak włączyć lub wyłączyć JavaScript w Google Chrome, opisałem w osobnym artykule na jak włączyć JavaScript w Google Chrome. - Service Worker – otwórz DevTools → Application → Service Workers, znajdź domenę problematycznej strony i kliknij Unregister lub włącz opcję Bypass for network, żeby ominąć Service Workera przy ładowaniu strony.
Jak sprawdzić, co powoduje automatyczne odświeżanie w Chrome?
Rozpoznanie źródła odświeżenia to warunek konieczny, żeby dobrać właściwe rozwiązanie. Poniżej opisuję dokładny workflow diagnostyczny.
Krok 1 – Sprawdź chrome://discards
Wpisz chrome://discards w pasku adresu Chrome. Zobaczysz tabelę wszystkich otwartych kart z kolumnami:
- AutoDiscardable – wartość true oznacza, że karta jest kandydatem do automatycznego odrzucenia przez Chrome.
- Discarded – wartość Yes oznacza, że karta została już odrzucona (i ładuje się od zera po powrocie).
Jeśli Discarded ma wartość Yes tuż po tym, jak strona się przeładowała – przyczyną jest tab discarding. Rozwiązanie to rozszerzenie lub polityki enterprise opisane wyżej.
Krok 2 – Analiza w DevTools
Otwórz DevTools (F12) i przejdź do zakładki Network. Zaznacz opcję Preserve log, żeby nie tracić historii żądań przy przeładowaniu strony.
Po powrocie do karty i odświeżeniu obserwuj:
- Czy pojawia się nowe żądanie dla dokumentu HTML (status 200 lub 304)? Jeśli tak, nastąpiło pełne przeładowanie.
- Kolumna Initiator pokazuje, co wywołało żądanie – skrypt wskaże konkretny plik JavaScript, a meta refresh będzie wyglądać inaczej niż ręczne F5.
- Sprawdź zakładkę Headers dla dokumentu HTML – nagłówek
Refreshw odpowiedzi serwera oznacza, że to serwer wymusza odświeżanie, a nie kod strony.
Wskazówka: Nagłówek HTTP Refresh nie pojawi się w opcji Wyświetl źródło strony – jedyne miejsce, gdzie możesz go zobaczyć, to DevTools w sekcji Network → Headers odpowiedzi serwera.
Krok 3 – Weryfikacja Service Workera
W DevTools przejdź do Application → Service Workers. Jeśli dla danej domeny widnieje aktywny Service Worker, sprawdź jego kod – szukaj wywołań clients.claim(), skipWaiting() lub nasłuchiwania zdarzenia activate z wymuszonym reloadem.
Możesz też tymczasowo włączyć opcję Bypass for network, żeby całkowicie ominąć Service Workera i sprawdzić, czy odświeżanie nadal występuje.
Krok 4 – Weryfikacja nagłówków cache
Nagłówki Cache-Control: no-store lub Cache-Control: no-cache, must-revalidate po stronie serwera wymuszają, żeby Chrome zawsze pobierał stronę z sieci przy każdym powrocie do karty. Jest to typowe zachowanie dla aplikacji bankowych, paneli administracyjnych i systemów z dynamicznymi tokenami CSRF (tokenami zabezpieczającymi formularze przed atakami). W takich przypadkach nie możesz zmienić zachowania po stronie przeglądarki – przeładowanie jest wymuszane przez politykę serwera.

Jak wyłączyć automatyczne odświeżanie kart w środowisku firmowym?
W środowiskach korporacyjnych, gdzie otwarte karty to aplikacje CRM, dashboardy monitoringowe lub systemy helpdesk, samoczynne przeładowanie może oznaczać utratę kontekstu pracy lub wylogowanie z sesji. Rozwiązania oparte na flagach Chrome są tu zbyt niestabilne – Google zmienia je między wersjami bez ostrzeżenia.
Trwałe podejście enterprise opiera się na trzech elementach:
- Rozszerzenie z obsługą polityk – No-Tabs-Auto-Discard obsługuje konfigurację przez polityki Chrome i przez lokalny plik
config.json. Możesz ustawić"DiscardDisabledMode":"DISABLE_FOR_ALL_TABS"dla wszystkich kart albo zdefiniować listę domen wDiscardDisabledDomains. Rozszerzenie odświeża konfigurację co 60 minut, przy starcie Chrome i po zablokowaniu ekranu. - Wymuszona instalacja przez polityki Chrome – rozszerzenie wdraża się centralnie przez mechanizm force install, bez potrzeby działania po stronie użytkownika końcowego.
- Testowanie po aktualizacjach Chrome – po każdej nowej wersji przeglądarki warto weryfikować zachowanie w
chrome://discardsi sprawdzać, czy rozszerzenie nadal poprawnie ustawia AutoDiscardable nafalse.
Wskazówka: Jeśli w firmie korzystasz z systemów, które otwierasz przez przeglądarkę, np. przez pulpit zdalny Chrome – warto zadbać, żeby karty z tymi aplikacjami były wyłączone z automatycznego odrzucania. Instrukcję dotyczącą włączania pulpitu zdalnego Chrome opisałem w osobnym artykule.
Nawet z rozszerzeniami i politykami warto pamiętać, że ekstremalny brak pamięci RAM może wymusić zamknięcie procesów przez system operacyjny – poza kontrolą Chrome. Dlatego dobrze zaprojektowane aplikacje webowe powinny zapisywać stan użytkownika (wypełnione formularze, filtry, pozycję listy) w localStorage, IndexedDB lub w URL-u (parametry query/hash), żeby po ewentualnym przeładowaniu kontekst był odtwarzany automatycznie.
Podsumowanie
Automatyczne odświeżanie strony w Chrome to nie jeden problem, lecz kilka nakładających się mechanizmów. Tab discarding zwalnia RAM kosztem kart w tle, meta refresh i JavaScript wymuszają reload po stronie witryny, a nagłówki HTTP mogą sprawić, że przeglądarka zawsze pobiera stronę od nowa. Wyłączenie automatycznego odświeżania stron w Chrome wymaga więc najpierw zdiagnozowania źródła – najlepiej przez chrome://discards i DevTools. Trwałą kontrolę nad odrzucaniem kart dają rozszerzenia takie jak No-Tabs-Auto-Discard lub Disable automatic tab discarding, a w środowiskach firmowych – polityki Chrome. Natywne flagi przeglądarki bywają pomocne diagnostycznie, ale jako rozwiązania produkcyjne są zbyt niestabilne.

FAQ
Q: Czy przypięcie karty w Chrome zapobiega jej automatycznemu odświeżeniu?
A: Przypięte karty (pinned tabs) są traktowane priorytetowo, ale przy dużej presji pamięci Chrome może mimo to odrzucić ich proces renderowania. Przypięcie nie jest gwarancją braku przeładowania.
Q: Czy automatyczne odświeżanie kart w Chrome zużywa więcej transferu danych?
A: Tak. Każde przeładowanie strony po odrzuceniu karty to nowe żądanie HTTP – przeglądarka pobiera stronę od nowa. Przy nagłówku Cache-Control: no-store nie korzysta nawet z lokalnego cache.
Q: Czy wyłączenie Memory Saver całkowicie zatrzymuje tab discarding?
A: Wyłączenie Memory Saver w ustawieniach wydajności Chrome ogranicza agresywne usypianie kart, ale Chrome może nadal odrzucać karty przy dużej presji pamięci systemowej, poza działaniem tej funkcji.
Q: Czy problem automatycznego odświeżania dotyczy tylko Chrome, czy też innych przeglądarek opartych na Chromium?
A: Mechanizm tab discarding jest wbudowany w silnik Chromium, dlatego dotyczy też przeglądarek na nim opartych, takich jak Microsoft Edge czy Brave, choć szczegóły implementacji i ustawień mogą się różnić między nimi.
Q: Jak sprawdzić, czy strona korzysta z meta refresh, zanim zainstaluje się rozszerzenie?
A: Otwórz DevTools (F12), przejdź do zakładki Elements i wyszukaj frazę http-equiv w kodzie strony. Możesz też użyć Ctrl+F w zakładce Sources. Nagłówek HTTP Refresh sprawdzisz wyłącznie w Network → Headers.















Opublikuj komentarz