Accueil / Blog / WordPress & LLMs
WordPressLLMWP-CLISSHSEO

Gérer WordPress avec les LLMs : SSH, WP-CLI et opérations en masse

SD
Stéphane Duma
· · 15 min de lecture

Votre WordPress a 100 articles avec des titres mal structurés et vous devez tout corriger un par un ? Non. En connectant un LLM à WP-CLI via SSH, une seule commande SQL suffit. Voici comment, pas à pas.

1. Pourquoi connecter un LLM à WordPress

WordPress alimente 43% du web. La plupart de ses utilisateurs gèrent leur site via le back-office — l'interface graphique classique. C'est bien pour publier un article. C'est un cauchemar quand il faut modifier 100 articles d'un coup.

En connectant un LLM (Claude, ChatGPT, ou autre) à votre serveur WordPress via SSH et WP-CLI, vous déverrouillez un niveau de contrôle qui transforme des heures de travail manuel en quelques secondes. Concrètement :

Modifications en masse

Corriger le balisage SEO de centaines d'articles, mettre à jour des métadonnées, remplacer des liens — en une commande.

Diagnostic instantané

Demander au LLM d'analyser l'état de votre base de données, détecter les problèmes de performance, lister les plugins vulnérables.

Automatisation intelligente

Le LLM comprend votre intention en langage naturel et génère la commande WP-CLI ou la requête SQL adaptée.

Zéro risque d'erreur de clic

Pas de mauvais bouton, pas de mauvaise case cochée. Des commandes précises, prévisibles, réversibles.

Ce guide est conçu pour les débutants. Aucune connaissance en ligne de commande n'est requise. On part de zéro.

2. SSH expliqué simplement

SSH (Secure Shell) est un protocole qui vous permet de vous connecter à votre serveur à distance, de façon sécurisée. Imaginez que votre hébergeur (OVH, o2switch, Infomaniak...) vous prête un ordinateur. SSH, c'est la télécommande pour le contrôler.

Au lieu de cliquer dans une interface graphique, vous tapez des commandes textuelles. C'est plus rapide, plus puissant, et surtout — c'est ce qui permet aux LLMs d'interagir avec votre serveur.

Comment SSH fonctionne
Votre PC
Terminal / Invite de commande
Vous tapez les commandes ici
Connexion chiffrée SSH
Votre serveur
OVH, o2switch, Infomaniak...
WordPress + Base de données

Se connecter en SSH — pas à pas

01

Récupérer vos identifiants SSH

Rendez-vous dans le panel de votre hébergeur. Cherchez "Accès SSH" ou "Shell". Vous aurez besoin de : l'adresse du serveur (ex: ssh.monhebergeur.com), votre nom d'utilisateur, et votre mot de passe ou clé SSH.

02

Ouvrir un terminal

Sur Mac : ouvrez "Terminal" (dans Applications > Utilitaires). Sur Windows : utilisez "PowerShell" ou installez Windows Terminal. Sur Linux : Ctrl+Alt+T.

03

Taper la commande de connexion

Tapez : ssh utilisateur@adresse-serveur puis Entrée. Exemple : ssh monsite@ssh.o2switch.net. Le terminal vous demande votre mot de passe — tapez-le (rien ne s'affiche, c'est normal) puis Entrée.

04

Vous êtes connecté

Si vous voyez un message d'accueil et un curseur qui clignote, c'est bon. Vous êtes sur votre serveur. Tapez "ls" pour lister les fichiers et "cd www" ou "cd public_html" pour aller dans le dossier de votre site.

Exemple de connexion SSH
$ ssh monsite@ssh.o2switch.net
# Le serveur demande le mot de passe
Password: ********

# Vous êtes connecté !
monsite@serveur:~$ ls
public_html/  logs/  tmp/

monsite@serveur:~$ cd public_html
monsite@serveur:~/public_html$ ls
wp-admin/  wp-content/  wp-includes/  wp-config.php  index.php

C'est tout. Vous avez accès à votre serveur. Maintenant, on installe l'outil qui va nous permettre de piloter WordPress en ligne de commande.

3. WP-CLI : votre télécommande WordPress

WP-CLI (WordPress Command Line Interface) est l'outil officiel pour gérer WordPress en ligne de commande. Ce que vous faites en 15 clics dans le back-office, WP-CLI le fait en une ligne.

La bonne nouvelle : la plupart des hébergeurs modernes l'ont déjà installé. Tapez wp --info dans votre terminal SSH pour vérifier.

Les commandes essentielles

wp core version Affiche la version de WordPress installée
wp plugin list Liste tous les plugins avec leur statut (actif/inactif) et leur version
wp plugin update --all Met à jour tous les plugins en une seule commande
wp post list --post_type=post Liste tous les articles avec leur ID, titre et statut
wp post list --post_type=post --format=count Compte le nombre total d'articles
wp search-replace "ancien-domaine.com" "nouveau-domaine.com" Remplace une URL dans toute la base de données (migration de domaine)
wp user list Liste tous les utilisateurs et leurs rôles
wp db export backup.sql Exporte toute la base de données en un fichier SQL (sauvegarde)
wp cache flush Vide tous les caches WordPress
wp option get siteurl Affiche l'URL de votre site (utile pour diagnostiquer)
WP-CLI en action
$ wp plugin list
+-----------------------+--------+--------+---------+
| name                  | status | update | version |
+-----------------------+--------+--------+---------+
| yoast-seo             | active | none   | 23.5    |
| woocommerce           | active | available | 9.1  |
| contact-form-7        | active | none   | 6.0     |
| akismet               | inactive | none | 5.3     |
+-----------------------+--------+--------+---------+

$ wp post list --post_type=post --posts_per_page=5
+----+-----------------------------------+----------+---------------------+
| ID | post_title                        | post_status | post_date        |
+----+-----------------------------------+----------+---------------------+
| 42 | Guide complet du voyage en van    | publish  | 2026-03-15 10:00:00 |
| 38 | Les meilleures routes d'Europe    | publish  | 2026-03-01 09:00:00 |
| 35 | Préparer son van pour l'hiver     | publish  | 2026-02-20 14:00:00 |
+----+-----------------------------------+----------+---------------------+

Vous voyez la puissance ? En quelques secondes, vous avez une vue complète de votre site. Pas besoin de naviguer dans 15 menus. Maintenant, imaginez ce que ça donne quand un LLM génère ces commandes pour vous.

4. Connecter un LLM à votre WordPress

L'idée est simple : vous ouvrez une session SSH dans votre terminal, et vous demandez au LLM de générer les commandes WP-CLI ou SQL à exécuter. Plusieurs approches existent, de la plus simple à la plus automatisée :

Débutant

Copier-coller depuis le chat

Vous décrivez ce que vous voulez dans ChatGPT ou Claude. Le LLM génère la commande WP-CLI. Vous la copiez, la collez dans votre terminal SSH, et l'exécutez. Simple, sûr, vous gardez le contrôle total.

Intermédiaire

Claude Code en SSH

Avec Claude Code (l'outil CLI d'Anthropic), vous vous connectez en SSH à votre serveur et Claude peut directement exécuter les commandes WP-CLI pour vous. Vous validez chaque commande avant exécution.

Avancé

Agents autonomes via MCP

Les serveurs MCP (Model Context Protocol) permettent de connecter un LLM directement à votre base de données ou vos outils. Le LLM peut alors interroger, analyser et modifier votre WordPress de façon autonome.

Dans cet article, on se concentre sur l'approche débutant et intermédiaire — les plus accessibles et les plus sûres. Voici un exemple concret :

Conversation avec le LLM
Vous
J'ai un WordPress avec 150 articles. Je veux savoir combien utilisent des balises H4, H5 ou H6 dans leur contenu. Donne-moi la commande WP-CLI.
IA
Voici la commande pour compter les articles contenant des H4, H5 ou H6 : wp db query "SELECT COUNT(*) as total FROM wp_posts WHERE post_status='publish' AND post_type='post' AND (post_content LIKE '%<h4%' OR post_content LIKE '%<h5%' OR post_content LIKE '%<h6%')"

Vous copiez cette commande, vous la collez dans votre terminal SSH, et en 2 secondes vous avez la réponse. Pas besoin de parcourir 150 articles manuellement.

5. Opérations avancées avec SQL

WP-CLI inclut la commande wp db query qui permet d'exécuter des requêtes SQL directement sur la base de données WordPress. C'est là que ça devient vraiment puissant.

SQL (Structured Query Language) est le langage qui permet de lire et modifier les données dans la base de données. WordPress stocke tout en base : articles, pages, commentaires, options, utilisateurs. Avec SQL, vous pouvez tout interroger et tout modifier.

Exemples d'opérations courantes

Trouver les articles sans image mise en avant

Identifie immédiatement les articles qui manquent d'image à la une — critique pour le SEO et les réseaux sociaux.

wp db query "SELECT p.ID, p.post_title FROM wp_posts p LEFT JOIN wp_postmeta m ON p.ID = m.post_id AND m.meta_key='_thumbnail_id' WHERE p.post_type='post' AND p.post_status='publish' AND m.meta_value IS NULL"

Lister les articles avec des méta-descriptions vides (Yoast)

Détecte les articles sans méta-description — chaque article sans description perd des clics dans Google.

wp db query "SELECT p.ID, p.post_title FROM wp_posts p LEFT JOIN wp_postmeta m ON p.ID = m.post_id AND m.meta_key='_yoast_wpseo_metadesc' WHERE p.post_type='post' AND p.post_status='publish' AND (m.meta_value IS NULL OR m.meta_value='')"

Remplacer un texte dans tous les articles

Le flag --dry-run simule le remplacement sans rien modifier. Enlevez-le quand vous êtes sûr du résultat.

wp search-replace "ancien-texte" "nouveau-texte" wp_posts --dry-run

Supprimer les révisions pour alléger la base

D'abord on compte. Si le chiffre est énorme (souvent 5000+), on nettoie avec DELETE au lieu de SELECT COUNT(*).

wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type='revision'"
Toujours sauvegarder avant de modifier

Avant toute commande qui modifie des données (UPDATE, DELETE, REPLACE), faites un export : wp db export sauvegarde-avant-modif.sql. En cas de problème, vous pourrez restaurer avec wp db import sauvegarde-avant-modif.sql.

Vous commencez à voir le potentiel. Mais le vrai déclic, c'est quand vous voyez ça appliqué à un cas réel.

6. Cas client : 100 articles corrigés en une commande

Un client avec un site WordPress riche en contenu — plus d'une centaine d'articles publiés. Un site bien vivant, avec du trafic organique. Sauf qu'il y avait un problème structurel que personne n'avait vu.

Le problème

En rédigeant les articles, le client avait utilisé des balises H4, H5 et H6 pour structurer son contenu. Pourquoi ? Parce que visuellement, dans l'éditeur WordPress, ces balises produisaient des titres plus petits et plus élégants. Ça "rendait bien".

Le problème : du point de vue SEO, c'est une catastrophe. Google lit la hiérarchie des titres pour comprendre la structure de votre contenu. Passer de H1 directement à H4, c'est comme écrire un livre avec un titre de chapitre suivi directement de sous-sous-sous-sections. Google ne comprend plus rien. Le "jus SEO" se dilue.

Avant — structure cassée
H1 : Titre de l'article
...
H4 : Première section
...
H5 : Sous-section
...
H6 : Détail
H2 et H3 complètement sautés. Google ne comprend pas la hiérarchie.
Après — structure correcte
H1 : Titre de l'article
...
H2 : Première section
...
H3 : Sous-section
...
H4 : Détail
Hiérarchie propre. Google comprend la structure. SEO optimisé.

La solution

Corriger ça manuellement ? Ouvrir chaque article, repérer chaque titre, changer le niveau... Sur 100+ articles, c'est facilement 2 à 3 jours de travail de correction manuelle. Sans compter les erreurs inévitables.

Avec un LLM et WP-CLI, voici comment on a résolu le problème en quelques minutes :

01

Sauvegarde de la base de données

wp db export backup-avant-headings.sql
02

Diagnostic — compter les articles touchés

wp db query "SELECT COUNT(DISTINCT ID) FROM wp_posts WHERE post_status='publish' AND post_type='post' AND (post_content LIKE '%<h4%' OR post_content LIKE '%<h5%' OR post_content LIKE '%<h6%')"
03

Rebalancer les titres — H6 → H4, H5 → H3, H4 → H2

# Ordre important : on commence par le plus profond
# pour éviter les doubles remplacements

# H6 → H4
wp search-replace '<h6' '<h4' wp_posts --include-columns=post_content
wp search-replace '</h6>' '</h4>' wp_posts --include-columns=post_content

# H5 → H3
wp search-replace '<h5' '<h3' wp_posts --include-columns=post_content
wp search-replace '</h5>' '</h3>' wp_posts --include-columns=post_content

# H4 → H2 (ceux d'origine, pas ceux qu'on vient de créer)
# Ici on utilise SQL pour plus de précision
wp db query "UPDATE wp_posts SET post_content = REPLACE(post_content, '<h4', '<h2') WHERE post_status='publish' AND post_type='post'"
wp db query "UPDATE wp_posts SET post_content = REPLACE(post_content, '</h4>', '</h2>') WHERE post_status='publish' AND post_type='post'"
04

Vérification — s'assurer que tout est propre

wp db query "SELECT ID, post_title FROM wp_posts WHERE post_status='publish' AND post_type='post' AND (post_content LIKE '%<h5%' OR post_content LIKE '%<h6%')" --format=table
Résultat

100+ articles corrigés en moins de 5 minutes

Hiérarchie de titres propre : H2, H3, H4 au lieu de H4, H5, H6

Structure SEO conforme aux bonnes pratiques Google

Aucune perte de contenu, aucun article oublié

Sauvegarde disponible en cas de problème

Le client a d'abord eu du mal à comprendre pourquoi ses "jolis petits titres" posaient problème. Une fois l'impact SEO expliqué, et surtout une fois qu'il a vu que la correction prenait 5 minutes au lieu de 3 jours, la réaction a été unanime.

C'est exactement ce type d'opération que les LLMs rendent accessible. Vous décrivez le problème en français, le LLM génère la solution technique, vous l'exécutez. Pas besoin d'être développeur.

7. Bonnes pratiques et limites

Connecter un LLM à votre WordPress, c'est puissant. Mais comme tout outil puissant, il faut l'utiliser avec méthode.

Exécuter sans sauvegarder
Une requête SQL mal formée peut corrompre votre base de données. Pas de backup = pas de retour en arrière.
TOUJOURS faire un wp db export avant toute modification. C'est une ligne, ça prend 2 secondes.
Faire confiance aveuglément au LLM
Les LLMs peuvent générer des requêtes SQL incorrectes. Un UPDATE sans WHERE touche TOUS les enregistrements.
Toujours tester avec --dry-run ou SELECT avant UPDATE/DELETE. Vérifier la commande avant de l'exécuter.
Modifier la production directement
Si quelque chose casse, vos visiteurs le voient en temps réel.
Idéalement, testez sur un site de staging d'abord. Sinon, planifiez vos modifications en heures creuses.
Oublier de vider le cache après
Vos modifications sont en base mais les visiteurs voient l'ancienne version en cache.
Après chaque modification : wp cache flush. Et videz le cache de votre plugin de cache (WP Rocket, etc.).

Ce que les LLMs font bien vs. ce qui nécessite un expert

Les LLMs excellent pour...
  • Générer des commandes WP-CLI
  • Écrire des requêtes SQL de diagnostic
  • Modifications en masse prévisibles
  • Expliquer ce que fait une commande
  • Débugger des erreurs WordPress
Faites appel à un expert pour...
  • Migrations complexes de données
  • Problèmes de sécurité / site piraté
  • Optimisation performance serveur
  • Restructuration de l'architecture
  • Développement de thème sur mesure

Conclusion

SSH + WP-CLI + un LLM, c'est le combo qui transforme la gestion WordPress. Ce qui prenait des heures de clics répétitifs se fait maintenant en quelques commandes. Et le plus beau : vous n'avez pas besoin d'être développeur pour en profiter.

Le cas client ci-dessus est parlant : 100+ articles avec une hiérarchie de titres cassée, corrigés en 5 minutes. Sans LLM, c'est 3 jours de travail. Avec, c'est une conversation et quelques commandes.

Si votre WordPress a besoin d'un coup de nettoyage SEO, d'une optimisation de base de données, ou de modifications en masse — contactez-moi. Je peux soit le faire pour vous, soit vous accompagner pour que vous puissiez le faire vous-même.

DQ
Monitoring WordPress automatisé ?
Détectez les problèmes avant qu'ils n'impactent votre SEO.

Avec DigitalQT, vous pouvez surveiller votre WordPress en continu : performance, uptime, erreurs, et métriques SEO. Un assistant IA intégré vous aide à diagnostiquer et résoudre les problèmes — le même genre de workflow que ce qu'on a vu dans cet article, mais automatisé.

Découvrir DigitalQT

Votre WordPress a besoin d'un nettoyage ?

Audit SEO, optimisation base de données, corrections en masse — je vous dis ce qui peut être amélioré et comment.

Demander un diagnostic
SD
Stéphane Duma
Développeur Freelance React & Next.js — Perpignan

+10 ans d'expérience, 250+ projets livrés. Expert React, Next.js & WordPress. J'aide les entreprises à construire des expériences web performantes.

Travaillons
ensemble

Un projet en tête ? Parlons-en. Je réponds sous 24h.

me@stephduma.dev