Po migraci FeedIT.cz na vlastní WordPress u BlueBoardu (z WordPress.com) se objevil problém s nestíháním. Ten web má přes 55 tisíc příspěvků, takže i když nemá nijak zásadní návštěvnost (okolo jednoho tisíce návštěv ve všední dny), tak je to přece jenom něco trochu většího.
Cache je nutné, ale pozor
Hlavní problém se objevoval ráno, při prvním vložení nového příspěvků. Skončilo to 50x chybou a trvalo asi pět minut, než byl web opět dostupný. Článek se přitom vložil správně, ale cokoliv dalšího už poté nebylo možné. Podezíral jsem generování sitemap.xml a WP Fastest Cache a nakonec se ukázalo, že to druhé je původcem – stačilo vypnout automatické mazání kompletního cache při vložení nového článku (je tam ještě totéž při opravě článku).
WP Fastest Cache tvrdil, že jde jen o mazání konkrétního článku a hlavní stránky (pokud tam ten článek patří), ale buď tam mají chybu nebo to není pravda – vypadá to, že se vydají mazat kompletní cache. Což u takto rozsáhlého webu trvá dlouho.
Vypnout nakonec můžete i ono mazání při aktualizaci a můžete to dělat ručně (na příslušné stránce a na hlavní stránce). Případně zkusit jiný cache, nebo klasicky počkat, jestli to náhodou neopraví (což se mimochodem o pár týdnů později stalo).
Pokud na svém WordPressu nemáte žádný cache, tak je to dost dobrý důvod k nestíhání a měli byste to řešit.
O pár měsíců později WP Fastest Cache šlo pryč a nahradilo ho WP Super Cache. To se ukázalo jako rychlejší a méně náročné na počty souborů. Případně viz Jaké cache použít pro váš WordPress web?
Sitemap.xml a indexace webu
Se Sitemap.xml to ale mohlo souviset také, navíc se v tomto případě projevuje jako problém i jinde. All In One SEO totiž generuje Sitemap.xml kompletního webu, dokonce včetně štítků, rubrik, médií a dalších taxonomií. Je tedy pochopitelně obrovská (FeedIT.cz má přes 4 000 štítků). Při hledání příčiny jsem objevil, že se na zmigrovaný web vrhla Monitora.cz a kompletně ho stahovala – ukázalo se, že mají chybu v robotu a prostě znovu natáhli vše co je Sitemap.xml (i proto, že na WordPress.com tam není všechno).
Řešením v tomto případě je jiný plugin, co nevytváří kompletní Sitemap.xml. A velmi pravděpodobně se touto cestou vydám. Pár tipů na jiné viz Jak na WordPressu vytvořit Sitemapu? Nejlepší pluginy pro sitemap.xml
Při řešení nestíhajícího WordPressu je třeba se dívat i na to, co se vlastně na webu děje. Protože pokud se na vás vrhlo několik robotů, tak může jít o značnou zátěž, která může chod webu velmi ovlivnit. Ono “dívat se“ bude trochu komplikované, protože na většina hostingů nebudete mít možnost se dívat na http logy, ani sledovat zátěž databáze, natož mít něco pro kontrolu v reálném čase. Ochota technické podpory navíc bývá velmi různorodá.
Zkoumáním statistik návštěvnosti (Blueboard je vytváří z logů serveru) se navíc ukázalo, že podobným způsobem se na web vydal AHREFs (mám ho tam založený pro analýzy) a nevypadá to, že by zrovna dodržovali nastavení že mají použít jen jedno vlákno a dvě sekundy mezi požadavky. AHREFs jsem nakonec vypnul, byť byl nastavený “jednou za měsíc”. Až budu případně potřebovat, tak ho je možné pustit ručně.
Zatěžující SQL dotazy
Časté nestíhání je ale vinou přímo šablony nebo některého z pluginů – zejména tam, kde dochází k častým a náročným SQL dotazům. Jednu šablonu jsem z tohoto důvodu nakonec musel vyměnit za jinou, tvůrci volali funkci WordPressu zpracovávající a vracející prakticky kompletní obsah meta tabulky při každém vyžádání obrázku (média).

Blueboard má hodně povedenou funkci – v administraci je u SQL serveru možné se podívat ne nejdéle trvající dotazy. Hodně to může pomoci, protože odhalit místo kde se děje něco nepravého je obtížné – Existuje plugin Query Monitor coby fantastická pomůcka, ale musíte vědět kde hledat – ne vždy se totiž nepravosti dějí v tom na co pravidelně vstupujete.
Pomalé SQL dotazy pak navíc musíte najít ve zdrojových kódech (WordPressu, šablony, pluginů) a není to až tak triviální – většinou se tam sestavují postupně a hledání je tak trochu detektivní práce.
Pluginy a widgety, ale i šablona
Při hledání pomůže i tak prostá věc jako vypínat konkrétní pluginy (co nejsou bezpodmínečně nutné pro běh webu) a sledovat zda to povede ke změně chování.
Jak už zaznělo, problém může být i v samotné šabloně – tady pomůže přepnout na některou z výchozích od WordPressu (ty co jsou označené číslem roku ve kterém byly vytvořeny). Jsou velmi jednoduché, čisté a rychlé.
Vyšší zátěž hledejte i ve Widgetech – čím víc jich nasekáte na stránkách, tím větší dopad to může mít. Související články (Jak na související články (příspěvky) na WordPressu) bývají velký žrout, ale i nejčtenější a podobné věci. Zkoušejte je odstranit jeden po druhém a sledovat jak se to projeví.
Určitou dobu po čerstvém zprovoznění (ale hlavně po migraci) je větší zátěž běžná – některé pluginy například kontrolují bezpečnost a postupně procházejí vše co na webu máte. Možná jste si tam dali něco pro kontrolu nefunkčních odkazů. Migrace mohla přinést velké množství 404 a jakkoliv máte jistě Redirection pro hlídání, může to být také důvodem vyšší zátěže.
Pozor při změně šablony ale i změně pluginů na kombinace s cache – měli byste ho promazat, protože tam mohou být staré verze stránek, které přes JavaScript mohou stahovat či aktivovat něco, co už na webu nemáte.
PHP Error Log a HTTP Logy
Další dobrý pomocník bývá PHP Error Log (a zapnuté logování) a HTTP logy – jak klasický záznam o přístupu tak záznam o chybách http serveru. Ne vždy je ale budete moci mít, některé hostingy je neposkytují, některé ano, jiné si za to řeknou extra peníze.
PHP Error Log je poměrně snadný na kontrolu – většinou tam u problematického webu najdete přečerpání dostupné paměti, ale mohou tam být i jiné zádrhele. Http logy už mohou být složitější, pro velké weby může jít o zásadně velké soubory – naučte se v nich hledat, ale určitě pomůže si i opatřit nějaké analyzátory http logů (pokud je přímo nemá váš hosting).
Otravné a časté dotazy odněkud zvenčí
Při zkoumání můžete zjistit i to, že důvodem velké zátěže je něco/někdo s velmi častým dotazováním. Může stahovat příliš často RSS, “monitorovat” nějakou stránku či více stránek, stahovat něco náročného (velkého nebo s zátěží SQL).
Tady potřebujete zjistit IP adresu a buď se pokusit vlastníka kontaktovat (často spíš nemožné) nebo prostě této IP adrese zakázat přístup na server. Často to bývají roboti, indexátory (jiné než Google, Bing či Seznam), analyzátory a různé bezpečnostně otravné věci – velmi často boty co se snaží o brute force přístup či masové vkládání komentářů.

Příčiny mimo vaši kontrolu
Příčinou pomalého serveru ale může být i váš poskytovatel hostingu. Proto je dobré vědět kde váš hosting má “status dashboard” – a než začnete panikařit, tak se tam podívat. Případně se podívat zda “nefunkční” či pomalé je i něco jiného, než jenom právě ten váš web. Můžete pak kontaktovat technickou podporu a ověřit si, že je možná problém “u nich”.
Mezní případ je ten, že jde o DDoS útok, mířící možná na vás, možná na vašeho poskytovatele hostingu.
Další tipy týkající se WordPressu
-
TIP#2370: Jak měřit návštěvnost webu bez Google Analytics?
Nechtít Google Analytics na webu je dost rozumné pokud nepotřebujete žádné extra vychytávky, analýzy a propojení se vším možným od Google, Dost rozumné i s ohledem na soukromí (a GDPR a sušenkové…
-
TIP#2365: WordPress pluginy pro přímé sledování návštěvnosti. Bez Google Analytics
Rozhodl jsem se zbavit Google Analytics a začal zkoumat, jak sledovat návštěvnost mých webů na WordPressu lokálně, tedy přímo na serveru, ideálně i zcela bez cookies. Důvodů se objevilo několik. Související příspěvky…
-
TIP#2358: Co si pořídit na Cookie bannery místo Complianz?
Peklo s cookies od Evropské Unie má za následek, že si na weby musíme pořizovat šílená řešení pro cookies bannery a ještě šílenější řešení pro blokování cookies, které někomu nesmíme (nebo ještě…
-
TIP#2352: Jak ve WordPressu přesunout (hromadně) články od jednoho autora na jiného?
Ten nejprimitivnější způsob je, že si zobrazíte články/příspěvky klasicky v přehledu, nastavíte si případně větší počet než 20 (100 se ještě jakž takž dá), uděláte výběr všech a pak nad výpisem jdete…
-
TIP#2334: Velký přehled zásadních pluginů pro WordPress
Máme tu Jak na vlastní WordPress. Nepostradatelné pluginy pro WordPress sepsaný v říjnu 2021 při velkém stěhování z WordPress(dot)com na vlastní WordPress. Velmi šikovný přehled pluginů v čitelnější formě. Ale vyplatí se…
-
TIP#2329: Měl bych zamezit indexování štítků či rubrik na WordPressu? Jak to udělat?
Pokud se přes site:pooh.cz či site:365tipu.cz podíváte (lépe řečeno, podívali jste se) na věci zaindexované Google, tak uvidíte šílený zmatek Několik tisíc výsledků zahrnujících v prvním případě na dvě tisícovky (v druhém…
-
TIP#2324: Optimalizace (zmenšování velikosti) obrázků na WordPressu. Jak na to?
Dobrá zpráva je, že v tomto tipu najdete množství pluginů, které vám mohou pomoci se zmenšováním, konverzí a optimalizací obrázků pro váš web/blog na WordPressu. A to jak při nahrávání (což je…
-
TIP#2304: Je ve WordPressu nějaký rozdíl mezi výchozími šablonami a ostatními?
WordPress má “výchozí” šablony, ty které vytváří přímo WordPress(org). Každý rok je jedna nová, takže se jmenují podle roku kdy vznikly (viz například Twenty Twenty-Two). Pak je tu záplava, tisíce, šablon od…
-
TIP#2264: Jak využít QNAP pro monitoring běhu webových serverů? A nejenom QNAP
Monitoring běhu/dostupnosti webových serverů tu řeší tip Jak na monitoring dostupnosti/funkčnosti serveru? Je tam řeč o WEDOS.online, které je dostupné zdarma v beta verzi a docela dlouho ho používám pro monitoring –…
-
TIP#2262: Co když má váš WordPress problémy a nestíhá?
Po migraci FeedIT.cz na vlastní WordPress u BlueBoardu (z WordPress.com) se objevil problém s nestíháním. Ten web má přes 55 tisíc příspěvků, takže i když nemá nijak zásadní návštěvnost (okolo jednoho tisíce…
-
TIP#2258: Jak z Linuxu prověřit web s WordPressem? Použijte WPscan
WPScan je CLI pomůcka pro Linux, open source, snadno použitelné pro kontrolu webu s WordPressem zvenčí. Prozradí vám verzi WordPressu, http serveru, jaké pluginy jsou instalované, podívá se na uživatelská jméno, umí…
-
TIP#2253: Jak použít wget pro zálohování webu přes FTP?
O wget je dost detailně řeč v K čemu se vám může hodit wget? Ke stahování a zrcadlení!, ale není tam úplně zmíněna možnost využití pro zálohování webu, pokud máte přístup přes…
-
TIP#2252: Jaké cache použít pro váš WordPress web?
Probírali jsme to v Pro WordPress potřebujete cache, pokud má ustát návštěvnost. Co byste měli vědět? ale chyběl tam výčet možností. Tedy jako cache si pořídit. Související příspěvky TIP#804: Jak migrovat web…
-
TIP#2246: Vydat nějaké složitější téma jako seriál několika pokračování?
Když vyšlo Vydat dlouhý článek jako jeden celek nebo rozdělit na víc pokračování? tak nemůže chybět i pokročilejší varianta. Seriál -často se používající pro vydání nějakého složitějšího nebo výrazně dlouhého tématu. Související…
-
TIP#2245: QNAP MARS a zálohování WordPressu. Šikovná věc
Nic si nenamlouvejme, zálohování (a následně i případné obnovení) webů na WordPressu bývá jedna ze slabin. Můžete mít (snad) použitelné řešení u vašeho poskytovatele hostingu. Můžete jít do některých ze zálohovacích pluginů…