Soft 404: co to je a proč škodí SEO/AEO
Soft 404 je stav, kdy stránka vypadá jako „nenalezená“ nebo „prázdná“, přesto server vrací kód 200 OK. Vyhledávače takovou URL považují za bezcennou (nebo neexistující), zbytečně tak plýtvají crawl budgetem a mohou ji dlouhodobě omezovat ve výsledcích. Pro AIO/AEO (Answer/AI Experience Optimization) navíc vzniká riziko, že asistenční systémy obdrží nejednoznačný signál o dostupnosti a kvalitě obsahu.
Typické scénáře vedoucí k Soft 404
- Prázdné kategorie, filtry a vyhledávání (0 produktů/0 výsledků) s textem „Nenašli jsme nic“, ale s kódem 200.
- Expirované produkty, články nebo inzeráty zobrazené bez obsahu, případně pouze s oznámením „Tento produkt již neprodáváme“ a kódem 200.
- Chybové šablony (404/410) implementované vizuálně, ale bez správného HTTP kódu.
- Masové přesměrování na domovskou stránku (například z neexistujících URL) přes 200 s odlišným obsahem/šablonou – vyhledávač to vyhodnotí jako Soft 404.
- Neúmyslné JS renderování, kdy klientský kód nevrátí obsah (chyba API, blokované skripty), ale dokument má kód 200.
- CDN/custom error stránky vracející 200 při chybách na edge vrstvě (například „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 bez hodnoty, zatímco zanedbává důležitější stránky.
- Rozbitá interní autorita: interní odkazy směřují na „nulový“ obsah s kódem 200, což zhoršuje tok signálů.
- Kolísání viditelnosti: vyhledávač může URL střídavě indexovat a vylučovat, vzniká nestabilita pozic ve vyhledávání.
- Hreflang a kanonikalizace: Soft 404 narušuje hreflang klastery a zvyšuje riziko nesprávné kanonikalizace.
Jak Soft 404 rozpoznávají vyhledávače
- Nesoulad mezi obsahem a záměrem: stránka deklaruje 200 OK, ale text, struktura nebo šablona indikují „nenalezeno/bez obsahu“.
- Extrémně nízký poměr unikátního obsahu k šabloně: výrazná dominance navigace, minimum textu.
- Sémantické signály: fráze typu „nenašlo se“, „žádné výsledky“, „stránka neexistuje“ bez alternativní hodnoty.
- Ostré změny obsahu (například expirace produktu) bez korektního kódu 404/410 nebo bez nabídky alternativ.
Diagnostika: postup krok za krokem
- Zkontrolujte přehledy indexace (například hlášení o Soft 404 a „Alternativní stránky s vhodným kanonickým“). Identifikujte vzory 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ázdno, ale vrací 200.
- Simulujte podmínky (blokovaný JS, pomalé API, mobilní user-agent), abyste odhalili klientské chyby vedoucí k prázdnému DOM.
- Porovnejte šablony: Soft 404 často používají stejnou „thin“ šablonu. Vytvořte si fingerprint (velikost HTML, počet slov, selektory) a hledejte shodné stránky.
- Analyzujte interní odkazy: z jaké části webu vedou na problémové URL? Opravte navigaci, facet linky, 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í 404 stránku 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 hlavičku Retry-After. Nepoužívejte 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 (nikoli na domovskou stránku). |
| Dočasný přesun | 302/307 | Pouze pokud je přesun dočasný. Ověřte, že nedojde k cyklům. |
| Prázdná kategorie/0 výsledků | 200 nebo 404/410 | Pokud můžete poskytnout hodnotu (alternativy, top produkty, rady), ponechte 200. Jinak použijte 404/410. |
Implementační antipatterny, kterým se vyhnout
- Vizuální 404 s kódem 200: pěkná grafika sama o sobě nezaručuje správný HTTP signál.
- Přesměrování všeho na domovskou stránku: většinou vyhodnoceno jako Soft 404 nebo soft redirect.
- „Noindex“ na stránce vracející 200, ale bez hodnoty: noindex může být řešení, ovšem často je lepší použít 404/410.
- Blokování v robots.txt místo 404/410: robot se k obsahu nemusí dostat, ale URL může přetrvávat v indexu.
Správný design prázdných stavů (empty states) při 200
Pokud chcete prázdnou stránku ponechat s 200, musí poskytovat hodnotu a nepůsobit jako chyba:
- Alternativy a návrhy: příbuzné kategorie, bestsellery, populární filtry, interní odkazy.
- Jasné vysvětlení a možnost akce (změnit filtr, vyčistit parametry, návrat na nadřazenou kategorii).
- Unikátní text: stručný obsah s doporučeními a interními propojeními (zvýší poměr unikátního obsahu).
- Technická konzistence: canonical směřující na sebe, správné hreflang, žádná maskující přesměrování.
Specifika pro e-commerce: expirované a vyprodané produkty
- 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, použijte 301 na nástupnický produkt/kategorii. Pokud ne, použijte 410 a udržujte interní odkazy aktuální.
- Varianty a filtry: parametry bez výsledků by neměly vypadat jako chyba; zvažte odstranění indexace zbytečných facetů (noindex, interní pravidla přepojování).
Hreflang, kanonikály a Soft 404
- Všechny ekvivalenty hreflang musí mít konzistentní stav (200/404/410). Pokud jedna mutace vrací 404 a jiná 200 s prázdným obsahem, vzniká konflikt.
- Canonical nesmí směřovat na iracionální cíle (například hromadné kanonikalizování na domovskou stránku), což je typický signál Soft 404.
CDN a edge vrstvy: skryté zdroje Soft 404
- Custom error 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). Někdy edge vrátí fallback HTML s kódem 200 při timeoutu.
- Cache klíče: aby se kódy 404/410 neukládaly do cache jako 200.
Rozhodovací strom (textový) pro prázdné/bezpředmětné URL
- Má URL legitimní záměr a lze dodat alternativní hodnotu? → 200 s bohatým „empty state“ + interní odkazy.
- Je obsah navždy pryč a bez adekvátní náhrady? → 410.
- Existuje silně relevantní náhrada? → 301 na nejbližší ekvivalent.
- Jde o překlep/bezpředmětnou URL? → 404 s navigací a vyhledáváním.
Monitoring a alerting: co sledovat průběžně
- Počet Soft 404 podle typů URL (kategorie, vyhledávání, produkty, tagy).
- Podíl 200 stránek s nízkým obsahem (heuristiky: < X slov, < Y unikátních prvků DOM, velikost HTML).
- Logy: zásahy na 200 s typickými frázemi „nenašel“, „žádný výsledek“.
- Klientské chyby: JS výjimky, 4xx/5xx z API vedoucí k prázdnému renderu.
- Hreflang/kanonikály: zlomy klastrů při 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.
- Custom 404/410 stránky jsou index-friendly (navigace, vyhledávání, noindex obvykle není potřeba; kód ale musí být 404/410).
- Přesměrování jsou relevantní a nevytvářejí řetězce.
- „Empty state“ při 200 je užitečný (alternativy, odkazy, rady) a unikátní.
- CDN/edge vrací nezaměnitelný kód (nikoli 200) při chybách.
- Parametrické URL mají pravidla indexace (kanonikály, noindex, interní odkazy, politika „clean param“).
Minimalizace rizika u budoucích změn
- Release checklist: test HTTP kódů pro chybové/empty stavy před nasazením.
- Automatizované testy: unit/e2e testy ověřující kódy 404/410/503 a obsah šablon.
- Feature flags a postupné nasazení: rychlý rollback při nárůstu Soft 404.
- Observabilita: metriky renderu (Hydration/CSR), fallbacky a API timeouts.
Příklady správných textů a UI pro prázdnou kategorii (při 200)
- Úvodní věta: „V této kategorii momentálně nemáme produkty, ale může vás zajímat:“
- Automatické alternativy: 3–6 příbuzných kategorií a 6–12 nejprodávanějších produktů.
- Akce: jasné CTA pro úpravu filtru, vyčištění parametrů, návrat o úroveň výš.
- Interní propojení: kontextové články/poradna pomáhají zvýšit hodnotu stránky.
Časté otázky (FAQ) k Soft 404
- Mám dávat noindex na prázdné stránky? Pokud můžete poskytnout hodnotu, ponechte 200 a nechte indexovat (může přinášet long-tail). Pokud hodnotu neposkytují, je vhodnější 404/410 než 200+noindex.
- Je 410 lepší než 404? Pro trvale odstraněný obsah ano – 410 je explicitnější signál. Rozdíl v praxi může být jemný, ale konzistence je klíčová.
- Co s interními odkazy na odstraněné URL? Opravte je; interní odkazy na 404/410 dlouhodobě snižují UX i interní autoritu.
- Co když stránka občas selže na klientovi? Zajistěte SSR nebo robustní fallbacky a logujte chyby; prázdný CSR render s 200 je častým spouštěčem Soft 404.
Shrnutí
Soft 404 vzniká, když se technický signál (HTTP 200) rozchází s obsahovým signálem („stránka bez hodnoty“). Prevence spočívá v správném mapování stavů na HTTP kódy, v promyšlených prázdných stavech s reálnou hodnotou, v disciplinované práci s přesměrováními, kanonikalizací a hreflangy a v průběžném monitoringu. Důsledné odstranění Soft 404 snižuje odpad v crawlování, stabilizuje indexaci a zlepšuje organickou návštěvnost i konverze.