WordPressSQLSEOWP-CLIPlaybook

10 requêtes SQL pour auditer et corriger votre SEO WordPress

SD
Stéphane Duma
··5 min de lecture

10 requêtes SQL à garder sous le coude pour diagnostiquer et corriger votre WordPress. Copier, coller dans votre terminal SSH, appuyer sur Entrée. Gagnez des heures d'audit manuel.

⚠
Toujours sauvegarder avant toute modification

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)

01

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"
02

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='')"
03

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%')"
04

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"
05

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)

06

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
07

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'"
08

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'"
09

Supprimer les commentaires spam

Vide tous les commentaires marqués spam.

wp comment delete $(wp comment list --status=spam --format=ids)
10

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

Travaillons
ensemble

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

me@stephduma.dev