Een Wordpress woonblog met 750.000 posts snel & online houden

We combineren de kennis van hosting, backend- en frontend ontwikkeling om oplossingen
te leveren en advies te geven om Woonhome.nl op te kunnen blijven schalen.

Woonhome.nl is een online platform voor meubels & woonaccessoires. De site staat vol artikelen met woonidee├źn, unieke vintage meubels en... inmiddels meer dan 750.000 woonproducten voor de creatieve interieurfan. We helpen Woonhome.nl al jaren met oplossingen om door te kunnen groeien op deze - inmiddels uit zijn jasje gegroeide - Wordpress site. Een technische en leerzame uitdaging!

Een leuk blog of mooie website bouwen op Wordpress kan tegenwoordig bijna iedereen: je installeert de laatste versie, kiest uit een van de talloze thema's en je klikt je website met plugins in elkaar. Toegankelijk en succesvol: inmiddels draait meer dan 30% van alle websites wereldwijd op dit CMS. Dit werkt perfect voor de meeste toepassingen, maar is minder vanzelfsprekend bij een database met meer dan een half miljoen producten.

Wordpress is ooit gebouwd als blog platform. In de loop der jaren heeft het pakket zich echter hard ontwikkeld waardoor het breed ingezet kan worden. De structuur en veel van de beschikbare plugins werken goed, maar zijn echter niet - of slechts beperkt - geschikt om met grote hoeveelheden data en drukte te werken.

Voor Woonhome combineren we de kennis van hosting, backend- en frontend ontwikkeling om oplossingen te leveren en advies te geven zodat ze door kunnen schalen. Dit is hoe we dat - enigszins in mensentaal - in de praktijk doen.

We beperken de database interactie

Een groot deel van de Woonhome website wordt getoond vanuit een grote 'statische pagina cache'. Dit betekent dat we het resultaat van alle gegenereerde pagina's opslaan en dit resultaat aan de bezoeker tonen. Hierdoor hoeven we de grote database maar 1x per pagina te raadplegen, waarna dat voor alle volgende bezoekers niet meer nodig is. Zo houden we de server belasting laag en de website snel!

We gaan creatief om met wijzigingen

Statische pagina's zijn snel maar kun je niet zomaar aanpassen. Informatie die wijzigt, zoals de prijs van een product, heeft als gevolg dat een opgeslagen pagina verouderd is. We lossen dit op door ieder uur alle product eigenschappen die vaak wijzigen op te halen. Het resultaat daarvan slaan we op in een externe bron, buiten de grote database. Deze bron (voor de kenners: Redis) is geoptimaliseerd om kleine blokjes informatie snel te kunnen aanleveren. Als een bezoeker de website bekijkt krijgt hij de opgeslagen pagina te zien en direct daarna worden 'dynamische' onderdelen van de pagina uit de snelle bron opgehaald. Zo kunnen we toch alles up-to-date houden!

We optimaliseren het zoeken & filteren

Wijzigingen in het aanbod zijn voorspelbaar: bezoekers die in het aanbod zoeken zijn dat echter niet. Als veel bezoekers tegelijk de grote database doorzoeken wordt het langzaam. Om die reden slaan we alle 'doorzoekbare' eigenschappen van producten op in een tweede externe bron (voor de kenners: Elasticsearch), die specifiek voor zoeken geoptimaliseerd is. Dit doen we eenmalig: direct zodra er een product aan de site wordt toegevoegd. Zoekacties zijn daardoor snel en de grote database wordt zo min mogelijk geraadpleegd!

Vergelijkbare uitdagingen?

We passen graag onze kennis & ervaring toe om oplossingen te bouwen!

Logo Woonhome

Raymond Skopp & Donny Skopp eigenaren Woonhome.nl

DevNomads is voor bedrijven en start-ups met veel online activiteiten een perfecte dienstverlener. Zo heeft Jeroen ons de afgelopen 5 jaar een uiteenlopend pakket aan online services geboden waaronder:

  • de web- en mailhosting;
  • het doorvoeren van optimalisaties voor de snelheid van de website;
  • de implementatie van een objectstore voor het efficient opslaan van alle afbeeldingen;
  • de integratie van productfeeds voor het vullen van de website;
  • de opbouw van een snelle zoekfunctie op basis van Elasticsearch.

Met zijn professionele advies is Jeroen een echte sparringpartner. Zo is er ook een uitstekende samenwerking tussen DevNomads en onze webdevelopers. Ook de snelle service is zeer prettig!

Lees case study