WordPress heeft bij ons allemaal een speciaal plekje in het hart. Velen van ons hier bij Kinsta dragen op meerdere manieren bij aan de WordPress community – ook buiten het werk om. Zelf heb ik een marketingblog waarin ik unieke methodes deel om je WordPress site naar een hoger niveau te tillen. Je zou kunnen denken dat, aangezien ik voor een hostingbedrijf werk, mijn sites om de een of andere reden het gewoon ‘doen’ en ik er nooit problemen mee heb. Maar WordPress is niet alleen maar rozengeur en maneschijn. Je zal simpelweg af en toe problemen tegenkomen en dat is precies de reden waarom het zo belangrijk is om over de juiste tools en het juiste supportteam te beschikken wanneer dat gebeurt.

Vandaag leg ik uit hoe ik een vreemd prestatieprobleem (waarschijnlijk met een kans van één op de miljoen dat die voor zou komen) op mijn WordPress site heb opgelost en vertel ik meer over welke tools en strategieën ik gebruikte om mijn site er weer bovenop te helpen. Hoewel elk geval natuurlijk uniek is, geldt dit niet voor de workflow om het probleem op te lossen – deze zijn normaal gesproken hetzelfde. Om die reden voeg ik ook een “Stuff Happens – WP Performance Checklist” toe. Hopelijk kan je deze gebruiken wanneer je de volgende keer vastloopt met het oplossen van WordPress prestatieproblemen die buiten je expertise vallen.

Checklist WordPress performance (bij calamiteiten)

Deze prestatiechecklist ziet er misschien anders uit dan je gewend bent. In plaats van dat ik je uitleg hoe je WordPress sites versnelt, richt deze checklist zich op wat je moet doen als je (in de toekomst) in de problemen komt. En die volgende keer komt er zeker, daar kan je op rekenen. Het kan zijn dat je host contact met je heeft opgenomen met de mededeling dat je site de server overbelast. Of misschien heb je gemerkt dat er iets is wat je site vertraagt, zoals de altijd populare admin-ajax.php verzoeken.

Volg onderstaande aanbevelingen voordat je je handdoek in de ring gooit en het opgeeft. Er is voor alles een antwoord, maar het kan best lastig te om de juiste te vinden.

  1. Performance-monitoring implementeren
  2. Profiteren van tools als New Relic
  3. Staging gebruiken – het bestaat niet voor niets
  4. Investeren in premium WordPress hosting
  5. Onderhoudsbedrijven doen net dat extra beetje meer
  6. Wees niet bang om problemen aan te kaarten bij de developer
  7. Je kan altijd een WP developer inschakelen

1. Uptime- en performancemonitoring implementeren

Als het gaat om dit soort problemen, kan je nooit té goed voorbereid zijn. Een van de beste dingen die je kan doen om ervoor te zorgen dat je er vóór je bezoekers achterkomt dat je site traag is, is het implementeren van uptime- en performancemonitoring. Dat is ook hoe ik in mijn geval erachter kwam dat mijn site tegen problemen aanliep. Kinsta checkt elke twee minuten de status van alle websites die we hosten. Dit vertaalt zich naar maar liefst 720 checks per dag voor elke gehoste site.

Uptime monitoring
Uptime monitoring.

Dankzij New Relic Synthetics en APM hebben we zelfs de mogelijkheid om – indien nodig – veel verschillende datapoints te monitoren met betrekking tot WordPress sites:

  • Laadtijden van end-users
  • Laadtijden van de app-server
  • Foutpercentages
  • Doorvoer
  • Succespercentage (uptime)
  • Apdex scores
Apdex scores
Apdex scores.

Dit heeft betrekking op zowel uptime als het monitoren van prestaties. Als een site down gaat, dan is het Kinsta team hiervan op de hoogte nog voordat jij dit weet. Daarnaast, als een site die we monitoren de acceptabele interne prestatiedrempels overschrijdt, dan nemen we contact met je op om je te helpen met het oplossen van het probleem op je site.

Soms kan dit gepaard gaan met het inschakelen van een externe developer, vooral als slecht geschreven code de oorzaak van het probleem is. Of het kan betekenen dat er meer PHP workers nodig zijn. Ten slotte kan het natuurlijk ook iets zijn dat je eenvoudig op kan lossen.

We willen dat je slaagt in hetgeen je doet en zorgen dat je voor je bezoekers een snelle site hebt is een van onze grootste prioriteiten. Als we kunnen vaststellen dat plugin X ervoor zorgt dat je site crasht, dan willen we dat je dit weet. Vaak komt het voor dat prestatieproblemen veroorzaakt worden door slechte plugin-updates, slecht geschreven code of het niet ondersteunen van de meest recente versie van PHP, etc.

Tools voor het monitoren van uptime en performance

Ook als je Kinsta niet gebruikt, zijn er nog steeds veel externe tools die je kan gebruiken om je te waarschuwen over zowel uptime als performance. Dit zijn een aantal die je wellicht wil bekijken:

2. Profiteer van tools als New Relic (ze zijn van onschatbare waarde)

Tools als New Relic zijn niet alleen fantastisch voor het monitoren van uptime en performance, maar ook van onschatbare waarde bij het uitzoeken van de specifieke oorzaak van prestatieproblemen. Kinsta heeft een New Relic integratie waarmee gebruikers eenvoudig hun eigen licentiesleutels kunnen gebruiken. Hoewel New Relic zelf geen onderdeel uitmaakt van onze hosting, kan ons supportteam de tool wel vanuit onze kant activeren om je, indien nodig, te helpen met het oplossen van problemen. Als alternatief kan je een gratis plugin gebruiken als Query Monitor.

New Relic monitoring inschakelen in MyKinsta.
New Relic monitoring inschakelen in MyKinsta..

Er zijn een aantal plekken in New Relic die je kunnen helpen om snel prestatieproblemen op te lossen. De eerste is het tabblad “WordPress → Plugins and themes” Op mijn site woorkup, die ik vandaag als casestudy gebruik, kon ik direct zien dat het probleem dat ik tegenkwam hoogstwaarschijnlijk afkomstig was van de plugin “gp-premium” die op mijn site draaide. Waarom? Daar kom ik later op terug.

New Relic plugins en thema's
New Relic plugins en thema’s.

Opmerking: De bovenstaande sectie in New Relic is niet altijd 100% nauwkeurig. In dit geval echter wel. Toch is het altijd aan te raden om daar eerst te kijken.

Hierna had ik dus een redelijk sterk vermoeden dat de slechtere prestaties te wijten zijn aan mijn plugin “gp-premium” (een uitbreiding van mijn GeneratePress WordPress thema). Met dit in het achterhoofd ging ik naar het tabblad “Transactions”. We kunnen meteen zien dat het aantal admin-ajax.php transacties omhoog was geschoten!

New Relic admin-ajax.php probleem
New Relic admin-ajax.php probleem.

Als je niet over New Relic beschikt, kijk dan zeker eens naar onze geweldige tutorial over hoe je een hoog admin-ajax verbruik kan diagnosticeren op je WordPress site. Ook in mijn WordPress logs zag ik constante admin-ajax verzoeken. Je kunt ook gebruik maken van onze ingebouwde Kinsta APM tool.

WordPress foutenlogboek admin-ajax verzoeken
WordPress foutenlogboek admin-ajax verzoeken.

De volgende stap was om te graven in de admin-ajax.php transacties, specifiek naar de databasequery’s die de meeste tijd in beslag namen. Je kan op de tabbladen “Trace Details” en “Database queries” klikken.

Querytrace database
Querytrace database.

Soms geeft de eigenlijke query een indicatie van waar het probleem zich bevindt, maar in dit geval was dit niet zo. Iets anders viel echter meteen iets op, en dat was de map /gp-premium/. Vergeet niet dat we ook van bovenaf zagen dat “gp-premium” vermoedelijk de plugin was die het probleem veroorzaakte. Als je het zowel in de secties plugin/thema en trace ziet, dan is dat meestal een betrouwbare indicator dat dit een goede plek is om te beginnen.

…s/gp-premium/library/image-processing-queue/includes/wp-background-process.php
Stack-trace
Stack-trace.

De volgende stap was Google openen! Google kan in zulke gevallen namelijk heel erg nuttig zijn.

Dus zocht ik naar “Image Processing Queue”. Het allereerste resultaat dat ik zag, was de plugin Image Processing Queue van Delicious Brain. Door het lezen van de beschrijving kwam ik erachter dat het werd gebruikt voor het verwerken van afbeeldingen voor WordPress thema’s. In wezen worden de verschillende afbeeldingsgroottes in de achtergrond gegenereerd met behulp van WP Queue.

Image Processing Queue
Image Processing Queue.

Een snelle zoektocht naar dezelfde term, maar dan samen met “GeneratePress” resulteerde in hun recente changelog. Tada! Inderdaad, de afbeeldingsresizer in GeneratePress was onlangs gewijzigd van Aqua Resizer naar Image Processing Queue. Dit was ook ongeveer het moment dat ik mijn thema van een update had voorzien en verder had ik ook geen noemenswaardige dingen aan mijn site veranderd. Dit is precies de reden waarom changelogs zo belangrijk zijn! Ze bieden namelijk handvatten tijdens het troubleshooten.

GP Update
GP Update.

Het rare was dat ik ook andere sites met GeneratePress had, maar dat die dit probleem niet hadden. Ik had dus een goed idee van wat er aan de hand kon zijn, maar ik was nog niet 100% zeker. De volgende stap was dus om mijn staging-omgeving in stelling te brengen en te beginnen met het debuggen van WordPress.

3. Staging-sites gebruiken zonder de productiesite aan te raken

Om eerlijk te zijn, zou ik niet weten waar ik ben zonder staging-omgevingen. Ze zijn enorm handig om problemen zoals deze op te lossen. Gelukkig heeft Kinsta gebruiksvriendelijke testomgevingen. Ik begaf me dus naar mijn oude vertrouwde Kinsta dashboard en pushte een kopie van mijn productiesite naar staging. Als jouw WordPress host geen staging-omgevingen biedt, kan je ook een plugin als WP Staging gebruiken, ook al is dit niet een hele makkelijke optie.

Een WordPress staging-omgeving aanmaken.
Een WordPress staging-omgeving aanmaken.

Nadat ik mijn dev-site in gebruik had genomen, was het allereerste dat ik deed het in bulk uitschakelen van mijn plugins. Ik heb gemerkt dat veel mensen deze eenvoudige stap simpelweg overslaan en negeren. Het is bijna alsof mensen denken dat het opnieuw opstarten van een computer een probleem niet kan oplossen. Ik werkte vroeger als supportmedewerker voor computers, dus laten we hier maar niet eens over beginnen. 🐰

Het belangrijkste is om altijd eerst al je plugins uit te schakelen. Dit is verreweg een van de gemakkelijkste manieren om het probleem te pinpointen. Ga hiervoor naar Plugins, selecteer ze allemaal en klik op “Deactiveren” uit de bulkopties.

Alle WordPress plugins uitschakelen
Alle WordPress plugins uitschakelen.

Nadat ik dit had gedaan, zag ik in New Relic dat de reactietijden onmiddellijk terug naar normaal gingen op mijn site. Ik wist nu dus dat een plugin het probleem veroorzaakte. En omdat ik hierboven al was begonnen met het troubleshooten, had ik nog steeds het vermoeden dat het de “gp-premium” plugin betrof.

Normale reactietijden
Normale reactietijden.

Ik schakelde vervolgens de plugin “gp-premium” opnieuw in zodat ik het probleem kon repliceren. En ja, de laadtijden (webtransactietijden) gingen meteen weer omhoog.

Opnieuw lange reactietijden
Opnieuw lange reactietijden.

Super! Ik weet nu dus 100% zeker dat deze plugin de oorzaak was. Maar wat nu? Het probleem is natuurlijk nog niet opgelost. Vanwege het feit dat het uit de wachtrij van de afbeeldingsverwerker kwam, was de volgende hint om eens goed te kijken naar de CRON jobs en transients. Deze gebieden moet je altijd checken als je wachtrijen hebt, van welk type dan ook. Sterker nog, ik raad ze aan om ze sowieso altijd te controleren. Autoloaded data is een andere gebruikelijke boosdoener.

Leessuggestie: Gepland artikel niet gepubliceerd? 2 methodes om de “Missed Schedule” foutmelding in WordPress op te lossen.

Transients zijn een simpele vorm van WordPress caching waar ook vervaltijden aan zijn gekoppeld. Om snel mijn transients te bekijken, installeerde ik de gratis plugin van Pippin Williamson genaamd Transients Manager. Toen ik deze opstartte, viel me meteen iets op. Een transient item met de naam wp_image_processing_queue_process_lock. Verder had deze een vervaltijd van 1 minuut en kwamen er steeds nieuwe bij.

Transients
Transients.

Hoewel de plugin een functie bevat waarmee je transients kan verwijderen, werkte deze niet. Het was tijd om in de database te kijken. Ik logde dus in op phpmyadmin. Transients worden normaal gesproken opgeslagen in de tabel wp_options dus ik voerde vanuit het tabblad “Search” een snelle zoekopdracht uit om rijen te vinden met die option-naam.

SELECT * FROM wp_options WHERE option_name LIKE '%wp_image_processing%'

Oeps! Het bleek dat ik 695.846 rijen had met %wp_image_processing%. 😲

wp_image_processing
wp_image_processing.

Dit is precies waar staging zo van pas komt. Omdat het geen kwaad kan om dingen te beschadigen of zaken te testen, was mijn volgende stap het verwijderen van alle rijen van deze option. Ik voerde de volgende query uit vanuit het “SQL” tabblad om alle rijen te verwijderen met deze option-naam:

DELETE FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
Rijen verwijderen
Rijen verwijderen.

En bij toverslag waren de reactietijden van mijn site weer normaal na het verwijderen van deze rijen. 👏

Prestatieprobleem met WordPress opgelost
Prestatieprobleem met WordPress opgelost.

Zoals ik al eerder zei, hadden mijn andere sites die GeneratePress gebruikten geen last van dit probleem. Ook hadden ze niet al deze rijen met transients in de database. Het kan zijn dat er bij het upgraden iets niet werd verwijderd, wat wel had gemoeten. Het lijkt er dus op dat het niet de fout was van de developer, maar waarschijnlijk gewoon een foutje van de tijdelijke cache.

Met andere woorden, dit had elke plugin of elk thema kunnen overkomen. GeneratePress is en blijft een van mijn favoriete WordPress producten aller tijden. Heb ik je al bang gemaakt? Dit hoort nou eenmaal bij WordPress!

Als je weinig begreep van de bovenstaande stappen, raad ik je ten zeerste aan om de rest van de onderstaande stappen te bekijken die beschrijven hoe je vergelijkbare problemen oplost of voorkomt.

4. Investeer in premium hosting met de allerbeste support

Bovenstaande problemen zijn precies de reden waarom het belangrijk is om te investeren in een premium host zoals Kinsta die ook managed WordPress hosting biedt.

In tegenstelling tot wat sommige mensen je misschien doen geloven, is er geen architectuur of host die op magische wijze slecht geschreven code kan repareren. Hoewel mijn woorkup-site bij Kinsta wordt gehost, kunnen kleine dingen zoals een verkeerde update van een plugin, of in dit geval corrupte transients, WordPress enorm vertragen! Dat is een van de redenen waarom we automatische back-ups, testomgevingen en een New Relic integratie bieden. Deze features en tools helpen je met het beschermen van je site en om problemen snel op te lossen.

WordPress support
WordPress support.

En dit zijn ook de dingen waar ons deskundige supportteam van Kinsta je mee kan helpen, voor als je problemen tegenkomt zoals de rare hierboven. Ons supportteam behandelt dagelijks dergelijke unieke en complexe problemen. En hoewel ook wij geen fix hebben voor slecht geschreven code, kunnen we je meestal in elk geval in de goede richting helpen. Het proces dat hierbij hoort, komt meestal neer op het inschakelen van New Relic, deze tool een tijd je laten lopen, en vervolgens ons team voor WordPress detectives laten spelen.

Als je geen klant van Kinsta bent, dan raden we je aan om ervoor te zorgen dat je supportteam van topklasse is, welke host je ook kiest! We nemen dit zo serieus dat we minder dan 1% van de sollicitanten aannemen die zich aanmelden om deel uit te maken van ons team.

En natuurlijk doet infrastructuur er wel toe als het gaat om prestaties en het kunnen dealen met zware serverloads. Dit zijn een aantal manieren waarop Kinsta helpt om je site snel te laten werken, zodat je geen prestatieproblemen ervaart:

  • We maken gebruik van geïsoleerde LXC softwarecontainers wat betekent dat er geen resources worden gedeeld.
  • We laten klanten gratis kiezen uit meer dan 20 datacenters van over de hele wereld. Dit zorgt voor minder vertraging, ongeacht waar je je bevindt.
  • We maken gebruik van het Premium Tier netwerk van Google Cloud Platform (niet hun Standard Tier). Dit zorgt voor razendsnelle netwerksnelheden.
  • We implementeren altijd de nieuwste en beste versie van PHP. We waren de eerste managed host die PHP 7.2 implementeerde, een versie die 3x sneller is dan PHP 5.6. Ook kan je bij ons PHP 7.3 gebruiken, welke gemiddeld 9% sneller is dan PHP 7.2. Ook is PHP 8.1 nu beschikbaar. Bekijk onze PHP benchmarks.
  • We werken samen met een CDN provider, dit hebben we van grond af opgebouwd met de nadruk op hoge prestaties.

Bekijk alle manieren die Kinsta zo uniek maken.

5. Meer hulp nodig? Daar zijn onderhoudsbedrijven voor

In de afgelopen vijf jaar is er een nieuw soort bedrijf ontstaan binnen onze branche: WordPress onderhoudsbedrijven. Deze bedrijven bieden een net wat andere dienst aan dan wij bij Kinsta en kunnen in sommige gevallen al je vervelende WordPress taken uit handen nemen. Dit zijn een aantal voorbeelden:

  • Google Search Console instellen
  • Google Analytics integratie
  • Wekelijkse rapporten over ranking van keywords + analytics
  • Analytics app voor sociale media
  • Optimaliseren mobiel + tablet
  • Ontwikkeling van plugins
  • Onbeperkte bewerkingen (dat klopt, sommigen zullen zelfs kleine taken voor je uitvoeren, zoals het bijwerken van je logo, het toevoegen van een WooCommerce product, etc.)

En ja, veel van hen bieden ook dagelijkse of wekelijkse uptime-monitoring. Hieronder vind je een aantal WordPress onderhoudsbedrijven die je zou kunnen bekijken. Opmerking: we nemen onze aanbevelingen zeer serieus!

SkyrocketWP

SkyrocketWP biedt WordPress onderhoudsdiensten, -ondersteuning en een hostingoplossing die is gebouwd om WordPress te beheren voor mensen die liever hun bedrijf laten groeien. We deden zelfs een casestudy met ze, dus neem gerust een kijkje!

SkyrocketWP
SkyrocketWP

WP-Tonic

WP-Tonic biedt een op elke klant afgestemde ondersteunings- en onderhoudsdienst voor drukke ondernemers. Heb je zelf geen tijd om je problemen met WordPress op te lossen? Laat WP-Tonic het voor je doen. Ook hebben ze een populairste podcast waarin ze eigenaren van WordPress bedrijven en developers interviewen, om je een kijkje te geven in wat er zich in deze branche afspeelt. Zorg ervoor dat je het interview met hun oprichter eens leest.

WP-Tonic
WP-Tonic

WP Buffs

WP Buffs biedt WordPress diensten aan serieuze website-eigenaren en white-label agencypartners. Of zoals ze op hun pagina zeggen: “Maak kennis met je nieuwe WP CTO!” WP Buffs wordt met trots gehost door Kinsta.

WP Buffs
WP Buffs

6. Wees niet bang om problemen aan te kaarten bij de developer

Nadat je hebt vastgesteld wat de oorzaak van je prestatieprobleem met WordPress kan zijn, wees dan niet bang om het probleem aan te kaarten bij de ontwikkelaar! Vaak helpen ontwikkelaars je graag en zijn ze dolblij dat je hen vertelt als er iets mis is gegaan met hun product, zodat ze voor iedereen een bugfix kunnen maken.

Ik nam contact op met Tom, de ontwikkelaar van GeneratePress, en hij reageerde meteen, zoals altijd. Het probleem is dus geheel te wijten aan corrupte transients, maar zoals je kan zien, brengt hij wel wijzigingen aan in hun methode voor de wachtrij (gedeeltelijk hierdoor). Jouw feedback als gebruiker kan ontwikkelaars dus helpen om belangrijke beslissingen te maken over wat het beste kan worden geïmplementeerd of gewijzigd in hun plugins of thema’s.

Antwoord van WordPress developer
Antwoord van WordPress developer.

7. Je kan altijd een WordPress developer inhuren

In het ergste geval kan je altijd een WordPress developer inhuren om je probleem op te lossen. Misschien kwam je erachter dat de plugin die je gebruikt slecht geschreven code bevat en dat de maker deze niet kan of wil repareren. Of misschien heb je aanvullende optimalisaties nodig die buiten de scope van het supportteam van Kinsta vallen.

Het lastige van het inhuren van een ontwikkelaar is: hoe vind je iemand met een goede reputatie en die goed is in wat hij of zij doet?

We raden Codeable ten zeerste aan, omdat ze net als bij Kinsta enorm selectief zijn in wie ze aannemen. Hun ontwikkelaars worden allemaal goed gescreend voordat ze in dienst mogen treden. Medewerkers van Codeable beoordelen portfolio’s en cv’s persoonlijk. Ze hebben meer dan 25,000 klanten en slechts 300 WordPress experts. Slechts 2% van de aanmeldingen wordt geaccepteerd. Ze willen alleen het beste van het beste, wat je als klant weer veel tijd en frustratie kan besparen.

WordPress Developer vacatures bij Codeable
WordPress Developer vacatures bij Codeable.

Ze zijn toegewijd aan het leveren van WordPress outsourcingdiensten en richten zich volledig op het matchen van getalenteerde ontwikkelaars met klanten. We hadden het genoegen om Per Esbensen te interviewen, de CEO van Codeable. Het is verfrissend om hun toewijding te zien om een gemeenschap van WordPress ontwikkelaars op te bouwen.

We moeten ook een persoonlijke shout-out geven aan Mike Andreasen, een fulltime Codeable developer die gespecialiseerd is in prestatieoptimalisatie, die veel klanten hier bij Kinsta heeft geholpen met complexe installaties om hun site naar een hoger niveau te tillen.

Webprestatie-audit met Mike
Webprestatie-audit met Mike.

Aanvullende bronnen

We zijn bij Kinsta waarschijnlijk bovengemiddeld geobsedeerd als het gaat om prestaties. Daarom zijn hier enkele aanvullende bronnen die we hebben geschreven om je te helpen met een aantal van de problemen die je tegenkomt bij het debuggen van WordPress prestaties:

Samenvatting

Of je nu technisch onderlegd bent of niet, er zijn altijd oplossingen voor je beschikbaar als het gaat om het oplossen van prestatieproblemen met WordPress. De eerste voor de hand liggende aanbeveling is dat je jezelf de best mogelijke start geeft door een hostingprovider te kiezen die niet alleen een solide infrastructuur heeft, maar ook over een supportteam van wereldklasse beschikt op deze te ondersteunen. Het laatste dat je wilt, is dat je WordPress site uitvalt of traag wordt, omdat je niet wist welke stappen je moest nemen.

Profiteer van de geweldige tools die beschikbaar zijn, zoals New Relic, waarmee je veel tijd bespaart bij het opsporen van fouten. En als het erop aankomt, zijn er talloze getalenteerde WordPress ontwikkelaars te vinden binnen onze gemeenschap. Wees niet bang om er een in te huren.

Heb je wel eens prestatieproblemen ervaren waar je op het punt van opgeven stond? Zo ja, laat het ons weten in de reacties hieronder!

Brian Jackson

Brian heeft een enorme passie voor WordPress, gebruikt het al meer dan tien jaar en heeft zelfs al aantal premium plugins ontwikkeld. Brian houdt van bloggen, films en hikes. Kom in contact met Brian op Twitter.