Čo sa deje
Každá odpoveď webového servera nesie číselný stav, ktorý človek nevidí. 200 znamená „tu je stránka, ktorú ste chceli“. 404 znamená „taká stránka neexistuje“.
Soft 404 je situácia, keď server na neexistujúcu adresu odpovie 200 a obsahom inej stránky — najčastejšie domovskej. Návštevník vidí web a ide ďalej. Robot dostane potvrdenie, že adresa je platná, a zapíše si ju.
Tri stavy, ktoré treba vedieť rozlíšiť
| stav | znamená | kedy použiť |
|---|---|---|
404 | neexistuje | adresa nikdy neexistovala alebo obsah zmizol |
410 | bola a je zmazaná natrvalo | vedome zrušená stránka, ktorú nechcete vracať |
301 | presťahovala sa sem | obsah existuje na inej adrese |
410 je silnejší signál než 404 a vyhľadávač po ňom vyradí adresu rýchlejšie. Má zmysel pri stránkach, o ktorých viete, že sa nevrátia — zrušený produkt, ukončená kampaň.
Presmerovanie na domovskú stránku nie je ani jedno z toho. Je to tvrdenie, že obsah sa presťahoval na úvod — a to nie je pravda. Vyhľadávače tento vzor poznajú a väčšinou ho vyhodnotia ako soft 404 aj tak, len o niekoľko krokov neskôr.
Odkiaľ sa to berie
Skoro vždy z jednej z dvoch vecí:
- Catch-all presmerovanie. Pravidlo typu „všetko, čo nesedí, pošli na úvod“. Býva to dobre mienené — nech používateľ neskončí na chybe.
- Aplikácia, ktorá si adresy rieši sama. Server pošle tú istú stránku pre každú adresu a o tom, čo sa zobrazí, rozhodne až JavaScript v prehliadači. Stav odpovede zostane 200 aj pre neexistujúcu adresu.
Tretí, menej známy zdroj: stránky s prázdnym výsledkom. Vyhľadávanie bez zhody, kategória bez produktov, filter, ktorý nič nenašiel. Tie technicky existujú a 200 je správne — ale ak ich sú tisíce a všetky vyzerajú rovnako, vyhľadávač ich sám označí za soft 404. Riešením nie je meniť stav, ale nedovoliť, aby také adresy vôbec vznikali v odkazoch a v sitemape.
Prečo to škodí
Tri dôsledky, v poradí podľa toho, ako rýchlo sa prejavia:
- Vyhľadávač míňa čas na neexistujúce adresy. Každý web má obmedzenú pozornosť robota. Ak ju spotrebuje na výmysly, na skutočné stránky jej zostane menej.
- Vzniká duplicitný obsah. Tá istá domovská stránka pod desiatkami adries. Vyhľadávač musí hádať, ktorá je tá pravá.
- Jazykový model si zapamätá adresu, ktorá neexistuje. Ak ju potom uvedie v odpovedi, používateľ klikne a dostane niečo iné, než čakal. Model si to overiť nevie — dostal 200.
Overte si to sami, trvá to desať sekúnd
Otvorte vasadomena.sk/nezmysel-xyz-123.
Zdravé: stránka „nenájdené“ s vaším dizajnom. Chybné: domovská stránka alebo presmerovanie na ňu.
Prehliadač stavový kód neukazuje, takže ak chcete istotu, otvorte vývojárske nástroje, kartu Sieť, a pozrite sa na číslo pri prvej požiadavke. Musí tam byť 404. Z príkazového riadka to spraví curl -I https://vasadomena.sk/nezmysel-xyz-123.
Skúste to na štyroch tvaroch adresy, nie na jednom: bez prípony, s .html, s lomkou na konci a s parametrom ?x=1. Nie je zriedkavé, že tri z nich vrátia 404 a štvrtý 200.
Ako sa to opraví
Odstrániť catch-all pravidlo a doplniť skutočnú chybovú stránku, ktorá sa vracia so stavom 404. Nemá to byť prázdna biela stránka — má vyzerať ako zvyšok webu, vysvetliť, čo sa stalo, a ponúknuť cestu ďalej. Rozdiel oproti presmerovaniu je len v tom čísle, ktoré človek nevidí a robot áno.
Pri aplikáciách, ktoré si adresy riešia samy, je to o čosi viac práce: server musí vedieť, ktoré adresy sú platné, ešte predtým, než odpoveď odošle.
Čo dať na stránku 404: vyhľadávanie, odkaz na hlavné sekcie a kontakt. Čo tam nedávať: automatické presmerovanie po pár sekundách — to je to isté ako catch-all, len pomalšie, a pre človeka je to nepríjemné.
Ako si overiť, že oprava zabrala
V Search Console v prehľade indexácie sa objaví kategória Soft 404 so zoznamom adries. Po oprave sa zoznam nevyprázdni okamžite — vyhľadávač musí adresy znova navštíviť, a to trvá dni až týždne.
Rýchlejšia kontrola je tá vlastná: prejsť si zoznam z Search Console príkazom curl -I a overiť, že každá adresa vracia 404. Ak áno, oprava je hotová a zvyšok je len čakanie.