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#2918: Jak z WordPressu smazat všechna média?
V rámci úklidu na rychlofky (#tyden) to nebylo jenom o smazání záplavy příspěvků, ale také prakticky všech médií (attachments), které ty příspěvky měly. Související příspěvky TIP#774: Má smysl si na WordPress.com zapínat…
-
TIP#2907: Jak ve WordPressu smazat velké množství příspěvků? Ideálně všechny?
V době kdy #tyden měl webovou verzi se na rychlofky.cz nashromáždilo dobrých 12 tisíc (velmi krátkých) příspěvků. Roky starých a také nenavštěvovaných, Google (vyhledávače) nemají rády krátké příspěvky a neumístí je do…
-
TIP#2871: WordPress a jak docílit toho, aby obrázky v příspěvcích měly stín?
Chcete trochu vylepšit příliš plochý design článků a svého webu na WordPressu? Můžete to udělat tak, že obrázky opatříte stínem. Budou vystupovat z jinak plochého článku a vylepší jeho čitelnost. Související příspěvky…
-
TIP#2807: Bit.ly zavádí reklamu a splash screen? Co s tím? Jak na vlastní zkracovač?
Bit.ly, jeden z mála původních a široce rozšířených zkracovačů adres (URI) za pár měsíců zavede zobrazování reklamy pro ty, kdo kliknou na bit-ly odkaz. Doposud to fungovalo aniž by kliknutí bylo jakkoliv…
-
TIP#2799: Sdílíte nějaký odkaz? Měli byste ho vyčistit od věcí, které tam nemají zůstat
Zapeklitá záležitost, něco jste si otevřeli na Internetu nebo v aplikaci a chcete to nasdílet pomocí odkazu (link). V mnoha případech se k odkazu samotnému přidá řada dalších zbytečných věcí. Někde, třeba…
-
TIP#2791: Mám na webu WordPress v “anglické” verzi, je bezpečné přeinstalovat (změnit) na cs_CZ (či opačně)?
Může se vám to stát velmi lehce a možná si toho ani nevšimnete. Máte českou verzi WordPressu a při některé z aktualizaci si nevšimnete, že vám vlastně nenabízí českou, ale anglickou. To…
-
TIP#2753: Proč mi aktualizace WordPressu cs_CZ (českého) nabízí aktualizace na en_US?
Právě teď je to aktuální. Objevil se WordPress 6.6 a pro všechny weby s cs_CZ to nabízí (a vlastně i dost vnucuje) aktualizaci na tuto verzi, jenže en_US. Související příspěvky TIP#2554: Potřebujete…
-
TIP#2733: Vývojová prostředí pro lokální vývoj pro WordPress (a webdesign vůbec)
Lokální vývojové prostředí vám umožní na vašem lokálním stroji mít vše co potřebujete pro provozování webu (s WordPressem, ale může to být i cokoliv jiného) – tedy web server (Apache, například), SQL…
-
TIP#2592: Ještě stále máte na webu Google AMP? Je to zlo, rychle s tím pryč
Je to vlastně už docela dlouho, co jsem na všech mých webech zrušil podporu Google AMP. Pak jsem delší dobu chtěl napsat tip tomu věnovaný, ale nějak to zapadlo v záplavě jiných…
-
TIP#2554: Potřebujete vyměnit obrázek v médiích na vašem WordPressu? Je nutné mít plugin
Jedna z věcí, kterou (neznámo proč) WordPress neumí přímo. Můžete nahrát média (obrázek, fotku, atd) ale když chcete nahrát upravenou verzi, tak to není možné. Přitom je to dost zásadní věc, kterou…
-
TIP#2548: Jak synchronizovat (zálohovat) web přístupný přes FTP na disk ve Windows?
Taková ta úplně klasická věc. Máte někde webový server (třeba právě jako 365tipu.cz) a je dostupný jen přes FTP (SFTP). Chcete si ho zálohovat na disk ve Windows (ať už lokální nebo…
-
TIP#2533: Jak získat štítky z WordPressu pomocí vlastního PHP
Když už byla řeč o tom jak analyzovat duplicitní štítky, tak je vhodné ještě přidat možnost jak exportovat štítky z WordPressu pomocí PHP. Předpokládá to, že máte přístup k vašemu hostingu a…
-
TIP#2514: Jak ve WordPressu deaktivovat plugin bez přístupu k WP-Admin
Tohle je snadné, ale musíte mít přístup k vašemu hostingu, tedy většinou FTP/SFTP přístup, ale může to být SSH. Prostě tak, abyste se dostali k souborům. Související příspěvky TIP#2495: Mohu z mého…