Stavový kód 503 většinou ukazuje na přetížený server anebo vyčerpání přidělených serverových prostředků. Za touto chybou však nemusí stát samotný server, ale spíše nevhodně navržená aplikace, která si neumí poradit s nadstandardními situacemi anebo se prostě jen něco zacyklí. V každém případě, když už se začne objevovat bude to mít vliv na Google.
Když Googlebotovi začne server vracet 503, tak předpokládá že je server přetížený a okamžitě zpomalí procházení webu a to až do té míry, že u větších webů to můžete v Search Console vidět na grafech. Tohle ještě není problém. Ten nastává, když se v Search Console začnou objevovat chyby URL unreachable (URL nedostupná). V tomto okamžiku už je to špatně a je třeba začít situaci řešit.
To ale není nejhorší stav. Skutečná pohroma přijde v momentě, kdy 503 začne vracet soubor robots.txt. V ten okamžik Googlebot přestane procházet web úplně. V podstatě by se takto dal vyřadit jakýkoliv web. Dokonce by se to dalo zákeřně udělat, tak aby 503 viděl jen Googlebot a chudák webmáster by nikdy nemusel přijít na to v čem je problém. Ostatně kdo z vás ví, že 503 v robots.txt znamená neprocházet web?
Jak nejčastěji vzniká 503
Pokud není přetížen server, tak 503 nejčastěji vznikne vyčerpání přidělených prostředků. Což jsou většinou přidělená vlákna na zpracování PHP. Překvapivě za to v převážně většině případů nemůžou návštěvníci, ale nedomyšlené aplikace anebo skripty. Například pokud skript komunikuje s dalším serverem a ten mu neodpovídá, tak celé spojení může trvat desítky vteřin. Přitom blokuje jedno vlákno
Další je třeba zpracování příliš velkých souborů. Potřebujte třeba parsovat XML soubor a to zabere i přes minutu. Aplikace by si měla ověřit jestli je schopna takto velký soubor zpracovat a rovnou napsat, že potřebuje více času anebo být schopná rozdělit si práci na vícekrát.
Další častou chybou je snaha pracovat s tabulkami místo v MySQL přímo ve skriptu. Zvláště začínající programátoři si více věří v PHP než v SQL. Takže si stáhnou obsah tabulek, převedou je do polí a pak pracují s daty. Místo toho stačí všechno udělat v SQL a nechat si poslat od databázového serveru jen výsledky.
Tyto a spousty dalších chyb navržení mohou vést k chybám 503. Časově náročné úkony se mají řadit do fronty a postupně řešit třeba přes CRON. Hlavně mimo dosah internetu. Není nad to, když nějaký robot začne pouštět náročně skripty a během chvíle vidíte záplavu chyb 503.
Samozřejmě jestliže chce parsovat gigantické soubory, zpracovávat obrázky ve vysokém rozlišení atd. Tak už to není na hosting ale server, klidně i virtuální. Tam na to navíc jsou i lepší nástroje, od kterých si PHP pak jen může převzít výsledek.
Závěr
Takže pokud uvidíte že se množí v Search Console hlášení o nedostupných URL a na grafech aktivity Googlebota klesá počet procrawlovaných stránek, tak je dost možné, že vám něco přetěžuje web. Chce to pustit access log a error log a začít zjišťovat co se děje. Možná za to může chybně navržená aplikace anebo se nějaký robot snaží jen přes brute force dostat do administrace. Možností je spousta.
- KDEJAK.cz - Kde | Jak | Co | Proč | Návody | Rady | Tipy