WordPress gyorsítás/optimalizálás

www.cms-tarhely.hu

WordPress CMS rendszer esetén rengeteg extra lehetőség van amivel a weboldal optimálisabb/gyorsabb működést érhet el. Ebben a bejegyzésben bemutatunk néhányat a teljesség igénye nélkül.

Expires Header-értékek beállítása: Lehetőség van beállítani statikus, ritkán változó tartalmak lejárati idejét is. Így a böngészőkben, a weboldal megtekintésekor letárolt cache szerint nem kéri le azokat újra. A definiálást minden egyes weboldal saját .htaccess fájljában kell megtenni. A beállításhoz pedig az alábbi kódot kell elhelyezni az említett fájlban:

<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresByType image/jpg "access plus 1 year"
	ExpiresByType image/jpeg "access plus 1 year"
	ExpiresByType image/gif "access plus 1 year"
	ExpiresByType image/png "access plus 1 year"
	ExpiresByType image/webp "access plus 1 year"
	ExpiresByType image/svg+xml "access plus 1 year"
	ExpiresByType image/x-icon "access plus 1 year"
	ExpiresByType video/mp4 "access plus 1 year"
	ExpiresByType video/mpeg "access plus 1 year"
	ExpiresByType text/css "access plus 1 year"
	ExpiresByType application/pdf "access plus 1 year"
	ExpiresByType application/javascript "access plus 1 year"
	ExpiresByType application/x-javascript "access plus 1 year"
	ExpiresByType text/javascript "access plus 1 year"
	ExpiresByType text/x-javascript "access plus 1 year"
	ExpiresByType application/x-shockwave-flash "access plus 1 year"
	ExpiresByType application/font-woff "access plus 1 year"
	ExpiresByType application/x-font-woff "access plus 1 year"
	ExpiresByType font/woff "access plus 1 year"
	ExpiresByType application/font-woff2 "access plus 1 year"
</IfModule>

A wp-cron kezelése: WordPress CMS-t használók gyakori tapasztalata, hogy kisebb látogatószám esetén is irreális a rendszerre épített weboldaluk erőforrás-használata. WordPress gyorsítása témakörben nem elhanyagolható azon beállítások elvégzése, melyek a rendszerhez tartozó funkció-manipulációkat tartalmazzák. A wp-cron automatikusan ellenőrzi, hogy vannak-e elérhető frissítések a használt rendszerhez, bővítményhez vagy sablonhoz. Ha engedélyezve vannak az automatikus frissítések, akkor azokat el is végzi. Az időzített bejegyzéseket a megadott időben publikálja. Email értesítőket küld ki. Elvégzi az automatikus backup-olást, ha ilyen bővítmény is telepítve van, stb… A WordPress weboldal megnyitása esetén alapértelmezetten MINDIG lefut a wp-cron.php fájl is, ezzel ellenőrizve a fenti teendőit. Ha van teendő, akkor azt elvégzi, az ellenőrizendő feladatlistát MINDEN meghíváskor lefuttatja a fájl, így az mindig terheli a tárhelyet, azok erőforrásait fogyasztja optimalizálatlan működés esetén. Kis látogatottságú weboldal esetén nem égetően szükséges a wp-cron.php manipulálása. Azonban, amikor közepes vagy nagyobb látogatottságú a weboldal, mindenképp ajánlott ennek kezelése. A nagyobb látogatószámmal növekszik a megnyitások száma, többször scann-elik az oldalt jó- és rosszindulatú bot-ok is. Ezek a megnyitások mind 1-1 wp-cron.php lefuttatásnak is megfelelnek, mely könnyen felemésztheti a weboldal tárhelyén kvótázott (főként processzor) erőforrásokat. A wp-cron.php problémájának megoldása: ki kell kapcsolni a fájl automatikus futását, ezt követően viszont időzíteni kell cron-feladatként.

wp-cron.php probléma megoldása 1/2 lépés: A wp-cron.php futásást a WordPress weboldalhoz tartozó wp-config.php fájlban lehet letiltani. A letiltáshoz az alábbi kódot kell elhelyezni a wp-config.php fájlban

define( 'DISABLE_WP_CRON', true );

Nagyon fontos, hogy a fenti kódot az alábbi sor FÖLÉ kell elhelyezni:

/* That's all, stop editing! Happy publishing. */ VAGY /* Ennyi volt, kellemes blogolást! */

wp-cron.php probléma megoldása 2/2 lépés: A tiltás beállítása után a cPanel felületen szükséges beállítani, hogy milyen gyakran fusson le a wp-cron.php fájl. A cron-feladatok kezeléséhez az alábbiak szerint lehet eljutni:

  • cPanel-be belépés
  • Speciális/Cron-feladatok menüpont
cPanel Cron feladatok

A cron feladatot tetszőleges időszakra, de maximum pár óránkénti lefutásra állítsuk be! Az alábbi parancs egy helyesen időzíthető metódust mutat be. A helyes beállítás után a wp-cron.php fájl NEM fog lefutni minden oldallekérés esetében, csakis a cron-feladatokban beállított időközönként. A WordPres-ben az ütemezett feladatok lefutását a WP Crontrol bővítmény telepítésével lehet ellenőrizni, módosítani a végrehajtási időzítéseket.

wget -q -O - https://DOMAIN.TLD/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Az xmlrpc kezelése: Az xmlrpc célja röviden az, hogy távoli eléréssel is hozzá lehessen férni a WordPress rendszeréhez. Például lehetőséget biztosít arra, hogy okos telefonunk segítségével posztoljunk a weboldalunkra. HTTP-rétegen keresztül küldi el a kéréseket és fogadja a válaszokat, melyekhez XML-kódolást használ. Az RCP maga a funkciót és a protokollt is jelenti: Remote Procedure Call (RPC), azaz Távoli Eljáráshívás. Az xmlrpc.php rendszeres áldozata a DoS típusú támadásoknak, így elérhetetlenségével redukálható az ilyen típusú támadások nagy része/mindegyike. Az xmlrpc.php problémájának megoldása: ki kell kapcsolni a fájl elérését manuálisan, vagy a Disable XML-RPC-API bővítmény segítségével kell módosítani az elérését.

Az alábbi kódot szükséges elhelyezni a weboldalunk .htaccess fájljába ahhoz, hogy az xmlrpc.php ne legyen elérhető senki számára sem

# xmlrpc tiltás
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>