Sebesség

Kategóriaoldal gyorsítása sok termékképpel és szűrővel

Kategóriaoldal gyorsítása sok termékképpel és szűrővel. Mérési sorrend LCP-re, CLS-re és INP-re, WooCommerce-beállítások és a termékszám SEO-hatása.

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

A lényeg dióhéjban: A kategóriaoldalt a sok bélyegkép, az oldalankénti termékszám, az AJAX-szűrő és a betöltéskor futó árszámítás együtt lassítja, ezért elemenként kell mérni. Előbb a valós felhasználói adatot nézd, utána az LCP-elemet, a rács elmozdulásait és a szűrőkattintást, és csak a mérés után nyúlj a termékszámhoz.

A kategóriaoldal más terhelést visel, mint a termékoldal. Egy termékoldalon jellemzően egy nagy kép, egy ár és egy kosár gomb van. A terméklistán ugyanakkor 24-48 bélyegkép, ugyanennyi ár, akciós címke, készletjelzés és egy szűrőpanel, ami minden kattintásra újrarajzolja a rácsot. Ezért a termékoldalon bevált gyorsítási lépések itt csak részben működnek. Ez a cikk a kategóriaoldal saját szűk keresztmetszeteit veszi sorra, mérési sorrenddel és konkrét beállításokkal.

Kategóriaoldal gyorsítása sok termékképpel és szűrővel
Kategóriaoldal gyorsítása sok termékképpel és szűrővel

A szövegben háromféle jelölést használunk. Hivatalosan igazolt az, ami a Google Search Central, a web.dev vagy a WordPress és WooCommerce dokumentációjában szerepel. Saját tapasztalat az, amit webshopok mérésénél rendszeresen látunk, de nem általános szabály. Szakmai feltételezés az, ami logikusan következik a működésből, de mérés nélkül nem állítjuk biztosra.

Miben más egy kategóriaoldal sebességproblémája, mint a termékoldalé?

A kategóriaoldalon a sok kis elem összege lassít, a termékoldalon inkább egy-két nagy elem. A rács minden terméke külön képkérést, külön árszámítást és gyakran külön adatbázis-lekérdezést jelent, a szűrő pedig az oldal betöltése után, interakció közben is terhel.

Négy forrást érdemes külön kezelni.

Milyen sorrendben érdemes mérni egy terméklistát?

Előbb a valós felhasználói adatot nézd, utána a laborméréseket, és csak a végén a szerveroldalt. Így nem olyan problémát javítasz, ami a valódi látogatóknál nem is jelentkezik.

  1. Search Console, Alapvető webes vitals jelentés. A jelentés hasonló URL-eket csoportosít, így kiderül, hogy a kategóriaoldalak csoportja melyik mutatón bukik (hivatalosan igazolt). A határértékek a 75. percentilisre vonatkoznak, az LCP jó, ha legfeljebb 2,5 másodperc, az INP jó, ha legfeljebb 200 ms, a CLS jó, ha legfeljebb 0,1 (hivatalosan igazolt, web.dev).
  2. PageSpeed Insights. Egy jellemző kategória URL-jén nézd meg a mezőadatot, aztán a laborrészben az LCP-elemet. A diagnosztika megmutatja, pontosan melyik HTML-elem az LCP.
  3. Chrome DevTools Performance panel. Mobil processzor- és hálózatlassítással rögzíts egy betöltést. Az LCP-t négy szakaszra bontva látod (szerverválasz, betöltési késleltetés, betöltési idő, renderelési késleltetés), és ebből kiderül, hol vész el az idő.
  4. Elmozdulások. Ugyanebben a felvételben a Layout shifts sávon látszik, melyik elem ugrik a rács betöltésekor.
  5. Szűrőkattintás. Rögzíts egy kattintást egy szűrőn, és nézd meg az interakció teljes hosszát, a hálózati kérés idejét és a DOM-csere idejét.
  6. Szerveroldal. WordPressben a Query Monitor bővítménnyel mérd a kategóriaoldal generálási idejét és lekérdezéseit, szűrővel és anélkül, bejelentkezve és kijelentkezve is.

Melyik elem az LCP egy terméklistán?

Leggyakrabban az első sor egyik termékképe, vagy ha van, a kategória fejlécképe. Mobilon, ha a képek lusta betöltésűek, időnként a kategórialeírás szövegblokkja vagy a H1 lesz az LCP, ami azt jelzi, hogy a képek túl későn jelennek meg.

Hivatalosan igazolt. Az LCP-elem lehet img, SVG-n belüli kép, videó poszterképe, CSS-sel url() háttérként betöltött kép és szöveget tartalmazó blokkelem. A web.dev szerint a hajtás feletti képek lusta betöltése rontja az LCP-t. WordPress 6.3 óta a mag automatikusan fetchpriority="high" attribútumot tesz az első nagy tartalomképre, és az első néhány képről elhagyja a loading="lazy" attribútumot. Ennek számát a wp_omit_loading_attr_threshold szűrő állítja, alapértéke 3.

Saját tapasztalat. Sok téma és slider a kategória-bannert CSS háttérképként tölti be, amit a böngésző csak a stíluslap feldolgozása után fedez fel. Ilyenkor az LCP betöltési késleltetése nagy. Mobilon kétoszlopos rácsnál általában 2-4 termékkép látszik betöltéskor, asztali gépen négyoszlopos rácsnál akár 8 is.

A teendők sorrendje így alakul.

Mi okoz CLS-t, amikor a termékrács betöltődik?

A rács elmozdulását leggyakrabban a méret nélküli képek, az utólag beszúrt elemek (akciós címke, ár, értékelő csillagok, kosár gomb), a betűtípus-csere és az AJAX-szűrő által a rács fölé beszúrt sávok okozzák.

Hivatalosan igazolt. A képeknél a width és height attribútum vagy a CSS aspect-ratio előre lefoglalja a helyet. A felhasználói interakció utáni 500 ms-on belüli elmozdulás nem számít bele a CLS-be. Ha viszont a szűrő válasza ennél lassabban érkezik, a rács cseréje már beleszámít.

Saját tapasztalat. Gyakori ok a vegyes képarányú termékfotó, amikor egyes termékek álló, mások fekvő képet kapnak, és a kártyák magassága eltér. Ugyanígy a JavaScripttel utólag rárakott akciós címke és a lap tetején később megjelenő értesítő sáv.

Egy egyszerű CSS-alap, ami a legtöbb rácsnál segít.

.products li.product img { aspect-ratio: 1 / 1; width: 100%; height: auto; object-fit: contain; }

.products li.product .price { min-height: 1.5em; }

A szűrő eredménysávjának (aktív szűrők, találatszám) is foglalj fix helyet, akkor is, ha még üres.

Mennyit lassít a szűrőpanel, és hogyan mérd?

Általános szám nincs, a szűrőpanelt két ponton kell mérni. Betöltéskor a panel HTML-je, a találatszámlálók és a szkriptje terhel, kattintáskor pedig az INP és a szerver válaszideje.

A betöltési hatást úgy mérheted a legtisztábban, hogy egy tesztkörnyezetben ugyanazt a kategóriaoldalt szűrővel és szűrő nélkül is lefuttatod, és összeveted a generálási időt meg a szkript-végrehajtás idejét. A kattintásnál a Performance panelen nézd meg, mennyi a hálózati várakozás és mennyi a böngésző oldali feldolgozás.

Saját tapasztalat. A sok attribútumos szűrő találatszámlálója szokott lenni a leglassabb rész, mert minden értékhez külön lekérdezés fut. Gyakori az is, hogy az AJAX-szűrő a teljes oldal HTML-jét kéri vissza, és ebből csak a rácsot cseréli ki, így a szerver ugyanannyit dolgozik, mint egy teljes újratöltésnél.

Javítási lehetőségek.

Hivatalosan igazolt, keresőoldalról. A Google faceted navigation útmutatója szerint a szűrő-URL-ek nagy része felesleges bejárást okozhat. Ha egy szűrőkombinációnak nincs keresési értéke, robots.txt-vel tilthatod a bejárását, vagy kezelheted URL-töredékkel.

Hogyan lassít a betöltéskor futó árkalkuláció?

Ha a lista minden termékénél futásidőben számolódik az ár, az a szerver generálási idejét a termékszámmal arányosan növeli. Ha pedig az ár felhasználói csoportonként eltér, a teljes oldal-gyorsítótár sokszor nem használható.

Hivatalosan igazolt. A WooCommerce a változó termékek változatárait tranziensben tárolja, hogy ne kelljen minden betöltésnél újraszámolni az ártartományt.

Saját tapasztalat. A kedvezményszabályokat futtató bővítmények egy 48 termékes kategóriaoldalon gyakran a Query Monitor legnagyobb tételei közé kerülnek. Ha a sablon az árat AJAX-szal utólag tölti be, az CLS-t is okoz, és egy plusz kérést is jelent.

Mit tehetsz?

Milyen beállításokkal gyorsítható a kategóriaoldal WooCommerce-ben?

A legtöbbet a bélyegképméret, a termékszám, az attribútum-keresőtábla és a gyorsítótárazás adja, ebben a sorrendben érdemes végigmenni.

Egy minimális kódrészlet a téma functions.php fájljába vagy egy saját bővítménybe.

add_filter( 'loop_shop_per_page', function () { return 24; }, 20 );

add_filter( 'wp_omit_loading_attr_threshold', function () { return 4; } );

Az első sor a kategóriaoldalakon 24 terméket mutat, a második azt kéri, hogy az első négy kép ne kapjon lusta betöltést. Négyoszlopos asztali rácsnál ez az első sort fedi le.

Mit állíts egy általános webshopmotorban?

Hosztolt rendszereknél a legtöbb lehetőség a sablonban van, ezért ugyanazokat a pontokat a sablonkódban keresd, mint WooCommerce-ben.

Szakmai feltételezés. Zárt rendszerben a szerveroldali generálási időre kevés a ráhatásod, így ott a kép, a szkript és az elmozdulás javítása hozza a mérhető különbséget.

Mikor érdemes csökkenteni az oldalankénti termékszámot?

Akkor, ha a mérés szerint a szervergenerálás vagy a DOM mérete a szűk keresztmetszet, és a termékszám növelésével arányosan romlik. Ha az LCP-t egy rosszul betöltött első kép okozza, a termékszám csökkentése alig segít, mert az LCP-elem ugyanaz marad.

A legtisztább teszt az, ha egy tesztkörnyezetben ugyanazt a kategóriát 48 és 24 termékkel is lemérd, és összeveted a generálási időt, a DOM-elemek számát és a laborbeli LCP-t. Ha a különbség kicsi, a termékszám maradhat, és máshol érdemes keresni a lassulás okát.

Milyen SEO-mellékhatása lehet a kisebb termékszámnak?

Kevesebb termék oldalanként több lapozott oldalt jelent, a termékek mélyebbre kerülnek, és az első oldalról kevesebb belső link mutat rájuk.

Hivatalosan igazolt. A Google 2019 óta nem használja a rel="prev" és rel="next" jelölést indexelési jelként. A lapozott oldalak mindegyike kapjon saját, önmagára mutató kanonikus URL-t, és ne az első oldalra kanonikusítsd őket. A lapozó linkek legyenek sima a href linkek. „Továbbiak betöltése” gombnál és végtelen görgetésnél is legyen minden részhez bejárható URL.

Saját tapasztalat. A második és további lapozott oldalakon lévő termékeket a Googlebot jellemzően ritkábban járja be, mint az első oldalon lévőket.

Szakmai feltételezés. A meglévő termékek helyezésére a hatás valószínűleg kicsi, az új termékeknél viszont lassabb lehet a felfedezés. Ezt ellensúlyozhatja néhány lépés.

Mit nézz át, mielőtt élesíted a változtatást?

A változtatás után ugyanazzal a módszerrel mérj újra, mint előtte, különben az eredmények nem összevethetők.

Egyik lépés sem garantál jobb helyezést. A gyorsabb kategóriaoldal a látogatónak jó eséllyel kényelmesebb, és a bejárást is segítheti, de a hatást mindig a saját mérésedből ítéld meg.

Források és további olvasnivalók

A legfontosabbak
  • Egy terméklistán az LCP többnyire az első sor egyik termékképe vagy a kategória fejlécképe, ezért ezeket tilos lusta betöltéssel kezelni.
  • A rács CLS-ét leggyakrabban a méret nélküli képek és az utólag beszúrt címkék, árak, gombok okozzák, amit képaránnyal és lefoglalt hellyel lehet kezelni.
  • A szűrőpanelt két helyen kell mérni, a betöltéskor és a kattintáskor, mert a két probléma oka és javítása eltér.
  • Az oldalankénti termékszám csökkentése csak akkor segít, ha a szervergenerálás vagy a DOM mérete a szűk keresztmetszet, és mélyebbre tolja a termékeket a lapozásban.
  • A lapozott oldalaknak saját kanonikus URL-t és sima, bejárható linkeket kell adni, a Google ma már nem használja a rel=prev/next jelölést.

Gyakori kérdések

Melyik elem szokott az LCP lenni egy webshop kategóriaoldalán?

Leggyakrabban az első sor egyik termékképe vagy a kategória fejlécképe. Mobilon, ha a képek lusta betöltésűek, néha a H1 vagy a kategórialeírás lesz az, ami a késve érkező képekre utal. A pontos elemet a PageSpeed Insights diagnosztikája mutatja meg.

Szabad lusta betöltést használni a termékrácsban?

Igen, az első sor alatti képeknél. Az első, betöltéskor látható sor képeinél viszont a web.dev szerint a lusta betöltés rontja az LCP-t, ezért ott hagyd el.

Miért ugrál a termékrács, amikor rákattintok egy szűrőre?

Az interakció utáni 500 ms-on belüli elmozdulás nem számít a CLS-be. Ha a szűrő válasza ennél lassabb, vagy a rács fölé utólag beszúrt sáv tolja le a tartalmat, az beleszámít. Foglalj helyet a sávnak, és gyorsítsd a szűrő válaszát.

Árt a SEO-nak, ha kevesebb terméket mutatok oldalanként?

Önmagában nem feltétlenül, de több lapozott oldal keletkezik, és a termékek mélyebbre kerülnek. Adj minden lapozott oldalnak saját kanonikus URL-t, használj sima linkeket, és tartsd az összes terméket az XML-oldaltérképben.

Mit csinál a WooCommerce termékattribútum-keresőtáblája?

A WooCommerce 6.1-ben bevezetett tábla az attribútum szerinti szűrést gyorsítja, mert a szűréshez nem a lassabb általános lekérdezéseket használja. A WooCommerce › Beállítások › Termékek › Haladó menüben kapcsolható be.

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ó

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

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

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 EgerOnline marketing & AI SEO ZalaegerszegOnline marketing & AI SEO SzekszárdOnline marketing & AI SEO SalgótarjánOnline marketing & AI SEO SzékesfehérvárOnline marketing & AI SEO Budapest

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 DunaújvárosWeboldalkészítés GyőrWeboldalkészítés DebrecenWeboldalkészítés SzegedWeboldalkészítés MiskolcWeboldalkészítés Pécs

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ó