Na každém webu se stávají chyby v důsledku chybných odkazů nebo zrušeného obsahu. V tomto článku si ukážeme, jak tyto chyby co nejlépe ošetřit jak s ohledem na návštěvníka stránek, tak pro vyhledávače a jiné stroje, které naše stránky navštěvují.

Chyby a stavové kódy

V případě, že klient požaduje něco, co neexistuje nebo to požaduje nekorektně, je způsobena chyba – server odpovídá statusem z řady 4xx jak jej definuje stavový kód http protokolu. Nás budou zajímat především  kódy 404 (Not Found) a 410 (Gone), i když nakonec bychom měli uživatelsky přívětivě ošetřit všechny chyby.

Chybová stránka, použitelnost a vyhledávače

I když vyrobíme uživatelsky perfektní chybové stránky, může se stát, že tyto stránky kvůli nevhodnému přesměrování nebo nevhodnému status kódu odporují pravidlům optimalizace pro vyhledávače (SEO). Důležité je, aby vždy při vzniku chyby byl nakonec hlášen odpovídající stavový kód – v žádném případě by nemělo docházet k přesměrování na stránku, která je nakonec doprovázena standardní odpovědí 200 (OK) – z této odpovědi ani prohlížeč, ale ani vyhledávač nemůže rozpoznat, že došlo k chybě a že má třeba stránku vyřadit z indexu!

Pokud je při chybě provedeno přesměrování, problém nebude mít jen vyhledávač – uživatele připravíme o možnost snadno opravit překlep v adresním řádku prohlížeče!

Nevhodné ošetření chyb nemusí zapříčinit jen špatný návrh naší aplikace – některé servery (například IIS při výchozím nastavení Custom Error Pages pro ASP.NET) se při vzniku chyby nechovají úplně korektně – ve výchozím stavu pouze provedou přesměrování, konečná stránka pak už vrací standardní status nalezené stránky 200 OK a to je samozřejmě problém.

Obsah chybových stránek by měl být delší než 512 byte, zajístíme tak zobrazení obsahu stránky i v prohlížeči, který má zapnutou volbu Show friendly HTTP error messages. Je-li stránka kratší, prohlížeč místo obsahu stránky v takovém případě zobrazí svoje vestavěné hlášení o chybě pro daný HTTP status.

Dobrá chybová stránka by měla návštěvníkovi osvětlit důvod vzniku chyby a dát alternativy, jak problém napravit. Díky HTTP referreru můžeme vědět, odkud uživatel přišel – a tedy kde je pravděpodobně umístěn chybný odkaz. Stránka by také některé chyby mohla logovat, případně je rovnou hlásit editorům obsahu, podívejte se také na článek Perfektní 404.

K čemu je dobrý kód 410

Často se stane, že uživatel nebo i vyhledávač má správný odkaz – ovšem obsah již není platný, je zastaralý, jeho platnost vypršela. Toto je vždy potřeba dát na vědomí právě odesláním statusu 410, který ukazuje, že obsah byla definitivně odstraněn, zničena. Jeho URL tak má být nadále "zapomenuto", vyhledávač byl měl stránku vymazat z indexu.

Souhrn pravidel dobrého chování chybové stránky

Pokud výše uvedené shrneme, vyjde nám takovýto list:

  1. při vzniku chyby se statusem z řady 4xx nesmí být prováděn redirekt na jinou URL
  2. na jakýkoli neexistující obsah musí být vracen HTTP status 404 (Not Found)
  3. na jakýkoli dříve existující a nyní neplatný obsah se musí vracet HTTP status 410 Gone
  4. při vzniku a hlášení chyby 4xx můžeme detekovat, zda uživatel:
    1. přišel odněkud z našich stránek (v referreru je obsažena naše doména nebo adresa našich stránek)
      • je vhodné se v chybové stránce omluvit
      • nabídnout relevantní doporučení (zkontrolovat adresu, použít mapu stránek, dát odkaz na homepage…)
      • poslat editorům obsahu mail nebo jiné upozornění na chybu
    2. přišel z cizích stránek (v refereru je jiná než naše doména)
      • v chybové stránce vysvětlit, že na té stránce odkud přišel, mají chybný odkaz
      • nabídnout relevantní doporučení (zkontrolovat adresu, použít mapu stránek, dát odkaz na homepage…)
      • poslat editorům obsahu mail nebo jiné upozornění na chybu
    3. prostě zadal nějakou URL (v refereru není nic)
      • vysvětlit, že zadaná adresa je chybná
      • doporučit kontrolu a opravu adresy
      • nabídnout mapu stránek, odkaz na homepage…
  5. Délka obsahu chybové stránky nechť je větší než 512 byte pro zamezení zobrazení "Friendly messages"
  6. Ačkoli má web korektně hlásit chybový HTTP status v odpovědi, nemusí nutně toto být ve stránce zmíněno – tj. nemusí tam být napsáno "Chyba….", viz http://interval.cz/clanky/perfektni-404/

Nakonec můžeme dodat, že chybové stránky mohou být i zábavné :)

2 Příspěvků v diskuzi

  1. Some specialists say that mortgage loans help a lot of people to live their own way, because they are able to feel free to buy needed goods. Furthermore, a lot of banks offer consolidation loan for young and old people.

Odpovědět