Jak reaguje Google na chybu 503

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.


Jak bude reklama vypadat?
-
Kup si reklamu navždy pod tímto článkem jen za 100 Kč
Zobrazit formulář pro nákup