Tudástár / Teljesítmény

Miért lassú a weboldalam?

A lassú weboldal látogatókat és bevételt veszít — és a Google is hátrébb sorolja. Nézzük meg a leggyakoribb okokat, hogyan lehet diagnosztizálni, és mit lehet tenni ellenük.

Ha weboldala lassan tölt be, annak szinte mindig technikai oka van — és az esetek nagy részében több tényező együttesen okozza a problémát. Egyetlen optimalizálás ritkán elég; rendszerszinten kell gondolkodni.

Kutatások szerint a mobilfelhasználók több mint fele elhagyja azt az oldalt, amely 3 másodpercnél tovább tölt be. Az Amazon belső vizsgálata megmutatta, hogy minden 100 ms késleltetés 1%-os bevételcsökkenést okoz. A sebesség tehát nem csupán kényelmi kérdés.

A leggyakoribb okok

1. Gyenge vagy túlterhelt tárhely

Az olcsó shared hosting esetén egy szerveren több száz weboldal osztozik az erőforrásokon. Ha valamelyik szomszédos oldal forgalomcsúcsot kap, az az összes többi oldal válaszidejét is rontja. Ez az egyik leggyakoribb, mégis legnehezebben felismerhető ok — mert a lassulás véletlenszerűnek tűnik és nem reprodukálható.

Mit lehet tenni: VPS-re váltás dedikált erőforrásokkal, vagy minőségi managed hosting (pl. DigitalOcean, Hetzner, Cloudways) választása.

2. Hiányzó vagy rosszul beállított cache

Cache nélkül minden egyes látogató érkezésekor a szerver az adatbázisból generálja újra a teljes oldalt. Egy adatbázis-intenzív oldalon ez 50-100 lekérdezést is jelenthet oldalbetöltésenként. Megfelelő cache beállítással a generált HTML eltárolható, és az ismételt kérések töredék idő alatt kiszolgálhatók.

Mit lehet tenni: Szerveroldali cache bevezetése (Redis, Memcached), oldal-cache réteg (pl. Nginx FastCGI cache, Varnish), Laravel alkalmazásoknál route cache, config cache és view cache bekapcsolása.

3. Nem optimalizált képek

A képek a legtöbb weboldalon a teljes oldalméretnövedékének 60-80%-át teszik ki. Ha egy 4 MB-os RAW fotót töltenek fel kép helyett, az oldal minden betöltésekor le kell tölteni — mobillon ez közel lehetetlenné teszi a gyors megjelenést.

Mit lehet tenni: Képek konvertálása modern formátumra (WebP átlagosan 25-35%-kal kisebb azonos minőség mellett PNG/JPEG-nél), megfelelő méretűre vágás, lazy loading bekapcsolása (a látható területen kívüli képek csak görgetéskor töltődnek be).

4. Elavult PHP verzió

A PHP 8.x verziócsalád jelentős teljesítményjavulást hozott a 7.x-hez képest — egyes benchmark tesztek szerint 40-50%-os gyorsulást is mértek azonos kódon. Az elavult PHP verzió nemcsak lassú, hanem biztonsági kockázat is, mivel az EOL verziók már nem kapnak javításokat.

Mit lehet tenni: PHP verzió frissítése 8.2 vagy 8.3-ra (staging környezetben előtesztelve), OPcache bekapcsolása (a PHP bytecode-ot cache-eli, csökkenti a fordítási overhead-et).

5. Lassú adatbázis-lekérdezések

Az N+1 lekérdezési probléma az egyik leggyakoribb teljesítménygyilkos: ahelyett hogy egy hatékony JOIN-os lekérdezéssel kérné le az adatokat, a kód minden egyes elemhez külön lekérdezést indít. 10 elemhez ez 11 lekérdezés; 100 elemhez 101 — az oldal exponenciálisan lassul.

Mit lehet tenni: Laravel Debugbar-ral azonosítani a lassú lekérdezéseket, eager loading (with()) alkalmazása, adatbázis indexek hozzáadása a szűrt/rendezett oszlopokhoz, MySQL slow query log bekapcsolása.

6. Túl sok bővítmény vagy külső script

Minden egyes aktív bővítmény (plugin) PHP kódot tölt be és adatbázis-lekérdezéseket indít. Minden külső script (analytics, chat widget, reklám pixel, A/B teszt eszköz) HTTP kérést indít más szerverhez — ha az lassú vagy nem válaszol, az oldal megvárja.

Mit lehet tenni: Felesleges bővítmények eltávolítása, külső scriptek aszinkron vagy késleltetett (defer/async) betöltése, GTM (Google Tag Manager) helyett natív implementáció kevesebb helyen.

7. Hiányzó CDN

Ha a szerver Magyarországon van, de az oldal Ausztráliából is megtekinthető, a statikus fájlok (képek, CSS, JS) minden kérésnél Budapest—Sydney között utaznak. CDN nélkül ez 200-400 ms extra késleltetést jelent csak a hálózati távolságból.

Mit lehet tenni: CDN bevezetése (Cloudflare ingyenes szinten már érdemi gyorsulást hoz), static asset-ek S3 + CDN kombinációból kiszolgálása.

Hogyan diagnosztizáljuk?

Az első lépés mindig a mérés — nem a találgatás. Hasznos eszközök:

  • Google PageSpeed Insights — a Core Web Vitals mérőszámokat és konkrét javítási javaslatokat ad, külön mobil és asztali nézethez.
  • GTmetrix — vízesés diagram mutatja, melyik erőforrás tölt be mennyi ideig és mire vár.
  • Laravel Debugbar / Telescope — fejlesztői környezetben megmutatja a lekérdezések számát, idejét és az N+1 problémákat.
  • MySQL slow query log — naplózza az összes lekérdezést, amely meghaladja a megadott időlimitet.

Gyors ellenőrzőlista

  • Betöltési idő 2 másodperc alatt (mobil és asztali egyaránt)
  • Szerveroldali cache aktív
  • Képek WebP formátumban és megfelelő méretben
  • PHP 8.2+ és OPcache bekapcsolva
  • Nincs felesleges bővítmény, külső szkriptek deferrel töltődnek
  • Adatbázis-lekérdezések < 50 ms, N+1 probléma nincs
  • CDN aktív a statikus fájlokhoz
  • Core Web Vitals (LCP < 2.5s, CLS < 0.1, INP < 200ms)

Részletes technikai háttér és haladó optimalizálási lehetőségek:

Teljesítmény és gyorsítás részletesen

Szeretné, ha mi gyorsítanánk fel?

Teljesítmény audit, optimalizálás és folyamatos karbantartás.

Ajánlatkérés