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#2505: Uklízíte v databázi ve vašem WordPressu? Co dělat s oEmbed Cache In Post Meta
Jedna maličkost, kterou nejspíš neznáte – kdykoliv do příspěvků umístíte nějaký ten “embedovaný” obsah, tedy například video na YouTube, tak editor stáhne potřebný kód pro embed a uloží do “oEmbed Cache” pro…
-
TIP#2500: Otevírat odkazy v novém okně (záložce) či neotevírat?
Otevření odkazu v novém okně či záložce je běžná praxe na mnoha webových stránkách. Ale je to vždy správný krok? Jaká jsou rizika a výhody obou přístupů? Související příspěvky TIP#835: Co se…
-
TIP#2497: Uklízíte v databázi ve vašem WordPressu? Kolik revizí příspěvků tam máte schovaných?
Typická věc vhodná k úklidu jsou revize. Každá změna v příspěvku/stránce totiž uchovává předchozí verzi. A pokud hodně opravujete, ale třeba i postupně píšete, tak těch revizí může být docela dost a…
-
TIP#2495: Mohu z mého WordPressu odstranit plugin tak, že smažu složku s pluginem?
Rychlá odpověď je, ano, můžete. Zafunguje to, ale dobrá cesta to není. U řady pluginů totiž takto zůstanou data pluginu v databázi – nedojde totiž k úklidu. A v databází těch tabulek…
-
TIP#2492: Máte web? Tak si ohlídejte přesměrování http na https a www na bez www (nebo opačně)
Stále se s tím setkávám, takže je čas tomu věnovat menší samostatný tip. Týká se provozu webu na https – což je dnes normální, běžné a nutné. To co bylo popisování v…
-
TIP#2478: Je WordPress pluginy nutné instalovat, nebo je stačí jen nakopírovat kam patří?
Odpověď je vlastně snadná, ale trochu zapeklitá. Můžete totiž vzít ZIP s pluginem, rozbalit si složku co v něm je a tu složku nahrát do wp-content/plugins a poté můžete ve WP-Admin otevřít/obnovit…
-
TIP#2443: Jak na QNAP NAS provozovat webový server (Apache). Základní cesta. A jak tam dostat WordPress
Součástí QNAP NAS je možnost mít Apache. Instalace v Control Panel -> Applications kde najdete Web Server. Tam pak už stačí zaškrtnout Enable Web Server. Vytvoří se tím i network share Web…
-
TIP#2431: Jak migrovat WordPress: Přenesení nastavení šablony
Migrace webu na WordPressu je takový prazvláštní úkon. Některé věci se dají, některé drhnou, některé jsou skoro “next to impossible”. Přitom by to mělo být snadné. Vzít váš existující web – soubory/média,…
-
TIP#2408: Jak zjistit kolik diskového místa mi zabírá WordPress web?
Načaté je to už v Co dělat, když vašemu WordPressu dochází diskový prostor? ale není tam nijak extra řešeno jak vlastně zjišťovat stav volného prostoru (zaplnění disku). Související příspěvky TIP#792: Jak migrovat…
-
TIP#2398: Software pro management WordPressů
Proč si pořídit něco lepšího na správu vašich WordPressů? Protože když jich máte víc, tak budete trávit kupu času přebíháním z jednoho do druhého a spouštěním aktualizací a řadou dalších věcí. Související…
-
TIP#2393: Jak zvětšit omezení velikosti souborů nahrávatelných na WordPress?
Jedna z věcí na které narazíte při (například) používání QNAP MARS zálohování pro WordPress je nemožnost obnovit velké weby. Platí to ale i pro jiná zálohovací zařízení – většina hostingu má omezenou…
-
TIP#2388: Jak ve WordPressu získat možnost duplikovat (kopírovat) příspěvky
Jedna dost často potřebná a přesto chybějící věc ve WordPressu je vytvořit kopii (duplikát) nějakého příspěvku či stránky. Můžete to řešit pomoci copy/paste, ale to je poněkud otravné a zdlouhavé. Související příspěvky…
-
TIP#2380: Jak najít ve WordPressu příspěvky/stránky/opakovaně použitelné bloky kde používáte konkrétní prvek? Jak kopírovat a měnit konkrétní blok?
Tohle je taková trochu nedotažená věc ve WordPressu. Můžete používat nějaké stavební prvky – jako třeba /blog z Wodpress.com Editing Toolkit pro výpis příspěvků z určitého štítku/rubriky. Jenže v okamžiku kdy ho…
-
TIP#2375: Jak na WordPressu na výpisy článků podle štítku nebo rubriky?
Na WordPress.com je součástí instalace blok /blog pro výpis článků – podporuje podle štítku a rubriky (dost důležité, že oboje a zejména podle štítůu), různé velikost písma i náhledových obrázků (také dost…
-
TIP#2372: Lepší menu pro WordPress se vyplatí. Jak na to?
WordPress umí přímo vytvářet menu a vaše šablona s nimi bude umět pracovat – zobrazovat je svisle či vodorovně, umístit podle potřeby, podporovat úrovně položek, umět jich případně i více. Vy sami…