Praktický postup, jak zrychlit web na Drupalu 10 a 11: od hostingu přes mezipaměť a obrázky až po hledání pomalých modulů.
Drupal je při správném nastavení velmi rychlý. Menší weby většinou není třeba nijak speciálně ladit. Problémy přicházejí u větších projektů, kde základní konfigurace nestačí, nebo u webů, kde se někde po cestě něco vypnulo. Tady je postup, který používáme.
1. Hosting a PHP
Základem je kvalitní hosting s aktuální verzí PHP, zapnutým OPcache a dostatkem paměti. Rozdíl mezi starou a aktuální verzí PHP bývá na rychlosti znatelný.
2. Mezipaměť v jádru
Drupal 10 a 11 mají v jádru tři důležité moduly: Internal Page Cache pro anonymní návštěvníky, Dynamic Page Cache pro přihlášené a BigPipe, který pošle hlavní část stránky okamžitě a pomalejší části doplní. Všechny by měly být zapnuté.
V administraci v části Konfigurace → Vývoj → Výkon nastavte maximální stáří cache pro prohlížeče a proxy a zapněte agregaci CSS a JavaScriptu.
3. Obrázky
- Používejte styly obrázků a responzivní obrázky, ne originály.
- Konvertujte do WebP nebo AVIF, Drupal to umí přímo ve stylech.
- Obrázky mimo první obrazovku načítejte až při posunutí (lazy loading je v jádru).
4. Views a vlastní bloky
U Views nastavte cache podle značek (tag-based), pokud to obsah dovolí. U vlastních bloků a modulů správně nastavte cache tags, contexts a max-age. Jedno nesprávně nastavené max-age: 0 umí vypnout cache celé stránky.
5. Redis nebo Memcache
U větších webů se vyplatí přesunout cache z databáze do Redisu nebo Memcache. Potřebujete k tomu podporu hostingu a příslušný modul.
6. Reverse proxy a CDN
Při velké návštěvnosti pomůže Varnish nebo CDN, které doručí stránky a soubory z paměti, aniž by se zatížil Drupal.
7. Skripty třetích stran
Často web nezpomaluje Drupal, ale měřicí kódy, chaty a widgety. Načítejte je přes Google Tag Manager, až po souhlasu a jen ty, které opravdu používáte.
Pořád pomalé?
Je třeba měřit. Pomůže PageSpeed Insights pro pohled návštěvníka a nástroje jako Webprofiler nebo profilování na serveru pro pohled dovnitř. Často je viníkem jeden modul nebo jeden špatně napsaný dotaz do databáze. Vývojářské moduly po ladění na produkci vypněte.
Rychlost není jednorázový úkol. Každý nový modul a každý nový skript ji může zhoršit, proto se ji vyplatí pravidelně kontrolovat.


