Kontakt
Magento performance optimization for the Caucasus region's #1 consumer electronics retailer. 5–6x faster pages, reindex from 60 minutes to 7.
Feb 2024 - currently
How Eltrino partnered with Kontakt.az and Kontakt.ge, the Caucasus Region's Retail Leader, to rebuild their Magento foundation for speed, stability, and a headless future.
5–6x faster pages
across both stores
0.5–0.7s page response
with a warm cache
Kontakt is de toonaangevende retailer in consumentenelektronica, huishoudelijke apparaten en meubels in de Kaukasus — met meer dan 50 winkels in Azerbeidzjan, 4 in Georgië en samenwerkingen met meer dan 100 internationale merken. Het team van Kontakt zocht een nieuwe eCommerce-partner — eentje met ervaring in het bouwen van winkels voor marktleiders en de technische diepgang om hen verder te laten groeien. We begonnen met een code audit, optimaliseerden het fundament en blijven samenwerken met het Kontakt-team naarmate hun platform zich verder ontwikkelt.
Over het project
Kontakt runt het grootste eCommerce-platform in de Kaukasus-regio. Het merk brengt consumentenelektronica, huishoudelijke apparaten, meubels en accessoires voor in huis onder één dak — met meer dan 50 winkels in Azerbeidzjan, vier winkels in Georgië en langlopende samenwerkingen met meer dan 100 internationale merken.
De schaal van dat leiderschap is zichtbaar in de bezoekersdata. In maart 2026 trok kontakt.az 2 miljoen maandelijkse bezoeken, met een nationale ranking van #17 over alle websites in Azerbeidzjan en daarmee meer dan 2x voor op zijn naaste directe concurrent in het segment elektronicaretail (SimilarWeb). Het publiek is overweldigend mobiel (86,82%), met organisch zoekverkeer goed voor 43,49% van het verkeer en direct verkeer voor nog eens 20,85% — sterke signalen van merkbekendheid en een klantenbestand dat terugkomt.
Marktleider zijn is moeilijker dan uitdager zijn. De leider legt de lat — op assortiment, prijs, snelheid, beschikbaarheid — en de strategie van elke concurrent is erop gericht het gat dicht te lopen. Die positie vasthouden vraagt om onevenredig grote, structurele investeringen in catalogusdiepte, infrastructuur en klantbeleving. Aan de top is er geen ruimte om mee te drijven met de stroom.
Het bedrijf runt twee aparte eCommerce-properties — kontakt.az voor de Azerbeidzjaanse markt en kontakt.ge voor Georgië. Hoewel de productcategorieën elkaar overlappen, zijn de twee markten niet uitwisselbaar. Radik Asgarli, CEO van Kontakt Home, die in 2021 de toetreding van het merk tot Georgië leidde, is hier openhartig over geweest in Forbes Georgia — hij merkte op dat "Azerbeidzjan en Georgië aanzienlijk verschillen in cultuur en zakelijke stijl", en dat Kontakt Home er bewust voor heeft gekozen het Azerbeidzjaanse model niet te kopiëren in Georgië. De Georgische tak heeft zijn eigen draaiboek opgebouwd, van teamstructuur tot commercieel aanbod — waaronder rentevrije afbetalingsregelingen zonder tussenkomst van een bank, die kontakt.ge onderscheiden in zijn lokale markt.
Die commerciële realiteit komt ook technisch tot uiting. Kontakt.az en kontakt.ge worden gerund als volledig onafhankelijke projecten: aparte Magento-installaties, aparte infrastructuur, apart management. Op Kontakt.az worden ongeveer 75.000 producten beheerd, op Kontakt.ge nog eens 15.000.
Beide winkels draaien op Magento Open Source met een monoliet-architectuur.
De uitdaging
De opdracht van Kontakt was om een partner te vinden die het operationele tempo van een marktleider kon bijhouden en het technische fundament op het niveau kon brengen dat nodig was voor de volgende groeifase. De codebase was in de loop van de tijd uit de pas gaan lopen met actuele Magento-versies. Daarnaast waren er veel modules geïnstalleerd, en meer code van verschillende leveranciers betekent meer oppervlak voor conflicten, lastiger upgrades en tragere releases. Diverse commerciële extensies dupliceerden functionaliteit die nieuwere Magento-versies inmiddels native afhandelen.
Voor een marktleider met een grotendeels mobiel publiek dat via organisch zoekverkeer binnenkomt, had dit reële gevolgen:
- Pagina's laadden traag, met negatieve impact op conversie, gebruikerservaring en SEO
- Productimports duurden uren, waardoor tijdige catalogusupdates blokkeerden
- Reindexering was een operatie van 40–60 minuten, waarin de winkel geen actuele content betrouwbaar kon serveren — opnieuw een slechte gebruikerservaring
- Database-deadlocks tijdens imports veroorzaakten regelmatige storingen die handmatig ingrijpen vereisten
- Modulewildgroei maakte de codebase moeilijker veilig uit te breiden, waarbij elke wijziging het risico op conflicten tussen extensies met zich meebracht De opdracht was helder: de technische kant overnemen, de winkel terugbrengen naar het prestatieniveau waarop hij hoort te zitten en een schoon fundament klaarzetten voor het volgende hoofdstuk — een nieuwe storefront.
Wat we hebben gedaan
Eerst een code audit
Voordat we iets aanraakten, voerden we een volledige Magento code audit uit. Dat gaf ons en de klant een gedeeld, eerlijk beeld van de codebase: welke modules stabiel waren, welke overbodig waren, waar de technische schuld zich concentreerde en waar de grootste winsten lagen. Elke optimalisatie die daarna volgde, kwam voort uit deze audit.
Modulesopschoning en versie-uitlijning
We brachten elke Magento-module naar een actuele, ondersteunde versie en verwijderden betaalde extensies waar de standaardfunctionaliteit van Magento dezelfde behoefte dekte. Dit was geen kostenbesparingsoperatie — het was een stabiliteitsbeslissing. Elke commerciële module is opnieuw een upgrade-afhankelijkheid, opnieuw een supportcontract en opnieuw een potentieel storingspunt op Black Friday. Waar de standaard Magento-werking volstond, gebruikten we die.
Performance-optimalisatie over de hele stack
We herbouwden de lagen van de applicatie die bepalen hoe snel een pagina wordt uitgeleverd:
- Met een warme cache worden product- en categoriepagina's nu uitgeleverd in 0,5–0,7 seconden
- Met een koude cache zit de responstijd, afhankelijk van de pagina, op 2–5 seconden — een niveau dat we verwachten verder omlaag te brengen naarmate het werk vordert
- Over beide winkels heen verbeterde de pagina-responstijd met een factor 5–6 ten opzichte van het startpunt
Reindex-optimalisatie
De reindex-tijd daalde van 40–60 minuten naar ongeveer 7 minuten. Voor een catalogus van 75.000 SKU's met frequente prijs- en voorraadwijzigingen is dat het verschil tussen een winkel die de werkelijkheid weerspiegelt en een winkel die erop achterloopt.
Optimalisatie van product- en prijsimports
Imports — het bronbestand downloaden, parsen, valideren, importeren, reindexeren — werden herbouwd op basis van het standaard import-mechanisme van Magento, met gerichte optimalisaties:
- Productimport: van 2 uur naar 1 uur voor volledige catalogusupdates
- Prijsimport: van 30 minuten naar 15 minuten
- Custom retry-systeem bovenop de standaard importer om de database-deadlocks aan te pakken die een terugkerend probleem waren (de database staat onder zware concurrente belasting — we behandelen incidentele deadlocks als verwacht gedrag en herstellen automatisch, in plaats van de hele import te laten falen)
Multi-source search
Klanten zoeken niet alleen naar producten. Ze zoeken naar categorieën, naar merknamen, naar helpcenter-artikelen, naar promotionele landingspagina's. Kontakt draait nu op een multi-source search-architectuur die matches binnen één resultatenset teruggeeft over al deze types — producten, categorieën, CMS-pagina's, suggesties — met relevantie en ranking afgesteld op hoe Kontakt-klanten daadwerkelijk zoeken.
Het volgende hoofdstuk: een headless storefront
Nu het fundament stabiel is en de catalogus- en importlagen op tijd draaien, gaat Kontakt door naar het volgende hoofdstuk — een headless storefront. Het optimalisatiewerk tot nu toe was een randvoorwaarde: de nieuwe architectuur heeft een schoon, snel Magento-backend nodig daaronder. We werken nu met het Kontakt-team aan die bouw over zowel .az als .ge.
Procesverbeteringen
Naast code hebben we ook aangescherpt hoe het werk zelf wordt uitgevoerd — taakstructuur, ontwikkelflow, testen, releases. Voor een winkel van Kontakts omvang en complexiteit telt voorspelbare oplevering net zo zwaar als ruwe engineering-output.
Resultaten
De belangrijkste cijfers uit de overname- en optimalisatiefase:
| Metric | Voor | Na |
|---|---|---|
| Pagina-responstijd (warme cache) | 3–4 s | 0,5–0,7 s |
| Pagina-responstijd (koude cache) | 10+ s | 2–5 s |
| Reindex-tijd | 40–60 min | ~7 min |
| Productimport (volledige catalogus, ~75k SKU's) | 2 uur | 1 uur |
| Prijsimport | 30 min | 15 min |
| Import-betrouwbaarheid | Frequent handmatig opnieuw proberen | Automatische retry bij deadlocks |
Ordervolume op zichzelf is niet de juiste maatstaf voor dit soort werk. Kontakt is de dominante retailer op zijn markt — er ligt geen verborgen 5x-groeikans te wachten op snellere paginalaadtijden. Wat snellere pagina's, schonere imports en betrouwbare reindexering een marktleider opleveren, is iets anders: stabiliteit onder druk (Black Friday, weekenden net na salarisdagen, lanceringen van nieuwe producten), operationele efficiëntie (catalogusupdates die op tijd doorkomen, niet pas wanneer imports eindelijk afronden) en ruimte voor wat hierna komt (een headless storefront heeft een schoon, snel backend nodig daaronder — dat fundament staat nu).
