Avant tout UPDATE, DELETE ou REPLACE : wp db export backup.sql. Pour les SELECT (lecture), aucun risque — vous ne modifiez rien.
Prérequis : accès SSH à votre serveur et WP-CLI disponible.
Pas encore ? Commencez par le guide SSH + WP-CLI pour débutants.
Diagnostic SEO (lecture seule)
Articles sans image à la une
Critique pour le SEO et les partages 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" Méta-descriptions vides (Yoast SEO)
Chaque article sans méta-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='')" Articles avec balisage cassé (H4/H5/H6)
Hiérarchie de titres incorrecte = Google perdu.
wp db query "SELECT COUNT(*) 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%')" Articles trop courts (< 300 mots)
Contenu fin = risque de pénalité SEO.
wp db query "SELECT ID, post_title, CHAR_LENGTH(post_content) AS taille FROM wp_posts WHERE post_status='publish' AND post_type='post' AND CHAR_LENGTH(post_content) < 1500 ORDER BY taille ASC" Articles avec titre trop long (> 60 caractères)
Google tronque les titres SERP au-delà de ~60 caractères.
wp db query "SELECT ID, post_title, CHAR_LENGTH(post_title) AS len FROM wp_posts WHERE post_status='publish' AND post_type='post' AND CHAR_LENGTH(post_title) > 60 ORDER BY len DESC" Corrections en masse (écriture — backup obligatoire)
Remplacer un texte partout (dry-run)
Le flag --dry-run simule sans modifier. Enlevez-le une fois le résultat vérifié.
wp search-replace "ancien-texte" "nouveau-texte" wp_posts --dry-run Rebalancer les H4 en H2
Correction globale du balisage en une commande.
wp db query "UPDATE wp_posts SET post_content = REPLACE(post_content, '<h4', '<h2') WHERE post_status='publish' AND post_type='post'" Nettoyer les révisions anciennes
Peut alléger la base de plusieurs MB. Comptez d'abord avec SELECT COUNT(*).
wp db query "DELETE FROM wp_posts WHERE post_type='revision'" Supprimer les commentaires spam
Vide tous les commentaires marqués spam.
wp comment delete $(wp comment list --status=spam --format=ids) Forcer le status "publish" sur brouillons validés
Attention : à n'utiliser que si vous savez que ces brouillons sont prêts.
wp db query "UPDATE wp_posts SET post_status='publish' WHERE post_status='draft' AND ID IN (123, 456, 789)" Demandez au LLM de les adapter
Ces requêtes couvrent les cas les plus fréquents. Pour tout ce qui est spécifique à votre base (plugins custom, taxonomies, post types), demandez simplement à ChatGPT ou Claude d'adapter la requête à votre cas.
Voir aussi : les 3 workflows LLM → WordPress et le guide complet.
Audit SEO complet de votre WordPress ?
Je passe ces requêtes (et d'autres) sur votre site et je vous livre un rapport avec priorisation.
Demander un audit