Sebesség

WordPress gyorsítótár-bővítmény választása: mit old meg és mit nem a cache

WordPress gyorsítótár-bővítmény választása: melyik cache-réteg mit gyorsít, mit kell kizárni a cache-ből, és miért mérd meg a szervert cache nélkül is.

Scheo · 2026-08-21 · olvasási idő ~10 perc · Szerző: Schmidt Péter

A lényeg dióhéjban: A cache azt gyorsítja, ami ismétlődik, de nem javítja meg a lassú adatbázist, a túlterhelt sablont vagy a gyenge tárhelyet. Öt külön réteg dolgozik egyszerre (oldal-, objektum-, opcode-, böngésző- és CDN-cache), és mindegyik máshol romlik el, ezért a szerver válaszidejét cache nélkül is meg kell mérni.

Rövid válasz elöljáróban: a WordPress gyorsítótár-bővítmény azt gyorsítja, ami ismétlődik. Ha ugyanazt az oldalt ugyanabban a formában sokan kérik le, a cache megspórolja a PHP-futást és az adatbázis-lekérdezéseket, és egy kész HTML-választ ad vissza. Amit viszont nem tud megspórolni, az az első, még nem gyorsított kérés. Az pontosan olyan lassú lesz, amilyen lassú a szervered, a sablonod és az adatbázisod.

WordPress gyorsítótár-bővítmény választása: mit old meg és mit nem a cache
WordPress gyorsítótár-bővítmény választása: mit old meg és mit nem a cache

Ez az egy mondat a cikk lényege, a többi ennek a kibontása: melyik réteg mit gyorsít, hol romlik el, mit kell kizárni belőle, és hogyan veszed észre, ha elavult tartalmat szolgál ki.

Milyen rétegei vannak a gyorsítótárazásnak, és melyik mit gyorsít?

Rövid válasz: öt, egymástól független réteg dolgozik egyszerre. Az oldalcache a kész HTML-t, az objektumcache az adatbázis-eredményeket, az opcode cache a lefordított PHP-t, a böngészőcache a statikus fájlokat, a CDN pedig a földrajzi távolságot rövidíti le. Egyik sem helyettesíti a másikat.

Oldalcache (page cache)

A legnagyobb ugrást ez adja. A bővítmény lementi a legenerált HTML-t, és a következő látogatónak azt adja vissza, PHP-futás nélkül. Egy tipikus bemutatkozó oldalon vagy blogbejegyzésen ez a szerveroldali válaszidőt nagyságrenddel tudja csökkenteni. Hivatalosan igazolt: a WordPress core támogatja az oldalcache bekapcsolását a WP_CACHE konstanssal és az advanced-cache.php drop-in fájllal, ez dokumentált mechanizmus.

Ahol elromlik: a személyre szabott tartalomnál. Ha egy bejelentkezett felhasználó nevét vagy kosarát is elmenti, azt fogja látni a következő látogató is.

Objektumcache (object cache)

A WordPress alapból is gyorsítótárazza az adatbázis-eredményeket, de csak egyetlen kérésen belül. A tartós objektumcache (Redis vagy Memcached) ezt kérések között is megőrzi. Ott hoz sokat, ahol az oldalcache nem tud dolgozni: bejelentkezett felhasználóknál, kosaras oldalakon, admin felületen, WooCommerce-nél.

Saját tapasztalat: nagyobb webshopoknál sokszor nem az oldalcache hiányzik, hanem a tartós objektumcache. A vendégoldalak repülnek, a pénztár viszont vánszorog, mert ott minden kérés újra megkérdezi az adatbázist. Ahol elromlik: ha a Redis megtelik és rossz kiürítési szabállyal dolgozik, vagy ha egy bővítmény hibásan tárolja a felhasználóhoz kötött adatot globális kulcs alatt.

Opcode cache (OPcache)

Ez nem bővítmény, hanem PHP-szintű dolog: a PHP-fájlok lefordított változatát tartja a memóriában, hogy ne kelljen minden kérésnél újraértelmezni. Hivatalosan igazolt: a PHP hivatalos dokumentációja szerint az OPcache a PHP 5.5 óta a nyelv része, és a legtöbb modern tárhelyen alapból be van kapcsolva.

Ahol elromlik: frissítés után. Ha a szerver régi, gyorsítótárazott kódot futtat, miközben a fájl már új, furcsa, megmagyarázhatatlan hibákat kapsz. Ilyenkor a PHP-FPM újraindítása vagy az OPcache ürítése a megoldás.

Böngészőcache

Itt a látogató gépén marad a kép, a CSS és a JavaScript, tehát a második oldalletöltés lesz gyorsabb, nem az első. Fejléc-vezérelt: Cache-Control és ETag mondja meg, meddig őrizze meg a böngésző.

Ahol elromlik: ha hosszú lejáratot állítasz be, de a fájlnév nem változik verziózáskor. Ilyenkor a visszatérő látogató a régi stíluslapot használja, és számára eltört az oldal, miközben neked tökéletesen néz ki.

CDN-cache

A tartalomkiszolgáló hálózat földrajzilag közelebb viszi a fájlokat a látogatóhoz. Egy magyar közönségű, magyar szerveren futó oldalnál ez kisebb nyereség, mint amekkorát a marketinganyagok sugallnak. Ott számít igazán, ha külföldi látogatóid is vannak, vagy ha teljes oldalgyorsítást (full page CDN cache) is bekapcsolsz.

Ahol elromlik: dupla gyorsítótárazásnál. A CDN eltárolja a bővítményed által már eltárolt oldalt, és amikor te ürítesz a WordPressben, a CDN-en még hetekig ott marad a régi verzió.

Miért nem old meg a cache lassú adatbázist vagy túlterhelt sablont?

Rövid válasz: mert a cache nem gyorsítja fel a kódot, csak ritkábban futtatja le. Ha egy oldal legenerálása 3 másodperc, akkor a cache-elt kérések gyorsak lesznek, de minden egyes cache-hiány (új URL, lejárt bejegyzés, szűrő, keresés, bejelentkezett felhasználó) továbbra is 3 másodperc.

A gyakorlatban ez ott üt vissza, ahol a legfájóbb. Egy webshopnál a szűrőkombinációk gyakorlatilag végtelen sok URL-t adnak, ezeknek a többsége soha nem lesz cache-elt állapotban. Egy blogon a Google botja pont az új, még sosem kért URL-eket járja végig, tehát rendszeresen a lassú, generált változatot kapja. Egy tanácsadói oldalon az űrlapos oldalak eleve ki vannak zárva, tehát ott a látogató a nyers sebességet éli meg.

A tipikus okok, amiket a cache elrejt, de nem javít meg:

Saját nézőpont és tapasztalat: a cache olyan, mint a fájdalomcsillapító. Attól, hogy nem érzed, a probléma megvan, és a legrosszabbkor jelentkezik: kampányindításkor, hírlevélküldés utáni forgalmi csúcsban, vagy amikor egy robot végigpásztázza az oldalt. Ezért javaslom mindig, hogy a szerver válaszidejét cache nélkül is mérd meg.

Hogyan mérd meg a valódi szerver-válaszidőt cache nélkül?

Rövid válasz: kérj le egy olyan URL-t, amit a cache biztosan nem tud kiszolgálni, és nézd meg a time to first byte értéket. Ha ez másodpercben mérhető, akkor nem cache-bővítményt kell választanod, hanem a szerverrel és a sablonnal kell foglalkozni.

A legegyszerűbb mérés parancssorból:

curl -o /dev/null -s -w "%{time_starttransfer}\n" https://pelda.hu/?nocache=1

A véletlenszerű paraméter miatt a legtöbb oldalcache kihagyja a kérést, tehát a generált oldal idejét méred. Futtasd le ötször, és a középső értéket vedd. Utána ugyanezt paraméter nélkül is, hogy lásd a cache-elt választ. A kettő különbsége mutatja meg, mekkora terhet visz el a cache, és mekkora marad a szerveren.

Szakmai feltételezés, nem szabvány: a gyakorlatban 800 ezredmásodperc alatti nem gyorsított TTFB-t szoktam egészségesnek tekinteni egy átlagos WordPress-oldalon, 1,5 másodperc felett pedig szerver- vagy kódszintű beavatkozást javaslok. Ez tapasztalati küszöb, nem hivatalos érték, és tartalomtípusonként eltérhet.

Kiegészítésnek érdemes a lekérdezés-számot is megnézni egy fejlesztői eszközzel (például a Query Monitor bővítménnyel), bekapcsolt cache mellett is, bejelentkezve. Ha egy egyszerű aloldal 300 lekérdezésből áll össze, ott a sablon a probléma, nem a gyorsítás hiánya.

Mit kell kizárni a gyorsítótárból?

Rövid válasz: mindent, ami felhasználónként más. Ha egy oldal tartalma attól függ, ki nézi, nem mehet közös oldalcache-be.

A kötelező kizárási lista:

Hivatalosan igazolt: a WooCommerce dokumentációja kifejezetten kéri a kosár, a pénztár és a fiókoldal kizárását az oldalcache-ből. Ez nem vélemény, hanem a rendszer működési feltétele.

Hogyan ismered fel, hogy a cache elavult tartalmat szolgál ki?

Rövid válasz: ha te bejelentkezve mást látsz, mint egy privát böngészőablakban, szinte biztosan cache-problémád van, nem szerkesztési hibád.

A gyors diagnózis lépésről lépésre:

  1. Nyisd meg az oldalt privát ablakban. Ha ott a régi ár, régi nyitvatartás vagy régi szöveg jelenik meg, a cache régi példányt őriz.
  2. Hívd le ugyanazt az URL-t egy véletlen paraméterrel (?v=123). Ha ott már a friss tartalom jön, ez megerősíti a diagnózist.
  3. Nézd meg a válaszfejléceket: curl -I https://pelda.hu/oldal/. Keresd az x-cache, cf-cache-status, age és cache-control sorokat. Az age mondja meg másodpercben, mennyi ideje ül a tárban az a példány.
  4. Ha az age nulla, de a tartalom mégis régi, akkor nem az oldalcache a bűnös, hanem az objektumcache vagy a CDN.
  5. Ürítsd rétegenként, ne egyszerre: először a bővítmény oldalcache-ét, aztán a CDN-t, végül az objektumcache-t. Így megtudod, melyik réteg tartotta bent a régi verziót.

Az árulkodó jelek, amiket nem szabad félresöpörni: a mobilnézet más tartalmat mutat, mint az asztali; a látogatók régi akciót emlegetnek telefonon; a Search Console olyan címsort mutat a találatoknál, amit hetekkel korábban lecseréltél. Szakmai feltételezés: ez utóbbi esetben elképzelhető, hogy a kereső egy elavult, gyorsítótárazott változatot indexelt, de ezt csak élő lekéréssel lehet igazolni, mert a keresők saját újrafeldolgozási ütemterve is befolyásolja.

Milyen 7 pontos ellenőrzőlista alapján állítsd be a cache-t?

  1. Mérj előbb, gyorsíts utána. Rögzítsd a nem gyorsított TTFB-t és a lekérdezésszámot, mielőtt bármit bekapcsolsz. E nélkül nem fogod tudni, mit javított a bővítmény.
  2. Egy oldalcache legyen, ne három. Ha a tárhely szolgáltatója szerveroldali gyorsítást ad (LiteSpeed, Varnish, nginx fastcgi cache), ne tegyél mellé még egy PHP-alapú oldalcache-t. A dupla réteg kiszámíthatatlan ürítést eredményez.
  3. Állítsd be a kizárásokat az első napon. Kosár, pénztár, fiók, űrlapos oldalak, API-végpontok, süti alapú kizárás. Ne éles forgalomban derüljön ki, hogy hiányzott.
  4. Kapcsolj tartós objektumcache-t, ha van bejelentkezett forgalom. Webshopnál, tagsági oldalnál, foglalási rendszernél ez fontosabb, mint a page cache.
  5. Ellenőrizd az ürítési szabályokat. Bejegyzés mentésekor mi ürül: csak az adott oldal, vagy a kezdőlap, a kategória és a sitemap is? Ha csak az adott oldal, a listaoldalak elavulnak.
  6. Válaszd külön az egyesítést és a gyorsítást. A CSS- és JS-egyesítés, a késleltetett betöltés és a kritikus CSS nem cache, hanem optimalizálás. Egyesével kapcsold be őket, és minden lépés után nézd meg az oldalt, mert ezek törik el leggyakrabban a megjelenést.
  7. Mérj újra, és mérd a cache-hiányt is. A záró mérés ne csak a gyorsított állapotot mutassa. Az igazi kérdés az, hogy egy cache nélküli kérés mennyi idő alatt fut le, mert a robotok és az első látogatók azt kapják.

Milyen 3 tipikus hibajelenség fordul elő, és mi rájuk a megoldás?

1. A pénztár összeomlik, vagy más kosarát mutatja

Tünet: a vásárló üres kosarat lát, vagy idegen terméket talál benne, esetleg a fizetés előtt kidobja a rendszer. Ok: a kosárhoz kötött oldalak bekerültek a közös oldalcache-be, vagy a kosársüti nem szerepel a kizárási feltételek között. Megoldás: vedd fel a kosár, pénztár és fiókoldalt a kizárásokba, süti alapon is zárd ki a munkamenetet, és a CDN-en is állítsd be ugyanezeket a szabályokat. Utána tesztelj két különböző böngészőből, egyszerre.

2. Az űrlap némán nem küld el semmit

Tünet: a látogató kitölti a kapcsolatfelvételi űrlapot, rákattint a küldésre, és nem történik semmi, vagy általános hibaüzenetet kap. Ok: a gyorsítótárazott HTML-ben egy lejárt biztonsági token (nonce) van, amit a szerver visszautasít. Megoldás: zárd ki az űrlapos oldalakat az oldalcache-ből, vagy használd a bővítmény token-frissítő funkcióját, ha van ilyen. Saját tapasztalat: ez a leggyakrabban észrevétlen hiba, mert a tulajdonos bejelentkezve teszteli, ahol nincs cache, tehát nála mindig működik, miközben hetek óta nem érkezik érdeklődés.

3. A frissítés után eltört az oldal kinézete

Tünet: a visszatérő látogatóknál szétesik az elrendezés, az újaknál rendben van. Ok: a böngészőcache régi CSS- vagy JS-fájlt használ, mert a fájlnév vagy a verzióparaméter nem változott. Megoldás: verziózd a statikus fájlokat (a fájlnévben vagy lekérdezési paraméterben legyen verziószám), ürítsd a CDN-t is, és sablonfrissítés után mindig ellenőrizd az oldalt egy olyan böngészőben, amiben korábban már jártál. Ha a hiba a szerkesztőben is jelentkezik, gyanakodj OPcache-re, és indíttasd újra a PHP-t.

Hogyan függ össze mindez a keresőkkel és az AI-válaszmotorokkal?

Rövid válasz: a gyorsítás nem hozza a helyezést, de a lassúság és az elavult tartalom árthat. Egy jól beállított cache segítheti, hogy a robotok több oldalt tudjanak feldolgozni ugyanannyi idő alatt, egy rosszul beállított viszont régi vagy hiányos HTML-t adhat nekik.

Hivatalosan igazolt: a Google Search Central dokumentációja szerint az oldalélmény és a betöltési sebesség a rangsorolási jelek egyike, de nem felülíró tényező, és a jó sebesség önmagában nem garantál jobb helyezést. Szakmai feltételezés: az AI-válaszmotorok lekérő robotjai jellemzően szigorúbb időkorláttal dolgoznak, mint egy türelmes keresőrobot, ezért a lassú, nem gyorsított válasz nagyobb eséllyel marad kihagyva. Ez logikus következtetés a megfigyelt viselkedésből, nem publikált specifikáció.

A gyakorlati tanulság ugyanaz marad: a cache jó szolga, de rossz gazda. Akkor működik, ha egy egészséges rendszerre teszed rá. Ha viszont arra használod, hogy ne kelljen szembenézni a felpuffadt adatbázissal, a húsz felesleges bővítménnyel vagy a szűk tárhellyel, akkor csak elodázod a döntést, és a bajt olyan pillanatra időzíted, amikor a legdrágább.

Források és további olvasnivalók

A legfontosabbak
  • A cache nem gyorsítja fel a lassú kódot, csak ritkábban futtatja le, ezért a nem gyorsított első kérés marad az igazi mérőszám.
  • Az öt gyorsítótár-réteg más problémát old meg, és külön-külön romlik el, ezért nem érdemes egyetlen kapcsolóként gondolni rájuk.
  • Kosár, pénztár, fiókoldal, bejelentkezett felhasználó és űrlapos oldalak sosem mehetnek közös oldalcache-be.
  • Az elavult tartalom felismerésének legolcsóbb módja a privát ablakos és a bejelentkezett nézet összevetése, plusz a válaszfejlécek átnézése.
  • Mielőtt bővítményt választasz, mérd meg a TTFB-t gyorsítás nélkül: ha az másodpercben mérhető, a cache csak elrejti a bajt.

Gyakori kérdések

Elég egyetlen cache-bővítmény, vagy több kell egymás mellé?

Egy oldalcache-nek kell lennie, nem többnek. Ha a tárhelyed már ad szerveroldali gyorsítást (LiteSpeed, Varnish, nginx fastcgi cache), ne tegyél mellé PHP-alapú oldalcache-t, mert a két réteg egymástól függetlenül ürül, és kiszámíthatatlan lesz, mit lát a látogató. Objektumcache-t viszont nyugodtan használhatsz az oldalcache mellett, mert az más problémát old meg.

Miért lassú az oldalam akkor is, ha be van kapcsolva a cache?

Mert valószínűleg a cache-hiányos kéréseket méred. Új URL-nél, keresésnél, szűrésnél, bejelentkezett felhasználónál és a kizárt oldalakon a rendszer teljesen legenerálja az oldalt. Ha a generálás eleve lassú, azt a cache nem javítja meg. Mérd meg a válaszidőt egy véletlen paraméterrel ellátott URL-en, és ha ott is lassú, a szerverrel, az adatbázissal vagy a sablonnal kell foglalkozni.

Honnan tudom, hogy a látogató régi verziót lát-e?

Nyisd meg az oldalt privát böngészőablakban, és vesd össze azzal, amit bejelentkezve látsz. Ha eltér, nézd meg a válaszfejléceket a curl -I paranccsal: az age értéke megmondja, hány másodperce ül a tárban a példány, az x-cache vagy cf-cache-status pedig azt, hogy melyik réteg szolgálta ki. Ha az age nulla, de a tartalom mégis régi, akkor az objektumcache vagy a CDN őrzi.

A WooCommerce-nél mit kell mindenképpen kizárni?

A kosarat, a pénztárat és a fiókoldalt, valamint minden fizetési visszahívási végpontot. Ezenfelül süti alapon is érdemes kizárni a kérést, ha a látogatónak van kosártartalma vagy be van jelentkezve. Ugyanezeket a szabályokat a CDN-en is be kell állítani, különben a kizárás csak a szerveren érvényesül.

Javítja a cache a keresési helyezésemet?

Nem garantálja. A sebesség a rangsorolási jelek egyike, de önmagában nem emel előre. Amit reálisan várhatsz: a gyorsabb kiszolgálás segítheti a robotok hatékonyabb feldolgozását és javíthatja a látogatói élményt. Egy rosszul beállított cache viszont kifejezetten árthat, ha elavult vagy hiányos HTML-t ad vissza a keresőnek.

Objektumcache vagy oldalcache: melyikkel kezdjem?

Ha az oldalad döntően vendégforgalmat kap (bemutatkozó oldal, blog, szolgáltatói oldal), kezdd az oldalcache-sel, mert ott hozza a legnagyobb ugrást. Ha viszont sok a bejelentkezett felhasználó, kosár, foglalás vagy tanfolyami tartalom, a tartós objektumcache többet ér, mert az oldalcache azokon a felületeken eleve nem tud dolgozni.

Források és további olvasnivalók

Ezen az oldalon a hivatalosan igazolt információt elsődleges forrásokból építjük fel; a saját tapasztalatot és a szakmai becslést mindig külön jelöljük a szövegben.

Kapcsolódó

Hogyan zajlik egy AI-SEO audit: folyamatleírás

Helyi szolgáltatás a környékeden

Országosan dolgozunk, online és személyesen. Válaszd ki a városodat, és nézd meg, hogyan segítünk helyben:

Online marketing & AI SEO SzékesfehérvárOnline marketing & AI SEO BudapestOnline marketing & AI SEO VeszprémOnline marketing & AI SEO DunaújvárosOnline marketing & AI SEO GyőrOnline marketing & AI SEO DebrecenOnline marketing & AI SEO SzegedOnline marketing & AI SEO MiskolcOnline marketing & AI SEO PécsOnline marketing & AI SEO KecskemétOnline marketing & AI SEO NyíregyházaOnline marketing & AI SEO SzombathelyOnline marketing & AI SEO SzolnokOnline marketing & AI SEO TatabányaOnline marketing & AI SEO KaposvárOnline marketing & AI SEO BékéscsabaOnline marketing & AI SEO EgerOnline marketing & AI SEO ZalaegerszegOnline marketing & AI SEO SzekszárdOnline marketing & AI SEO Salgótarján

Weboldalkészítés városra bontva

Ha először a honlap kell, itt városonként arról írtunk:

Weboldalkészítés SzékesfehérvárWeboldalkészítés BudapestWeboldalkészítés VeszprémWeboldalkészítés DunaújvárosWeboldalkészítés GyőrWeboldalkészítés DebrecenWeboldalkészítés SzegedWeboldalkészítés MiskolcWeboldalkészítés PécsWeboldalkészítés KecskemétWeboldalkészítés NyíregyházaWeboldalkészítés SzombathelyWeboldalkészítés SzolnokWeboldalkészítés TatabányaWeboldalkészítés KaposvárWeboldalkészítés BékéscsabaWeboldalkészítés EgerWeboldalkészítés ZalaegerszegWeboldalkészítés SzekszárdWeboldalkészítés Salgótarján

15 perces AI-láthatósági gyorselemzés - díjmentesen

Megnézzük három, számodra fontos keresőkérdésnél, hogy megjelenik-e a céged a ChatGPT, a Gemini és a Google AI-válaszaiban, mely versenytársakat ajánlják helyetted, és melyik három területen érdemes először javítani. A weboldaladat előzetesen átnézzük, tehát nem sablonos, automata riportot kapsz.

Adataidat kizárólag a kapcsolatfelvételhez használjuk. Kapcsolat: m@rketinges.hu
💬 Konzultáció