Přejít na hlavní obsah

Návody / HTTP stavové kódy vysvětlené

404 Not Found: rozbité odkazy, měkká 404 a kdy použít 410

404 Not Found znamená, že server nemá pro danou URL žádnou aktuální reprezentaci, a neříká nic o tom, zda zdroj někdy existoval nebo se vrátí. Tato nejednoznačnost je záměr: 404 může být rozbitý odkaz, který byste měli opravit, stránka, kterou jste odstranili záměrně, nebo stránka, která funguje naprosto v pořádku a jen předstírá, že chybí.

Co vám 404 řekne a co ne

Podle RFC 9110 znamená 404, že původní server nenašel pro cílový zdroj žádnou aktuální reprezentaci, nebo není ochoten prozradit, že existuje. Z této formulace plynou dva detaily.

Zaprvé, 404 je záměrně nezávazné ohledně trvalosti. Neslibuje, že URL zůstane mrtvá, a proto crawlery dlouho pokračují ve zkoušení URL s 404. Zadruhé, 404 je podle RFC 9111 ve výchozím stavu cachovatelné, takže cachovací proxy nebo CDN může chybu uložit a pokračovat v jejím servírování i poté, co jste podkladový problém opravili. Po opravě 404 vždy vyprázdněte cache a znovu otestujte.

404 je také normální, zdravá odpověď. Každý web nějaké vrací. Za váš čas stojí ty na URL, které by měly fungovat, nebo na URL, které se lidé snaží dosáhnout.

Rozbitý odkaz, nebo skutečně odstraněno?

Tyto dva případy vypadají ve stavovém kódu identicky a potřebují opačné reakce.

Rozbitý odkaz znamená, že obsah existuje, ale URL je špatná. Obvyklé příčiny jsou překlep ve vnitřním odkazu, slug upravený po publikaci, neshoda ve velikosti písmen, rozdíl v koncovém lomítku, migrace webu, která změnila schéma URL, nebo nasazení, které přestalo generovat soubor. Oprava je obnovit URL nebo ji přesměrovat.

Skutečné odstranění znamená, že obsah je pryč a nevrátí se: vypršelý inzerát na práci, ukončený produkt, smazaná stránka účtu. Zde je 404 poctivé, ale líné, protože nechává crawlery pokoušet se dál a návštěvníkům nedává nic.

Praktický způsob, jak je rozlišit: existuje dnes na webu ekvivalentní stránka někde jinde? Pokud ano, přesměrujte. Pokud ne, rozhodněte se mezi 404 a 410.

410 Gone, poctivá alternativa

410 říká, že zdroj byl dostupný a byl záměrně odstraněn, a očekává se, že tento stav je trvalý. Zatímco 404 znamená "nenalezeno", 410 znamená "smazáno úmyslně, přestaňte se ptát".

410 použijte, když obsah záměrně vyřazujete a nemáte náhradu. Je to správný signál pro vypršelé inzeráty, ukončené stránky produktů a obsah odstraněný z právních nebo redakčních důvodů. Vyhledávače obecně považují 410 za silnější, rychlejší signál odstranění než 404, i když oba nakonec URL vyřadí. Stejně jako 404 je 410 ve výchozím stavu cachovatelné.

Nepoužívejte 410 pro cokoli, co byste mohli obnovit, a nepoužívejte ho jako plošný handler pro neznámé URL. Pokud existuje vhodná náhradní stránka, přesměrování je lepší než kterýkoli z kódů, a na volbě přesměrování záleží: pro výběr toho správného viz 301 vs 302.

Měkké 404 a proč je monitory přehlédnou

Měkké 404 je stránka, která vrací 200 OK, zatímco její obsah tvrdí, že zdroj chybí. Stává se to, když aplikace zachytí vlastní stav "nenalezeno" a vykreslí přátelskou šablonu "stránka nenalezena" bez nastavení stavového kódu, nebo když univerzální trasa servíruje domovskou stránku pro každou neshodnou URL.

Vyhledávače a monitory dostupnosti pak čtou stejnou stránku opačně. Google zkoumá vykreslený obsah, rozpozná vzor chybějícího obsahu a v Search Console ho zařadí jako měkké 404, takže se URL neindexuje, ale rozpočet procházení se na ni pořád vynakládá a signál je zamlžený. Monitor, který porovnává stavové kódy, vidí 200 a nahlásí stránku jako zdravou, což je způsob, jak celá sekce může servírovat text "nenalezeno" každému návštěvníkovi, zatímco dashboard zůstává zelený.

Oprava na webu je vracet skutečné 404 s chybovou stránkou, což nic nestojí a uspokojí oba čtenáře. Oprava v monitoringu je ověřovat i obsah, ne jen stav: zkontrolujte, že je přítomná známá fráze ze skutečné stránky, takže stránka, která vrátí 200 se špatným tělem, kontrolou pořád neprojde.

Jak opravit 404 ve správném pořadí

  1. Potvrďte skutečný kód, ne viditelnou stránku. Přátelská chybová obrazovka nic nedokazuje:
    curl -sS -o /dev/null -w "%{http_code}\n" https://example.com/missing-page
    Pokud to vypíše 200 pro stránku, která zní "nenalezeno", máte měkké 404.
  2. Zjistěte, na jaké URL lidé narážejí. Přístupové logy serveru i Search Console uvádí URL s 404 podle objemu. Opravujte podle provozu, ne podle abecedy.
  3. Nejdřív opravte vnitřní odkazy. 404 dosažené z vlastní navigace je zcela pod vaší kontrolou a je to oprava s nejvyšší hodnotou.
  4. Přesměrujte tam, kde existuje skutečný ekvivalent. Namapujte starou URL na nejbližší aktuální stránku, jednu URL po druhé. Vyhněte se přesměrování všeho na domovskou stránku, což vyhledávače taky považují za měkké 404.
  5. Vracejte 410 pro záměrná odstranění bez náhrady, aby crawlery přestaly zkoušet znovu.
  6. Udělejte stránku 404 užitečnou. Vyhledávání, hlavní navigace a oblíbené odkazy získají zpět návštěvníky, které holá chybová stránka ztrácí.
  7. Vyprázdněte cache a znovu otestujte. Protože 404 je cachovatelné, ověřte opravenou URL zvenčí vaší sítě, ne jen ze zdroje.

Kontrola kódu a obsahu společně

Úprava slugu, aktualizace pluginu nebo změna směrování rozbije sadu URL, zatímco domovská stránka se dál v pořádku načítá, takže se nic nespustí a nikdo si toho nevšimne, dokud nespadne provoz nebo konverze. Naplánovaná HTTP kontrola na vašich důležitých URL porovnává stavový kód i očekávaný obsah stránky, což zachytí skutečné 404 i měkké 404 stejně. Pro širší rodinu kódů na straně klienta, a pro rozlišení skutečné chyby klienta od špatné konfigurace serveru, viz přehled 4xx.

Zkontrolovat hned

Spusťte bezplatnou kontrolu na svém webu - bez registrace.

HTTP check

Sledovat trvale

Dostanete upozornění ve chvíli, kdy něco přestane fungovat: HostTracker kontroluje z více než 300 lokalit a upozorní vás e-mailem, SMS, přes Slack, Telegram a další.

Funkce HostTracker

Více v této sekci: HTTP stavové kódy vysvětlené