Met de introductie van de Abilities API en de AI Client is WordPress uitgegroeid tot een echte uitvoeringsengine, die je applicaties verbindt met de AI-modellen van je keuze.

Die verschuiving verandert het CMS in de kern. Tegelijk maakt ze het hele ecosysteem complexer, waardoor inzicht in processen en het monitoren van prestaties steeds belangrijker worden voor het beheer van een moderne website.

We willen je vandaag niet alleen vertellen hoe belangrijk het is om het gedrag van je site te monitoren nu machines steeds vaker (of opdringeriger) in je toegangslogs opduiken. We laten je vooral concreet zien welke directe invloed deze nieuwe AI-features hebben op de resources van je site.

Daarvoor gebruiken we twee tools in MyKinsta: Kinsta APM, onze tool voor application performance monitoring, en de toegangslogs van de server. Beide features zijn zonder extra kosten beschikbaar voor alle Kinsta klanten.

Benieuwd hoeveel invloed AI echt heeft op je WordPress site? We duiken erin!

AI-workloads in WordPress monitoren

Je site komt op verschillende manieren met AI in aanraking. Denk aan scans door AI-bots en crawlers, aan bewerkingen die plugins intern uitvoeren via de AI Client, en aan verzoeken van externe applicaties en AI-agents die je site via de Abilities API bevragen.

Neem de tijd die nodig is om een afbeelding te genereren of een audiobestand te transcriberen. Zulke AI-bewerkingen duren vaak een aantal seconden. Al die tijd is een PHP worker/thread niet beschikbaar voor andere taken, of die nu door een mens of door een machine worden gestart.

Voor lang niet elke site is dat een probleem. Maar bij drukbezochte zakelijke sites en webshops met honderden of duizenden producten wordt het een cruciale factor om nauwlettend in de gaten te houden.

Met een Application Performance Monitoring (APM) tool meet je precies welke invloed AI heeft op je WordPress site.

Je kunt bijvoorbeeld een tool als New Relic gebruiken om WordPress transacties, hooks, plugins, thema’s, databasequery’s, externe verzoeken en alles wat helpt bij het opsporen van prestatieproblemen bij te houden.

Kinsta gebruikers hebben direct in het MyKinsta dashboard toegang tot een gratis Application Performance Monitoring tool.

Een screenshot van de startpagina van de APM-tool in MyKinsta.
Kinsta APM inschakelen in MyKinsta.

Om Kinsta APM in te schakelen, ga je naar Sites > sitenaam > APM en klik je op Inschakelen. Kies het gewenste interval en laat de tool de activiteit van je site vastleggen.

Is de monitoring klaar, dan krijg je automatisch een e-mail met een link naar de resultatenpagina. Daar duik je in gedetailleerde grafieken over transacties, plugins, thema’s, hooks, trage databasequery’s en externe verzoeken.

Het tabblad Traagste externe verzoeken in Kinsta APM
Het tabblad Traagste externe verzoeken in Kinsta APM

Toegangs- en foutlogs zijn een andere goudmijn aan inzichten in wat er onder de motorkap gebeurt. Meestal open je serverlogs via het controlepaneel van je host, of via FTP of SSH in het bestandssysteem van je server.

Deze logs geven je uitgebreide data om fouten op te lossen, prestatieknelpunten op te sporen en te zien waar je meeste verkeer vandaan komt.

Als Kinsta gebruiker kun je logbestanden rechtstreeks van de server downloaden via SFTP of SSH, of via de File Manager in MyKinsta. Fout-, cache- en toegangslogs bekijk je ook direct in de logviewer van MyKinsta.

Het bestand access.log in de logviewer van MyKinsta.
Het bestand access.log in de logviewer van MyKinsta.

In de volgende secties analyseren we een AI-bewerking. Zo zie je hoe je de invloed van AI-gebruik op je website meet, en waarom daar een betrouwbare infrastructuur en goede monitoring voor nodig zijn.

We nemen een praktijkvoorbeeld: we vragen een AI-model om een uitgelichte afbeelding voor een blogpost te genereren.

AI-afbeeldingen genereren in WordPress

Voor onze tests lieten we AI een uitgelichte afbeelding voor een WordPress blogpost genereren met de officiële AI-plugin van WordPress.org. Wil je dezelfde tests uitvoeren? Volg dan deze stappen:

  1. Stel een connector in op het Connectors scherm in de WordPress admin
  2. Installeer en activeer de officiële AI-plugin van WordPress.org
  3. Schakel Kinsta APM in en houd de toegangslogs in MyKinsta in de gaten
  4. Maak een nieuw bericht aan en genereer een nieuwe uitgelichte afbeelding met de AI-feature

Aan de slag.

Stap 1: een connector instellen op het Connectors scherm

Om te beginnen heb je een API-sleutel van je AI-provider nodig. Die stap behandelen we hier niet; in de documentatie van je provider lees je hoe dat werkt.

Heb je je API-sleutel, open dan de admin van je site en ga naar Settings > Connectors. Klik bij je AI-provider op Activate en voer je API-sleutel in.

Het Connectors scherm
De centrale AI Connectors interface in het WordPress admin dashboard.

Stap 2: de officiële AI-plugin van WordPress.org installeren en activeren

WordPress levert standaard de API’s en abstracties. Wil je je site uitrusten met een feature om AI-afbeeldingen te genereren, dan heb je een plugin nodig die de AI-infrastructuur in de core gebruikt, zoals de officiële AI-plugin van WordPress.org.

Deze plugin voegt een aantal abilities toe, die je bekijkt op het Abilities Explorer scherm, onder Tools > Abilities Explorer.

Het Abilities Explorer scherm.
Het Abilities Explorer scherm, gegenereerd door de AI-plugin van WordPress.org.

Let tussen de geregistreerde abilities vooral op Image Generation and Editing. Met deze ability genereer je een uitgelichte afbeelding op basis van de content van een bericht, of op basis van een custom prompt als je de ability vanuit de Media Library aanroept.

Stap 3: Kinsta APM inschakelen en de toegangslogs in MyKinsta bekijken

Ga in MyKinsta naar Sites > sitenaam > APM en schakel Kinsta APM in. Stel een monitoringduur van 2 uur in en klik op Monitoringtijd inschakelen.

De monitoringtijd van Kinsta APM inschakelen.
De monitoringtijd van Kinsta APM inschakelen.

Terwijl de APM-tool op de achtergrond de prestaties bijhoudt, ga je naar Sites > sitenaam > Logs en kies je het tabblad access.log. De standaardinstellingen kun je laten staan.

Stap 4: een nieuw bericht aanmaken en met AI een uitgelichte afbeelding genereren

Ga terug naar je WordPress admin dashboard, maak een nieuw bericht aan, voer een titel en wat content in en klik rechts op de knop Generate featured image.

Een uitgelichte afbeelding genereren in de blokeditor.
Een uitgelichte afbeelding genereren in de blokeditor.

Na een paar seconden verschijnt een door AI gegenereerde uitgelichte afbeelding in de zijbalk met berichtinstellingen.

De door AI gegenereerde uitgelichte afbeelding.
De door AI gegenereerde uitgelichte afbeelding.

De bewerking die we willen monitoren is klaar. Tijd om de data te analyseren.

Het resourceverbruik van AI-afbeeldingsgeneratie meten

Laten we de invloed meten van een verzoek om een afbeelding te genereren via de WordPress Abilities API. De resultaten van deze test liggen niet vast: ze hangen grotendeels af van de verwerkings- en responstijden van de API van de provider, en van de specifieke bewerkingen die de plugin uitvoert als hij het verzoek verstuurt.

Ons doel is je een aanpak en methode te geven die je makkelijk in je eigen testomgevingen kunt herhalen, om het resourceverbruik en de uitvoeringstijden van AI-bewerkingen te meten.

We bekijken beide kanten van de medaille. Aan de serverkant analyseren we transacties met Kinsta APM en volgen we HTTP-verzoeken via de logviewer van MyKinsta. Aan de clientkant kijken we met de ontwikkelaarstools van de browser wat er onder de motorkap gebeurt.

Aan de slag!

Analyse in Kinsta APM

Heb je de door AI gegenereerde uitgelichte afbeelding voor je bericht, wacht dan een paar minuten. Ga daarna terug naar de Kinsta APM pagina in MyKinsta en verken de tabbladen een voor een.

Het tabblad Transacties toont een grafiek Totale transactietijd en een tabel Traagste transacties. Een transactie is een backendactiviteit die plaatsvindt om een verzoek aan je WordPress site af te handelen (zie documentatie).

De afbeelding hieronder toont de totale transactietijd in een tijdvak van twee minuten. De PHP uitvoering duurde daarin ongeveer 27 seconden, MySQL 271 ms en externe transacties ruim 19 seconden.

Totale transactietijd in Kinsta APM.
Totale transactietijd in Kinsta APM.

De tabel hieronder toont de Traagste transacties. Zoals je ziet, namen verzoeken naar het endpoint /wp-json de meeste transactietijd in beslag.

Traagste transacties in Kinsta APM.
Traagste transacties in Kinsta APM.

Op het tabblad WordPress vind je de tabellen Traagste WordPress plugins en Traagste WordPress hooks. Zoals verwacht waren ai-provider-for-google en ai de traagste plugins: samen waren ze goed voor bijna 90% van de totale duur.

Traagste WordPress plugins.
Traagste WordPress plugins.

Het tabblad Extern toont de traagste externe verzoeken, gesorteerd op Totale duur.

Traagste externe verzoeken in Kinsta APM.
Traagste externe verzoeken in Kinsta APM.

Wat betekenen deze data?

  • Totale duur (%): het percentage van de tijd dat alle verzoeken naar een transactie-endpoint binnen het gekozen tijdvak in beslag namen. Let op: deze waarde is de som van de duur van alle verzoeken naar een endpoint, niet die van één transactiesample. In ons voorbeeld waren POST-verzoeken naar het endpoint generativelanguage.googleapis.com goed voor 95,51% van alle externe transacties, en GET-verzoeken naar hetzelfde endpoint voor 3,94%.
  • Totale duur: de absolute tijd die een transactie-endpoint binnen het gekozen tijdvak in beslag neemt. Ook deze waarde is de som van de duur van alle verzoeken naar een bepaald endpoint. In ons voorbeeld hadden de POST-verzoeken naar generativelanguage.googleapis.com samen een duur van ruim 18 seconden.
  • Max. duur: de duur van de traagste transactiesample binnen het gekozen tijdvak.
  • Gem. duur: het gemiddelde van de duur van alle transactiesamples binnen het gekozen tijdvak.
  • Aantal per minuut: hoe vaak een transactie gemiddeld per minuut werd uitgevoerd.

Klik je op een specifiek verzoek, dan opent het venster Transactiesamples met de samples waarin het gekozen POST-verzoek is uitgevoerd.

Transactiesamples in Kinsta APM.
Transactiesamples in Kinsta APM.

Klik op de traagste transactiesample om de tabel Tijdlijn transactietrace te bekijken. Hier zie je stap voor stap de spans (PHP processen, MySQL databasequery’s en externe aanroepen) van een specifieke transactiesample (zie documentatie).

Tijdlijn transactietrace.
Tijdlijn transactietrace.

Klik je op een span in de tijdlijn, dan zie je een gedetailleerd overzicht en een volledige stacktrace.

De stacktrace laat precies zien welke PHP code is uitgevoerd, tot op het bestand en regelnummer (zie documentatie).

De afbeelding hieronder toont de volledige stacktrace van de transactie die de afbeelding heeft gegenereerd:

Spandetails in de tijdlijn transactietrace.
Spandetails in de tijdlijn transactietrace.

Zo ziet dat er stap voor stap uit:

Stap 1: het verzoek initialiseren

WordPress ontvangt het HTTP-verzoek, start het kernsysteem op via wp-blog-header.php en stuurt het door via de REST API controller (WP_REST_Server), die het binnenkomende verzoek synchroon afhandelt.

Het HTTP-verzoek initialiseren.
Het HTTP-verzoek initialiseren.

Stap 2: de ability activeren

Generate_Image.php roept de ability generate_image aan binnen de namespace WordPress\AI\Abilities\Image om de afbeelding voor het bericht te genereren.

De generate_image ability activeren.
De generate_image ability activeren.

Stap 3: doorsturen naar de client

class-wp-ability.php voert de callback uit en draagt de uitvoering over aan de module WP_AI_Client.

De uitvoering doorsturen naar de AI Client.
De uitvoering doorsturen naar de AI Client.

Stap 4: de prompt samenstellen

PromptBuilder.php stelt de prompt samen en GoogleTextGenerationModel.php zet de instructies om in een verzoekformaat dat met de Gemini API’s werkt.

De prompt samenstellen.
De prompt samenstellen.

Stap 5: overdragen aan de HTTP-transportlaag

HttpTransporter.php draagt de uitvoering over aan de WordPress HTTP API (http.php -> WP_Http->request).

Overdragen aan de HTTP-transportlaag.
Overdragen aan de HTTP-transportlaag.

Stap 6: een HTTP-verbinding openen

WP_Http opent een synchrone verbinding en houdt de PHP worker vast tot Google een antwoord terugstuurt (zie officiële documentatie).

Een synchrone verbinding openen.
Een synchrone verbinding openen.

Wat dit betekent

De belangrijkste conclusie: de taak voor afbeeldingsgeneratie die we hebben gemeten, is een synchrone, blokkerende bewerking.

De aanroep gaat van WP_REST_Server naar WP_Http->request binnen dezelfde levenscyclus van het HTTP-verzoek. De PHP thread wacht dus zolang de afbeelding wordt gegenereerd en teruggestuurd.

In dit voorbeeld bleef de PHP thread die het verzoek afhandelde ruim 8 seconden bezet. Andere beschikbare threads konden nog wel andere verzoeken afhandelen. Toch kunnen gelijktijdige AI-bewerkingen de PHP geheugenpool uitputten en zorgen voor langere wachtrijen, meer latency en een groter risico op time-outs (lees hoe Kinsta je helpt bij het beheren van PHP threads en geheugengebruik).

Serverlogs analyseren

Een stacktrace legt de exacte volgorde vast van PHP functies, methoden, bestanden en coderegels die de server doorloopt om een specifiek verzoek te verwerken. Toegangslogs registreren HTTP-verzoeken op webserverniveau.

Een toegangslog laat zien wie het verzoek deed (IP-adres en User Agent), wat er werd opgevraagd (URL of API endpoint), de statuscode van de response en de totale uitvoeringstijd van het verzoek.

Kortom: loganalyse geeft je een compleet, ongefilterd beeld van wat er op je server gebeurt tijdens een AI-bewerking, zoals het genereren van de uitgelichte afbeelding in ons voorbeeld.

Voor die ene afbeelding voerde WordPress vier opeenvolgende aanroepen naar de Abilities API uit.

Dit zijn de logs van de interactie met de Google API:

1. Prompt genereren

POST "/wp-json/wp-abilities/v1/abilities/ai/image-prompt-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 5.432s
Het log van de promptgeneratie in MyKinsta.
Het log van de promptgeneratie in MyKinsta.
  • Wat dit log je vertelt: de plugin gebruikt de ability image-prompt-generation om de content van het bericht naar Gemini te sturen en zo een beschrijvende prompt voor de afbeelding te laten genereren (bijvoorbeeld “Een persoon die een strakke, futuristische robot de hand schudt…”).
  • Latency: 5,43 seconden aan communicatie met de Google API.

2. Afbeelding genereren

POST "/wp-json/wp-abilities/v1/abilities/ai/image-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 9.795s
Het log van de afbeeldingsgeneratie in MyKinsta.
Het log van de afbeeldingsgeneratie in MyKinsta.
  • Wat dit log je vertelt: deze logregel hoort precies bij de transactiesample en stacktrace die we in de sectie over Kinsta APM hebben geanalyseerd. De plugin stuurt de gegenereerde prompt via de ability image-generation naar het afbeeldingsmodel van Google (Imagen).
  • PHP uitvoeringstijd: 9,79 seconden wachten op de binaire/base64 payload van de afbeelding.

3. Alt-tekst genereren

POST "/wp-json/wp-abilities/v1/abilities/ai/alt-text-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 11.305s
Het log van de alt-tekstgeneratie.
Het log van de alt-tekstgeneratie.
  • Wat dit log je vertelt: direct nadat de afbeelding is gemaakt, stuurt het systeem automatisch nog een aanroep naar de Abilities API om de alt-tekst te genereren. De ability laat Gemini vervolgens de nieuwe afbeelding analyseren en beschrijven.
  • PHP uitvoeringstijd: in totaal 11,30 seconden.

De afbeelding is gegenereerd. De volgende stap is die te registreren in de Media Library van WordPress.

4. Media-integratie

POST "/wp-json/wp-abilities/v1/abilities/ai/image-import/run?_locale=user" HTTP/2.0 200
PHP execution time: 0.839
Het log van de afbeeldingsimport in MyKinsta.
Het log van de afbeeldingsimport in MyKinsta.
  • Wat dit log je vertelt: WordPress downloadt de bestandspayload van de externe API via de ability image-import en registreert het bestand in de Media Library.
  • PHP uitvoeringstijd: 0,839 seconden.

5. Afbeelding downloaden

GET "/wp-content/uploads/2026/09/a-person-shaking-hands-with-a-sleek-futuristic-robot-inside-a-glass-dome-1024x559.jpg" HTTP/2.0 200
PHP execution time: 0.000
Het log van de afbeeldingsdownload.
Het log van de afbeeldingsdownload.
  • Wat dit log je vertelt: de blokeditor haalt het geïmporteerde afbeeldingsbestand rechtstreeks uit de map uploads om het in de interface te tonen. Dit is een statisch bestand dat de webserver direct levert, dus er is geen PHP verwerking nodig.
  • PHP uitvoeringstijd: 0,000 seconden.

Wat toegangslogs je vertellen

Tel je de uitvoeringstijden van de hele workflow voor één afbeelding bij elkaar op, dan krijg je de totale uitvoeringstijd van de volledige bewerking: prompt genereren, afbeelding genereren, alt-tekst genereren en de afbeelding importeren in WordPress.

In ons voorbeeld lieten de logs deze uitvoeringstijden zien:

  • image-prompt-generation: 5,43 s
  • image-generation: 9,79 s
  • alt-text-generation: 11,30 s
  • image-import: 0,84 s

Totaal: ~27,36 cumulatieve seconden aan PHP threadverwerkingstijd!

Dat bevestigt ons vermoeden: op een traditionele hostingomgeving met beperkte resources raken de PHP threads snel verzadigd als er twee of drie AI-taken tegelijk draaien. De server reageert dan enkele seconden niet meer op andere bezoekers.

Diagram van de PHP threadlimiet in MyKinsta Analytics.
MyKinsta Analytics laat zien hoe vaak de site de toegewezen PHP threadlimiet heeft bereikt.

Gebruikt je site meerdere AI-features, dan wordt je hostinginfrastructuur nog belangrijker. Monitoringtools als Kinsta APM en de toegangslogs van MyKinsta helpen je de invloed van AI-workloads te meten, prestatieknelpunten op te sporen en de juiste optimalisaties door te voeren.

HTTP-verzoeken aan de clientkant analyseren

Met Kinsta APM en de toegangslogs van de server begrijp je de invloed van AI op de infrastructuur van je site. Met de ontwikkelaarstools van je browser analyseer je de workflow vanuit de client.

Netwerkaanroepen analyseer je zo:

  1. Open de WordPress admin en maak een nieuw bericht aan.
  2. Open de Developer Tools van je browser met F12 (of rechtermuisklik > Inspect / Cmd + Option + I op een Mac).
  3. Kies het tabblad Network en filter op Fetch/XHR, zodat je alleen asynchrone/REST API aanroepen ziet.
  4. Klik als je zover bent op de knop Generate featured image in de blokeditor.

In het Network paneel verschijnen nu verzoeken naar de endpoints van de Abilities API. In de Firefox Developer Tools krijgen ze een schildpadicoon, het teken dat het om trage verzoeken gaat.

Klik deze verzoeken een voor een aan en bekijk per verzoek de tabbladen Request, Response en Timings.

1. Prompt genereren

De eerste aanroep naar de Google AI API genereert de prompt. De payload van dit verzoek bevat de titel en de content van het bericht.

Payload van het verzoek voor promptgeneratie.
De payload van dit verzoek voor promptgeneratie is de content van het bericht.

De response is de prompt die naar het Imagen model wordt gestuurd.

De response van de Google API.
De response van de Google API.

Ga daarna naar het tabblad Timings om de uitvoeringstijden te bekijken. Het genereren van de prompt voor deze laatste afbeelding duurde 5,52 seconden.

Timings van de promptgeneratie.
De promptgeneratie gaf een wachttijd van 5,52 s.

2. Afbeelding genereren

Daarna volgt het verzoek om de afbeelding te genereren. De payload is de prompt die bij het vorige verzoek is ontvangen.

Verzoek voor afbeeldingsgeneratie.
De payload van het verzoek voor afbeeldingsgeneratie is de ontvangen prompt.

De response van de Google API is de base64 payload van de afbeelding.

Response van de afbeeldingsgeneratie.
De response van Google AI is de base64 payload van de afbeelding.

Op het tabblad Timings zie je de totale uitvoeringstijd van de afbeeldingsgeneratie. Het verzoek wachtte 9,92 seconden.

Timings van de afbeeldingsgeneratie.
De afbeeldingsgeneratie had een wachttijd van bijna 10 seconden.

3. Alt-tekst genereren

Bij de derde aanroep vraagt de Abilities API de Google API om de alt-tekst van de afbeelding te genereren. Het verzoek bevat de base64 payload van de afbeelding.

Verzoek voor de alt-tekst.
De Abilities API stuurt een verzoek om de alt-tekst van de afbeelding te genereren.

De API response bevat de alt-tekst van de afbeelding.

Response van de alt-tekstgeneratie.
De response van de Google API is de alt-tekst van de afbeelding.

Ondanks de korte output duurde het decoderen van de afbeelding en het genereren van de tekst opvallend lang: 7,32 s.

Wachttijd van de alt-tekstgeneratie.
Wachttijd van de alt-tekstgeneratie.

4. Afbeelding downloaden

Het vierde verzoek aan de Abilities API verwerkt de binaire payload, downloadt het afbeeldingsbestand, maakt uitsneden van de afbeelding en registreert de afbeelding in de Media Library van WordPress. De wachttijd voor dit laatste verzoek was 1,79 s.

Wachttijd voor het downloaden van de afbeelding.
Wachttijd voor het downloaden van de afbeelding.

Tel je de wachttijden op van de vier verzoeken die de Abilities API uitvoerde om de uitgelichte afbeelding te genereren, dan krijg je:

  • Prompt genereren: 5,52 s
  • Afbeelding genereren: 9,92 s
  • Alt-tekst genereren: 7,32 s
  • Afbeelding downloaden en registreren: 1,79 s

De totale wachttijd was maar liefst 24,55 seconden.

De invloed van AI op de infrastructuur van je site

Of je nu plugins van derden of custom code gebruikt om AI-features aan je site toe te voegen: het is cruciaal om te weten welke invloed ze hebben op de prestaties van je server en het resourceverbruik.

Inefficiënt resourcebeheer of een slechte codearchitectuur kan je server snel overbelasten. Dat leidt tot verzadigde PHP resources, server-time-outs, overmatig bandbreedtegebruik, HTTP 5xx-fouten of zelfs complete downtime.

Een snelle cloudhost met een infrastructuur op basis van containers, caching op meerdere niveaus, automatische databaseoptimalisatie en schaalbare PHP workers kan de verwerkingslast van AI niet wegtoveren. Wel geeft zo’n host je site de buffer die nodig is om knelpunten te voorkomen en prestatiepieken op te vangen voordat je bezoekers er last van hebben.

Niemand zit te wachten op een trage site tijdens piekmomenten als Black Friday, en bedrijven kunnen zich geen server-time-outs veroorloven als de uptime direct invloed heeft op de omzet. Nu machines een steeds grotere rol spelen in de werking van websites, is een snelle, schaalbare hostingprovider geen luxe meer.

Bij Kinsta krijg je de prestaties, beveiliging en het inzicht die moderne WordPress sites nodig hebben in het AI-tijdperk. Wil je het verschil zelf zien? Bekijk hier onze pakketten.

Carlo Daniele Kinsta

Carlo is een gepassioneerd liefhebber van webdesign en front-end development. Hij werkt al meer dan 10 jaar met WordPress, ook in samenwerking met Italiaanse en Europese universiteiten en onderwijsinstellingen. Hij heeft tientallen artikelen en gidsen over WordPress geschreven, gepubliceerd op zowel Italiaanse als internationale websites en in gedrukte tijdschriften. Je kunt Carlo vinden op X en LinkedIn.