+36 70 364 1441

LiteSpeed Cache + WordPress + kapcsolati űrlap: hogyan állítsd be helyesen?

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:

  1. WordPress admin felület → LiteSpeed Cache → Settings (Beállítások)
  2. Válaszd ki a Cache fület → majd azon belül a Kizárások (Excludes) részt
  3. A Do Not Cache URIs vagy Magán Cache URI-k mezőbe írj be egy sorban egy útvonalat, pl.:
/kapcsolat/

(a perjellel kezdés fontos)

  1. Mentsd el a változtatásokat
  2. 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.:

form
cf7

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:

/kapcsolat/

A Do Not Cache Query Strings mezőben:

form
cf7

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:

  1. Nyisd meg a böngésződet (inkognitó ablakban)
  2. Lépj rá a /kapcsolat/ oldalra
  3. 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)
  4. Keress olyan fejlécet, mint x-litespeed-cache: hit vagy x-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.