{"id":10799,"date":"2026-10-06T15:14:16","date_gmt":"2026-10-06T15:14:16","guid":{"rendered":"https:\/\/affinite.io\/cs\/?p=10799"},"modified":"2026-10-07T07:55:16","modified_gmt":"2026-10-07T07:55:16","slug":"chyba-524-na-woocommerce-proc-e-shop-padal-kazdou-pulhodinu","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/chyba-524-na-woocommerce-proc-e-shop-padal-kazdou-pulhodinu\/","title":{"rendered":"Chyba 524 na WooCommerce: pro\u010d e-shop padal ka\u017edou p\u016flhodinu"},"content":{"rendered":"\n<div class=\"wp-block-uagb-image uagb-block-5eaa0826 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/01-titulek-perex.svg\" alt=\"\" class=\"uag-image-10802\" width=\"1600\" height=\"900\" title=\"01-titulek-perex\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<p>E-shop na WooCommerce s p\u0159ibli\u017en\u011b 10 000 produkty m\u011bl v\u0161echno, co se pro rychl\u00fd a stabiln\u00ed web obvykle doporu\u010duje: vlastn\u00ed dedikovan\u00fd server, nasazenou cache a p\u0159ed sebou Cloudflare. <\/p>\n\n\n\n<p>P\u0159esto byl ka\u017edou p\u016flhodinu nedostupn\u00fd. N\u00e1v\u0161t\u011bvn\u00edci dost\u00e1vali chybu 524, a kdy\u017e se web zrovna na\u010detl, na\u010d\u00edtal se pomalu. V analytice se to projevilo vysokou m\u00edrou okam\u017eit\u00e9ho opu\u0161t\u011bn\u00ed.<\/p>\n\n\n\n<p>Na za\u010d\u00e1tku jsme v\u016fbec nedok\u00e1zali p\u0159ij\u00edt na to, pro\u010d. Na pap\u00ed\u0159e bylo v\u0161echno v po\u0159\u00e1dku a nikde nebyla chyba, na kterou by \u0161lo uk\u00e1zat. Prvn\u00ed dv\u011b kola oprav nepomohla.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-1f9306e8 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/02-vychozi-situace.svg\" alt=\"\" class=\"uag-image-10803\" width=\"1600\" height=\"900\" title=\"02-vychozi-situace\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00fdchoz\u00ed situace<\/h2>\n\n\n\n<p>E-shop b\u011b\u017e\u00ed na WordPressu a WooCommerce, m\u00e1 p\u0159ibli\u017en\u011b 10 000 produkt\u016f a t\u0159i jazykov\u00e9 dom\u00e9ny. Je na dedikovan\u00e9m serveru, o kter\u00fd se d\u011bl\u00ed jen s jedn\u00edm dal\u0161\u00edm e-shopem. Ten m\u00e1 asi 1 000 produkt\u016f a minim\u00e1ln\u00ed z\u00e1t\u011b\u017e, tak\u017ee vysv\u011btlen\u00ed, \u017ee v\u00fdkon uj\u00edd\u00e1 soused, odpadlo hned. Web m\u011bl nasazenou cache a provoz \u0161el p\u0159es Cloudflare.<\/p>\n\n\n\n<p>V\u00fdpadky p\u0159ich\u00e1zely ka\u017edou p\u016flhodinu, bez ohledu na n\u00e1v\u0161t\u011bvnost. Z\u00e1kazn\u00edk v tu chv\u00edli vid\u011bl chybovou str\u00e1nku Cloudflare 524. Ta znamen\u00e1, \u017ee Cloudflare se k serveru p\u0159ipojil, ale nedo\u010dkal se od n\u011bj v\u010das odpov\u011bdi. Web byl nedostupn\u00fd i n\u011bkolik minut. Majitel, kter\u00fd se cht\u011bl pod\u00edvat do administrace, dostal z wp-adminu chybu 503, tak\u017ee ani on nevid\u011bl, co se na serveru d\u011bje.<\/p>\n\n\n\n<p>Mezi v\u00fdpadky se web na\u010d\u00edtal pomalu. Oboj\u00ed dohromady bylo vid\u011bt v analytice na vysok\u00e9 m\u00ed\u0159e okam\u017eit\u00e9ho opu\u0161t\u011bn\u00ed: lid\u00e9 p\u0159i\u0161li, nedo\u010dkali se str\u00e1nky a ode\u0161li.<\/p>\n\n\n\n<p>Pravidelnost v\u00fdpadk\u016f byla prvn\u00ed vod\u00edtko. Kdyby server nest\u00edhal n\u00e1por z\u00e1kazn\u00edk\u016f, padal by ve \u0161pi\u010dce. Tenhle padal i ve chv\u00edl\u00edch, kdy na webu skoro nikdo nebyl.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-6b7a89c7 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/03-vysetrovani.svg\" alt=\"\" class=\"uag-image-10804\" width=\"1600\" height=\"900\" title=\"03-vysetrovani\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Vy\u0161et\u0159ov\u00e1n\u00ed: od symptomu k dat\u016fm<\/h2>\n\n\n\n<p>Cesta k p\u0159\u00ed\u010din\u011b nebyla p\u0159\u00edm\u00e1. Nejd\u0159\u00edv jsme opravovali to, co se nab\u00edzelo, a v\u00fdpadky se poka\u017ed\u00e9 vr\u00e1tily. Teprve potom jsme p\u0159estali hledat pomal\u00fd k\u00f3d a za\u010dali sledovat, co se d\u011bje se serverem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Access logy: kdo na web chod\u00ed<\/h3>\n\n\n\n<p>Prvn\u00ed pohled pat\u0159il access log\u016fm. Byly pln\u00e9 user-agent\u016f AI a SEO bot\u016f, co\u017e samo o sob\u011b nen\u00ed nic zvl\u00e1\u0161tn\u00edho. Zvl\u00e1\u0161tn\u00ed bylo, o co \u017e\u00e1dali: opakovan\u011b cht\u011bli soubory, kter\u00e9 na webu u\u017e neexistovaly, nap\u0159\u00edklad gtm4wp\/dist\/js\/\u2026.<\/p>\n\n\n\n<p>Podez\u0159en\u00ed na boty se nab\u00edzelo, a tak jsme po nich \u0161li jako prvn\u00ed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prvn\u00ed pokus: blokov\u00e1n\u00ed bot\u016f v Cloudflare<\/h3>\n\n\n\n<p>V logu byly i po\u017eadavky bot\u016f na URL s parametrem add_to_cart. Takovou adresu cache neobslou\u017e\u00ed, ka\u017ed\u00e1 jde do PHP a spou\u0161t\u00ed WooCommerce. V Cloudflare jsme proto zablokovali v\u0161echny po\u017eadavky bot\u016f na URL s add_to_cart.<\/p>\n\n\n\n<p>Nesta\u010dilo to, tak\u017ee jsme p\u0159itvrdili a zablokovali v\u0161echny neschv\u00e1len\u00e9 boty.<\/p>\n\n\n\n<p>Situace se zlep\u0161ila, ale jen na chv\u00edli. Do 24 hodin bylo v\u0161echno zp\u011bt a web padal stejn\u011b jako p\u0159edt\u00edm.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Druh\u00fd pokus: pomal\u00e9 pluginy<\/h3>\n\n\n\n<p>Pokud to nebyli jen boti, musel b\u00fdt probl\u00e9m v aplikaci. Nasadili jsme New Relic pro profilov\u00e1n\u00ed a hledali \u00fazk\u00e1 hrdla, od proces\u016f j\u00e1dra WooCommerce po jednotliv\u00e9 pluginy.<\/p>\n\n\n\n<p>Pluginy, kter\u00e9 se nepou\u017e\u00edvaly v\u016fbec nebo jen minim\u00e1ln\u011b a \u0161ly odstranit, jsme odebrali. Jako v\u00fdrazn\u00e1 z\u00e1t\u011b\u017e se uk\u00e1zal plugin pro filtrov\u00e1n\u00ed produkt\u016f (WooCommerce Product Filter), kter\u00fd pom\u011brn\u011b v\u00fdznamn\u011b zat\u011b\u017eoval archiv produkt\u016f. Nahradili jsme ho vlastn\u00edm \u0159e\u0161en\u00edm s pokro\u010dil\u00fdm cache indexem.<\/p>\n\n\n\n<p>Ani to nepomohlo. V\u00fdpadky pokra\u010dovaly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PHP-FPM pool: co se d\u011bje se serverem<\/h3>\n\n\n\n<p>Po dvou ne\u00fasp\u011b\u0161n\u00fdch kolech jsme zm\u011bnili sm\u011br. Dal\u0161\u00edm krokem bylo \u017eiv\u00e9 sledov\u00e1n\u00ed PHP-FPM poolu, tedy proces\u016f, kter\u00e9 vy\u0159izuj\u00ed po\u017eadavky na PHP. Nechali jsme si pr\u016fb\u011b\u017en\u011b vypisovat jednotliv\u00e9 workery s jejich pam\u011bt\u00ed (RSS) a zat\u00ed\u017een\u00edm CPU.<\/p>\n\n\n\n<p>Tady se poprv\u00e9 uk\u00e1zalo n\u011bco konkr\u00e9tn\u00edho. Workery nerostly o megabajty, ale na gigabajty, a nic je nezastavilo. V\u011bd\u011bli jsme tedy, \u017ee serveru doch\u00e1z\u00ed pam\u011b\u0165. Nev\u011bd\u011bli jsme, co ji spot\u0159ebov\u00e1v\u00e1.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">New Relic: kter\u00e9 po\u017eadavky pam\u011b\u0165 \u017eerou<\/h3>\n\n\n\n<p>New Relic jsme u\u017e m\u011bli nasazen\u00fd. Tentokr\u00e1t jsme se v n\u011bm ale ptali jinak: ne co je pomal\u00e9, ale co spot\u0159ebov\u00e1v\u00e1 pam\u011b\u0165.<\/p>\n\n\n\n<p>Dali jsme vedle sebe dv\u011b sady dat. Pam\u011b\u0165 jednotliv\u00fdch proces\u016f (ProcessSample) a transakce z APM, tedy p\u0159ehled toho, jak\u00e9 URL server v danou chv\u00edli vy\u0159izoval. Z jejich korelace bylo vid\u011bt, kter\u00e9 URL pam\u011b\u0165 spot\u0159ebov\u00e1vaj\u00ed.<\/p>\n\n\n\n<p>Graf pam\u011bti worker\u016f m\u011bl pilovit\u00fd pr\u016fb\u011bh. Pam\u011b\u0165 rostla a\u017e k 13\u201318 GB, pak spadla a za\u010dala r\u016fst znovu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Slowlog: co p\u0159esn\u011b PHP d\u011bl\u00e1<\/h3>\n\n\n\n<p>Posledn\u00ed krok byl PHP slowlog, kter\u00fd u pomal\u00fdch po\u017eadavk\u016f zapisuje, ve kter\u00e9 funkci PHP pr\u00e1v\u011b je. Stack trace uk\u00e1zal konkr\u00e9tn\u00ed m\u00edsto, a nebyl to ko\u0161\u00edk ani pokladna. Bylo to vykreslov\u00e1n\u00ed str\u00e1nky 404, kde \u010das tr\u00e1vily Block Hooks a wp_kses.<\/p>\n\n\n\n<p>Nejdra\u017e\u0161\u00ed operac\u00ed na cel\u00e9m e-shopu tak byla odpov\u011b\u010f \u201etahle str\u00e1nka neexistuje\u201c.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-71097700 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/04-korenova-pricina.svg\" alt=\"\" class=\"uag-image-10805\" width=\"1600\" height=\"900\" title=\"04-korenova-pricina\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ko\u0159enov\u00e1 p\u0159\u00ed\u010dina: \u0159et\u011bzec, ne jedna chyba<\/h2>\n\n\n\n<p>Kdy\u017e jsme n\u00e1lezy slo\u017eili za sebe, vy\u0161el \u0159et\u011bzec \u0161esti \u010dl\u00e1nk\u016f. \u017d\u00e1dn\u00fd z nich by s\u00e1m web neshodil.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>AI a SEO boti.<\/strong> Crawluj\u00ed masivn\u011b a bez ohledu na cache. Na webu, kde je v\u0161echno ostatn\u00ed v po\u0159\u00e1dku, je to jen zv\u00fd\u0161en\u00fd provoz.<\/li>\n\n\n\n<li><strong>Update pluginu.<\/strong> Plugin p\u0159i aktualizaci p\u0159esunul slo\u017eku s JavaScriptem z dist\/js do build. Pro n\u00e1v\u0161t\u011bvn\u00edky se nic nezm\u011bnilo, str\u00e1nky odkazovaly na nov\u00e9 um\u00edst\u011bn\u00ed. Star\u00e9 URL ale z\u016fstaly v ob\u011bhu a boti se na n\u011b ptali d\u00e1l.<\/li>\n\n\n\n<li><strong>Tis\u00edce 404.<\/strong> Po\u017eadavky na zanikl\u00e9 soubory nevy\u0159\u00eddil webserver s\u00e1m. Soubor na disku nena\u0161el, a tak po\u017eadavek p\u0159edal WordPressu, tedy do PHP.<\/li>\n\n\n\n<li><strong>Drah\u00e1 404.<\/strong> WordPress kv\u016fli ka\u017ed\u00e9mu takov\u00e9mu po\u017eadavku vykreslil celou str\u00e1nku 404 se v\u0161\u00edm, co k n\u00ed pat\u0159\u00ed: Block Hooks, sanitizace, p\u0159eklady. M\u00edsto okam\u017eit\u00e9 odpov\u011bdi na dotaz po jednom souboru .js tak poka\u017ed\u00e9 prob\u011bhl pln\u00fd render.<\/li>\n\n\n\n<li><strong>Limit 2 GB na request.<\/strong> Pam\u011b\u0165ov\u00fd limit PHP byl nastaven\u00fd vysoko, \u201ea\u0165 je klid\u201c. Jedin\u00fd po\u017eadavek tak sm\u011bl zabrat a\u017e 2 GB, ne\u017e ho PHP ukon\u010dilo.<\/li>\n\n\n\n<li><strong>Nefunk\u010dn\u00ed pojistky.<\/strong> PHP-FPM m\u00e1 pro takov\u00e9 p\u0159\u00edpady dv\u011b pojistky a ob\u011b selhaly. \u010casov\u00fd limit po\u017eadavku byl zapsan\u00fd jako php_admin_value[request_terminate_timeout], tedy na m\u00edst\u011b, kde neplat\u00ed, a PHP-FPM ho ti\u0161e ignorovalo. Recyklace workeru p\u0159ich\u00e1zela a\u017e po 500 po\u017eadavc\u00edch, co\u017e bylo p\u0159\u00edli\u0161 pozd\u011b.<\/li>\n<\/ol>\n\n\n\n<p>V praxi to vypadalo takto: boti poslali vlnu po\u017eadavk\u016f na star\u00e9 soubory, ka\u017ed\u00fd z nich spustil drah\u00fd render str\u00e1nky 404 a workery za\u010daly r\u016fst. Limit je nezastavil, timeout neplatil a recyklace nep\u0159i\u0161la v\u010das. Pam\u011b\u0165 worker\u016f vystoupala na 13\u201318 GB a Cloudflare vracel 524.<\/p>\n\n\n\n<p>Bez bot\u016f by drahou 404 nikdo ve velk\u00e9m nevolal. Bez updatu pluginu by boti dost\u00e1vali existuj\u00edc\u00ed soubory. S rozumn\u00fdm limitem a funk\u010dn\u00edm timeoutem by si server s vlnou 404 poradil.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b7bfc2dc wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/05-reseni-tri-vrstvy.svg\" alt=\"\" class=\"uag-image-10806\" width=\"1600\" height=\"900\" title=\"05-reseni-tri-vrstvy\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u0158e\u0161en\u00ed ve t\u0159ech vrstv\u00e1ch<\/h2>\n\n\n\n<p>\u0158et\u011bzec \u0161lo p\u0159eru\u0161it na kter\u00e9mkoli \u010dl\u00e1nku. P\u0159eru\u0161ili jsme ho na t\u0159ech m\u00edstech najednou, aby jedna selhan\u00e1 vrstva neznamenala dal\u0161\u00ed v\u00fdpadek. V\u0161echno na stran\u011b Cloudflare se ve\u0161lo do pl\u00e1nu Free.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Edge (Cloudflare)<\/h3>\n\n\n\n<p>Prvn\u00ed vrstva m\u00e1 zachytit co nejv\u00edc po\u017eadavk\u016f d\u0159\u00edv, ne\u017e v\u016fbec doraz\u00ed na server.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cache everything pro anonymn\u00ed HTML.<\/strong> Nep\u0159ihl\u00e1\u0161en\u00fd n\u00e1v\u0161t\u011bvn\u00edk dostane str\u00e1nku z edge cache Cloudflare a server se o po\u017eadavku nedozv\u00ed.<\/li>\n\n\n\n<li><strong>Redirect pravidla na p\u0159esunut\u00e9 soubory.<\/strong> Kdo se zept\u00e1 na starou URL, je p\u0159esm\u011brov\u00e1n na nov\u00e9 um\u00edst\u011bn\u00ed souboru.<\/li>\n\n\n\n<li><strong>Challenge pro boty na drah\u00fdch URL.<\/strong> Vlastn\u00ed pravidlo s Managed Challenge stoj\u00ed p\u0159ed adresami, jejich\u017e vy\u0159\u00edzen\u00ed je pro server n\u00e1kladn\u00e9.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Server<\/h3>\n\n\n\n<p>Druh\u00e1 vrstva \u0159e\u0161\u00ed to, co p\u0159es Cloudflare projde.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Okam\u017eit\u00e1 404 pro neexistuj\u00edc\u00ed statick\u00e9 soubory.<\/strong> Pravidlo v .htaccess vr\u00e1t\u00ed 404 rovnou z webserveru. PHP ani WordPress se kv\u016fli chyb\u011bj\u00edc\u00edmu souboru nespust\u00ed.<\/li>\n\n\n\n<li><strong>Funk\u010dn\u00ed pojistky worker\u016f.<\/strong> \u010casov\u00fd limit je zapsan\u00fd jako direktiva poolu, kde skute\u010dn\u011b plat\u00ed. Worker se recykluje po 50 po\u017eadavc\u00edch m\u00edsto po 500.<\/li>\n\n\n\n<li><strong>Slowlog.<\/strong> Z\u016fstal zapnut\u00fd, aby p\u0159\u00ed\u0161t\u00ed pomal\u00fd po\u017eadavek bylo vid\u011bt hned.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Aplikace<\/h3>\n\n\n\n<p>T\u0159et\u00ed vrstva zlev\u0148uje po\u017eadavky, kter\u00e9 do WordPressu opr\u00e1vn\u011bn\u011b dojdou.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Re\u00e1ln\u00e9 pam\u011b\u0165ov\u00e9 limity.<\/strong> Limit odpov\u00edd\u00e1 tomu, co po\u017eadavek skute\u010dn\u011b pot\u0159ebuje, ne 2 GB.<\/li>\n\n\n\n<li><strong>Vypnut\u00ed drah\u00e9ho hooku.<\/strong> Hook, kter\u00fd prodra\u017eoval vykreslov\u00e1n\u00ed, vyp\u00edn\u00e1 kr\u00e1tk\u00fd mu-plugin.<\/li>\n\n\n\n<li><strong>Redis object cache.<\/strong> Opakovan\u00e9 dotazy do datab\u00e1ze se vy\u0159izuj\u00ed z pam\u011bti.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-bcd01164 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/06-vysledky-pred-po.svg\" alt=\"\" class=\"uag-image-10808\" width=\"1600\" height=\"900\" title=\"06-vysledky-pred-po\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00fdsledky<\/h2>\n\n\n\n<p>V\u00fdpadky skon\u010dily. Pam\u011b\u0165 worker\u016f, kter\u00e1 d\u0159\u00edv rostla bez omezen\u00ed a\u017e k 18 GB, se dr\u017e\u00ed pod stropem kolem 4 GB. Vyhled\u00e1v\u00e1n\u00ed, kter\u00e9 p\u0159edt\u00edm kon\u010dilo timeoutem, odpov\u00edd\u00e1 za 0,24 s.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Metrika<\/th><th>P\u0159ed<\/th><th>Po<\/th><\/tr><\/thead><tbody><tr><td>Pam\u011b\u0165 PHP worker\u016f<\/td><td>13\u201318 GB, neomezen\u00fd r\u016fst<\/td><td>strop ~4 GB<\/td><\/tr><tr><td>Odezva na zanikl\u00e9 soubory<\/td><td>pln\u00fd PHP render, des\u00edtky sekund pod z\u00e1t\u011b\u017e\u00ed<\/td><td>okam\u017eit\u00e1 404 bez PHP<\/td><\/tr><tr><td>Vyhled\u00e1v\u00e1n\u00ed<\/td><td>timeouty<\/td><td>0,24 s<\/td><\/tr><tr><td>V\u00fdpadky 524<\/td><td>ka\u017edou p\u016flhodinu<\/td><td>0<\/td><\/tr><tr><td>Recyklace workeru<\/td><td>po 500 requestech<\/td><td>po 50 requestech<\/td><\/tr><tr><td>Anonymn\u00ed HTML<\/td><td>v\u017edy PHP<\/td><td>z edge cache<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-4802e8c8 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/07-pouceni-checklist.svg\" alt=\"\" class=\"uag-image-10809\" width=\"1600\" height=\"900\" title=\"07-pouceni-checklist\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist: co zkontrolovat na vlastn\u00edm webu<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Po updatu pluginu ov\u011b\u0159te, jestli star\u00e9 URL jeho soubor\u016f ne\u017eij\u00ed d\u00e1l v cache nebo v extern\u00edch odkazech.<\/li>\n\n\n\n<li>404 nesm\u00ed b\u00fdt drah\u00e1. Neexistuj\u00edc\u00ed statick\u00fd soubor nem\u00e1 budit PHP.<\/li>\n\n\n\n<li>Pam\u011b\u0165ov\u00fd limit PHP je pojistka, ne pol\u0161t\u00e1\u0159. Vy\u0161\u0161\u00ed hodnota neznamen\u00e1 lep\u0161\u00ed.<\/li>\n\n\n\n<li>Pojistky PHP-FPM otestujte, \u017ee opravdu zab\u00edraj\u00ed. Direktiva na \u0161patn\u00e9m m\u00edst\u011b ned\u011bl\u00e1 nic a nikde to nehl\u00e1s\u00ed.<\/li>\n\n\n\n<li>Boti si va\u0161e nejdra\u017e\u0161\u00ed URL najdou sami. Po\u010d\u00edtejte s t\u00edm v cache i ve WAF.<\/li>\n\n\n\n<li>Jedna p\u0159\u00ed\u010dina web neshod\u00ed, \u0159et\u011bzec ano. Hledejte cel\u00fd \u0159et\u011bzec.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-61b94524 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" src=\"https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/08-cta.svg\" alt=\"\" class=\"uag-image-10810\" width=\"1600\" height=\"900\" title=\"08-cta\" loading=\"lazy\" role=\"img\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pad\u00e1 v\u00e1m web a hosting \u0159\u00edk\u00e1, \u017ee je v\u0161echno v po\u0159\u00e1dku?<\/h2>\n\n\n\n<p>Ozv\u011bte se. Projdeme logy a konfiguraci serveru a najdeme, kde se \u0159et\u011bzec skl\u00e1d\u00e1.<\/p>\n\n\n\t<div class=\"wp-block-button is-style-aff-pill wp-block-affinite-contact-cta\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"wp-block-button__link wp-element-button\"\n\t\t\tdata-aff-form-open=\"contact\"\n\t\t>\n\t\t\tPromluvme si\t\t<\/button>\n\t<\/div>\n\t","protected":false},"excerpt":{"rendered":"<p>E-shop na WooCommerce s p\u0159ibli\u017en\u011b 10 000 produkty m\u011bl v\u0161echno, co se pro rychl\u00fd a stabiln\u00ed web obvykle doporu\u010duje: vlastn\u00ed dedikovan\u00fd server, nasazenou cache a p\u0159ed sebou Cloudflare. P\u0159esto byl ka\u017edou p\u016flhodinu nedostupn\u00fd. N\u00e1v\u0161t\u011bvn\u00edci dost\u00e1vali chybu 524, a kdy\u017e se web zrovna na\u010detl, na\u010d\u00edtal se pomalu. V analytice se to projevilo vysokou m\u00edrou okam\u017eit\u00e9ho opu\u0161t\u011bn\u00ed. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10801,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[25,28],"tags":[],"class_list":["post-10799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-woocommerce","category-woocommerce-reseni-problemu"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down.png",1280,720,false],"thumbnail":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down-150x150.png",150,150,true],"medium":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down-300x169.png",300,169,true],"medium_large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down-768x432.png",768,432,true],"large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down-1024x576.png",1024,576,true],"1536x1536":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down.png",1280,720,false],"2048x2048":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2026\/10\/store-down.png",1280,720,false]},"uagb_author_info":{"display_name":"Affinite","author_link":"https:\/\/affinite.io\/cs\/author\/affinite\/"},"uagb_comment_info":0,"uagb_excerpt":"E-shop na WooCommerce s p\u0159ibli\u017en\u011b 10 000 produkty m\u011bl v\u0161echno, co se pro rychl\u00fd a stabiln\u00ed web obvykle doporu\u010duje: vlastn\u00ed dedikovan\u00fd server, nasazenou cache a p\u0159ed sebou Cloudflare. P\u0159esto byl ka\u017edou p\u016flhodinu nedostupn\u00fd. N\u00e1v\u0161t\u011bvn\u00edci dost\u00e1vali chybu 524, a kdy\u017e se web zrovna na\u010detl, na\u010d\u00edtal se pomalu. V analytice se to projevilo vysokou m\u00edrou okam\u017eit\u00e9ho opu\u0161t\u011bn\u00ed.&hellip;","_links":{"self":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/comments?post=10799"}],"version-history":[{"count":4,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10799\/revisions"}],"predecessor-version":[{"id":10813,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10799\/revisions\/10813"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media\/10801"}],"wp:attachment":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media?parent=10799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/categories?post=10799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/tags?post=10799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}