„Predčasná optimalizácia je koreňom všetkého zla“ je (mis)citát, ktorý pozná každý, kto seriózne študoval vývoj. Navrhol ho Donald Knuth a jeho cieľom je vyjadriť myšlienku, že niektoré optimalizácie sú lepšie ako iné a že strácanie času drobnými optimalizáciami je neefektívne využitie času, ktoré by sa dalo lepšie stráviť inde. Často ma prekvapuje, koľko času trávia niektorí vlastníci stránok WordPress prácou na menších optimalizáciách výkonu bez veľkého efektu, zatiaľ čo ignorujú veľké optimalizácie výkonu, ako je napríklad presun svojej stránky na rýchlejší hosting. Existuje mnoho zdrojov informácií o optimalizácii online a väčšinou poskytujú rady, ktoré sú teoreticky dobré, ale ktoré môžu vlastníkov stránok zavádzať, aby míňali neprimerané zdroje na optimalizáciu, ktorá im neprináša to najlepšie.
Optimalizácia výkonu je dôležitou súčasťou poskytovania skvelého používateľského zážitku. Nikto nemá rád pomalé stránky. Pre používateľov poskytujú pomalé stránky frustrujúci zážitok. A pre vlastníkov stránok môžu vážne zhoršiť konverzie a zapojenie – príliš pomalé a používatelia nájdu alternatívy alebo prinajmenšom budú so stránkou menej interagovať, ako by inak.
Majitelia stránok by si však mali dávať pozor na to, čo optimalizujú. V nedávnom blogovom článku Nate Berkopec diskutoval o a obrovské zlepšenie výkonu bol schopný pokračovať rubygems.org. Zmenou poskytovateľa webfontov skrátil čas načítania stránok na kľúčovej časti vývojového ekosystému Ruby. Jeho optimalizácia bola dobre zvolená a informovaná o tvrdých údajoch o tom, ktoré faktory ovplyvňovali časy načítania stránky.
Nedávno som sa bavil o optimalizácii výkonu s dobre informovaným a technicky zdatným majiteľom WordPress stránky. Povedal mi, že v snahe skrátiť čas načítania svojich stránok prepisuje celý kód jQuery svojej témy do obyčajného JavaScriptu. Podľa môjho názoru je to príklad predčasnej optimalizácie. Knižnica jQuery je relatívne veľký súbor, ktorý si stiahne veľkú časť pásma. A jQuery je pomalší ako obyčajný JavaScript. Prepisovanie v JavaScripte má dobrú šancu na to, aby sa stránka načítala a fungovala o niečo rýchlejšie. Problém je v tom, že je to o niečo rýchlejšie a prepisovanie veľkých kusov kódu na mieste, ktoré vo veľkej miere využíva jQuery, bude trvať dlho. Všimol som si to, keď som si všimol, že väčšina obrázkov na príslušnej stránke nebola optimalizovaná – boli aspoň o 30 % väčšie, ako bolo potrebné. Inštalácia doplnku na optimalizáciu obrázkov alebo predbežná optimalizácia obrázkov pred odovzdaním by mala výrazne väčší vplyv na výkon ako prepis JavaScriptu a zabralo by to zlomok času.
Efektívna optimalizácia výkonu vyžaduje testovanie výkonu, ktoré vlastníkov stránok privedie k bodom v procese načítania, ktoré majú najväčší vplyv na časy načítania. Zamerajte sa na oblasti, ktoré budú mať najväčší vplyv. Vývojárske nástroje vášho prehliadača a stránky testujúce výkon, ako napr WebPageTest a Nástroje Pingdom sú vaši priatelia.
Skončím varovaním – „predčasná optimalizácia je koreňom všetkého zla“ sa niekedy používa ako výhovorka na to, aby ste vôbec neoptimalizovali na výkon, alebo aby ste sa vyhli optimalizačným úlohám, ktoré by mali značný úžitok, ale vyžadovali by to veľa práce. Nejde mi o to, že majitelia stránok WordPress by mali ignorovať optimalizáciu výkonu, ale že úsilie o optimalizáciu výkonu by sa malo inteligentne zamerať tam, kde majú najväčší úžitok.