Connecter Claude à WordPress, c’est transformer un site en système éditorial piloté par IA : création d’articles structurés, remplissage automatique des métadonnées Rank Math, publication LinkedIn synchronisée. Le tout sans plugin tiers, sans interface graphique, et sans sacrifier le contrôle éditorial. Ce guide décrit l’architecture complète et le code nécessaire pour mettre cette connexion en production.
- Les vrais gains : SEO, contenu, distribution
- L’architecture technique
- Étape 1 : Préparer WordPress
- Étape 2 : Configurer Claude Code et CLAUDE.md
- Étape 3 : Connecter le serveur MCP WordPress
- Étape 4 : Créer des articles via l’API REST
- Étape 5 : Automatiser les métadonnées Rank Math
- Limites et points de vigilance
Pourquoi connecter Claude à WordPress change votre workflow éditorial ?
La connexion entre Claude et WordPress ne sert pas à générer du contenu à la chaîne. Elle sert à supprimer la friction entre la décision éditoriale et la mise en ligne. Un article rédigé avec Claude, structuré en blocs Gutenberg, avec ses métadonnées Rank Math renseignées et son post LinkedIn programmé : tout cela peut sortir en brouillon en moins de 5 minutes au lieu de 45. C’est le gain concret, mesurable dès la première semaine.
Sur le plan SEO, l’automatisation des métadonnées Rank Math via l’endpoint /rankmath/v1/updateMeta garantit que chaque article est publié avec un titre optimisé, une méta-description dans les limites de caractères et un mot-clé principal cohérent avec le contenu. Selon Backlinko (analyse de 11,8 millions de résultats Google, 2023), les pages avec une méta-description optimisée obtiennent un taux de clic organique supérieur de 5,8 % en moyenne. Appliqué à une cadence de 4 articles par mois, l’effet est cumulatif.
Sur le plan GEO (Generative Engine Optimization), cette architecture permet d’intégrer systématiquement les techniques identifiées par Aggarwal et al. (Princeton/Georgia Tech, KDD 2024) dans chaque article : statistiques sourcées (+41 % de visibilité dans les réponses IA), citations d’experts (+28 %), paragraphes autonomes citables. Ce n’est pas un ajout manuel : c’est une règle dans le fichier CLAUDE.md, appliquée automatiquement à chaque génération.
Quelle architecture pour connecter Claude à WordPress ?
L’architecture repose sur trois couches. Claude Code (le CLI Anthropic) joue le rôle de cerveau : il reçoit les instructions éditoriales, génère le contenu, orchestre les appels API. L’API REST WordPress (/wp-json/wp/v2/) expose les endpoints de création et mise à jour des posts. Entre les deux, un fichier CLAUDE.md encode les règles métier : charte graphique Gutenberg, règles rédactionnelles, checklist GEO, workflow de publication.
En option, le protocole MCP (Model Context Protocol), publié par Anthropic en novembre 2024, standardise la connexion entre les modèles de langage et les systèmes externes. Le package claudeus-wp-mcp implémente ce protocole pour WordPress. Pour les équipes qui préfèrent un contrôle précis sur chaque requête HTTP, les scripts Node.js ESM donnent une visibilité totale. Ce guide couvre les deux approches.
// Architecture simplifiée
Claude Code (CLI)
├── CLAUDE.md → règles éditoriales, SEO, GEO
├── claude_desktop_config.json → config MCP server
└── scripts .mjs / .cjs → appels directs REST API WP + LinkedIn
WordPress
├── /wp-json/wp/v2/posts → CRUD articles
├── /wp-json/rankmath/v1/updateMeta → SEO Rank Math
└── Application Password → authentification Basic Auth
LinkedIn
├── OAuth2 (authorization_code flow)
├── /v2/ugcPosts → publication posts
└── /v2/socialActions/{urn}/comments → commentaire avec lien article
Étape 1 : Préparer WordPress pour l’accès API
WordPress expose une API REST native depuis la version 4.7. L’écriture (création, modification, suppression de posts) nécessite une authentification. La méthode recommandée pour les intégrations programmatiques est le mot de passe d’application (Application Password), disponible depuis WordPress 5.6. Il s’agit d’un token à 24 caractères, distinct du mot de passe de connexion, révocable à tout moment depuis le profil utilisateur.
Créez un compte WordPress dédié à l’intégration avec le rôle Administrateur (nécessaire pour accéder aux endpoints Rank Math et aux métas personnalisées). Évitez d’utiliser le compte administrateur principal : en cas de compromission du token, la révocation du compte dédié n’affecte pas l’accès humain au site. Dans Profil → Mots de passe d’application, saisissez un nom descriptif et générez le token. Les espaces dans le mot de passe généré font partie du token et doivent être conservés lors de l’encodage Base64.
# Test de lecture (public, pas d'authentification)
curl https://votre-site.fr/wp-json/wp/v2/posts?per_page=3
# Test d'écriture (authentification requise)
curl -X POST https://votre-site.fr/wp-json/wp/v2/posts \
-u "login:XXXX XXXX XXXX XXXX XXXX XXXX" \
-H "Content-Type: application/json" \
-d '{"title":"Test API","status":"draft"}'
# Réponse attendue : {"id": 123, "status": "draft", ...}
# Si erreur rest_cannot_create → rôle insuffisant
# Si erreur 404 sur /wp-json/ → permaliens non configurés (Réglages → Permaliens → Nom de l'article)
Étape 2 : Configurer Claude Code et le fichier CLAUDE.md
Claude Code est le CLI officiel Anthropic. Il se distingue d’un simple client API par sa capacité à lire le contexte du projet et à appliquer des instructions persistantes via un fichier CLAUDE.md placé à la racine du projet. Ce fichier joue le rôle de cahier des charges permanent : chaque session hérite automatiquement de ces règles sans avoir à les répéter dans chaque prompt. C’est la pièce centrale de l’architecture : sans lui, Claude ne connaît pas votre WordPress, votre charte graphique ni vos règles SEO.
# Installation
npm install -g @anthropic-ai/claude-code
# Structure du CLAUDE.md
## WordPress
- URL : https://votre-site.fr
- Compte API : votre-login
- Workflow : toujours publier en "draft", jamais directement
## SEO Rank Math
- rank_math_title : max 60 caractères, mot-clé en début de titre
- rank_math_description : max 160 caractères, mot-clé présent
- rank_math_focus_keyword : apostrophe standard (') uniquement — Rank Math compare en exact match
## GEO — checklist obligatoire par article
- 3+ statistiques sourcées (source, date, contexte explicite)
- 2+ attributions d'expertise (personne ou organisation nommée)
- 3+ paragraphes de 40-60 mots répondant à une question directe
- 50%+ des H2 formulés comme questions naturelles
## Rédaction — interdits
- Accents obligatoires partout (titres SEO, alt text, slugs lisibles)
- Pas de question en conclusion (commentaires désactivés)
- Interdit : tiret cadratin (—), "crucial", "fondamental", "plongeons dans"
Étape 3 : Connecter Claude à WordPress via le serveur MCP
Le protocole MCP (Model Context Protocol) permet à Claude de piloter WordPress directement depuis l’interface de conversation, sans scripts intermédiaires. Le package claudeus-wp-mcp implémente ce protocole et s’installe via npx sans installation permanente. Il expose des outils natifs à Claude : lecture des posts, création, mise à jour, gestion des médias. La configuration se fait dans un fichier JSON lu au démarrage de Claude Desktop ou Claude Code.
// claude_desktop_config.json
// Windows : %APPDATA%\Claude\claude_desktop_config.json
// Mac : ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": [
"-y",
"claudeus-wp-mcp",
"--url", "https://votre-site.fr",
"--user", "votre-login",
"--application-password", "XXXX XXXX XXXX XXXX XXXX XXXX"
]
}
}
}
Pour les intégrations complexes impliquant des métadonnées custom ou des endpoints propriétaires comme celui de Rank Math, les scripts Node.js restent plus adaptés que le MCP. Le MCP est optimal pour les workflows conversationnels (demander à Claude de lister, modifier ou créer des articles en langage naturel). Les scripts sont préférables quand la précision du payload HTTP est critique ou quand le même processus doit être rejoué de manière identique sur plusieurs articles.
Étape 4 : Créer des articles Gutenberg via l’API REST
L’API REST WordPress accepte le contenu en HTML avec les commentaires de blocs Gutenberg. Sans ces commentaires, WordPress stocke le contenu mais ne reconnaît pas les blocs, ce qui provoque des incohérences dans l’éditeur visuel. Attention à un piège Node.js : dans les fichiers .mjs (ESM), Node 24 interprète <!-- en début de ligne d’un template literal comme un commentaire HTML et refuse de compiler le module. La solution : stocker le contenu dans un fichier .html externe et le lire avec fs.readFileSync.
// publish_article.cjs
const { Buffer } = require("buffer");
const fs = require("fs");
const credentials = Buffer.from("login:APPLICATION_PASSWORD").toString("base64");
const content = fs.readFileSync("./content.html", "utf8");
fetch("https://votre-site.fr/wp-json/wp/v2/posts", {
method: "POST",
headers: {
"Authorization": `Basic ${credentials}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
title: "Titre de l'article",
content: content,
status: "draft",
slug: "titre-de-larticle-sans-accents",
excerpt: "Résumé court pour les listes d'articles.",
meta: {
rank_math_focus_keyword: "mot-clé principal",
rank_math_title: "Titre SEO optimisé (max 60 car.)",
rank_math_description: "Méta-description avec le mot-clé (max 160 car.)"
}
})
}).then(r => r.json()).then(post => {
console.log(`Article créé — ID: ${post.id}`);
});
Le champ meta dans le payload de création ne suffit pas toujours à déclencher le scoring Rank Math. Rank Math recalcule le score à la sauvegarde via son propre endpoint. Passez systématiquement un second appel à /rankmath/v1/updateMeta après la création du post pour forcer la mise à jour du score : les deux opérations sont nécessaires pour un score cohérent dans l’interface d’administration.
Étape 5 : Piloter Rank Math via son endpoint REST non documenté
Rank Math expose l’endpoint /wp-json/rankmath/v1/updateMeta pour la mise à jour programmatique des métadonnées SEO. Cet endpoint n’est pas documenté dans la documentation officielle Rank Math mais est utilisé par l’éditeur Gutenberg en interne. Il accepte un objet meta et retourne {"slug": true, "schemas": []} en cas de succès. Plusieurs points de vigilance conditionnent le score final.
// update_rankmath.cjs
async function updateRankMath(postId, keyword, title, description) {
const resp = await fetch("https://votre-site.fr/wp-json/rankmath/v1/updateMeta", {
method: "POST",
headers: {
"Authorization": `Basic ${credentials}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
objectID: postId,
objectType: "post",
meta: {
rank_math_focus_keyword: keyword, // apostrophe standard (') obligatoire
rank_math_title: title, // max 60 caractères
rank_math_description: description // max 160 caractères
}
})
});
return resp.json(); // {"slug": true, "schemas": []}
}
// Score Rank Math 80+/100 : checklist technique
// ✓ Mot-clé dans le titre SEO
// ✓ Mot-clé dans la méta-description (apostrophe identique au focus keyword)
// ✓ Mot-clé dans le slug (sans accents, sans apostrophe)
// ✓ Mot-clé dans le 1er paragraphe
// ✓ Mot-clé dans au moins 1 titre H2
// ✓ Densité mot-clé : 1-3% dans le corps (3-5 occurrences / 1000 mots)
// ✓ Au moins 1 lien externe (vers une source citée)
// ✓ Au moins 1 lien interne (vers un article du site)
// ✗ Image avec alt text (nécessite upload via /wp-json/wp/v2/media)
Quelles sont les limites réelles de cette architecture ?
Trois contraintes structurelles méritent d’être anticipées avant de déployer cette architecture en production. Les médias (images, illustrations) nécessitent un upload binaire multipart via /wp-json/wp/v2/media : non trivial dans un workflow texte, et indispensable pour atteindre 100/100 chez Rank Math. Le token LinkedIn expire tous les 60 jours sans refresh token : un système d’alerte sur la date d’expiration est nécessaire en production. Enfin, les blocs Gutenberg mal formés (commentaire de fermeture manquant) ne causent pas d’erreur API mais corrompent l’éditeur visuel : maintenez une bibliothèque de templates validés.
Ce que cette connexion ne remplace pas
Cette architecture automatise la mécanique éditoriale. Elle ne remplace pas le jugement sur l’angle d’un article, le choix du sujet, la validation des sources ou la relecture finale. Claude produit un brouillon à 70-80 % du résultat attendu. La valeur ajoutée humaine se concentre sur le 20-30 % restant : le positionnement différenciant, le ton propre à la marque, les exemples tirés de l’expérience terrain. Les équipes qui obtiennent les meilleurs résultats avec cette architecture sont celles qui ont clarifié ce qu’elles seules peuvent apporter, et ont encodé tout le reste dans leur CLAUDE.md.