Pár tipů, jak zrychlit WordPress

Nikdo nemá rád čekání na odpověď lenivých webů. To platí jak o lidech, tak i vyhledávačích. Proto je třeba se snažit o snížení požadavků skriptů na výkon, a tím zrychlit načítání stránek. Dnešní článek přináší několik užitečných tipů.

Přejděte na dobrý hosting

Opravdu nemá cenu škudlit na hostingu, i když se jedná o “pouhý” blog. WordPress není jednoduchý systém a také něco sežere; nezřídka v diskuzních fórech narážím na problémy s nedostatkem PHP paměti. Takže rovnou zapomeňte na levnou Kapustu, Gigaserver a další podobné rádoby hostingy. Až si budete vybírat nový webhosting, nezapomeňte se mrknout na serverovou konfiguraci – phpinfo() – jinak kupujete zajíce v pytli.

Pročistěte pluginy

Nedávno jsem napsal článek o pluginech, kde jsem vyzdvihl jejich negativní vliv na rychlost blogu. Pluginy opravdu představují jednu z největších wordpressáckých brzd.

Začátečníci tyto doplňky používají doslova pro každou blbost (např. automatické vložení Google Analytics kódu do šablony). Sám jsem kdysi měl asi 30 aktivních pluginů, a musím říct, že jsem musel bajty dat tahat jako z chlupatý deky. Proto doporučuji, abyste odstranili všechny pluginy, které nejsou nezbytné pro fungování webu (hodnocení článků, ankety a tak dále – ale třeba antispam doporučuji zanechat). Jakmile se zbavíte nepotřebných kravin, zjistíte, že se vašemu blogu dýchá o něco lépe.

Chytré řešení také spočívá v podstrkávání již zpracovaných HTML stránek, cachování na straně prohlížeče, minifikace CSS a HTML, komprese pomocí gzip či deflate atp. Můj oblíbený plugin W3 Total Cache tyto úkony (a hromadu dalších) v pohodě zvládá. Dovolím si tvrdit, že se jedná o nejlepší cache plugin vůbec.

Pročistěte šablonu

Odstraňte z kódu zbytečné PHP requesty. Například:

<!-- špatný zápis --><title>   </title>
<!-- dobrý zápis --><title>Lelkounův blog</title>

Tzv. SEO pluginy vám TITLE stejně samy přepíšou.

Zkraťte CSS zápis následujícím způsobem:

/* špatný zápis */ #id {margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;}
/* dobrý zápis */ #id {margin: 1px 2px 3px 4px;}

Pro Firefox existuje výborné rozšíření zvané Page Speed, které vám mimo jiné udělá optimalizaci CSS a JavaScriptu.

Pročistěte databázi

Udržujte svou databázi optimalizovanou a čistou. Nepřechovávejte články v koši a neukládejte zbytečné revize (stávající odstraňte). Kešujte dotazy (W3 Total Cache tohle umí).

Odstraňte jazykovou lokalizaci

Je sice pěkné, že můžete mít počeštěnou administraci WordPressu, nicméně za to zaplatíte zpomalením svých stránek. Zkompilovaný .mo soubor s překladem má velikost necelých 500 KB. Jeho zpracovávání žere relativně hodně paměti. Já jsem naměřil zhruba 8 MB, což je celkem dost. Tohle neplatí jenom u české lokalizace WordPressu, ale i u přeložených pluginů a šablon (sice jich není moc, ale najdou se). Proto zvažte, zda se vám vyplatí komfort na úkor rychlosti.

Odstavec výše představuje kacířské znevažování Separatistovy těžké dřiny, jenž má český překlad na svědomí a dělá to úplně zadarmo. Proto jsem velmi dlouho zvažoval, zda sem tento bod dát. Nakonec jsem se rozhodl pro informovanost uživatelů a možnou skutečnost, že někde venku holt dostanu do huby. :-D

Mějte pod kontrolou využití paměti

Zobrazení aktuálního využití paměti je vychytávka vhodná spíše pro vývojáře, ale i běžným uživatelům může přijít jako zajímavý údaj. Hodí se zejména při testování pluginů a optimalizaci skriptů. Pro lenochy tu je plugin WP-Memory-Usage.

Kam dál?

Odpovědi: 21

  1. Mr. Atsor

    Pěkný článek. Děkuji za něj :)

    #1 | Reagovat

  2. apin

    to je porád: omezte pluginy a na závěr tu lenochům hned jeden cpeš :)

    #2 | Reagovat

  3. Lelkoun

    @apin: No, nelenoši si to umí udělat i bez pluginu. ;-)

    #3 | Reagovat

  4. Sborez

    Patřím mezi lenochy. Navíc fakt lama na php, takže pluginy mi pomáhají. Každopádně si myslím, že na běžném malém blogu jako mám já se tyto úspory moc neliší. Porovnání Sborez.cz, rychlost načtení cca 2,4. Ajvngou.cz, rychlost načtení 1,6. Máme aktivované bajvočko stejné pluginy. Myslím, že hodně záleží na zvolené šabloně do WP. Nemýlím-li se.

    #4 | Reagovat

  5. Sborez

    Jo a díky za tip na Page Speed. Znatelné zrychlení.

    #5 | Reagovat

  6. Wronski

    Z pluginů už nemám co ubírat, ale zkusil jsem smazat jazykovou lokalizaci. Na serveru (výše zmiňovaný gigaser) se zrychlilo výrazně, a na lokále, kde mám kopii WP, je rozdíl odhadem víc než dvojnásobný. Dík ;-)

    #6 | Reagovat

  7. parohac4

    Výborný článek. Díky, určitě si z něj něco vezmu.

    #7 | Reagovat

  8. Separatista

    Separatista to psychicky zvládne :-) Čeština určitě zabírá memory_limit navíc (cca 5 MB), je to prostě takový bonus…

    Obecně je vhodné se do databáze dotazovat co nejméně (nebo vše cachovat). Nejvíce to ovlivňují použité pluginy a hlavně šablona(!). Vždy ale záleží i na poměru návštěvnosti a počtu dotazů, takže pokud máte nízkou návštěvnost, můžete si dovolit více experimentovat.

    CSS a Javascripty lze zmenšovat také automaticky pomocí pluginů, aby se načítaly v kompaktní formě.

    A pokud jde o memory_limit a češtinu, tak záleží hodně na hostingu. Na vlastním nakonfigurovaném localhostu je rozdíl 4 MB, na zahraničním hostingu 5 MB, české jsem zatím moc nezkoušel (vždy mám ale pro WordPress povoleno minimálně 90 MB a není znát žádný rozdíl v načítání stránek). Rozdíl v rychlosti načítání by se měl projevit ale pouze v případě, kdy je server přetížen (a jste s limitem na hraně). Takže pokud potřebujete ušetřit několik desetikorun měsíčně za lepší tarif, češtinu můžete klidně ignorovat a třeba to pomůže :-) Do budoucna se ale navýšení tarifu stejně nevyhnete, každá velká verze WordPressu zatím “žrala” vždy cca o 2 – 3 MB více než ta předchozí…

    #8 | Reagovat

  9. Lelkoun

    @Separatista: Jsem rád, že se nezlobíš. :-)

    Jenom bych dodal, že u pluginů s automatickou minifikací je třeba dát bacha na JS u reklam, protože se de facto jedná o porušení pravidel většiny reklamních systémů.

    #9 | Reagovat

  10. Separatista

    @Lelkoun: Není za co, dokonce na tvůj článek odkazuju ze svého webu :-) Pokud to někomu provizorně pomůže, tak je to jen dobře. Jen jsem chtěl upozornit, že odstranění češtiny je jen záplatování problémů, které se skrývají v hostingu, šabloně či pluginech.

    #10 | Reagovat

  11. Bacon

    Díky za tip na W3 Total Cache ;)

    #11 | Reagovat

  12. michal zobec

    zajímavý článek, díky za něj ;)

    #12 | Reagovat

  13. michal zobec

    &Lelkoun: ještě mě napadlo, nedá se nějak čeština integrovat přímo do anglického wp jako do kódu a šablon? někde jsem o tom myslím četl. předpokládám že existuje způsob jak to nedělat ručně…

    #13 | Reagovat

  14. Lelkoun

    @michal zobec: Určitě to jde, ale automaticky asi ne. Šablonu si přeložíš během pár minut. Pokud chceš mít český WordPress, asi budeš muset využít oficiálního překladu.

    #14 | Reagovat

  15. Lionel

    Také existují pluginy, které zrychlí váš Wordpresík i kdyby jste tam měli pluginů, jak v chlupaté dece ;)

    #15 | Reagovat

  16. Bacon

    @Lionel: A proto díky, že jsi je tu všechny vypsal a pomohl nám ostatním :D

    #16 | Reagovat

  17. Lelkoun

    @Lionel: To mě zajímá. Které, prosím? :-)

    #17 | Reagovat

  18. Ike

    Jsem na wordpress zatím úplná lama. Jaká je alternativa na vložení měřícího kódu analyticsu do blogu místo plug-inu? Ručně to vepsat do souboru index.php?

    #18 | Reagovat

  19. Lelkoun

    @Ike: Kdepak, vlož to před tag </head> do souboru header.php.

    #19 | Reagovat

  20. Michal

    Nerad bych, aby to vypadalo jako nějaká reklama, ale provozuju WordPress u Gigaserveru naprosto bez problémů. Tak nechápu tu poznámku o rádobyhostingu. Všechno jede, jak má, a problémy s pamětí nemám. Mám tarif někde okolo 500 Kč ročně.

    #20 | Reagovat

  21. úpetr

    Jak zmenšit databázi? Nějak bobtná, ale nevím proč…

    #21 | Reagovat

Komentujte!