Accueil / Blog / SQL pour SEO WordPress
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