Home / Over ons / Nieuws / Nieuws / Case: 8.000 bezoekers per minuut met de Oudejaarstrekking, kan dat?

Case: 8.000 bezoekers per minuut met de Oudejaarstrekking, kan dat?

14 december 2018 - 10:33u - 7 minuten leestijd

Voor de Staatsloterij Oudejaarstrekking gaan jaarlijks zo’n 6 miljoen loten over de toonbank. Er wordt meer geld uitgegeven aan oudejaarssloten dan aan vuurwerk en oliebollen bij elkaar. De Oudejaarstrekking is inmiddels een traditie waaraan bijna half Nederland meedoet. Als de klok 12 uur heeft geslagen, de champagneglazen hebben geklonken en iedereen elkaar een gelukkig nieuwjaar heeft gewenst, dan begint het grote loten checken. “Zou op mijn lot de hoofdprijs van € 30 miljoen zijn gevallen?”

Jeroen de Beurs van New Fountain geeft in dit artikel praktische tips hoe zij de website Loten.nl hebben geoptimaliseerd om tot een zo snel en efficiënt mogelijke WordPress website te komen die grote bezoekersaantallen aankan.

Website loten.nl

Op 1 januari is het een drukte van jewelste op Loten.nl

Ruim 650.000 pageviews op 1 januari

Op de website Loten.nl publiceren wij de uitslag van de Staatsloterij, Lotto, Postcode Loterij en nog een aantal andere loterijen. Met pieken van 8.000 bezoekers per minuut is de Oudejaarstrekking met afstand de meest bezochte trekking. Daar komen de bezoekers van de PostcodeKanjer uitslag nog bij. Aan het eind van de eerste dag van het jaar staat de teller op ruim 650.000 pageviews. Om deze stroom van bezoekers aan te kunnen, hebben we de website vanaf begin af aan volledig opnieuw opgebouwd. Wederom in WordPress, het CMS waarin we gespecialiseerd zijn. Naast een goede website heb je natuurlijk ook supersnelle hosting nodig en maken we gebruik van nieuwe, geavanceerde technieken zoals Redis.

Bijna 9000 bezoekers op loten

Op piekmomenten heeft Loten.nl bijna 9.000 bezoekers

Tip 1: Gebruik of bouw een thema met alleen het hoognodige

Je kent ze wel, die prachtige WordPress thema’s waarmee je in één keer een mooie webshop, portfolio, testimonial, galerij en weet ik wat nog meer neerzet. Of je nou een fotograaf bent of een fitness school runt, met zo’n thema kun je alles. Dit ‘alles’ is erg gebruiksvriendelijk maar heeft ook een keerzijde: 80% van zo’n thema gebruik je doorgaans niet. En al die bestanden worden wel ingeladen. Dat lijkt misschien niet zo’n probleem met een paar honderd bezoekers per dag, maar als je er 8.000 per minuut moet verwerken wil je zo weinig mogelijk bestanden serveren. Voor Loten.nl hebben we zelf een thema gebouwd op basis van het Monsieurpress ‘barebone theme’. Dat is een thema waarbij alleen de hoofdstructuur staat, je kunt het vergelijken met het casco van je huis.

Tip 2: Gebruik zo min mogelijk plugins

Waarschijnlijk een inkopper van jewelste, toch vind ik het de moeite om deze te benoemen. In plaats van een paar regels code wordt vaak genoeg even een plugin geïnstalleerd. Op Loten.nl hebben we de meeste functionaliteit zelf geprogrammeerd. Voor een aantal functionaliteiten gaan we het wiel niet opnieuw uitvinden en gebruiken we een handje vol plugins zoals Yoast SEO, Gravity Forms en Advanced Custom Fields (ACF).

Tip 3: Let op performance van bestaande plugins

Wel moet je de werking van gerenommeerde plugins goed in de gaten houden, zeker als het om performance gaat. Voor Loten.nl maken we voor het beheer van loterijen veelvuldig gebruik van ACF Flexibel Content. Dit werkt erg mooi in het beheer, maar aan de frontend ging er voor elk dataveld een databaserequest uit. Als gevolg hiervan werden bijvoorbeeld op de homepage hiervoor zo’n 300 requests verstuurd. Dat werkt enorm vertragend bij grote bezoekersaantallen. Als oplossing hiervoor hebben we een custom query gemaakt die alle data met 1 request ophaalt.

ACF Flexibel Content

Maak zorgvuldige afwegingen om het aantal requests te minimaliseren

Tip 4: Caching is onmisbaar

Voor een snelle WordPress website is caching onmisbaar, zowel op de website als op de server. Op de server heeft RealHosting caching ingesteld met het optimalisatiepakket. De score van Google Pagespeed ging vrijwel direct een paar punten omhoog. Verder maken wij in WordPress gebruik van WP-Rocket. Deze plugin heeft zichzelf ruimschoots bewezen als het gaat om snelheid. Door bestanden te combineren, te verkleinen en later in te laden wordt het aantal requests drastisch vermindert evenals de hoeveelheid data. Wel even opletten met de juiste instellingen, als je bijvoorbeeld jQuery achteraf inlaadt is de kans groot dat een deel van je website niet meer werkt.

Tip 5: Zelf hosten van bestanden

Als je afhankelijk bent van externe scripts en fonts, zoals Google Fonts, Analytics of een iconenbibliotheek dan is de kans groot dat je website trager inlaadt. Dit zorgt ook vaak voor ‘render blocking’ wat inhoudt dat eerst deze bestanden moeten worden ingeladen voordat de rest van je website wordt geladen.

Ironisch genoeg krijg je zelfs een strafscore op het gebruik van Google Analytics in Google Pagespeed Insights.

Verder hebben we op Loten.nl alle fonts, iconen en zelfs Analytics gedownload en hosten we die zelf. Op die manier laden ze altijd snel en kunnen we zelf de volgorde bepalen.

Zelf bestanden hosten

Zelf bestanden hosten zodat ze snel worden geladen en je zelf de volgorde kunt bepalen

Tip 6: Sluit onnodige bestanden uit

Als je gebruikt maak van bestaande plugins dan worden scripts hiervoor vaak op elke pagina geladen. Een voorbeeld hiervan is Gravity Forms. Je ziet op elke pagina scripts terug, terwijl je doorgaans op een enkele pagina een contactformulier gebruikt. Voor Loten.nl hebben we op URL (slug) niveau gekeken welke scripts er daadwerkelijk geladen moeten worden en zo onnodige bestanden uitgesloten.

Tip 7: Zorg voor goede hosting

Als je uiteindelijk een snelle en efficiënte WordPress website hebt gebouwd maakt het voor de snelheid nogal uit waar je je website host. Zonder ook maar iets te veranderen aan code zien we bij het verhuizen van websites van klanten naar RealHosting de snelheid met sprongen vooruit gaan.

Voor Loten.nl gebruiken we een Private Cloud M met geoptimaliseerd Professional+ pakket. Na verschillende optimalisatierondes kan de website zonder problemen die 8.000 bezoekers per minuut aan. De samenwerking met RealHosting is voor ons hierin zeer belangrijk. De lijnen zijn altijd kort en voor iedere vraag heeft RealHosting wel een oplossing. Ook ’s avonds laat bij een trekkingsuitslag heeft RealHosting proactief een oogje in het zeil gehouden en is waar nodig bijgesprongen. Bij andere hostingpartijen gaat dat er wel anders aan toe.

Tip 8: Gebruik performanceverhogende tools zoals Redis

Nog een mooi voorbeeld van een prettige samenwerking met RealHosting is Redis. Dit is een techniek waarmee je als het ware een database vanuit je geheugen laadt. Precies de oplossing die we zochten maar niet van het bestaan afwisten. RealHosting droeg deze oplossing aan.

Op Loten.nl gebruiken we een zelf optimaliserend campagnesysteem waarbij we (anoniem) statistieken per advertentie verzamelen. Voor elke bezoeker worden gemiddeld 4 advertenties getoond. Als je dat aantal afzet tegen 8.000 bezoekers per minuut dan heb je dus 32.000 advertenties waarvan je de data moet bijhouden. In MySQL bleek dat een ondoenbare exercitie, met Redis gaat dat perfect.

Het eindresultaat

Het resultaat van onze inspanningen is dat Loten.nl laadt binnen 0,5 seconde en we een PageSpeed score halen van 94/100 respectievelijk voor mobiel en desktop. Optimaliseren tot 100/100 behoort tot de mogelijkheden maar is geen doel op zich. We kunnen nu in ieder geval zonder problemen 8.000 bezoekers per minuut aan. Daarnaast zien we na livegang van de nieuwe website significante verbeteringen van onze posities in zoekmachines.

Mocht je nog vragen hebben naar aanleiding van dit artikel, schroom niet om contact op te nemen met New Fountain.

Resultaat loten.nl

Een goed presterende website zorgt voor een lage bounce rate

Jeroen de Beurs Gastblogger | Webbouwer | WordPress expert

Jeroen werkt sinds 2009 bij New Fountain. New Fountain bouwt websites die voor je werken. Professionele WordPress websites voor opdrachtgevers met serieuze ambitie.

jeroen@newfountain.nl - 023 - 534 8040

web-monitoring-ok