Nedávno jsem optimalizoval firemní web postavený na prémiové šabloně Induxe. Šablona stojí 59 USD (cca 1200 Kč) a vypadá hezky.
Pojďme se jí podívat na zoubek.
Homepage načítala 4 MB dat a 34 (!) fontů. Hodnocení v Yellow Lab Tools: D (27/100).
Podrobněji:
První pohled do Chrome DevTools byl... zajímavý. Premium téma Induxe s sebou táhlo WPBakery Page Builder, Revolution Slider, addon pluginy pro WPBakery, staré formáty fontů (woff) a každý plugin načítal další fonty. Web držel při životě cachovací plugin.
Zahradnické kleště do rukou — jdeme to odklestit.
Web načítal Google Fonts ze 4 různých míst:
Řešení: Stažení a použití lokálních woff2 fontů:
Vytvořil jsem child theme a zablokoval všechny Google Fonts přes WP filtry.
Výsledek: Z 34 fontů (1,4 MB) na 10 fontů (0,33 MB).
4 fonty jsou Roboto a Poppins, každý po dvou řezech. Další fonty si tahá plugin na Google recenze a na webu jsou ještě ikonové fonty. I tak je úspora 1,1 MB slušná.
Nikdy neměň parent theme. Všechny úpravy jsem dělal v child theme:
Struktura:
induxe-child/
├── functions.php (optimalizace)
├── style.css
├── assets/
│ ├── css/
│ │ └── local-fonts.css
│ └── fonts/
│ ├── roboto-v30-latin-regular.woff2
│ ├── roboto-v30-latin-700.woff2
│ ├── poppins-v20-latin-regular.woff2
│ └── poppins-v20-latin-700.woff2
V child theme jsem:
Původní stav byl... pestrej. SendWP plugin nebyl ani nastavený — deaktivován.
Problém: Mnoho addon pluginů pro WPBakery (především CT Core) bylo rozložených po celém webu. Kompletní vykuchání by znamenalo rebuild celého webu.
Kompromis: Nechal jsem aktivní jen ty, které jsou skutečně potřeba a nelze je snadno nahradit.
Nahrazeno pluginem WP Armour — Honeypot Anti Spam
Výsledek: Žádné externí požadavky, méně JavaScriptu, stejná ochrana (mám ho na několika webech a zatím funguje spolehlivě).
Šablona měla zapnutý smooth scroll, který dělal scrollování trhavé.
Řešení: Vypnutí v šabloně
Výsledek: Plynulejší uživatelská zkušenost, možnost nenačítat JS pro scrollování.
Google Tag byl v hlavičce přidán několikrát. Dále Google Analytics a Facebook Pixel. Vyčistil jsem to a nechal jen Google Tag. Google Analytics a Facebook Pixel jsem nastavil v Google Tag.
PageSpeed Mobile: 33/100
PageSpeed Desktop: 57/100
Yellow Lab Tools: D (27/100)
Celková velikost: 4.00 MB
JavaScript: 1.51 MB
Webfonty: 34 fontů / 1.44 MB
HTTP požadavky: 114
PageSpeed Mobile: 59/100 (+26 bodů)
PageSpeed Desktop: 77/100 (+20 bodů)
Yellow Lab Tools: B (66/100) (+39 bodů!)
Celková velikost: 2.46 MB (-1,54 MB)
JavaScript: 1.02 MB (-490 KB)
Webfonty: 10 fontů / 333 KB (-1,1 MB!)
HTTP požadavky: 88 (-26 požadavků)
Výsledek: +39 bodů v Yellow Lab Tools, -1,5 MB dat
Na webu běží GTM, GA a FB Pixel, takže 0,5 MB JavaScriptu zabírají jen tyto nástroje. Dalších cca 200 kB si bere cookie bot.
Výsledná optimalizace není žádný zázrak, ale níž už nešlo jít kvůli pluginům, které vytvářejí shortcody pro WPBakery a jsou rozlezlé po webu. Pomohlo by také nepoužívat Yellow Pencil plugin, kterým se vlastník webu snažil stylovat web namísto použití Child Theme.
Premium témata často táhnou s sebou obrovské množství funkcí „pro jistotu". Většinu nikdy nepoužiješ, ale všechny se načítají.
Ve snaze něco na webu dodělat vznikají další pluginové závislosti a výsledný web je pomalý.
Současný stav je kompromis mezi výkonem a investovaným časem. Pro ještě lepší výsledky se nabízejí dvě možnosti:
Tyto optimalizace vyžadují hlubokou znalost struktury webu. Pro někoho zvenku (včetně mě) je to taková piplačka, že by časově mohlo vyjít stejně jako rebuild — a výsledek nového webu by byl i tak lepší. Pravděpodobně ani majitel webu nebude vědět, co všechno se tam lepilo v průběhu let.
Potřebuješ optimalizovat WordPress web? Napiš mi na hey@tomasshejbal.cz
Chodíš s košem dvakrát týdně a přemýšlíš, zda by to nešlo dělat jinak?
Přesně takhle jsem to měl 7 let nazpět.
Dneska chodím s košem 1x za 2 měsíce a přitom mě to nestojí žádný extra úsilí navíc.
Zapiš se do beletristického e-mailového kurzu Domácnost bez odpadu. Každých 14 dní jeden příběh o Karlově cestě za nulou odpadu.
