# Oldal-gyorsítótár

> A WordPress-tesztek közül ez azt nézi, van-e jele annak, hogy az oldal kész HTML-t szolgál gyorsítótárból; ha nincs, minden látogatásra újra felépül.

Egy WordPress-oldal alapból minden látogatásra lefuttatja a PHP-kódot, és adatbázis-lekérdezésekből állítja össze a HTML-t. Az oldal-gyorsítótár (page cache) a kész HTML-t eltárolja, és a következő látogatónak ezt adja oda, így a szerver kevesebbet dolgozik, és a válasz sokkal hamarabb megérkezik. A WordPress hivatalos teljesítmény-útmutatója is a gyorsítótárazást nevezi a legnagyobb haszonnal járó, legkisebb fáradsággal elérhető lépésnek.

## Hogyan mérjük

A teszt csak WordPress-oldalakon fut; más oldalnál nem értékelhető. A riport a gyorsítótár négyféle jelét keresi, a sorrend szerint az elsőt fogadja el:

1. **Gyorsítótár-fejléc.** Ha a válaszban szerepel valamelyik ezek közül (az érték mindegy): `x-litespeed-cache`, `x-fastcgi-cache`, `x-proxy-cache`, `x-cache-enabled`, `x-kinsta-cache`, `x-wp-super-cache`, `x-breeze-cache`, `x-cache-handler`.
2. **Találatot jelző fejléc.** A `cf-cache-status` vagy az `x-cache` fejléc értékében szerepel a `HIT` szó.
3. **Lábjegyzet a HTML-ben.** A gyorsítótár-bővítmények HTML-megjegyzései, például „Performance optimized by WP Rocket”, „Cached page generated by WP-Super-Cache”, „WP Fastest Cache file was created in”, „Cached by WP-Optimize”, „Cache served by breeze”, a W3 Total Cache és a Hummingbird hasonló sorai.
4. **Ismert bővítmény.** A riport a HTML-ből felismert bővítmények között talál gyorsítótár-bővítményt (például `wp-rocket`, `litespeed-cache`, `w3-total-cache`, `wp-super-cache`, `wp-fastest-cache`, `breeze`, `cache-enabler`, `wp-optimize`, `sg-cachepress`, `hummingbird-performance`).

- **Megfelelő:** a fenti jelek valamelyike megvan.
- **Hiba (közepes súlyosság):** egyik sincs.

A teszt jelet keres, nem méri a gyorsítótár tényleges hatékonyságát: egy telepített bővítmény hibás beállítással is „megfelelő” lehet, és egy fejléc nélkül működő gyorsítótár „hibás”. A [Első bájt (TTFB)](https://hub.hellowp.io/hu/report/teljesitmeny/elso-bajt-ttfb/) teszt mutatja meg, hogy a válasz valójában gyors-e.

Fontos: Cloudflare mögött a `cf-cache-status` csak `HIT` értékkel számít. A Cloudflare dokumentációja szerint a CDN alapból nem gyorsítótáraz HTML-t, ezért a Cloudflare önmagában nem teszi „megfelelővé” az oldalt.

## Hogyan javítsd

Erre nincs minden oldalon érvényes kódrészlet, mert a gyorsítótár több szinten is megvalósítható. Válaszd azt, amelyet a tárhelyed vagy a szerver-környezeted támogat:

1. **Tárhelyszolgáltató gyorsítótára.** A fenti fejlécek (például `x-litespeed-cache`, `x-kinsta-cache`, `x-fastcgi-cache`) a szerver szintjén működő gyorsítótárakra utalnak. Ha a tárhelyed ilyet kínál, a legegyszerűbb, ha ezt használod; kérdezd meg a szolgáltatót, vagy nézd meg a tárhely felületén.
2. **Saját nginx.** Az nginx a FastCGI-válaszokat az `ngx_http_fastcgi_module` direktíváival (`fastcgi_cache_path`, `fastcgi_cache`, `fastcgi_cache_valid`) tárolhatja el. A pontos beállítás függ a szerverfelépítésedtől, ezért az nginx dokumentációja szerint állítsd össze, és ügyelj arra, hogy a bejelentkezett látogatók oldala ne kerüljön be a közös gyorsítótárba.
3. **Gyorsítótár-bővítmény a WordPressben.** A riport a fenti 4. pontban felsorolt slugú bővítményeket ismeri fel gyorsítótárként. Ha bővítményt választasz, a bővítménykatalógus leírásában nézd meg, hogyan kezeli a bejelentkezett felhasználók és a kosárral rendelkezők oldalát, és hogy a riport felismeri-e a jelét (fejléc, lábjegyzet vagy slug).
4. **CDN-szabály.** Ha CDN-nel (például Cloudflare) szolgálsz ki HTML-t is, külön gyorsítótár-szabályt kell létrehozni; ezt a Cloudflare Cache Rules adja.

A gyorsítótár bekapcsolása után a változások nem azonnal látszanak: tartalomszerkesztés után a gyorsítótárat üríteni kell, vagy meg kell várni a lejáratát.

## Hogyan ellenőrizd

Futtasd újra a riportot. A válaszfejlécekben is látszik a jel:

```bash title="Terminál"
curl -sI https://pelda.hu/ | grep -iE "cache|x-"
```

Keresd azt a sort, amely a fenti fejlécnevek valamelyikét tartalmazza. Gyorsítótárazott oldalnál a második kérés általában gyorsabb: mérd meg a `time_starttransfer` értékét kétszer egymás után:

```bash title="Terminál"
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://pelda.hu/
```
