· hutor.tech
Kontrolný zoznam pre ladenie výkonu WordPressu
Pomalý web na WordPresse býva pomalý zriedka z tajomného dôvodu. Takmer v každom prípade, ku ktorému nás zavolajú, je príčina jedna z piatich a najrýchlejšia cesta k odpovedi je prejsť ich v poradí, nie kúpiť väčší server.
Merajte skôr, než sa niečoho dotknete. Načítajte stránku s otvorenými vývojárskymi nástrojmi a poznačte si dve čísla: čas do prvého bajtu a čas zobrazenia najväčšieho prvku. Pomalý prvý bajt je problém servera — PHP, databáza, vzdialené API. Rýchly prvý bajt a pomalá stránka je problém frontendu — obrázky, fonty, skripty. Tieto dve cesty nemajú takmer žiadne spoločné riešenia, takže zlý odhad stojí deň.
Ak je pomalý server, nainštalujte Query Monitor a pozrite si stránku, ktorú ladíte. Ukáže počet dopytov, ten najpomalší, HTTP volania počas vykresľovania a plugin, ktorý ich poslal. Obvyklí vinníci:
— plugin, ktorý pri každom načítaní volá externé API bez cache a bez timeoutu;
— dopyt nad meta poľom bez indexu v tabuľke so stotisícmi riadkov;
— automaticky načítavané options, ktoré narástli na niekoľko megabajtov;
— šablóna, ktorá spúšťa `wp_query` v cykle namiesto jedného dopytu s `post__in`.
Cache overujte, nepredpokladajte ju. Celostránková cache pred PHP je najväčšia výhra, akú obsahový web môže mať, a obrazovka nastavení pluginu nie je dôkaz, že funguje. Vyžiadajte si stránku dvakrát a prečítajte hlavičky odpovede; ak vám nič nepovie o zásahu do cache, zásah sa nekonal. Pozor na dvoch klasických zabijakov cache: cookie nastavené každému návštevníkovi a parameter v URL pridaný reklamnou platformou.
Na frontende sú výhry nudné a spoľahlivé: obrázky vo WebP v tej veľkosti, v akej sa zobrazujú, explicitné width a height, lazy loading všetkého pod prvým zlomom, fonty hostované u seba a preload len na ten, ktorý je hore. Hlavný obrázok exportovaný v šírke 4000 pixelov stojí viac než všetky pluginy dokopy.
Hosting riešte naposledy, keď už viete, čo aplikácia robí. Objektová cache s Redisom pomôže webu s mnohými drobnými dopytmi; viac CPU pomôže webu s ťažkým PHP; ani jedno nepomôže webu, ktorý čaká na cudzie API.
A výsledok si zapíšte: čo bolo pomalé, čo sa zmenilo, aké sú čísla teraz. Prácu na výkone, ktorá sa nezmerala, obvykle zmaže najbližšia aktualizácia pluginu.