Ha van WordPress weboldalad, valószínűleg már hallottál a LiteSpeed Cache pluginról — ez egy hatékony gyorsítótár-kezelő megoldás, amely sokoldalú funkciókkal segít abban, hogy a weboldalaid gyorsabban töltsenek be
Viszont gyakran előfordul, hogy ha az oldalon van kapcsolati űrlap (pl. Contact Form 7, WPForms vagy más űrlapkezelő), akkor az űrlap elküldésekor hibaüzenetet kapsz:
„Kérjük frissítse az oldalt és próbálkozzon újra.”
Ez azért történik, mert a cache plugin már eltárolta az oldal HTML-jét, így az űrlaphoz tartozó dinamikus mezők, tokenek (nonce, reCAPTCHA, hidden mezők) nem frissülnek, és az aktuális események nem érvényesülnek.
Ebben a cikkben lépésről lépésre végigvezetlek azon, hogyan állítsd be a LiteSpeed Cache-t úgy, hogy az űrlap működjön, közben a weboldalad többi része továbbra is gyors maradjon. Laikusok számára is érthetően, de technikai javaslatokkal is.
1. Miért nem működik az űrlap, ha aktív a cache?
Az űrlap pluginok — például Contact Form 7, WPForms — gyakran használnak olyan rejtett mezőket (nonce, token, vagy egyedi biztonsági mezőket), amelyek csak friss oldalon működnek helyesen. Ha egy cache-elt HTML-t kapsz, akkor ezek a mezők régi értékekkel jelennek meg, és az űrlap nem tudja érvényesíteni őket → hibaüzenetet ad.
Ezért a legegyszerűbb megoldás, hogy az űrlapos oldal ne kerüljön cache-be, vagy legalább az űrlap rész (nonce, mezők) dinamikusan kerüljenek betöltésre (ESI, hole punching).
2. Hogyan állítsd be, hogy a kapcsolati űrlap ne kerüljön cache-be?
2.1. Az „Exclude URI / Do Not Cache URIs” beállítása
Ez a módszer a legegyszerűbb és leggyakrabban javasolt: kizárod az adott űrlapos oldalt a cache alól.
Lépések:
- WordPress admin felület → LiteSpeed Cache → Settings (Beállítások)
- Válaszd ki a Cache fület → majd azon belül a Kizárások (Excludes) részt
- A Do Not Cache URIs vagy Magán Cache URI-k mezőbe írj be egy sorban egy útvonalat, pl.:
(a perjellel kezdés fontos)
- Mentsd el a változtatásokat
- Menj a LiteSpeed Cache → Eszközök (Tools) menübe, ott kattints a Purge All / Törlés gombra, hogy az új beállítás érvényesüljön
Ha jól állítottad be, akkor az /kapcsolat/
oldalt már nem szolgálja ki cache-elt HTML-lel a rendszer, hanem mindig friss oldalt mutat.
Tudtad? A LiteSpeed dokumentációja szerint a REQUEST_URI-vel összehasonlítja a kívánt URI-kat, rész-URI minták is működnek, és használhatsz
^
és$
karaktereket pontos egyezéshez. LiteSpeed Documentation
2.2. ESI / Hole Punching módszer (haladó)
Ha fontos, hogy az oldal többi része továbbra is cache-ből legyen kiszolgálva — csak az űrlap rész legyen dinamikus — akkor használhatod az ESI (Edge Side Includes) vagy nonce hole punching megoldást.
- A LiteSpeed Cache plugin API-ja támogatja azt, hogy egy plugin (pl. űrlap plugin) “lyukat üt” a cache-ben: a fő HTML cache-elt, de az űrlap mezők külön frissülnek. LiteSpeed Documentation+1
- Például Contact Form 7 esetében, ha az ESI-t helyesen konfigurálod, akkor az űrlap mindig aktuális mezőket fog tartalmazni. litespeedtech.com+2LiteSpeed Documentation+2
- Azonban ez technikai beavatkozást igényel, és nem minden hosting vagy szerver konfiguráció támogatja. (OpenLiteSpeed például korlátozott ESI támogatással rendelkezik.) LiteSpeed Documentation+1
Ha szeretnéd, tudok neked mutatni egy példát (kódot) arra, hogyan lehet ESI-t integrálni WordPress + Contact Form 7 + LiteSpeed környezetben.
2.3. Query stringes verziók kezelése
Gyakran előfordul, hogy az űrlap URL-je query stringeket használ (pl. /kapcsolat/?form=1
vagy /kapcsolat/?cf7=submit
). Ha csak /kapcsolat/
-ot adod meg, az /kapcsolat/?form=1
verzió továbbra is cache-elhető lehet.
Ilyenkor használd a Do Not Cache Query Strings / Kérdőjeles paraméterek kizárása mezőt, és írj be paraméterneveket — pl.:
LiteSpeed ilyenkor minden olyan URL-t, amely tartalmazza ezeket a paramétereket, kizár a cache-ből.
3. Példák, hibalehetőségek és tippek
Példa helyes beállításra
A Magán Cache URI-k mező tartalma:
A Do Not Cache Query Strings mezőben:
Ezek után ments el, ürítsd a cache-t. Majd teszteld: töltsd be a kapcsolat oldalt Inkognitó módban, töltsd ki az űrlapot — ha sikeres az elküldés, nem kapsz „frissítse az oldalt” hibát.
Tippek
Mindig töröld (purge) a gyorsítótárat a beállítások módosítása után.
Használj fejlesztői eszközöket (pl. Chrome DevTools → Network → válaszüzenetek fejlécében) az
x-litespeed-cache
fejléc vizsgálatára: ha nincs “HIT” jelölés, akkor nem kapod cache-ből.Ha több oldalad is tartalmaz űrlapokat (pl. ajánlatkérő, visszahívást kérő), azokat is add hozzá soronként.
Ha az űrlapot bő plugin–JS–CSS fájlok is támogatják, néha szükséges kizárni az űrlap plugin fájljait a JS minify/combine szabályból is (pl. WPForms esetén
wpforms.min.js
)Ha reCAPTCHA, Captcha mezők vannak, különösen érzékeny lehet az űrlap — sokan tapasztalják, hogy a Captcha hibát dob, ha az oldal cache-ből szolgálódik.
Gyakori hibák
- Nem kezded perjellel az URI-t („kapcsolat/” helyett „/kapcsolat/”)
- Nem üríted a gyorsítótárat a beállítások után
- Nem adod meg a query paramétereket, ha az űrlap ilyeneket használ
- A JS optimalizációs beállítások (minify / combine) okoznak konfliktust az űrlap plugin fájljaival
4. Hogyan nézd meg, hogy tényleg nem cache-elt az űrlapos oldal?
Egy egyszerű tesztet tudsz csinálni:
- Nyisd meg a böngésződet (inkognitó ablakban)
- Lépj rá a
/kapcsolat/
oldalra - A fejlesztői eszközben (Chrome: jobbklikk → Inspect → Network fül) válaszd ki a lap betöltését, és nézd meg a válasz fejlécét (Response Headers)
- Keress olyan fejlécet, mint
x-litespeed-cache: hit
vagyx-litespeed-cache: miss
. Ha nincs HIT, vagy a fejléc „miss” (vagy nem jelenik meg), az jó, mert azt jelenti, hogy nem cache-ből töltődött be.
Így meggyőződhetsz arról, hogy az űrlap oldalad tényleg frissítésre kerül minden alkalommal.
5. Összefoglalva a fent leírtakat
- Ha van kapcsolati űrlap az oldalon, és nem akarsz SMTP beállításokkal vacakolni, lényeges, hogy az űrlap működéséhez olyan környezet legyen, ahol nincs helytelen cache.
- A legegyszerűbb megoldás, hogy az űrlap oldalát kizárod a cache-ból a LiteSpeed Cache plugin „Do Not Cache URIs / Magán Cache URI-k” beállításával.
- Ha query stringek is jöhetnek, azokat is zárd ki a Do Not Cache Query Strings mezőben.
- Haladó megoldás az ESI / hole-punching módszer, hogy az oldal nagy része továbbra is cache-ből töltődjön, de az űrlap mindig dinamikus legyen.
- Mindig ürítsd a cache-t, és teszteld, hogy az űrlap működik-e.
Gyakran ismételt kérdések (FAQ)
K: Miért jelenik meg az „kérjük frissítse az oldalt és próbálkozzon újra” hiba?
A cache miatt: az űrlap biztonsági mezői (nonce, token) már régiek, és nem egyeznek az aktuális oldalállapottal.
K: Elegendő csak az URI kiegészítése?
A legtöbbször igen. De ha az űrlap URL paramétereket használ, akkor azokat (pl. ?form=
) is ki kell zárni a query string mezőben.
K: Mit tegyek, ha ESI-t akarok használni?
Ott technikai beavatkozásra van szükség: kódot kell írni, hogy az űrlap mezők dinamikus módon kerüljenek betöltésre, míg a többi rész cache-elt marad.
K: Hogyan tudom tesztelni, hogy működik-e a beállításom?
Használd a böngésző fejlesztői eszközét → Network → Response Headers → nézd meg az x-litespeed-cache
fejlécet: ha nem “HIT”, akkor nem cache-elt.
K: Mi van, ha több űrlap is van az oldalon (ajánlatkérés, visszahívás stb.)?
Egyszerű: soronként add be mindegyiknek az útvonalát (pl. /ajanlat-kero/
, /visszahivas/
) a Do Not Cache URIs mezőbe.
K: Miért ne engedélyezném a Cache Mobile-t, amikor van mobil verzió?
Ha a sablonod reszponzív (például Divi), akkor nincs szükség külön mobil cache-re — csak növeli a cache méretét, nem ad pluszt.