Consistent bloggen is een van de krachtigste SEO-strategieen, maar ook een van de meest tijdrovende. Een kwalitatief blogartikel schrijven kost 3 tot 5 uur. Met een geautomatiseerde workflow herleid je die tijd naar 30 minuten review per artikel.
In deze handleiding bouw je een workflow waarbij Perplexity actuele onderwerpen vindt op basis van jouw trefwoorden, Claude een volledig SEO-artikel schrijft, en n8n het artikel als concept publiceert in WordPress klaar voor review en publicatie.
Wat je nodig hebt
- n8n (cloud of self-hosted)
- Perplexity API key (pplx.ai, Sonar Pro, ca. 5 dollar per 1000 verzoeken)
- Claude API key (Anthropic Console)
- WordPress website met REST API en Application Password
- Google Sheets (voor topicplanning en publicatiekalender)
Stap 1: WordPress REST API instellen
Activeer de WordPress REST API (standaard al actief) en maak een Application Password aan. Ga naar WordPress admin, Gebruikers, Profiel, scroll naar Applicatiewachtwoorden en maak een wachtwoord aan genaamd 'n8n'. Sla de combinatie gebruikersnaam:applicatiewachtwoord op als Base64 encoded string:
# Genereer Base64 auth string (Terminal)
echo -n 'jouwgebruikersnaam:xxxx xxxx xxxx xxxx xxxx xxxx' | base64
# Output: am91d2dlYnJ1aWtlcnNuYWFtOnh4eHggeHh4....
# Gebruik deze string in n8n HTTP header: Authorization: Basic <output>
Stap 2: Topicplanning in Google Sheets
Maak een Google Sheet 'Blogplanning' met kolommen: Onderwerp, Doelzoekterm, Status (gepland/geschreven/gepubliceerd), Publicatiedatum, WordPress ID. Vul de eerste kolommen handmatig met geplande topics voor de komende maand. De workflow pikt het eerste item met status 'gepland' op.
// Google Sheets blogplanning structuur
// Kolom A: Onderwerp (bijv. 'AI voor MKB boekhouding')
// Kolom B: Doelzoekterm (bijv. 'ai boekhoudsoftware mkb')
// Kolom C: Status (gepland / geschreven / gepubliceerd)
// Kolom D: Publicatiedatum (YYYY-MM-DD)
// Kolom E: Categorie (bijv. 'AI Tools')
// Kolom F: WordPress Post ID (na publicatie ingevuld)
Stap 3: Schedule Trigger en topic ophalen
Maak een n8n workflow met Schedule Trigger (dagelijks om 06:00 op werkdagen). Voeg een Google Sheets Read Rows node toe en filter op status 'gepland' waarbij publicatiedatum van vandaag of eerder is:
// Filter: gepland voor vandaag of eerder
const items = $input.all();
const vandaag = new Date().toISOString().split('T')[0];
const eersteGeplande = items.find(item =>
item.json['Status'] === 'gepland' &&
item.json['Publicatiedatum'] <= vandaag
);
return eersteGeplande ? [eersteGeplande] : [];
Stap 4: Perplexity onderzoek
Perplexity's Sonar API doet real-time webonderzoek en geeft actuele informatie met bronnen. Stuur het onderwerp naar Perplexity voor achtergrondonderzoek:
{
"method": "POST",
"url": "https://api.perplexity.ai/chat/completions",
"headers": {
"Authorization": "Bearer {{ $credentials.perplexityApiKey }}",
"Content-Type": "application/json"
},
"body": {
"model": "sonar-pro",
"messages": [{
"role": "user",
"content": "Doe onderzoek over het onderwerp: '{{ $json['Onderwerp'] }}' voor een blog gericht op Nederlandse MKB-ondernemers.\n\nGeef:\n1. De meest recente ontwikkelingen (2026)\n2. Concrete statistieken en cijfers (met bronvermelding)\n3. 5 veelgestelde vragen van MKB-ondernemers over dit onderwerp\n4. Drie concrete voorbeelden of use cases\n5. Relevante tools of software die worden gebruikt\n\nGeef ook de bronnen bij elk punt."
}]
}
}
Perplexity retourneert actuele, goed onderbouwde informatie inclusief bronnen. Dit is de feitelijke basis voor het Claude-artikel.
Stap 5: Claude schrijft het artikel
Combineer het Perplexity onderzoek met Claude voor het uitschrijven van het artikel:
{
"model": "claude-sonnet-4-6",
"max_tokens": 4000,
"messages": [{
"role": "user",
"content": "Schrijf een volledig SEO-geoptimaliseerd blogartikel op basis van dit onderzoek.\n\nONDERWERP: {{ $json['Onderwerp'] }}\nDOELZOEKTERM: {{ $json['Doelzoekterm'] }}\nDOELGROEP: Nederlandse MKB-ondernemers (5-50 medewerkers)\n\nONDERZOEKSDATA (van Perplexity):\n{{ $('Perplexity').item.json.choices[0].message.content }}\n\nARTIKEL VEREISTEN:\n- Lengte: 1200 tot 1800 woorden\n- H1: bevat doelzoekterm, pakkend\n- 4 tot 6 H2-secties\n- H2s bevatten gerelateerde zoekterms\n- Eerste alinea: doelzoekterm in eerste 100 woorden\n- Gebruik de statistieken uit het onderzoek (met bronvermelding)\n- Concrete, uitvoerbare adviezen\n- Geen bullet lists als hoofdstructuur (gebruik lopende tekst)\n- Slotsectie: duidelijke call-to-action\n- GEEN em dashes\n- Toon: zakelijk maar toegankelijk, geen jargon\n\nOutput FORMAT:\n<h1>Titel</h1>\n<p>Intro...</p>\n<h2>Sectie 1</h2>\n..."
}]
}
Stap 6: Meta description genereren
Laat Claude ook een meta description schrijven. Voeg een tweede Claude API call toe (of extend het eerste prompt):
// Tweede Claude call voor meta
{
"model": "claude-sonnet-4-6",
"max_tokens": 100,
"messages": [{
"role": "user",
"content": "Schrijf een meta description van precies 150 tot 155 tekens voor dit artikel over '{{ $json['Onderwerp'] }}' met doelzoekterm '{{ $json['Doelzoekterm'] }}'. Bevat een call-to-action. Geen aanhalingstekens."
}]
}
Stap 7: Publiceren in WordPress als concept
Publiceer het artikel als concept (status: draft) in WordPress via de REST API:
{
"method": "POST",
"url": "https://jouwsite.nl/wp-json/wp/v2/posts",
"headers": {
"Authorization": "Basic {{ base64_auth_string }}",
"Content-Type": "application/json"
},
"body": {
"title": "{{ artikel_titel_uit_h1 }}",
"content": "{{ $('Claude Artikel').item.json.content[0].text }}",
"status": "draft",
"categories": [{{ wordpress_categorie_id }}],
"meta": {
"_yoast_wpseo_metadesc": "{{ $('Claude Meta').item.json.content[0].text }}",
"_yoast_wpseo_focuskw": "{{ $json['Doelzoekterm'] }}"
}
}
}
Stap 8: Google Sheets bijwerken
Update de planningsheet met de WordPress post ID en nieuwe status:
// Google Sheets Update Row
{
"spreadsheetId": "YOUR_SHEET_ID",
"sheetName": "Blogplanning",
"rowNumber": "={{ $('Google Sheets').item.json.row_number }}",
"columns": {
"Status": "geschreven",
"WordPress ID": "={{ $('WordPress').item.json.id }}"
}
}
Stap 9: Notificatie voor review
Stuur een notificatie naar de contentredacteur dat een nieuw concept klaar staat:
// Slack of Gmail notificatie
{
"to": "redactie@jouwbedrijf.nl",
"subject": "Nieuw blogconcept klaar voor review: {{ $json['Onderwerp'] }}",
"body": "Een nieuw artikel staat klaar in WordPress als concept.\n\nOnderwerp: {{ $json['Onderwerp'] }}\nDoelzoekterm: {{ $json['Doelzoekterm'] }}\nWordPress link: https://jouwsite.nl/wp-admin/post.php?post={{ $('WordPress').item.json.id }}&action=edit\n\nReview gewenst: meta description controleren, afbeeldingen toevoegen, interne links leggen, dan publiceren."
}
Stap 10: Testen en activeren
Voeg een testrij toe aan de Sheets met status 'gepland' en datum van vandaag. Klik op 'Test Workflow' in n8n. Controleer: Perplexity geeft substantiële onderzoeksdata, Claude schrijft een coherent artikel van de juiste lengte, WordPress ontvangt het concept correct en Google Sheets wordt bijgewerkt. Na succesvolle test: activeren.
Troubleshooting
Probleem: WordPress geeft 401 Unauthorized
Controleer of het Application Password correct is (let op spaties in het wachtwoord). Verifieer dat de gebruiker de rol 'Auteur' of hoger heeft. Controleer ook of 'Application Passwords' feature is ingeschakeld (standaard actief in WordPress 5.6+, maar sommige beveiligingsplugins blokkeren het).
Probleem: Claude artikel te kort of zonder structuur
Verhoog max_tokens naar 5000 en voeg aan het prompt toe: 'Elke H2-sectie moet minimaal 200 woorden bevatten. Het totale artikel moet minimaal 1400 woorden zijn. Tel de woorden na het schrijven en voeg meer toe als nodig.'
Uitbreidingen
- Voeg een DALL-E of Gemini Image API call toe om automatisch een relevante headerafbeelding te genereren en uploaden naar WordPress
- Laat Claude ook automatisch interne links voorstellen naar gerelateerde bestaande artikelen
- Voeg een social media post toe: Claude schrijft tegelijk een LinkedIn-post bij het artikel die direct via Buffer wordt gepland
Een team dat wekelijks een artikel publiceert, groeit zijn organisch verkeer gemiddeld met 55 procent in 12 maanden (Bron: HubSpot, 2025). Met deze workflow is die frequentie haalbaar zonder fulltime contentschrijver. De redacteur focust op kwaliteitsbewaking en strategie, de workflow doet de productie.