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říčinyJak je diagnostikovat a opravitJak ovlivňují SEO a crawlingOsvě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:
    SHOW TABLE STATUS WHERE Name = 'wp_options';
    
    (Hledáte chybějící tabulky nebo poškozená data.)

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 a HEAD.
  • 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?

  1. Zkontrolujte, jakou metodu požadavek používá (např. v DevTools > Network).
  2. 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
    
  3. 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í:
    telnet backend.example.com 80
    
    (Pokud se nepřipojí, může být problém v síti nebo firewalle.)

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?

  1. Zjistěte příčinu přetížení (např. pomocí top, htop, nginx -t).
  2. Optimalizujte výkon (např. zvětšete paměť, použijte caching).
  3. Použijte load balancer (např. Cloudflare, AWS ALB).
  4. 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?

  1. Zvyšte timeouts v proxy:
    proxy_connect_timeout 90s;
    proxy_send_timeout 90s;
    proxy_read_timeout 90s;
    fastcgi_read_timeout 90s; # Pro PHP-FPM
    
  2. Optimalizujte backend:
    • Pomalé dotazy? Použijte indexy v databázi.
    • Pomalé skripty? Použijte caching (Redis, Memcached).
  3. Použijte circuit breaker (např. Hystrix, Resilience4j) k zabránění kaskádovému selhání.
  4. 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?

  1. Aktualizujte server:
    • Apache: sudo apt update &amp;& sudo apt upgrade apache2
    • Nginx: sudo apt update && sudo apt upgrade nginx
  2. Povolte HTTP/2:
    • Nginx:
      listen 443 ssl http2;
      
    • Apache (s modulem mod_http2):
      Protocols h2 http/1.1
      
  3. Zkontrolujte podporu protokolu:
    curl -I --http2 https://vase-domena.cz
    
    (Pokud vrátí 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 ConsoleCrawl 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:
    error_log /var/log/nginx/error.log warn;
    
    (Pak můžete použít 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 s Retry-After).
    • Monitorujte dostupnost (Google Search Console, UptimeRobot).

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)

Autor: Michal Binka Datum poslední úpravy: 12. června 2024