Soft 404: co to je a proč škodí SEO/AEO
Soft 404 je stav, kdy stránka vypadá jako „nenalezená“ nebo „prázdná“, server přesto vrací kód 200 OK. Vyhledávače takovou URL považují za bezcennou (nebo neexistující), plýtvají crawl budgetem a mohou ji dlouhodobě omezovat ve výsledcích. U AIO/AEO (Answer/AI Experience Optimization) navíc vzniká riziko, že asistenční systémy dostanou nejednoznačný signál o dostupnosti a kvalitě obsahu.
Typické scénáře, které vedou k Soft 404
- Prázdné kategorie, filtry a vyhledávání (0 produktů/0 výsledků) s textem „Nic jsme nenašli“, ale s kódem 200.
- Expirované produkty, články nebo inzeráty zobrazené bez obsahu, případně jen s oznámením „Tento produkt už neprodáváme“ a kódem 200.
- Chybové šablony (404/410) implementované vizuálně, ale bez správného HTTP kódu.
- Hromadné přesměrování na domovskou stránku (např. z neexistujících URL) přes kód 200 s odlišným obsahem/šablonou – vyhledávač to vyhodnotí jako Soft 404.
- Nechtěné vykreslení pomocí JS, kdy klientský kód nevrátí obsah (chyba API, blokované skripty), dokument ale dostane kód 200.
- Vlastní chybové stránky CDN vracející kód 200 při chybách na edge vrstvě (např. „Sorry, something went wrong“ s kódem 200).
Negativní dopady na indexaci a výkon
- Plýtvání crawl budgetem: robot tráví čas na URL, které nemají hodnotu, a ignoruje důležitější stránky.
- Narušení interní autority: interní odkazy vedou na „prázdný“ obsah s kódem 200, což zhoršuje tok signálů.
- Kolísání viditelnosti: vyhledávač může URL střídavě indexovat a vyřazovat, což vede k nestabilitě pozic.
- Hreflang a kanonikalizace: Soft 404 narušuje klastry hreflang a zvyšuje riziko nesprávné kanonikalizace.
Jak vyhledávače rozpoznávají Soft 404
- Nesoulad mezi obsahem a záměrem: stránka deklaruje 200 OK, ale text, struktura nebo šablona signalizují „nenalezeno/bez obsahu“.
- Extrémně nízký poměr unikátního obsahu k šabloně: výrazně převažuje navigace, textu je minimum.
- Sémantické signály: fráze typu „nenalezeno“, „žádné výsledky“, „stránka neexistuje“ bez nabídky alternativní hodnoty.
- Výrazné změny obsahu (např. expirace produktu) bez správného kódu 404/410 nebo bez nabídky alternativ.
Diagnostika: postup krok za krokem
- Zkontrolujte přehledy indexace (např. hlášení o Soft 404 a „Alternativní stránky se správným kanonickým tagem“). Identifikujte vzorce URL (kategorie, parametry, jazykové mutace).
- Ověřte HTTP kódy pomocí vlastních nástrojů (crawl, logy) – hledejte stránky, které vizuálně signalizují chybu/prázdný obsah, ale vracejí kód 200.
- Simulujte podmínky (blokovaný JS, pomalé API, mobilní user-agent), abyste odhalili chyby na straně klienta vedoucí k prázdnému DOM.
- Porovnejte šablony: Soft 404 často používají stejnou „thin“ šablonu. Vytvořte fingerprint (velikost HTML, počet slov, selektory) a vyhledejte shodné stránky.
- Analyzujte interní odkazy: z které části webu vedou na problémové URL? Opravte navigaci, odkazy ve filtrech a stránkování.
Rozhodování: 200 vs. 404 vs. 410 vs. přesměrování
| Situace | Doporučený kód | Poznámky |
|---|---|---|
| Neexistující URL/překlep | 404 Not Found | Vraťte vlastní stránku 404 s navigací; nepřesměrovávejte na / (domovskou stránku). |
| Trvale odstraněný obsah | 410 Gone | Silnější signál „už nikdy nebude“. Vhodné pro expirované inzeráty/produkty bez náhrady. |
| Dočasná nedostupnost (údržba) | 503 Service Unavailable | Přidejte Retry-After. Nepoužívejte kód 200 s chybovým bannerem. |
| Obsah se přesunul se stejným záměrem | 301 Moved Permanently | Přesměrujte na nejbližší relevantní náhradu (ne na domovskou stránku). |
| Dočasné přemístění | 302/307 | Pouze pokud je přesun dočasný. Ověřte, že nevznikne smyčka. |
| Prázdná kategorie/0 výsledků | 200 nebo 404/410 | Pokud dokážete nabídnout hodnotu (alternativy, nejprodávanější produkty, rady), ponechte kód 200. Pokud ne, použijte 404/410. |
Implementační antipatterny, kterým je třeba se vyhnout
- Vizuální stránka 404 s kódem 200: pěkná grafika ještě neznamená správný HTTP signál.
- Přesměrování všeho na domovskou stránku: obvykle je vyhodnoceno jako Soft 404 nebo měkké přesměrování.
- „Noindex“ na stránce, která vrací kód 200, ale nemá žádnou hodnotu: noindex může být řešením, ale často je vhodnější 404/410.
- Blokování v robots.txt místo 404/410: robot se k obsahu nedostane, ale URL může v indexu přetrvávat.
Správný návrh prázdných stavů (empty states) při kódu 200
Pokud chcete prázdnou stránku ponechat s kódem 200, musí nabízet hodnotu a nesmí vypadat jako chyba:
- Alternativy a doporučení: související kategorie, bestsellery, oblíbené filtry, interní odkazy.
- Jasné vysvětlení a možnost akce (změnit filtr, vymazat parametry, vrátit se do nadřazené kategorie).
- Unikátní text: krátký obsah s doporučeními a interními odkazy (zvýší podíl unikátního obsahu).
- Technická konzistence: canonical na vlastní stránku, správné hreflangy, žádná maskující přesměrování.
Specifika pro e-commerce: expirované produkty a produkty vyprodané
- Dočasně vyprodané: ponechte produkt s kódem 200, availability „OutOfStock“, zobrazte alternativy a umožněte uživatelům nastavit upozornění.
- Trvale ukončené: pokud existuje náhrada, přesměrujte kódem 301 na nástupnický produkt/kategorii. Pokud ne, použijte 410 a aktualizujte interní odkazy.
- Varianty a filtry: stránky parametrů bez výsledků by neměly vypadat jako chyba; zvažte vyloučení zbytečných filtrů z indexace (noindex, interní pravidla pro odkazy).
Hreflang, kanonické adresy a Soft 404
- Všechny ekvivalenty hreflang musí mít konzistentní stav (200/404/410). Pokud jedna jazyková mutace vrací 404 a jiná prázdný obsah s kódem 200, vzniká konflikt.
- Canonical nesmí směřovat k nelogickým cílům (např. hromadná kanonikalizace na domovskou stránku), což je typickým signálem Soft 404.
CDN a edge vrstvy: skryté zdroje Soft 404
- Vlastní chybové stránky na CDN musí vracet správné kódy 4xx/5xx – nikoli 200.
- Origin vs. edge: ověřte, co vidí robot (bez cookies, bez JS). Edge někdy při timeoutu vrátí záložní HTML s kódem 200.
- Klíče cache: zajistěte, aby se kód 404/410 nezapamatoval v cache jako 200.
Rozhodovací strom (textový) pro prázdné/nesmyslné URL
- Má URL legitimní záměr a dokážeme nabídnout alternativní hodnotu? → 200 s propracovaným „empty state“ + interní odkazy.
- Je obsah navždy odstraněn a nemá adekvátní náhradu? → 410.
- Existuje vysoce relevantní náhrada? → 301 na nejbližší ekvivalent.
- Jde o překlep/nesmysl? → 404 s navigací a vyhledáváním.
Monitoring a upozornění: co průběžně sledovat
- Počet Soft 404 podle typů URL (kategorie, vyhledávání, produkty, štítky).
- Podíl stránek s kódem 200 a malým množstvím obsahu (heuristiky: < X slov, < Y unikátních prvků DOM, velikost HTML).
- Logy: požadavky na stránky s kódem 200 obsahující typické fráze „nenalezeno“, „žádný výsledek“.
- Chyby klienta: výjimky JS, chyby 4xx/5xx z API, které vedou k prázdnému vykreslení.
- Hreflang/kanonické adresy: narušení klastrů po nasazení nových šablon.
Kontrolní seznam pro vývojáře a SEO
- Chybové a prázdné stavy vždy vracejí správný HTTP kód.
- Vlastní stránky 404/410 jsou vhodné pro indexaci (navigace, vyhledávání, noindex není potřeba; kód však musí být 404/410).
- Přesměrování jsou relevantní a netvoří řetězce.
- „Empty state“ při kódu 200 je užitečný (alternativy, odkazy, rady) a unikátní.
- CDN/edge vrací při chybách jednoznačný kód (nikoli 200).
- URL s parametry mají pravidla pro indexaci (kanonické adresy, noindex, interní odkazy, pravidla pro „clean param“).
Minimalizace rizika při budoucích změnách
- Kontrolní seznam před vydáním: před nasazením otestujte HTTP kódy pro chybové/prázdné stavy.
- Automatizované testy: unit/e2e testy ověřující kódy 404/410/503 a obsah šablon.
- Feature flagy a postupné nasazování: rychlý návrat k předchozí verzi při nárůstu Soft 404.
- Observabilita: metriky vykreslování (Hydration/CSR), záložních řešení a timeoutů API.
Příklady vhodných textů a UI pro prázdnou kategorii (při kódu 200)
- Úvodní věta: „V této kategorii momentálně nemáme žádné produkty, ale mohl by vás zaujmout:“
- Automatické alternativy: 3–6 souvisejících kategorií a 6–12 nejprodávanějších produktů.
- Akce: jasné CTA pro úpravu filtru, vymazání parametrů nebo návrat o úroveň výš.
- Interní odkazy: tematické články/poradna pomáhají zvýšit hodnotu stránky.
Časté otázky (FAQ) k Soft 404
- Mám u prázdných stránek použít noindex? Pokud dokážete nabídnout hodnotu, ponechte kód 200 a nechte stránku indexovat (může přinášet návštěvnost z long-tailových dotazů). Pokud hodnotu nenabízí, je vhodnější 404/410 než 200+noindex.
- Je 410 lepší než 404? U trvale odstraněného obsahu ano – 410 je jednoznačnější signál. Rozdíl může být v praxi malý, klíčová je ale konzistence.
- Co s interními odkazy na odstraněné URL? Opravte je; interní odkazy na 404/410 dlouhodobě zhoršují uživatelskou zkušenost i interní autoritu.
- Co když stránka občas selže na straně klienta? Zajistěte SSR nebo robustní záložní řešení a zaznamenávejte chyby; prázdné vykreslení CSR s kódem 200 je častým spouštěčem Soft 404.
Shrnutí
Soft 404 vzniká, když jsou technický signál (HTTP 200) a obsahový signál („stránka bez hodnoty“) v rozporu. Prevencí je správné přiřazování stavů k HTTP kódům, promyšlené prázdné stavy se skutečnou hodnotou, disciplinovaná práce s přesměrováními, kanonikalizací a hreflangy a průběžný monitoring. Důsledné odstranění Soft 404 omezuje zbytečné procházení webu, stabilizuje indexaci a zlepšuje organickou návštěvnost i konverze.
