Üzemeltetés

Gyorsítótár-ürítési stratégia tartalomfrissítés és bővítményfrissítés után

Gyorsítótár-ürítési stratégia WordPresshez: melyik cache-réteget mikor ürítsd cikk-, ár-, sablon- és bővítményfrissítés után, célzott ürítéssel.

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

Röviden: Egy WordPress-oldalon jellemzően öt gyorsítótár-réteg dolgozik, és mindegyik eseménynél csak azt kell üríteni, amelyik a változást tárolja. A célzott ürítés és az utána futó előmelegítés gyorsan tartja az oldalt, a gyakori teljes ürítés viszont lassítja a látogatókat és a crawlereket is.
Kulcs tanulságok
  • A böngésző, a CDN, a szerver, a bővítmény és az object cache külön réteg, és egy gomb ritkán üríti mindet.
  • Teljes ürítés csak domain- vagy SSL-váltásnál indokolt, minden más eseménynél URL- vagy címkealapú ürítés a jobb választás.
  • Teljes ürítés után minden oldal hidegen, PHP-val és adatbázissal készül el, ami lassabb választ ad a látogatóknak és a crawlereknek.
  • A CSS- és JS-változásokat verzióparaméterrel vagy fájlnév-ujjlenyomattal érdemes kezelni, mert a böngészőt és a Googlebotot távolról nem tudod üríteni.
  • Ürítés után a legfontosabb URL-eket előmelegítve, kíméletes tempóban kérd le, csúcsidőn kívül.

Egy WordPress-oldalon ritkán dolgozik egyetlen gyorsítótár. Mire egy látogató vagy egy crawler megkapja a cikkedet, a válasz akár öt rétegen is átmegy, és mindegyik rétegnek saját élettartama és saját ürítési módja van. Ha módosítasz egy árat, és a vásárló még mindig a régit látja, szinte mindig az történt, hogy rossz réteget ürítettél, vagy kihagytál egyet. Ez a cikk sorra veszi a rétegeket, eseményenként megmondja, mit kell üríteni, és megmutatja, hogyan állíthatsz be célzott ürítést és előmelegítést.

Gyorsítótár-ürítési stratégia tartalomfrissítés és bővítményfrissítés után
Gyorsítótár-ürítési stratégia tartalomfrissítés és bővítményfrissítés után

A szövegben háromféle jelölést használok. A Hivatalosan igazolt állítás dokumentációból vagy szabványból származik. A Saját tapasztalat azt jelenti, amit WordPress-oldalak üzemeltetése közben rendszeresen látunk. A Szakmai feltételezés logikus következtetés, de nincs rá hivatalos megerősítés.

Hány gyorsítótár-réteg van egy átlagos WordPress-oldalon?

Jellemzően öt van belőle, a böngésző, a CDN, a szerveroldali oldal-gyorsítótár, a bővítmény által kezelt oldal-gyorsítótár és az object cache. Egymásra épülnek, ezért a látogatóhoz legközelebbi réteg mindig előbb válaszol, mint a mögötte lévők, és ha az még a régi változatot tartja, a hátsó rétegek ürítése nem látszik.

Ide tartozik még a PHP OPcache, amely a lefordított PHP-kódot tartja memóriában. A legtöbb tárhelyen magától észreveszi a fájlváltozást. Ha viszont az opcache.validate_timestamps ki van kapcsolva, bővítményfrissítés után a PHP-folyamatot újra kell indítani, különben a régi kód fut tovább (hivatalosan igazolt a PHP kézikönyvében).

Miért nem elég egyetlen „Gyorsítótár ürítése” gomb?

A gomb általában csak a saját rétegét üríti. A WP Rocket gombja nem nyúl a Cloudflare-hez, ha nincs összekötve vele, a Redisben tárolt adat pedig érintetlen marad.

Saját tapasztalat. A leggyakoribb panasz az, hogy „kiürítettem a cache-t, mégis a régi látszik”. Ilyenkor szinte mindig a CDN vagy a böngésző tartja a régi változatot. A diagnózishoz a válaszfejléceket érdemes megnézni. A Cloudflare a cf-cache-status, a LiteSpeed az x-litespeed-cache fejlécet adja vissza, sok Nginx-beállítás pedig egy saját x-cache fejlécet. Ha HIT áll benne, az a réteg szolgálta ki a kérést, az age fejléc pedig megmutatja, hány másodperce tárolja.

curl -sI https://pelda.hu/cikk/ | grep -i -E "cache|age|cf-"

Ha a böngészőt akarod kizárni, futtasd a parancsot, vagy nyisd meg az oldalt privát ablakban. Ha a CDN-t, kérd le egyszer egy egyedi paraméterrel (például ?nocache=1), és hasonlítsd össze a kettőt.

Melyik eseménynél melyik réteget kell üríteni?

Csak azt a réteget és azokat az URL-eket ürítsd, amelyek az adott változást tartalmazzák. Az alábbi eseménytábla egy jól bevált alapbeállítás, minden oldalnál a saját felépítéséhez kell igazítani.

Cikk vagy oldal módosítása

Ár- vagy készletváltozás webshopban

A kosár, a pénztár és a fiókoldal soha ne kerüljön oldal-gyorsítótárba. A nagyobb gyorsítótár-bővítmények ezeket alapból kizárják, de egyedi URL-szerkezetnél érdemes ellenőrizni.

Sablon- és CSS-módosítás

wp_enqueue_style( 'sablon-stilus', get_stylesheet_uri(), array(), filemtime( get_stylesheet_directory() . '/style.css' ) );

A filemtime() minden mentéskor új verziót ad, így a böngésző biztosan az új fájlt kéri. A Google JavaScript SEO dokumentációja szerint a Googlebot agresszívan gyorsítótárazza az erőforrásokat, és a renderelő szolgáltatás figyelmen kívül hagyhatja a gyorsítótár-fejléceket, ezért a fájlnév-ujjlenyomatot ajánlja (hivatalosan igazolt). A Googlebot gyorsítótárát nem tudod üríteni, csak új fájlcímmel tudod megkerülni.

Bővítményfrissítés

Domain- vagy SSL-váltás

Miért árt a gyakori teljes ürítés a válaszidőnek és a crawlereknek?

Teljes ürítés után minden oldal első kérése hidegen készül el, PHP-val és adatbázis-lekérdezésekkel, ami sokszorosa a gyorsítótárból kiszolgált válasz idejének. Ha ebben az ablakban érkezik nagyobb crawler-forgalom, a szerver lelassulhat, és ez visszahat a feltérképezésre.

A Google Search Central feltérképezési kerettel foglalkozó oldala szerint ha a szerver gyorsan válaszol, a Googlebot feltérképezési kapacitása nőhet, ha pedig lassul vagy szerverhibát ad, a Googlebot visszavesz (hivatalosan igazolt). A gyakori teljes ürítés tehát rendszeresen olyan állapotba hozza az oldalt, amelyet a crawler lassú szerverként érzékelhet.

Saját tapasztalat. Teljes ürítés után a szervernaplóban jól látszik, hogy a nem gyorsítótárból kiszolgált kérések aránya és a válaszidő is felugrik, és nagyobb oldalnál órákig tart, mire minden visszamelegszik. A legtöbb ilyen hullámot nem ember indítja. Gyorsítótár-bővítmények „minden frissítéskor teljes ürítés” opciója, komment-jóváhagyásra induló teljes ürítés vagy óránkénti időzített ürítés okozza.

Szakmai feltételezés. Az AI-crawlerek (például GPTBot, ClaudeBot, PerplexityBot) eltérő tempóban kérnek le oldalakat, és ha egy hideg oldalnál időtúllépést kapnak, könnyen előfordulhat, hogy az adott URL-ről a szokásosnál ritkábban gyűjtenek friss adatot. Erre nincs nyilvános dokumentáció, de a kockázat a gyors válaszidővel jó eséllyel csökkenthető.

Hogyan állíts be célzott ürítést?

Úgy, hogy minden tartalommentés csak az érintett URL-eket vagy címkéket ürítse, és ezt az ürítést a CDN is megkapja. Lépésről lépésre így érdemes nekiállni.

  1. Kösd össze a rétegeket. A gyorsítótár-bővítmény küldje tovább az ürítést a CDN-nek (például a Cloudflare saját WordPress-bővítménye, a WP Rocket Cloudflare-integrációja vagy a LiteSpeed és a QUIC.cloud kapcsolata).
  2. Szűkítsd az automatikus szabályokat. Mentéskor csak a bejegyzés, a főoldal, az érintett archívumok és a feed ürüljön. Kapcsold ki a teljes ürítést kommentre, menüváltozásra és bővítményaktiválásra, ha nem feltétlenül kell.
  3. Használj címkealapú ürítést, ahol elérhető. A LiteSpeed az X-LiteSpeed-Tag fejléccel, a Varnish ban-szabályokkal, a Cloudflare cache-tagekkel tud egy csoportot üríteni. A Cloudflare-nél az elérhető ürítési módok csomagtól függhetnek, ezt a saját fiókodban ellenőrizd.
  4. Kezeld a külső importokat. Ha az ár vagy a készlet adatbázis-szinten változik, az import végén hívj meg egy célzott ürítést.
  5. Válaszd szét a Redist. A wp cache flush a teljes Redis-adatbázist üríti. Ha több oldal osztozik egy Redisen, mindegyiknek legyen saját adatbázis-indexe vagy előtagja (például WP_REDIS_PREFIX), különben egy oldal ürítése a többit is lehűti (saját tapasztalat).

Egy URL célzott ürítése a Cloudflare API-n keresztül így néz ki.

curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONA_ID/purge_cache" -H "Authorization: Bearer API_TOKEN" -H "Content-Type: application/json" --data '{"files":["https://pelda.hu/termek/kave-500g/","https://pelda.hu/kategoria/kave/"]}'

A tranzienseknél a wp transient delete --expired csak a lejártakat törli, ami biztonságos napi karbantartás. A --all kapcsolót csak akkor használd, ha tudod, mi van bennük.

Mi az előmelegítés, és hogyan érdemes beállítani?

Az előmelegítés azt jelenti, hogy ürítés után egy robot végigkéri a fontos oldalakat, így az első valódi látogató vagy crawler már kész, gyorsítótárazott oldalt kap. A legtöbb gyorsítótár-bővítmény ezt a sitemap alapján csinálja.

Mit ellenőrizz minden ürítés után?

Öt gyors ellenőrzés elég ahhoz, hogy lásd, minden réteg az új változatot adja.

Források és további olvasnivalók

Gyakori kérdések

Miért látom még a régi oldalt, ha kiürítettem a gyorsítótárat?

Valószínűleg csak az egyik réteget ürítetted. Nézd meg a válaszfejléceket. Ha a cf-cache-status vagy az x-cache értéke HIT, a CDN vagy a szerver még a régi változatot adja, privát ablakban pedig a böngésző hatását tudod kizárni.

Kell-e üríteni az object cache-t minden cikkmódosítás után?

Általában nem, mert a WordPress mentéskor maga érvényteleníti a bejegyzés adatait. Akkor indokolt, ha egy külső import közvetlenül az adatbázisba ír, vagy ha egy bővítményfrissítés adatbázis-migrációt futtat.

Árt-e a SEO-nak, ha naponta többször teljes ürítést futtatok?

Közvetlenül nem büntet érte a Google, de minden teljes ürítés után az oldalak hidegen, lassabban töltenek. A Google dokumentációja szerint lassuló szervernél a Googlebot visszaveheti a feltérképezés tempóját, ezért a célzott ürítés a biztonságosabb gyakorlat.

Hogyan kényszerítem a böngészőt az új CSS betöltésére?

Emeld a fájl verzióját. WordPressben a wp_enqueue_style() verzió-paraméterébe tehetsz filemtime() értéket, így minden mentés új fájlcímet ad, és a böngésző az új fájlt kéri le.

Mit tegyek domainváltáskor a gyorsítótárakkal?

Ez az az eset, amikor minden réteget teljesen üríteni kell. Előbb fusson le az adatbázisban a cím-csere, utána az object cache, az oldal-gyorsítótár és a CDN teljes ürítése, végül az átirányítások és a vegyes tartalom ellenőrzése.

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.

A cikk szerzője

Schmidt Péter, online marketing szakértő, a Scheo Tanácsadó Kft. alapítója. Székesfehérvárról, országosan dolgozó csapattal végzünk keresőoptimalizálást, AI-láthatóság mérést, Google és Meta hirdetéskezelést, weboldalkészítést. Amit itt leírunk, azt ügyfélmunkában is használjuk. Rólunk bővebben · Szolgáltatásaink

Kapcsolódó olvasnivaló

Kapcsolódó

Lassú adatbázis-lekérdezések azonosítása WordPress oldalon

Kapcsolódó

Amikor az AI-botok megterhelik a szervert: mit tegyél

Kapcsolódó

admin-ajax.php terhelés: hogyan találd meg, melyik bővítmény zabálja a szervert

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 SzegedOnline marketing & AI SEO MiskolcOnline marketing & AI SEO PécsOnline marketing & AI SEO KecskemétOnline marketing & AI SEO NyíregyházaOnline marketing & AI SEO Szombathely

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 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árd

Mind a 20 városunk és az összes szolgáltatás →

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ó