Stavové kódy 5XX
Chybové stavy 5xx: Co znamenají, jak je opravit a jak ovlivňují SEO
Pokud se na vašem webu objevují chybové stavy 5xx, znamená to, že server nemůže správně zpracovat požadavek. Tyto chyby nejsou způsobeny chybou na straně uživatele (jako například špatně zadaná URL), ale problémem na straně serveru.
Pro SEO jsou tyto chyby kritické – pokud je vyhledávač (např. Googlebot) opakovaně narazí, může snížit frekvenci procházení (crawling) vašeho webu, a v horším případě dokonce odstranit některé stránky z indexu.
V tomto článku si podrobně vysvětlíme: ✅ Co jednotlivé chyby 5xx znamenají ✅ Jaké jsou jejich nejčastější příčiny ✅ Jak je diagnostikovat a opravit ✅ Jak ovlivňují SEO a crawling ✅ Osvědčené postupy pro minimalizaci dopadů
1. 500 Internal Server Error – Vnitřní chyba serveru
Co to znamená?
Server narazil na neočekávaný problém, který mu brání v zpracování požadavku. Jedná se o obecnou chybu, která nemusí přesně specifikovat, co se stalo.
Časté příčiny
✔ Chyby v kódu (např. PHP, Python, Node.js) – neočekávané výjimky, nekonečné smyčky, chybějící soubory. ✔ Problémy s databází – připojení selhalo, dotaz je příliš komplexní nebo chybný. ✔ Nesprávná konfigurace serveru – špatně nastavený .htaccess
, chybějící moduly (např. mod_rewrite
). ✔ Nedostatek zdrojů – server nemá dostatek paměti (RAM) nebo výpočetního výkonu. ✔ Chybné aktualizace – po nasazení nové verze webu nebo pluginu došlo k konfliktu.
Jak to ovlivňuje SEO?
- Googlebot a další crawlery se při opakovaných chybách 500 zpomalí nebo přestanou stránku procházet.
- Pokud chyba přetrvává déle než několik dní, může dojít k odstranění stránky z indexu.
- Uživatelská zkušenost (UX) trpí – návštěvníci opouštějí stránku, což zvyšuje míru okamžitého opuštění (bounce rate).
Jak chybu diagnostikovat a opravit?
1. Zkontrolujte logy serveru
- Apache:
/var/log/apache2/error.log
- Nginx:
/var/log/nginx/error.log
- PHP:
error_log
(obvykle v kořenovém adresáři webu) - WordPress: Zapněte debug mód přidáním do
wp-config.php
:define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); // Uloží chyby do wp-content/debug.log
🔹 Příklad chyby v logu:
[Wed Jun 12 14:25:43.123456 2024] [php:error] PHP Fatal error: Uncaught Error: Call to undefined function get_header() in /var/www/html/index.php:10
→ Tento záznam říká, že funkce get_header()
není definována, což může být způsobeno poškozeným WordPressem nebo chybějícím souborem.
2. Otestujte jednotlivé komponenty
- Zakážte pluginy (pokud používáte CMS jako WordPress) a zjistěte, který způsobuje problém.
- Přepněte na výchozí šablonu – někdy je chyba v tématu.
- Zkontrolujte databázi – například pomocí phpMyAdmin nebo příkazu:
(Hledáte chybějící tabulky nebo poškozená data.)SHOW TABLE STATUS WHERE Name = 'wp_options';
3. Opravte kód nebo konfiguraci
- Chybějící soubory? Nahrajte je znovu.
- Chyba v
.htaccess
? Zálohujte soubor a nahraďte ho výchozím:# Výchozí .htaccess pro WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
- Problém s pamětí? Zvyšte limit v
php.ini
:memory_limit = 256M
4. Dočasné řešení (pokud potřebujete rychlou nápravu)
- Vraťte statickou stránku s kódem 200 (např. "Stránka je dočasně nedostupná").
- Použijte 503 Service Unavailable (viz níže) s hlavičkou
Retry-After
.
2. 501 Not Implemented – Funkce není implementována
Co to znamená?
Server nepodporuje funkci, kterou požadavek vyžaduje. Typicky se týká HTTP metod (např. PUT
, PATCH
, DELETE
), které server neumí zpracovat.
Časté příčiny
✔ Server neumí zpracovat danou HTTP metodu (např. PUT
pro aktualizaci dat). ✔ Špatně nakonfigurovaný proxy nebo API endpoint. ✔ Chybná implementace REST API.
Jak to ovlivňuje SEO?
- Většinou nemá přímý dopad, protože crawlery používají hlavně
GET
aHEAD
. - Pokud ale API vrácí 501, může to bránit správnému fungování dynamického obsahu (např. AJAX, JavaScript rendering).
Jak chybu opravit?
- Zkontrolujte, jakou metodu požadavek používá (např. v DevTools > Network).
- Pokud metoda není potřebná, vraťte 405 Method Not Allowed s hlavičkou
Allow
, která uvádí povolené metody:HTTP/1.1 405 Method Not Allowed Allow: GET, POST, HEAD
- Pokud metoda má být podporována, aktualizujte server nebo framework (např. Express.js, Django, Laravel).
3. 502 Bad Gateway – Špatná brána
Co to znamená?
Server, který funguje jako proxy nebo gateway (např. Nginx, Cloudflare, load balancer), dostal neplatnou odpověď od dalšího serveru (např. backend API, databáze).
Časté příčiny
✔ Problém s upstream serverem (např. PHP-FPM, Node.js, Java backend). ✔ Chybná konfigurace proxy (např. špatná IP adresa v proxy_pass
). ✔ Přetížení backend služby (např. databáze nedává odpověď). ✔ Síťové problémy (např. DNS nefunguje, firewall blokuje komunikaci).
Jak to ovlivňuje SEO?
- Crawlery se zpomalí, protože se domnívají, že web je nedostupný.
- Pokud chyba přetrvává, může dojít k odstranění stránek z indexu.
Jak chybu diagnostikovat a opravit?
1. Zkontrolujte logy proxy serveru
🔹 Nginx:
tail -f /var/log/nginx/error.log
🔹 Apache:
tail -f /var/log/apache2/error.log
🔹 Příklad chyby:
2024/06/12 15:30:45 [error] 12345#0: *10 upstream prematurely closed connection while reading response header from upstream
→ Tento záznam znamená, že backend server (např. PHP-FPM) přerušil spojení.
2. Otestujte připojení k backend službě
- Ping na upstream server:
ping backend.example.com
- Test TCP připojení:
(Pokud se nepřipojí, může být problém v síti nebo firewalle.)telnet backend.example.com 80
3. Zkontrolujte konfiguraci proxy
🔹 Příklad špatné konfigurace v Nginx:
location /api {
proxy_pass http://wrong-ip-address; # Špatná IP
}
→ Opravte na správnou adresu backend serveru.
4. Zvyšte timeouts
Pokud backend reaguje pomalu, zvětšete časové limity:
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
5. Implementujte retry mechanismus
Pokud používáte load balancer (např. AWS ALB, Nginx), nastavte automatické opakování požadavků:
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
4. 503 Service Unavailable – Služba nedostupná
Co to znamená?
Server je dočasně nedostupný, například kvůli údržbě, přetížení nebo plánované odstávce.
Časté příčiny
✔ Přetížení serveru (příliš mnoho požadavků). ✔ Plánovaná údržba (např. aktualizace databáze). ✔ DDoS útok (server je zahlcen požadavky). ✔ Chyba v aplikaci (např. nekonečná smyčka).
Jak to ovlivňuje SEO?
- Googlebot zpomalí crawling, ale neodstraní stránky okamžitě (pokud je 503 dočasné).
- Pokud 503 trvá déle než 2 dny, může dojít k odstranění stránek z indexu.
- Uživatelé vidí chybovou stránku, což zhoršuje UX.
Osvědčené postupy pro 503
✅ Použijte hlavičku Retry-After
(udává, kdy má crawler zkusit znovu):
HTTP/1.1 503 Service Unavailable
Retry-After: Wed, 12 Jun 2024 18:00:00 GMT
✅ Vraťte statickou stránku s minimálním obsahem (bez externích zdrojů jako CSS/JS). ✅ Nepoužívejte 503 pro robots.txt
– to by znemožnilo crawling. ✅ Nepoužívejte 503 k skrývání obsahu – Google může stránku vyřadit z indexu.
Jak chybu opravit?
- Zjistěte příčinu přetížení (např. pomocí
top
,htop
,nginx -t
). - Optimalizujte výkon (např. zvětšete paměť, použijte caching).
- Použijte load balancer (např. Cloudflare, AWS ALB).
- Pokud je údržba plánovaná, informujte uživatele:
<!DOCTYPE html> <html> <head> <title>Stránka je v údržbě</title> <meta name="robots" content="noindex"> <!-- Pokud nechcete indexovat --> </head> <body> <h1>Právě probíhá údržba</h1> <p>Vraťte se za 2 hodiny.</p> </body> </html>
5. 504 Gateway Timeout – Vypršel časový limit brány
Co to znamená?
Proxy server (např. Nginx, Cloudflare) nedostal odpověď od upstream serveru včas.
Časté příčiny
✔ Pomalý backend (např. PHP skript trvá příliš dlouho). ✔ Databázové dotazy jsou příliš komplexní. ✔ Síťové zpoždění (např. mezi load balancerem a serverem). ✔ Nastavení timeoutů je příliš krátké.
Jak to ovlivňuje SEO?
- Crawlery zpomalí nebo přestanou stránku procházet.
- Pokud chyba přetrvává, může dojít k odstranění stránky z indexu.
Jak chybu opravit?
- Zvyšte timeouts v proxy:
proxy_connect_timeout 90s; proxy_send_timeout 90s; proxy_read_timeout 90s; fastcgi_read_timeout 90s; # Pro PHP-FPM
- Optimalizujte backend:
- Pomalé dotazy? Použijte indexy v databázi.
- Pomalé skripty? Použijte caching (Redis, Memcached).
- Použijte circuit breaker (např. Hystrix, Resilience4j) k zabránění kaskádovému selhání.
- Monitorujte výkon (např. New Relic, Datadog).
6. 505 HTTP Version Not Supported – Nepodporovaná verze HTTP
Co to znamená?
Server nepodporuje verzi HTTP protokolu, kterou klient používá (např. HTTP/2, když server umí jen HTTP/1.1).
Časté příčiny
✔ Zastaralý server (např. Apache 2.2 neumí HTTP/2). ✔ Špatně nakonfigurovaný proxy (např. Nginx nepředává správně verzi). ✔ Klient používá nepodporovanou verzi (např. experimentální HTTP/3).
Jak to ovlivňuje SEO?
- Většinou nemá přímý dopad, protože crawlery používají HTTP/1.1.
- Pokud ale moderní prohlížeče nemohou komunikovat, zhoršuje se UX a rychlost načítání.
Jak chybu opravit?
- Aktualizujte server:
- Povolte HTTP/2:
- Nginx:
listen 443 ssl http2;
- Apache (s modulem
mod_http2
):Protocols h2 http/1.1
- Nginx:
- Zkontrolujte podporu protokolu:
(Pokud vrátícurl -I --http2 https://vase-domena.cz
HTTP/2 200
, funguje správně.)
Shrnutí: Jak 5xx chyby ovlivňují SEO a jak je řešit
Chyba | Příčina | Dopad na SEO | Řešení |
---|---|---|---|
500 Internal Server Error | Chyba v kódu, databázi, konfiguraci | Snížení crawlingu, odstranění z indexu | Zkontrolujte logy, opravte kód, zvyšte paměť |
501 Not Implemented | Nepodporovaná HTTP metoda | Minimální (pokud neblokuje API) | Vraťte 405 nebo aktualizujte server |
502 Bad Gateway | Problém s upstream serverem | Zpomalení crawlingu | Zkontrolujte proxy, zvyšte timeouts |
503 Service Unavailable | Přetížení, údržba | Dočasné zpomalení crawlingu | Použijte Retry-After , optimalizujte výkon |
504 Gateway Timeout | Pomalý backend | Snížení crawlingu | Zvyšte timeouts, optimalizujte dotazy |
505 HTTP Version Not Supported | Zastaralý server | Minimální (pokud neblokuje moderní prohlížeče) | Aktualizujte server, povolte HTTP/2 |
Jak monitorovat a předcházet 5xx chybám?
1. Použijte monitoring
- Google Search Console → Crawl Errors (sekce "Server Errors").
- UptimeRobot, Pingdom – sledují dostupnost webu.
- New Relic, Datadog – monitorují výkon serveru.
2. Nastavte alerty
- Pokud se objeví 5xx chyby, dostanete upozornění (např. e-mailem nebo do Slacku).
- Příklad v Nginx:
(Pak můžete použíterror_log /var/log/nginx/error.log warn;
grep "50[0-9]" /var/log/nginx/error.log
pro filtrování chyb.)
3. Optimalizujte výkon
- Použijte caching (Redis, Varnish, Cloudflare).
- Optimalizujte databázi (indexy, dotazy).
- Použijte CDN (Cloudflare, Fastly) pro snížení zátěže.
4. Mějte záložní plán
- Automatické restarty služeb (např.
systemd
pro PHP-FPM):[Service] Restart=always RestartSec=5
- Fallback na statickou stránku (např. pomocí Nginx):
error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; }
Závěr: Proč jsou 5xx chyby kritické a jak je řešit
- 5xx chyby signalizují problémy na straně serveru, které mohou poškodit SEO (snížení crawlingu, odstranění stránek z indexu).
- Nejčastější příčiny: Chyby v kódu, přetížení, špatná konfigurace, problémy s databází.
- Řešení:
- Diagnostikujte logy (
error.log
,access.log
). - Optimalizujte výkon (caching, load balancing).
- Použijte správné chybové kódy (např.
503
sRetry-After
). - Monitorujte dostupnost (Google Search Console, UptimeRobot).
- Diagnostikujte logy (
Pokud se 5xx chyby objevují opakovaně, je důležité je řešit co nejdříve, aby nedošlo k dlouhodobému poškození SEO.
Zdroje (APA citace)
- Google Search Central. (n.d.). Crawl errors. Retrieved from https://developers.google.com/search/docs/crawling-indexing/crawl-errors
- Google Search Central. (n.d.). HTTP status codes. Retrieved from https://developers.google.com/search/docs/crawling-indexing/http-status-codes
- Mozilla Developer Network. (n.d.). HTTP response status codes. Retrieved from https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- Nginx Documentation. (n.d.). NGINX error log. Retrieved from https://nginx.org/en/docs/ngx_core_module.html#error_log
Autor: Michal Binka Datum poslední úpravy: 12. června 2024