Stavové kódy

Stavové kódy prakticky: co která trojčíslí znamená a jak je čte Google

Stavový kód je trojmístné číslo, kterým server odpovídá na každý požadavek prohlížeče nebo robota a kterým říká, jak požadavek dopadl. Nevidíte ho na stránce, nevytiskne se do textu a běžný návštěvník o něm neví — ale rozhoduje o tom, jestli se vaše stránka dostane do indexu, jestli z něj vypadne, a jak rychle Google váš web prochází.

V auditech narážíme na dvě situace pořád dokola. Buď stránka tvrdí „nenalezeno“ a přitom vrací kód 200, takže Google nemá důvod ji z indexu odstranit. Nebo někdo při odstávce vypnul celý web včetně souboru robots.txt a zastavil tím procházení všeho ostatního. Obojí se dá zjistit za minutu — když víte, kam se dívat. Tenhle přehled vychází z dokumentace Google a je napsaný tak, abyste podle něj kód uměli zjistit, přečíst a opravit.

Co stavový kód říká a co ne

Představte si stavový kód jako razítko na obálce, kterou vám vrátí pošta. Obsah dopisu je jedna věc, razítko druhá. Když je na obálce „adresát neznámý“, pošťák se dál nezajímá, co je uvnitř. A naopak — když razítko chybí nebo tvrdí „doručeno“, systém dopis odbaví jako v pořádku, i kdyby byl vevnitř prázdný papír.

Přesně takhle pracuje Google. Kód generuje server, který web hostuje, a posílá ho v hlavičce odpovědi dřív, než se začne stahovat obsah. Robot se podle něj rozhoduje ještě předtím, než se podívá na text stránky.

Co z kódu poznáte

Ano
  • +Jestli server odpověď vůbec vydal a jestli ji považuje za úspěšnou.
  • +Jestli adresa vede jinam a jestli je to změna trvalá, nebo dočasná.
  • +Jestli je chyba na straně požadavku, nebo na straně serveru.
  • +Jestli má robot přijít znovu za chvíli, nebo adresu pustit z hlavy.

Co z kódu nepoznáte

Ne
  • Jestli stránka skončí v indexu. Kód 200 indexaci nezaručuje.
  • Jestli je obsah kvalitní. To řeší úplně jiné systémy.
  • Jestli stránka existuje z pohledu člověka. Prázdná stránka může vracet 200.
  • Co uvidí návštěvník. Vzhled chybové stránky a kód spolu vůbec nesouvisejí.
⚠️

To, co je napsané na stránce, nemá s kódem nic společného

Stránka může mít velký nadpis „Stránka nenalezena“ a přitom serverem odbavená jako 200 (úspěch). Pro návštěvníka je to chyba, pro Google správně fungující stránka, kterou nemá důvod odstranit z indexu. Tuhle kombinaci nezjistíte pohledem — jen kontrolou hlavičky.

Pět tříd podle první číslice

První číslice určuje kategorii, zbývající dvě ji upřesňují. Google ve své dokumentaci popisuje dvacet kódů, na které jeho roboti na webu narážejí nejčastěji; exotické kódy jako 418 v ní nenajdete a v praxi je řešit nebudete.

Třída Význam Jak s ní zachází Google
1xx Informační průběžná odpověď V praxi se u obsahu webu neřeší, dokumentace Google se jí nezabývá.
2xx Úspěch Obsah může jít do dalšího zpracování, u vyhledávání do indexační fronty.
3xx Přesměrování Robot jde dál na cíl, obsah z přesměrovávající adresy ignoruje.
4xx Chyba na straně klienta Obsah se nepoužije, dříve zaindexovaná adresa se z indexu odstraní.
5xx Chyba serveru Procházení se dočasně zpomalí, při delším trvání adresy z indexu vypadnou.

Search Console generuje chybová hlášení pro kódy v rozsahu 4xx až 5xx a pro nepovedená přesměrování. Je to nejrychlejší způsob, jak zjistit, že se něco děje — ale ukazuje stav zpětně, ne v reálném čase.

Jak kód zjistit za minutu

Existují tři cesty a hodí se každá k něčemu jinému. Pro jednu adresu příkazová řádka, pro celý web crawler, pro pohled Googlu Search Console.

terminál

# Vypíše jen hlavičku odpovědi, obsah nestahuje curl -I https://www.vas-eshop.cz/produkt/ # Odpověď začíná řádkem se stavovým kódem: # HTTP/2 200

Překlad do češtiny: Přepínač -I říká, ať se stáhne jen hlavička, ne celá stránka. První řádek odpovědi obsahuje verzi protokolu a stavový kód. U přesměrování v odpovědi navíc najdete řádek location s cílovou adresou.

  1. 1

    Jedna adresa: příkazová řádka nebo vývojářské nástroje

    Příkaz výše funguje na macOS i ve Windows. Bez terminálu otevřete v prohlížeči vývojářské nástroje, záložku Network, načtěte stránku a podívejte se na první požadavek v seznamu.

  2. 2

    Celý web: crawler

    Nástroj, který projde web jako robot, vypíše kód u každé adresy. Tohle je jediný způsob, jak najít řetězce přesměrování a odkazy na neexistující stránky dřív, než na ně narazí Google.

  3. 3

    Pohled Googlu: Search Console

    Nástroj pro kontrolu adres URL ukáže kód, který Google při posledním procházení skutečně dostal. Přehled indexovaných stránek pak seskupí adresy podle důvodu, proč v indexu nejsou.

  4. 4

    Ověřte i to, co vidí robot

    Server může odpovídat jinak přihlášenému uživateli a jinak robotovi. Když čísla nesedí, otevřete adresu v anonymním okně a porovnejte.

2xx: úspěch, který nezaručuje indexaci

Kód 200 znamená, že server požadavek zpracoval a vydal obsah. Google ho předá dalšímu kroku zpracování — u vyhledávání indexační frontě. A tady končí jakákoli jistota: dokumentace výslovně říká, že indexační systémy obsah zaindexovat mohou, ale zaručené to není.

Kód Co s ním Google dělá
200 (success) Předá obsah dál ke zpracování. Indexace možná, nikoli jistá.
201 (created), 202 (accepted) Chvíli počká na obsah a pak pošle dál to, co dostal. Délka čekání se liší podle robota.
204 (no content) Žádný obsah nedorazil, není tedy co zpracovat.

Praktický dopad je jednoduchý: 200 není cíl, je to vstupenka. Když stránka není v indexu a přitom vrací 200, není chyba na serveru a nemá cenu ji tam hledat. Odpověď bude v obsahu, v kanonizaci nebo v tom, že Google stránku zatím nepovažuje za dost užitečnou.

3xx: přesměrování a jeho síla

Přesměrování říká, že obsah je jinde. Roboti Googlu ve výchozím nastavení projdou až deset přesměrování za sebou, jednotlivé produkty se ale mohou lišit — nástroj pro kontrolu adres URL například přesměrování nesleduje vůbec. Obsah z přesměrovávající adresy se zahodí, zpracuje se až cíl.

Kód Význam a chování Googlu
301 (moved permanently) Trvalé přesměrování. Silný signál, že se má zpracovávat cílová adresa.
302 (found) Dočasné přesměrování. Slabý signál pro cílovou adresu.
303 (see other) Google se chová stejně jako u ostatních přesměrování.
304 (not modified) Obsah se od minule nezměnil. Signály pro adresu se mohou přepočítat, na indexaci to jinak vliv nemá.
307 (temporary redirect) Google zachází stejně jako s 302.
308 (permanent redirect) Google zachází stejně jako s 301.

Že Google zachází s 301 a 308 stejně, neznamená, že jsou zaměnitelné. Významově se liší a ostatní klienti — jiné vyhledávače, čtečky, aplikace — se podle toho rozhodují. Použijte ten kód, který situaci skutečně odpovídá.

💡

Deset přesměrování je strop, ne doporučení

Limit deseti kroků platí pro robota. Uživatel čeká na každý krok zvlášť a na mobilním připojení to poznáte. Po migraci proto řetězce zkraťte — z adresy A veďte přesměrování rovnou na konečný cíl, ne přes tři mezistanice, které vznikly během několika předělávek webu.

4xx: chyby na straně klienta

Tady je nejdůležitější věta celého článku pro každého, kdo řeší mazání produktů: Google zachází se všemi kódy 4xx kromě 429 úplně stejně. Roboti oznámí dalšímu kroku zpracování, že obsah neexistuje. Dříve zaindexovaná adresa se z indexu odstraní, nově objevená se nezpracuje a frekvence procházení postupně klesá.

Prakticky to znamená, že spor „404, nebo 410“ nemá u Googlu obsah. Kód 410 (gone) je významově přesnější, protože říká, že obsah byl odstraněn natrvalo — ale rychlejší odindexování si od něj neslibujte. Za pozornost stojí jen dvě výjimky:

Kód Na co si dát pozor
401 (unauthorized), 403 (forbidden) Nepoužívejte je na omezování rychlosti procházení. Kódy 4xx kromě 429 na rychlost procházení nemají žádný vliv.
429 (too many requests) Jediná výjimka. Roboti Googlu ho berou jako signál přetíženého serveru a vyhodnocují ho jako chybu serveru, tedy jako 5xx.

A ještě jedna věc, která bere e-shopařům zbytečné starosti: chyba 404 sama o sobě problém není. Neexistující adresy vznikají přirozeně. Problém začíná tam, kde na ně odkazujete vy sami — z menu, z kategorií nebo z mapy webu.

5xx a 429: chyby serveru

Chyby serveru a kód 429 vedou k tomu, že roboti Googlu procházení dočasně zpomalí. Zpomalení je úměrné počtu adres, které chybu vracejí — čím větší část webu padá, tím výraznější je brzda. Už zaindexované adresy zůstávají v indexu, ale při dlouhodobém trvání chyby z něj vypadnou. Jakmile server začne zase odpovídat kódem 2xx, rychlost procházení se postupně vrátí.

⚠️

Krátký výpadek nic neznamená, dlouhý stojí pozice

Rozdíl mezi patnáctiminutovým výpadkem a třídenním není v kódu — ten je pokaždé stejný. Je v tom, jak dlouho ho Google vidí. Proto do monitoringu dostupnosti patří i upozornění na sérii chyb 5xx, ne jen na to, že web „neběží“.

Kód 503 (service unavailable) je z téhle skupiny jediný, který se používá záměrně. Google ho doporučuje pro naléhavé vypnutí webu na jeden až dva dny — s informační chybovou stránkou místo obsahu. Pro delší odstávku doporučuje něco jiného: nechat na webu indexovatelnou úvodní stránku s kódem 200, kde návštěvník zjistí, co se děje. A samotné vypnutí celého webu Google nedoporučuje vůbec, ani na pár týdnů; místo toho radí omezit funkčnost, tedy třeba vypnout košík a nechat obsah dostupný.

Soft 404: kód lže

Soft 404 není stavový kód. Je to označení, které vám dá Search Console ve chvíli, kdy server odpoví kódem 2xx, ale obsah stránky napovídá, že jde o chybu — prázdná stránka nebo chybová hláška v textu.

Vzniká to obvykle třemi způsoby: vlastní chybová stránka je v systému založená jako běžná stránka a vrací 200, stránka se robotovi nevykreslí celá a zůstane prázdná, nebo všechny zrušené produkty míří na jednu adresu, která s původním obsahem nesouvisí.

💡

Když dobrá stránka spadne do soft 404

Podle dokumentace Google to bývá tím, že se stránka robotovi nenačetla správně, chyběly jí důležité zdroje, nebo se při vykreslování zobrazila chybová hláška. Nejčastější příčiny jsou blokované zdroje v robots.txt, příliš mnoho zdrojů na jedné stránce, chyby serveru a pomalé nebo objemné soubory. Zkontrolujte stránku nástrojem pro kontrolu adres URL a podívejte se na vykreslenou podobu, ne na zdrojový kód.

Zvláštní případ: robots.txt

U jednoho jediného souboru mají stavové kódy dopad na celý web. Google popisuje chování u robots.txt zvlášť a stojí za to ho znát, protože tady se dá udělat nejdražší chyba.

Odpověď u robots.txt Jak se Google zachová
2xx Zpracuje soubor tak, jak ho server vrátil.
3xx Projde nejméně pět přesměrování, pak to bere jako 404. Přesměrování přes JavaScript nebo meta refresh nesleduje.
4xx (kromě 429) Chová se, jako by soubor neexistoval — tedy jako by nic nebylo zakázané.
5xx Prvních 12 hodin přestane web procházet. Dalších 30 dní používá poslední funkční verzi. Když chyba trvá déle a web je jinak dostupný, chová se, jako by soubor neexistoval.
DNS a síťové chyby Vyhodnocují se stejně jako chyba serveru.

Z toho plyne pravidlo, které Google uvádí přímo v návodu pro odstávky: soubor robots.txt nesmí při vypnutí webu vracet 503. Zablokuje to procházení všeho ostatního. Když tedy odstavujete web, chybovou stránku posílejte na obsah, ale robots.txt nechte odpovídat normálně.

Kuchařka: který kód v které situaci

Devět situací, které v e-shopu nastanou nejčastěji, a kód, který na ně patří. Zápis je zjednodušený — jde o to, co má server vrátit, ne o konkrétní syntaxi vaší platformy.

Stránka existuje a má se zobrazit

Výchozí stav pro všechno, co má být v indexu. Nic dalšího nastavovat nemusíte.

HTTP/2 200

Adresa se trvale změnila

Migrace, nová struktura kategorií, přechod na https. Silný signál, že se má zpracovávat cíl.

HTTP/2 301 location: /nova-adresa/

Adresa je přesměrovaná dočasně

Sezónní landing page, A/B test, dočasná náhrada. Původní adresa má zůstat tou hlavní.

HTTP/2 302 location: /vanocni-akce/

Produkt je dočasně vyprodaný

Stránka zůstává, jen se doplní informace o dostupnosti. Mazat ji nebo přesměrovávat je zbytečná ztráta.

HTTP/2 200

Produkt skončil a má nástupce

Přesměrujte na konkrétní náhradu, ne na kategorii a už vůbec ne na úvodní stránku.

HTTP/2 301 location: /nastupce-produktu/

Produkt skončil a náhrada neexistuje

Nechte adresu vrátit chybu. Google zachází s oběma kódy stejně, 410 je jen významově přesnější.

HTTP/2 404 # nebo 410, výsledek je stejný

Plánovaná odstávka na pár hodin

Statická informační stránka s vysvětlením a hlavičkou, kdy má robot přijít znovu.

HTTP/2 503 retry-after: 3600

Odstávka na déle než dva dny

Google doporučuje nechat indexovatelnou úvodní stránku s informací místo chyby na celém webu.

HTTP/2 200 # úvodní stránka s vysvětlením

Zaheslovaná část webu

Klientská zóna nebo interní sekce. Legitimní použití — jen z toho nedělejte nástroj na zpomalení robotů.

HTTP/2 401 # případně 403

Když nedorazí ani kód

Horší než chybný kód je situace, kdy žádný kód nepřijde. Vypršení časového limitu, resetované spojení a chyby DNS vyhodnocuje Google podobně jako chyby serveru — jen se hůř hledají, protože chyba nastane dřív, než server stihne odpovědět.

Dopad je rychlý: procházení se okamžitě zpomaluje a už zaindexované adresy, na které se robot nedostane, z indexu během několika dnů zmizí. Google doporučuje začít u nastavení a logů firewallu a ověřit, že žádné pravidlo neblokuje jeho IP adresy. U chyb DNS pak zkontrolovat záznamy a jmenné servery:

terminál — kontrola DNS záznamů

# Na jakou IP adresu ukazuje doména dig +nocmd vas-eshop.cz a +noall +answer # Kam ukazuje varianta s www dig +nocmd www.vas-eshop.cz cname +noall +answer # Které jmenné servery doménu obsluhují dig +nocmd vas-eshop.cz ns +noall +answer

Překlad do češtiny: Tři dotazy na DNS. První ověří, kam vede doména, druhý variantu s www, třetí vypíše jmenné servery. Když jste v posledních 72 hodinách měnili nastavení DNS, počítejte s tím, že se změna teprve rozšiřuje. Pokud web nehostujete sami, tuhle část řešte s hostingem nebo poskytovatelem CDN.

Šest chyb, které vidíme nejčastěji

Tenhle výčet vychází z auditů, které děláme na začátku spolupráce. Všechny mají společné to, že se navenek nijak neprojeví — dokud se někdo nepodívá na hlavičky.

Chyba

Chybová stránka vrací kód 200

Vlastní stránka „nenalezeno“ je v systému založená jako běžná stránka. Návštěvník vidí chybu, Google zdravou stránku, kterou nemá důvod odstranit z indexu.

# Špatně: 200 na neexistující adrese HTTP/2 200

Chyba

Řetězec přesměrování po migraci

Každá předělávka webu přidala jeden krok navíc. Robot to zvládne, uživatel na to čeká a při každém dalším zásahu roste riziko, že se řetěz někde přetrhne.

# /stara/ → /nova/ → /nejnovejsi/ 301 → 301 → 200

Chyba

Všechno zrušené míří na úvodní stránku

Hromadné přesměrování stovek zrušených produktů na homepage. Návštěvník netuší, kam se dostal, a s původním obsahem cílová stránka nesouvisí.

# Špatně: 301 → /

Chyba

Odstávka vypnula i robots.txt

Web během údržby vrací 503 na všem včetně souboru robots.txt. Tím se zastaví procházení celého webu, ne jen odstavených stránek.

# robots.txt musí odpovídat i při odstávce /robots.txt → 200

Chyba

Kód 403 jako brzda na roboty

Server začne otravným robotům vracet 403 a při té příležitosti odstřihne i Googlebota. Na rychlost procházení to podle dokumentace stejně nemá vliv.

# 4xx kromě 429 rychlost procházení neřídí 403 ≠ zpomalení

Chyba

Stránka „připravujeme“ běží na 503 měsíce

Kód 503 je stavěný na dny, ne na měsíce. Při delším trvání adresy z indexu vypadnou a návrat trvá výrazně déle než odstávka sama.

# Delší odstávka: 200 + informační stránka

Stavové kódy a AI vyhledávání

Kolem AI nástrojů se toho tvrdí hodně, tak si to rozdělme na dvě části.

Co platí. Roboti, kteří sbírají obsah pro AI nástroje, komunikují po stejném protokolu jako vyhledávače a dostávají stejné stavové kódy. Když adresa vrací chybu, obsah si neodnesou — stejně jako Googlebot. Chyba 5xx nebo nedostupnost serveru tedy nedopadá jen na vyhledávání, ale na všechno, co váš web čte automatizovaně.

Co doložit nejde. Jak konkrétní AI nástroje zacházejí s přesměrováním, jak dlouho si pamatují nedostupnou adresu a za jak dlouho se k ní vrátí, veřejně popsané není. Platí to oběma směry — tvrzení, že „AI nástroje na chyby reagují přísněji než Google“, i tvrzení, že jsou k nim shovívavější, se opírají o dojmy, ne o data.

💡

Praktický závěr, který platí tak jako tak

Web, který odpovídá správnými kódy a je dostupný, je čitelný pro vyhledávače i pro AI nástroje. Žádná zvláštní optimalizace stavových kódů „pro AI“ neexistuje a nikdo pro ni nemá podklad. Čas věnujte tomu, aby vaše adresy vracely to, co mají — to je práce, která se počítá v obou světech.

Nejčastější otázky ke stavovým kódům

Je 404 na webu problém?

Samo o sobě ne. Neexistující adresy vznikají přirozeně a Google s nimi počítá — dříve zaindexovanou adresu z indexu odstraní a postupně na ni chodí méně často.

Problém začíná ve dvou případech: když na neexistující stránky odkazujete vy sami z menu, kategorií nebo mapy webu, a když chyba vrací kód 200 místo 404.

Mám používat 404, nebo 410?

Z pohledu Googlu je to jedno. Dokumentace uvádí, že se všemi kódy 4xx kromě 429 zachází stejně, takže rychlejší odstranění z indexu si od kódu 410 neslibujte.

Významově je 410 přesnější, protože říká „odstraněno natrvalo“. Pokud to vaše platforma umí bez práce navíc, použijte ho. Pokud ne, 404 stačí.

Je lepší 301, nebo 302?

Záleží na tom, jestli je změna trvalá. Google bere 301 jako silný signál, že se má zpracovávat cílová adresa, a 302 jako slabý.

Pro migrace, změny struktury a přechod na https používejte 301. Pro sezónní stránky, testy a dočasné náhrady 302 — původní adresa má zůstat tou hlavní.

Kolik přesměrování za sebou Google projde?

Roboti Googlu ve výchozím nastavení projdou až deset přesměrování za sebou. Konkrétní nástroje se ale liší — kontrola adres URL v Search Console přesměrování nesleduje vůbec.

Deset je strop, ne cíl. Řetězce zkracujte na jeden krok, protože každé přesměrování zdržuje návštěvníka a zvyšuje riziko, že se řetěz při další úpravě přetrhne.

Co nastavit při plánované odstávce webu?

Pro odstávku v řádu hodin až dvou dnů doporučuje Google vrátit informační chybovou stránku s kódem 503. Soubor robots.txt přitom musí zůstat dostupný — když vrátí 503 i on, zastaví se procházení celého webu.

Pro delší odstávku doporučuje Google nechat indexovatelnou úvodní stránku s kódem 200 a informací pro návštěvníky. Úplné vypnutí webu nedoporučuje ani na několik týdnů; místo toho radí omezit funkčnost, tedy třeba vypnout jen košík.

Zpomalím roboty tím, že jim vrátím 403?

Ne. Google výslovně uvádí, že se kódy 401 a 403 nemají používat k omezování rychlosti procházení, protože kódy 4xx kromě 429 na rychlost procházení nemají vliv.

Jediný kód z téhle skupiny, který se chová jinak, je 429 — ten Google bere jako signál přetíženého serveru a vyhodnocuje ho jako chybu serveru.

🤖

Nevíte, jaké kódy váš e-shop skutečně vrací?

Projdeme to s vámi spolu s celým technickým základem webu a řekneme rovnou, co je v pořádku a co vás stojí návštěvnost. 30 minut, online, zdarma.

Mgr. Michal Binka, SEO specialista a konzultant

Autor článku

Mgr. Michal Binka

SEO specialista a konzultant, zakladatel SEO PRAKTICKY

SEO dělá přes dvacet let — od dob, kdy se hlavičky odpovědi četly v telnetu a nikdo neměl Search Console, aby zjistil, co vlastně vyhledávač na webu viděl. Napsal tři knihy o SEO, sedí v metodické skupině Shoptetu a vede tým specialistů v brněnském Technologickém parku.

Nemá kouzelné tlačítko na zapnutí SEO a negarantuje pozice. Garantuje proces, transparentnost a čísla, která si každý může ověřit.

  • 23+ let v SEO
  • Autor 3 knih o SEO
  • Zlatý Shoptet Partner
  • Metodická skupina Shoptetu pro SEO
  • Certifikovaný Collabim specialista

Zdroje

Dokumentace Google se průběžně mění. U každého zdroje je uvedeno datum poslední aktualizace k datu vydání článku — než podle něj zasáhnete do nastavení serveru, ověřte si aktuální znění přímo u zdroje.