Brzina prodavnice direktno utiče na konverziju. Google to zna, korisnici to znaju, a od 2024. i Shopware-ov sopstveni storefront benchmark to formalno meri. U ovom tekstu prolazimo kroz konkretne korake koji su nam pomogli da na realnim klijent setupima dobijemo Largest Contentful Paint ispod 1.8s i Total Blocking Time ispod 100ms.
1. Profilisanje pre optimizacije
Pre nego što išta promenite, pokrenite Lighthouse i PageSpeed Insights na najmanje tri tipa stranica:
- početna,
- listing kategorije,
- detalj proizvoda.
Bez baseline-a ne znate šta optimizujete. U bin/console Shopware nudi i debug:container, bundle:dump i messenger:stats komande — koristite ih.
2. HTTP cache i reverse proxy
Shopware 6 dolazi sa Symfony HTTP cache-om, ali ga uvek treba zameniti pravim reverse proxy-jem u produkciji. Naš stack:
- Varnish ispred PHP-FPM-a,
- Redis za session i cache backend,
- Cloudflare kao edge cache za statiku.
Razlika između default cache-a i Varnish setup-a kod jednog klijenta sa 40k proizvoda: TTFB sa 480ms na 90ms.
3. Database tuning
Tipične bolne tačke:
- Indeksi na
product_translation,product_categoryiproduct_visibility. innodb_buffer_pool_sizepostavljen na 60–70% raspoloživog RAM-a.- Sporo loggovanje upita iznad 100ms uključeno trajno — ne samo dok debugujete.
Posebnu pažnju treba obratiti na indexer queue. Ako koristite admin za masovne izmene, prebacite indexere na --queue mod i konzumirajte preko Symfony Messenger-a.
4. Frontend: lean Twig + lazy loading
Shopware-ov standardni storefront je dobar, ali u 90% slučajeva želite custom theme koji:
- ukida Bootstrap komponente koje ne koristite,
- lazy-loaduje slike sa
loading="lazy"idecoding="async", - koristi
picturesasrcseti moderne formate (AVIF/WebP).
Za interaktivne komponente — ne učitavajte ceo jQuery samo za slider. Vanilla JS ili Stimulus controler + IntersectionObserver rešavaju 95% potreba.
5. CDN i media
Postavite CDN ispred media/ foldera. Shopware podržava remote URL preko shopware.cdn.url parametra. Naša pravila:
- Originali se uvek čuvaju u object storage-u (S3 / B2 / Cloudflare R2).
- Thumbnail varijante se generišu pri uploadu, ne pri prvom zahtevu.
- Cache TTL na CDN-u — 365 dana za
media/, sa hash-om u imenu fajla.
6. Pluginovi: revizija i izolacija
Pravilo broja jedan: pluginovi su najveći single uzrok sporog Shopwarea.
Prolazite kroz svaki plugin i postavljajte sebi tri pitanja:
- Koristim li ga zaista u produkciji?
- Da li proširuje critical request flow (cart, checkout, listing)?
- Da li ima svoj cache pool i koristi li
event subscriberumestodecorationsvuda?
Često iznesemo 30% performansi samo brisanjem 4–5 nepotrebnih plugin-a.
7. Core Web Vitals: CLS, INP, LCP
Od marta 2024. INP zamenjuje FID. Za Shopware to znači:
- smanjenje JS work-a na main thread-u,
- rezervacija prostora za sve dinamičke komponente (banner, slider, cart preview),
- prefetching kategorija u headeru kada se hover-uje.
Zaključak
Performanse Shopware 6 prodavnice su inženjerski problem, ne šablon koji se kupuje. Pravilan pristup uključuje merenja, infrastrukturu, frontend i disciplinu oko plugin-a.
Ako vam se Shopware uspori sa rastom kataloga ili saobraćaja, pošaljite nam upit — radimo audit i u 80% slučajeva rešavamo problem bez prepisivanja sistema.
