Door te kiezen voor een headless WordPress site in plaats van een traditionele site-architectuur verandert het SEO-spel behoorlijk. Deze aanpak scheidt de voorkant van de site van de achterkant, wat de flexibiliteit en snelheid ten goede komt. Maar het brengt ook nieuwe SEO uitdagingen met zich mee.

Het zit zo: de zichtbaarheid van je site en hoe mensen je vinden via zoekmachines hangen allemaal af van je SEO tactieken. Daarom behandelen we hier vandaag een aantal geavanceerde SEO strategieën die speciaal zijn gemaakt voor headless WordPress setups.

We zullen het hebben over het zorgen dat zoekmachines je site goed kunnen crawlen, het aanpassen van metatags en meer. Of je nu de site codeert of marketingstrategieën ontwikkelt, je krijgt praktische tips om je SEO vaardigheden aan te scherpen.

Laten we beginnen.

Hoe headless WordPress sites crawlable te maken

Het crawlable maken van headless WordPress sites brengt een aantal unieke uitdagingen met zich mee die traditionele site setups niet tegenkomen. De belangrijkste hindernis komt voort uit het feit dat inhoud in headless sites client-side wordt gerenderd met behulp van JavaScript, wat in het verleden problemen opleverde voor zoekmachine bots in termen van crawling en indexering.

Moderne technieken zoals dynamische rendering en server-side rendering hebben het echter een stuk eenvoudiger gemaakt om deze problemen aan te pakken.

Dynamisch renderen

Dynamische rendering dient als een brug tussen inhoud met veel JavaScript en crawlers van zoekmachines. Hierbij wordt een vooraf gerenderde, statische HTML snapshot van de inhoud van je site aan zoekmachines gepresenteerd, terwijl gebruikers de dynamische, interactieve versie blijven zien.

Dit zorgt ervoor dat crawlers de inhoud van je site kunnen indexeren zonder JavaScript te hoeven uitvoeren, waardoor de zichtbaarheid en SEO prestaties direct verbeteren.

Om dynamische rendering te implementeren in een headless WordPress omgeving, gebruik je meestal een oplossing zoals prerender.io of bouw je je eigen renderingmechanisme aan de serverkant, mogelijk met Node.js.

Je kunt Prerender.io gebruiken om server-side rendering toe te voegen.
Prerender

Hier is een conceptueel overzicht:

1. User agents detecteren

Je moet onderscheid maken tussen verzoeken van gebruikers (browsers) en die van crawlers (zoals Googlebot). Dit kun je doen door de user agent te controleren in de HTTP headers van binnenkomende verzoeken.

2. Statische inhoud aan bots leveren

Wanneer een crawler wordt gedetecteerd, stuurt je server, in plaats van de gebruikelijke inhoud met veel JavaScript, het verzoek door naar een vooraf gerenderde, statische HTML versie van de opgevraagde pagina. Dit kun je bereiken door een prerender service te gebruiken of door een pre-rendering setup op je server te hebben die statische HTML pagina’s van je inhoud genereert, on the fly of vanuit een cache.

3. Instellen met WordPress

Diensten zoals prerender.io bieden middleware die je kunt integreren met je server. Deze middleware onderschept inkomende verzoeken, controleert of ze van crawlers komen en als dat zo is, serveert het een voorgecalculeerde pagina uit de cache van prerender.io of start het renderen van een nieuwe pagina als die niet in de cache zit.

Als je een aangepaste oplossing bouwt, gebruik je meestal Puppeteer in een Node.js omgeving om pagina’s vooraf te renderen. Wanneer je WordPress API inhoud levert aan je Node.js server, wordt de user agent gecontroleerd. Als het een crawler is, rendert Puppeteer de pagina, slaat de statische HTML op en serveert deze versie.

Dit proces kan worden geoptimaliseerd door de statische pagina’s te cachen om te voorkomen dat ze bij elk crawler verzoek worden gerenderd.

Server-side rendering

Bij server-side rendering wordt de inhoud van de pagina op de server gerenderd voordat deze de client bereikt. Dit betekent dat wanneer een zoekmachinebot een pagina opvraagt, deze een volledig gerenderde HTML pagina ontvangt, waardoor deze direct indexeerbaar is.

Je kunt server-side rendering implementeren door verschillende JavaScript frameworks en bibliotheken te gebruiken, zoals React en Node.js, om content direct op de server te renderen. Deze aanpak helpt niet alleen om inhoud toegankelijker te maken voor zoekmachines, maar verbetert ook de algehele gebruikerservaring door het laden van pagina’s te versnellen.

Voor server-side rendering kan het gebruik van frameworks als Next.js in combinatie met de REST API of GraphQL van WordPress het proces stroomlijnen.

Een typische opstelling zou kunnen bestaan uit het ophalen van gegevens met GraphQL en het renderen van pagina’s op de server met Next.js, waarbij de inhoud vooraf wordt ingevuld voordat deze wordt geserveerd.

Canonical URL’s configureren

Het configureren van canonical URL’s voor een headless WordPress site is een andere manier om SEO integriteit te behouden, vooral wanneer content wordt geserveerd via een ontkoppelde front-end zoals Gatsby of Next.js.

Canonical URL’s helpen problemen met dubbele content te voorkomen door zoekmachines te vertellen welke versie van een contentpagina de primaire of “canonical” versie is. Dit is nodig in een headless omgeving waar content toegankelijk kan zijn via meerdere routes of endpoints.

Waarom canonical URL’s belangrijk zijn

In headless WordPress neemt het risico op duplicatie van content toe door de scheiding tussen de front-end en de back-end van WordPress. Canonieke URL’s beperken dit risico door zoekmachines te sturen naar het indexeren van de voorkeurs-URL. Dit zorgt ervoor dat de SEO waarde wordt geconsolideerd op de canonical pagina in plaats van te worden verspreid over meerdere versies van dezelfde inhoud.

Door de tijd te nemen om canonical URL’s in te stellen, wordt ook duidelijk welke versie van de inhoud moet worden weergegeven in de zoekresultaten.

Hoe canonical URL’s in te stellen

Het implementeren van canonical URL’s in een headless WordPress omgeving kan efficiënt worden beheerd met behulp van de Yoast SEO plugin, samen met WPGraphQL, voor het verbinden van Yoast SEO gegevens met je headless setup.

Hier is een overzicht van een proces dat webontwikkelaar Andrew Kepson tot in detail beschrijft en waarbij een paar populaire plugins betrokken zijn:

  • Gebruik de Yoast SEO plugin voor eenvoudig beheer van canonical URL’s direct in de WordPress admin. Door de canonical URL voor elk stuk inhoud op te geven, kun je de voorkeurs-URL rechtstreeks vanuit WordPress beheren.
  • De WPGraphQL plugin creëert een GraphQL endpoint voor je WordPress site, waardoor de front-end applicatie (gebouwd met frameworks zoals Gatsby of Next.js) WordPress content kan bevragen, inclusief SEO gegevens die worden geleverd door Yoast.
  • Gebruik vervolgens de WPGraphQL Yoast SEO Addon om als brug te dienen tussen Yoast SEO en WPGraphQL en om de SEO velden van Yoast (inclusief canonical URL’s) te verbinden met het schema van Yoast. Hierdoor kan je headless frontend de canonical URL’s die zijn ingesteld in Yoast opvragen en gebruiken, zodat de juiste canonical tags worden weergegeven in de head van je pagina’s.
wpgraphql
Gebruik de WPGraphQL plugin om canonical URL’s te configureren in een headless omgeving.

In de praktijk kun je, zodra Yoast en de benodigde WPGraphQL addons zijn geïnstalleerd en geactiveerd, de SEO gegevens van je site rechtstreeks vanuit WordPress beheren.

Bij het instellen van je front-end applicatie, zul je deze SEO gegevens, inclusief canonical URL’s, opvragen via WPGraphQL en op de juiste manier weergeven in de head van je pagina’s. Dit zorgt ervoor dat zoekmachines je canonical URL’s correct herkennen en indexeren, zelfs in een ontkoppelde architectuur.

Metatags optimaliseren in een headless WordPress omgeving

Het optimaliseren van metatags in een headless WordPress omgeving, vooral wanneer je een front-end technologie zoals React gebruikt, is essentieel voor het verbeteren van de SEO prestaties van je site. Metatags spelen een belangrijke rol in hoe zoekmachines je webpagina’s begrijpen en weergeven in zoekresultaten. Ze helpen bij het definiëren van de titel, beschrijving, trefwoorden en andere belangrijke informatie over je pagina’s die zoekmachines gebruiken om inhoud te indexeren en effectief te ranken.

Metatags zijn natuurlijk belangrijk omdat ze dienen als een beknopte samenvatting van de inhoud van een webpagina, die invloed hebben op hoe je site wordt weergegeven in de resultaten van zoekmachines en op de doorklikratio. De title-tag wordt bijvoorbeeld getoond als de klikbare kop in de zoekresultaten en kan een enorm verschil maken in SEO en gebruikersbetrokkenheid.

Evenzo geven metabeschrijvingen een kort overzicht van de inhoud van de pagina onder de titel in de zoekresultaten, waardoor gebruikers worden aangemoedigd om door te klikken naar je site.

React Helmet gebruiken voor metatags

React Helmet is een herbruikbaar React component dat wijzigingen in de head van het document beheert, zodat je eenvoudig metatags, paginatitels en andere head-elementen dynamisch kunt wijzigen. Het is vooral handig voor headless WordPress sites.

Om React Helmet te gaan gebruiken, moet je het in je project installeren met npm of yarn:

npm install react-helmet

# or

yarn add react-helmet

Na de installatie kun je React Helmet in je componenten importeren en gebruiken om verschillende metatags in te stellen. Om bijvoorbeeld paginatitels en metabeschrijvingen in te stellen, kun je zoiets doen als:

import { Helmet } from 'react-helmet';

function MyPage() {

return (

<>

<Helmet>

<title>My Page Title</title>

<meta name="description" content="A concise description of my web page." />

</Helmet>

{/* Rest of your component */}

</>

);

}

React Helmet ondersteunt ook dynamische gegevens, waardoor je metatags kunt instellen op basis van props of status binnen je React applicatie. Deze flexibiliteit is belangrijk voor het dynamisch aanpassen van SEO metadata aan specifieke pagina’s en inhoudstypen.

Andere belangrijke head-elementen die je kunt beheren zijn onder andere gestructureerde gegevens (met behulp van JSON-LD voor rich snippets), Open Graph-tags voor het delen van sociale media en zelfs elementen voor het verbeteren van de toegankelijkheid

Schema markup optimaliseren

Het optimaliseren van schema markup is een andere belangrijke factor voor het verbeteren van de SEO van je WordPress site, zowel in een traditionele opstelling als in een headless omgeving.

Schema markup, een soort microdata, verrijkt de zoekmachineresultaten van je site door rich snippets – die gedetailleerde informatie bevatten zoals beoordelingen met sterren, prijzen voor producten en meer – direct in de zoekresultaten mogelijk te maken. Dit kan de zichtbaarheid en doorklikratio’s aanzienlijk verbeteren.

In een traditionele WordPress opstelling wordt schema markup vaak beheerd door SEO plugins zoals Yoast SEO, die het toevoegen en aanpassen van schema types direct in het WordPress dashboard vereenvoudigen. Deze plugins genereren automatisch de benodigde code snippets op basis van de inhoud van je pagina’s of berichten. Dit maakt het super eenvoudig om schema’s toe te voegen zonder ook maar één regel code aan te raken.

Maar in een headless WordPress omgeving wordt het beheren van schema markup een beetje handiger. Je werkt in wezen met een aparte front-end applicatie (zoals een site gebouwd met React), wat betekent dat je schema markup handmatig moet integreren in je inhoud terwijl je je site ontwikkelt. Dit kan betekenen dat je schema markup dynamisch in je HTML injecteert met JavaScript of dat je gebruik maakt van front-end SEO tools.

Voor headless WordPress sites kun je tools als React Helmet gebruiken om de head van je webpagina’s te beheren, inclusief het toevoegen van schema markup. Zoals we al hebben vastgesteld, kun je met React Helmet dynamisch metatags, titels en, heel belangrijk, gestructureerde gegevens in JSON-LD format direct in je React componenten instellen.

Hier volgt een vereenvoudigde aanpak voor het beheren van schema markup in headless omgevingen:

1. Client-side bibliotheken gebruiken

Een client-side bibliotheek zoals React Helmet kan hier super handig zijn voor het handmatig invoegen van schema markup in je pagina’s. Dit houdt in dat je JSON-LD gestructureerde gegevensfragmenten maakt en deze in de head van je pagina’s plaatst met React Helmet.

2. Scripts maken

Om handmatig JSON-LD scripts te maken, begin je met het definiëren van de structuur van je inhoud in een JSON format dat Google en andere zoekmachines kunnen begrijpen. Dit houdt in dat je typen specificeert zoals Article, Person of Event en hun eigenschappen volgens de richtlijnen van Schema.org.

3. Beschikbare tools gebruiken

Je kunt deze scripts vervolgens insluiten in de HTML van je pagina’s, meestal in de head-sectie, met behulp van server-side rendering technieken. Hulpmiddelen zoals Google’s Structured Data Markup Helper kunnen helpen bij het genereren van de juiste JSON-LD syntaxis.

google structured data
Google Structured Data Markup Helper

Denk na over optimalisatie voor spraakgestuurd zoeken

Optimaliseren voor spraakgestuurd zoeken binnen de context van een headless WordPress opstelling vereist een strategische aanpak die SEO best practices combineert met de technische nuances van headless architectuur. Dit is hoe je effectief kunt optimaliseren voor spraakgestuurd zoeken in een headless WordPress omgeving, zodat je content goed scoort bij zoekopdrachten met spraakinvoer

1. Laat structured data het werk voor je doen

We hebben het hier al uitgebreid gehad over het “hoe”, maar het implementeren van structured data (schema markup) is noodzakelijk om een headless site goed te optimaliseren.

Structured data helpen zoekmachines om de context en inhoud van je site te begrijpen, zodat ze je informatie gemakkelijker kunnen weergeven als antwoord op zoekopdrachten. In een headless opstelling moet je schema markup mogelijk handmatig invoegen in je React (zoals we al hebben besproken), Vue of Angular componenten, afhankelijk van welke je gebruikt voor je front-end.

Angular is een andere optie om headless te gaan met WordPress
Angular

2. Focus op inhoud en trefwoorden in natuurlijke taal

Omdat ze gesproken worden, hebben gesproken zoekopdrachten de neiging om spraakpatronen na te bootsen en gebruik te maken van spreektaal. Ze zijn meestal ook langer dan zoekopdrachten op basis van tekst. Als je inhoud maakt op je site, streef dan naar een natuurlijke taal die overeenkomt met hoe mensen spreken. Ja, dit betekent dat je meer nadruk moet leggen op lange zoekwoorden en op vragen gebaseerde zoekopdrachten die vaak voorkomen bij gesproken zoekopdrachten.

3. Verbeter lokale SEO voor “In my area” zoekopdrachten

Als mensen voice search gebruiken, is dat vaak om iets lokaals te vinden, zoals een bedrijf of dienst in de buurt. Om je headless WordPress site te optimaliseren voor deze zoekopdrachten, moet je ervoor zorgen dat de inhoud van je site lokale trefwoorden en zinnen bevat. Zorg ervoor dat je Google Mijn Bedrijf-vermelding up-to-date is en neem lokale gestructureerde gegevens op om de zichtbaarheid voor lokale zoekopdrachten te verbeteren.

4. Maak FAQ pagina’s en -secties

Gebruikers van gesproken zoekopdrachten zijn vaak op zoek naar snelle antwoorden op specifieke vragen. Door het maken van FAQ pagina’s of secties met beknopte antwoorden op veelgestelde vragen kun je deze mensen tegemoet komen.

Overweeg om dynamische FAQ secties te maken die inhoud uit WordPress halen via API’s en deze aan de front-end weergeven in een gemakkelijk toegankelijk format. Door deze FAQ’s te structureren met de juiste koppen en gestructureerde gegevens kun je hun vindbaarheid in de zoekresultaten van voice search verder verbeteren.

5. Maak volledig gebruik van rich snippets en featured snippets

Probeer je inhoud zo te structureren dat deze in aanmerking komt voor rich snippets en featured snippets, die prominent worden weergegeven in de zoekresultaten.

Dit houdt in dat je je inhoud duidelijk structureert en schema markup gebruikt om belangrijke informatie te markeren. In een headless WordPress omgeving moet je ervoor zorgen dat je content API content levert die gestructureerd is op een manier die front-end applicaties kunnen gebruiken om snippet-vriendelijke formats te genereren.

Maak goed doordachte taxonomieën

Het maken van goed doordachte taxonomieën in een headless WordPress omgeving gaat over het organiseren van je inhoud op een gestructureerde, intuïtieve manier waar zowel websitebezoekers als zoekmachines baat bij hebben.

Om effectieve taxonomieën te maken die werken voor headless sites, kun je:

  • Je publiek en inhoud begrijpen: Begin met het analyseren van je inhoud om hoofdthema’s te identificeren en te begrijpen waar je publiek naar op zoek is. Dit inzicht zal als leidraad dienen voor het maken van relevante categorieën en tags.
  • Categorieën ontwikkelen: Categorieën moeten brede onderwerpen op je site vertegenwoordigen. Ze bieden een hiërarchische structuur voor het organiseren van inhoud in hoofdthema’s. Zorg ervoor dat de categorieën duidelijk zijn en het bereik van je inhoud dekken zonder te veel overlap.
  • Gebruik tags voor details: Tags bieden een gedetailleerd niveau, waarmee je specifieke aspecten van je inhoud kunt markeren. Ze kunnen mensen en zoekmachines helpen om inhoud te vinden over meer specifieke onderwerpen binnen je bredere categorieën.
  • Vereenvoudig en optimaliseer de navigatie: Je taxonomie moet de navigatie op je site verbeteren, zodat gebruikers inhoud makkelijker kunnen vinden. Neem SEO-vriendelijke trefwoorden op in je categorieën en tags om de zichtbaarheid van je site te vergroten.
  • Zorg voor duidelijkheid en vermijd dubbel werk: Zorg ervoor dat elke categorie en tag uniek is, zodat gebruikers niet in verwarring raken en de SEO-inspanningen niet verwateren. Regelmatige audits kunnen je helpen om je taxonomie te verfijnen door overbodige categorieën of tags samen te voegen of te verwijderen.
  • Integreer taxonomieën in headless: Zorg er in een headless WordPress site voor dat je taxonomie goed geïmplementeerd is, zodat categorieën en tags toegankelijk zijn via je API en dynamisch gebruikt kunnen worden door de front-end applicatie.
  • Regelmatig herzien en bijwerken: Als je site groeit, moet je regelmatig je taxonomie herzien om ervoor te zorgen dat deze nog steeds nauwkeurig je inhoud weerspiegelt.

Soms is het handig om je voor te stellen hoe dit er in het echt uit zou kunnen zien. Hier is een kort voorbeeld: Stel je een kookblog voor met verschillende recepten. Hier zie je hoe een goed georganiseerde taxonomie eruit zou kunnen zien:

  • Categorieën: Brede onderwerpen die de belangrijkste inhoudspijlers van de blog vertegenwoordigen, zoals Keuken (Italiaans, Mexicaans, Japans), Maaltijdtype (Ontbijt, Lunch, Diner, Snacks) en Speciale Diëten (Veganistisch, Glutenvrij, Keto).
  • Tags: Specifiekere beschrijvingen die categorieën kunnen doorkruisen, zoals “Snelle maaltijden” (voor recepten onder de 30 minuten), “Vakantie” (voor kerst- en Thanksgivingrecepten) of op ingrediënten gebaseerde tags zoals “Kip”, “Pasta” of “Avocado”

Met deze structuur kunnen bezoekers snel navigeren naar het soort recepten waarin ze geïnteresseerd zijn, of ze nu op zoek zijn naar een snel ontbijtidee, een veganistisch dessert of een traditioneel Italiaans gerecht. Het helpt zoekmachines ook om de inhoud van de blog te begrijpen, waardoor de site beter zichtbaar wordt in de zoekresultaten voor die specifieke onderwerpen.

Prestatiecijfers om in de gaten te houden

Wanneer je een website beheert die wordt aangestuurd door een headless CMS, is het belangrijk om de prestatiecijfers in de gaten te houden. Je werkt met een configuratie die de front-end weergave scheidt van het back-end contentbeheer, waardoor er veel mogelijkheden zijn voor potentiële vertragingen. Begrijpen hoe je site presteert is dus essentieel.

Je moet letten op traditionele prestatiecijfers zoals Core Web Vitals en de laadtijd van de site om de best mogelijke SEO-prestaties te garanderen.

Core gegevens

Als we het hebben over websiteprestaties, zouden we nalatig zijn als we de Core Web Vitals niet zouden noemen. Dit is Google’s manier om de gebruikerservaring op je site te kwantificeren, waarbij de nadruk ligt op drie hoofdgebieden. Hier volgt een kort overzicht van wat die inhouden:

  • Largest Contentful Paint (LCP): Dit meet hoe snel de hoofdinhoud van een pagina laadt. Hoe sneller, hoe beter, want dat betekent dat mensen je inhoud bereiken zonder duimen te draaien in afwachting.
  • First Input Delay (FID): Deze gaat over reactievermogen. Hoe snel reageert je pagina na het laden op gebruikersinteracties? Als bezoekers moeten klikken zonder onmiddellijke reactie, kan frustratie optreden.
  • Cumulative Layout Shift (CLS): Heb je wel eens gehad dat tekst of een knop verschoof net toen je erop wilde klikken? Dat is wat CLS meet. Stabiliteit is hier de sleutel. Mensen moeten niet het gevoel hebben dat ze op een bewegend doelwit proberen te klikken.

Het verbeteren van deze meetgegevens kan leiden tot een betere gebruikerservaring, die Google beloont met mogelijk hogere zoekresultaten.

JavaScript minimaliseren en asynchroon laden

Het minimaliseren van JavaScript en het gebruik van asynchroon laden van scripts kan de laadtijd van je site verkorten. Door de code terug te brengen tot de essentie en scripts tegelijkertijd te laten draaien zonder het laden van de pagina te blokkeren, stroomlijn je in wezen de back-end bewerkingen om betere prestaties op de front-end te garanderen.

De tijd nemen om de prestatiecijfers in een headless CMS omgeving te perfectioneren gaat niet alleen over het aanvinken van vakjes voor Google. Het gaat om het creëren van een naadloze, aantrekkelijke ervaring voor de bezoekers van je website, terwijl je ervoor zorgt dat zoekmachines je inhoud kunnen vinden en er de voorkeur aan geven. Het is een evenwichtsoefening tussen technische optimalisatie en een gebruikersgericht ontwerp, en als je het goed aanpakt, kan je site zich onderscheiden – terwijl je nog steeds geniet van de flexibiliteit die headless je biedt.

Samenvatting

SEO optimaliseren in headless WordPress hoeft niet zo ontmoedigend te zijn als het klinkt. Hier hebben we de essentie uitgepakt en laten zien hoe je je site niet alleen zichtbaar kunt maken, maar ook aantrekkelijk voor zowel zoekmachines als echte mensen.

Van het zorgen dat je site gemakkelijk door zoekmachines te crawlen is tot het aanpassen van metatags en ervoor zorgen dat je site goed werkt met voice search, we hebben van alles een beetje behandeld. En als je de prestaties van je headless WordPress site echt wilt verbeteren, is het bekijken van onze Statische Site Hosting misschien wel de volgende stap die je moet nemen.

Jeremy Holcombe Kinsta

Content & Marketing Editor bij Kinsta, WordPress Web Developer en Content Writer. Buiten alles wat met WordPress te maken heeft, geniet ik van het strand, golf en films. En verder heb ik last van alle problemen waar andere lange mensen ook tegenaan lopen ;).