Module v1.6.1
Configurer SEO
Aide votre site à apparaître dans Google et à être compris par les moteurs de recherche.
Ce qu'il fait
Référencement : meta tags par page/article/projet/produit (hub multi-type via le filtre seo.items), audit qualité (score 0-100), génération images Open Graph, Schema.org JSON-LD, plan du site, redirections des anciennes adresses, notification des moteurs (IndexNow), relevé de la Search Console et versions par langue (hreflang).
- Aperçu Google en direct pendant l'écriture
- Score et conseils page par page
- Redirections des anciennes adresses
- Données structurées (Schema.org)
- Search Console reliée : vos positions et les mots tapés pour vous trouver, relevés chaque jour
- Plan du site tenu à jour, et moteurs prévenus des adresses modifiées (IndexNow)
- Journal des adresses introuvables (404) à côté des redirections
- Versions par langue déclarées aux moteurs (hreflang)
- Titres et descriptions pré-remplis à partir du contenu : on corrige, on ne part pas d'une page blanche (jamais de description générique)
- « À corriger d'abord » : cinq lignes au plus, classées par ce qu'elles coûtent, chacune menant à l'endroit où la réparer
- Fondations vérifiées sur la page réellement servie : HTTPS, « noindex », balise de mesure d'audience, image de partage, plan du site, robots.txt
Où le trouver
Les écrans que ce module ajoute à l'administration, une fois activé.
-
Référencement
/admin/seo
Ses réglages
Ils se modifient depuis l'administration. La clé est donnée pour qui pilote le site en ligne de commande ou par l'API.
| Réglage | Clé | Type | Par défaut |
|---|---|---|---|
| Densité cible (min,max %) | seo.target_keywords_density |
string | 0.5,3.0 |
Ses droits
Ce que chaque rôle peut faire par défaut. Modifiable rôle par rôle depuis l'administration.
| Droit | Clé | Administrateur | Éditeur |
|---|---|---|---|
| Voir le SEO | seo.read |
✓ | ✓ |
| Modifier les méta | seo.write |
✓ | ✓ |
| Régénérer images OG | seo.regenerate |
✓ | — |
Ce qu'il suppose
Le désactiver arrêterait aussi :
Piloter par une IA
Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.
-
a_corrigerlecture seuleCe qu'il faut corriger EN PREMIER sur le référencement, dans l'ordre de l'écran : ce qui rend le site invisible, les contenus hors suivi, les pages qui se battent sur le même mot-clé, les adresses mortes, les titres vides. Chaque chantier dit pourquoi et où le corriger.
« qu'est-ce que je corrige en premier sur mon SEO ? »
-
pageslecture seuleLes fiches de référencement suivies : titre et description pour Google, mot-clé cible, score d'audit (0 à 100), page cachée ou non. Filtre par type (page, article, project, product) ; faibles_d_abord trie par score croissant.
« quelles pages ont le moins bon score SEO ? »
-
modifierécrit, annulableModifie le titre pour Google (meta_title), la description (meta_description) ou le mot-clé cible (focus_keyword) d'une fiche. Journalisé, donc annulable ; la page est ré-auditée et signalée aux moteurs. Ne cache ni ne montre jamais une page à Google.
« réécris la description Google de la page d'accueil » « donne un meilleur titre à l'article sur les bougies »
Ses points de branchement
Pour greffer du code sans toucher au module : ce qu'il annonce, et ce qu'il écoute.
Ce qu'il annonce 10
seo.head.mesure- Event — dans le <head>, juste après Google Analytics (views/head.php, 2026-10-11). Args: [string $slug, ?string $type]. Le module qui écrit une balise de mesure vérifie LUI-MÊME, côté serveur, le consentement de sa catégorie avant d'écrire quoi que ce soit (les pixels : « marketing »). Rendu HTML direct (écho).
seo.branchements- Filter — les lignes du panneau « Est-ce que tout est branché ? » (Branchements::tous, 2026-10-11). Args: [array $lignes, string $base]. Un module y ajoute la sonde de ce qu'il branche, même forme de ligne : cle, titre, etat (ok|warn|fail), constat, action, url, plus `fondation` (true : listée dans les fondations de la vue d'ensemble) et `bloquant` (false : un rouge n'est pas un chantier qui rend le site invisible). Vérifié sur la page, jamais déclaré.
seo.image_du_contenu- Filter — l'image de partage d'un contenu dont la fiche SEO n'en a pas choisi (2026-10-10). Args: [string $image, string $contentType, string $sourceRef, string $slug] (la référence peut être vide : un contenu sans fiche SEO encore se retrouve par son slug). Le module qui possède le contenu rend son image (chemin médiathèque) si le type est le sien, sinon rend $image tel quel. La boutique : la photo principale ; les articles : la couverture ; les projets : l'image.
seo.audited- Émis après audit SEO d'une page. Args: [string $slug, int $score, array $details]
seo.redirect_created- Émis après création d'une redirection 301/302. Args: [int $id, string $source, string $target]
seo.redirect_deleted- Émis après suppression d'une redirection. Args: [int $id, string $source]
seo.og- Filter — les balises Open Graph propres au contenu (2026-10-16). Args: [array $balises, string $slug, ?string $type], propriété => valeur. Un og:type remplace « website », les autres (og:audio, music:duration…) s'ajoutent ; seules les propriétés og:/music:/video:/article: passent. Démo : modules/musique.
seo.jsonld- Filter — ajoute des blocs JSON-LD schema.org au <head> public (modules/seo/views/head.php). Args: [array $blocks, string $slug]. Chaque bloc = tableau schema.org complet (@context/@type). Démo : modules/faq ajoute un bloc FAQPage.
seo.sitemap_urls- Filter — ajoute des URLs à sitemap.php. Args: [array $urls]. Chaque entrée : ['loc'=>string, 'lastmod'=>?string Y-m-d, 'changefreq'=>?string, 'priority'=>?string].
seo.items- Filter — chaque module de contenu ajoute ses items PUBLIÉS au tableau. Item: ['type'=>page|article|project|product, 'ref'=>string (id/slug stable, jamais vide), 'slug'=>string (slug front courant), 'url'=>string (URL absolue ou path), 'title'=>string, 'meta_title'=>?string, 'meta_description'=>?string, 'og_image'=>?string, 'focus_keyword'=>?string, 'noindex'=>0|1]. Args: [array $items] → array. Un module inactif/sans listener ne contribue simplement rien (no-op).
Ce qu'il écoute 1
dashboard.blocs- priorité 20
Ses prises front
Les morceaux de page que ce module fournit, et les classes qu'ils posent. Un thème les habille par ces classes : il ne recopie pas le balisage, sinon il rate les corrections des versions suivantes.
views/head.php
0 classes
Aucune classe littérale : cette prise construit son balisage en PHP.
Ses données
Les tables que ce module crée. Désactiver un module ne les efface pas : ses données restent en base et reviennent s'il est réactivé.
Les tables 5
page_seoseo_404_logseo_indexnow_queueseo_redirectsseo_score_history