
Jak działa przekierowanie meta refresh?
Przekierowanie meta refresh działa dzięki znacznikowi meta z atrybutem http-equiv=”refresh” umieszczonemu w sekcji head. Atrybut content zawiera liczbę sekund, średnik i docelowy adres. Typowa natychmiastowa wersja wygląda tak: meta http-equiv=”refresh” content=”0; url=https://example.pl/nowa-strona/”.
Według MDN odliczanie zaczyna się dopiero po pełnym załadowaniu strony. Tę samą instrukcję można wysłać jako nagłówek HTTP Refresh (na przykład Refresh: 0; url=https://example.pl/nowa-strona/), który MDN opisuje jako dokładny odpowiednik znacznika. Bez adresu URL znacznik po prostu przeładowuje tę samą stronę po upływie czasu.
Meta refresh a przekierowania HTTP 3xx
Meta refresh różni się od przekierowań 3xx tym, że działa w przeglądarce po dostarczeniu strony, a nie w odpowiedzi HTTP. RFC 9110 definiuje kody 3xx, takie jak przekierowanie 301 i przekierowanie 302, jako odpowiedzi, w których serwer wskazuje inny zasób w nagłówku Location. Strona z meta refresh zwykle zwraca kod 200, więc przekierowanie istnieje dopiero po przetworzeniu HTML.
MDN podaje kolejność wykonywania przekierowań: najpierw HTTP, potem JavaScript, a meta refresh na końcu. To czyni meta refresh najmniej niezawodną metodą.
| Cecha | 301 / 308 | Meta refresh |
|---|---|---|
| Gdzie działa | serwer, odpowiedź HTTP | przeglądarka, strona HTML |
| Kod odpowiedzi | 301 lub 308 | zwykle 200 |
| Obrazy i pliki PDF | tak | nie, tylko HTML |
| Interpretacja Google | stałe | 0 s: stałe, opóźnienie: tymczasowe |
| Rekomendacja | pierwszy wybór | tylko awaryjnie |
Jak Google traktuje przekierowanie meta refresh?
Google traktuje meta refresh jako stałe przy opóźnieniu 0 sekund i jako tymczasowe przy każdym opóźnieniu. Dokumentacja Google Search Central umieszcza natychmiastowy meta refresh obok 301 i 308, czyli sygnałów, że adres docelowy powinien stać się kanoniczny. Opóźniony meta refresh trafia do grupy z 302, 303 i 307, więc w wynikach zwykle zostaje stary adres. Google zaleca meta refresh tylko wtedy, gdy platforma nie pozwala na przekierowania po stronie serwera.
Meta refresh czy przekierowanie JavaScript?
Meta refresh jest pewniejszy dla Google niż przekierowanie w JavaScript. Google wykonuje JavaScript dopiero podczas renderowania strony, a dokumentacja Search Central przyznaje, że renderowanie może się nie udać i wtedy robot w ogóle nie zobaczy przekierowania. Kolejność preferowana przez Google to więc przekierowanie serwerowe, potem meta refresh, a na końcu JavaScript (window.location). Dotyczy to zwłaszcza sklepów na platformach SaaS, w których nie zawsze da się edytować konfigurację serwera.
Kiedy stosować meta refresh?
Stosuj meta refresh tylko wtedy, gdy nie masz dostępu do konfiguracji serwera. Typowe sytuacje to:
- Hosting statyczny bez możliwości ustawienia nagłówków odpowiedzi.
- Zamknięte systemy CMS i kreatory stron bez menedżera przekierowań.
- Pojedyncze stare podstrony, których nie da się przenieść na nowy serwer.
W pozostałych przypadkach ustaw 301 w konfiguracji serwera. W Apache to jedna linia w pliku .htaccess: Redirect 301 /stara-strona/ https://example.pl/nowa-strona/. W Nginx: location = /stara-strona/ { return 301 https://example.pl/nowa-strona/; }. Nie łącz metod: MDN ostrzega, że równoległe przekierowanie HTTP i meta refresh dla tego samego adresu może wywołać pętlę lub łańcuch przekierowań.
Meta refresh a dostępność i ryzyka SEO
Opóźniony meta refresh to błąd dostępności według WCAG. Technika F40 organizacji W3C uznaje przekierowania z opóźnieniem za niezgodne z kryteriami 2.2.1, 2.2.4 i 3.2.5, bo użytkownik czytnika ekranu może zostać przeniesiony przed przeczytaniem treści. Przekierowanie z opóźnieniem 0 sekund jest akceptowane, ale W3C nadal wskazuje przekierowania serwerowe jako lepsze rozwiązanie.
W SEO główne ryzyka to wolniejsze przekierowania, marnowanie budżetu indeksowania na strony, które tylko przekazują ruch, oraz sygnały spamu, gdy strona pokazuje Googlebotowi jedno, a użytkownika po kilku sekundach przenosi gdzie indziej. W audytach technicznego SEO wypisuję każdy meta refresh znaleziony podczas crawlu i zamieniam go na 301 wszędzie tam, gdzie pozwala serwer.
Najczęstsze pytania: Przekierowanie meta refresh
Czy meta refresh szkodzi SEO?
Meta refresh z opóźnieniem 0 sekund nie szkodzi, bo Google traktuje go jak przekierowanie stałe. Wersje z opóźnieniem działają jak przekierowania tymczasowe i zostawiają w indeksie stary adres, dlatego 301 na serwerze jest zawsze lepszym wyborem.
Czy meta refresh to 301 czy 302?
Meta refresh nie jest ani 301, ani 302, bo nie jest kodem odpowiedzi HTTP. Google interpretuje natychmiastowy meta refresh jak 301, a opóźniony jak 302.
Jak zrobić przekierowanie meta refresh?
Dodaj w sekcji head znacznik meta z atrybutami http-equiv="refresh" i content="0; url=https://example.pl/nowa-strona/". Ustaw 0 sekund, żeby Google uznał przekierowanie za stałe.
Czy Google respektuje meta refresh?
Tak, Google Search Central potwierdza, że Googlebot podąża za przekierowaniami meta refresh. Mimo to zaleca przekierowania po stronie serwera wszędzie, gdzie to możliwe.
Powiązane pojęcia
- Redirects and Google Search · Google Search Central
- Redirections in HTTP · MDN Web Docs
- <meta> http-equiv attribute · MDN Web Docs
- Refresh header · MDN Web Docs
- RFC 9110: HTTP Semantics · IETF HTTP Working Group
- F40: Failure due to using meta redirect with a time limit · W3C WAI







