Fiche vérifiée le 31 octobre 2026 · Canal production · Meteor Factory
Pourquoi utiliser SEO / GEO Dashboard ?
Auditez une URL publique, comprenez les scores SEO/GEO et suivez les corrections dans une checklist.
Pour qui
Équipes web, responsables de contenu et développeurs qui souhaitent prioriser les améliorations de structure, de contenu et de lisibilité pour les moteurs de recherche et les systèmes IA.
Ce que vous pouvez faire
- Associer un site à un projet et conserver son historique d’audits.
- Examiner les scores Contenu, GEO, Performance et Technique, puis les règles qui retirent des points.
- Ouvrir chaque constat, sa recommandation et ses critères de validation ; modifier son statut dans la checklist.
- Compléter l’audit déterministe par une analyse IA via les outils MCP, avec un agent configuré dans Singularity.
Les captures dans la galerie proviennent du plugin exécuté avec une page HTTP locale et un adaptateur de démonstration explicite. Interface en anglais, données fictives. Les URL privées sont refusées dans l’application : voir la Documentation pour reproduire la démo. Le score ne garantit ni classement ni citation par une IA.
Prérequis et activation
- Utilisez Singularity 2.x sur un système pris en charge, un espace de travail de démonstration et un projet ajouté à cet espace.
- Ouvrez le Marketplace, recherchez SEO / GEO Dashboard, puis installez-le. Ce plugin est payant : une licence autorisant son activation est nécessaire.
- Acceptez les permissions obligatoires, puis activez le plugin dans cet espace avec son interrupteur. L’installation seule ne suffit pas.
- Traitez chaque constat, tâche concurrente ou homonyme avec Ticket ou Ignorer : il n’y a plus de liste déroulante de statut, l’état découle du ticket et des audits. Un ticket terminé range le sujet dans Archives : en bleu « Pas encore en prod » tant qu’aucun audit du site en ligne ne l’a confirmé (ou « Corrigé en local · pas en prod » quand seul le dépôt local est corrigé), en rouge « Toujours présent » quand un audit postérieur le retrouve — il revient alors aussi dans la liste avec un bouton Créer un autre ticket. Un sujet ignoré passe dans Archives › Ignorés, quitte le rapport PDF, les gains, les compteurs et le plan copié, et y reste d’un audit à l’autre ; Remettre dans la liste l’annule. Les liens des tickets historiques restent accessibles. Copier le plan (Markdown), à côté de l’export PDF, permet de transmettre le plan.
Aucune clé IA n’est nécessaire pour le score déterministe. L’enrichissement IA demande un fournisseur/agent configuré séparément, capable d’appeler les outils MCP du plugin.
Premier résultat dans l’application
- Ajoutez un site : nom, URL publique, projet de code et, si utile, dossier du site. Le projet est obligatoire ; le dossier est facultatif.
- Chaque clic sur Lancer l’audit ouvre la modale native préremplie et modifiable pour un nouveau ticket. L’annulation reste neutre ; MCP crée directement un nouveau ticket sans déduplication.
- Dépliez une catégorie pour lire les points perdus. Dans Résolutions, choisissez l’axe SEO ou GEO puis ouvrez le constat et la recommandation d’une carte.
- Traitez chaque constat, tâche concurrente ou homonyme avec Ticket ou Ignorer : il n’y a plus de liste déroulante de statut, l’état découle du ticket et des audits. Un ticket terminé range le sujet dans Archives : en bleu « Pas encore en prod » tant qu’aucun audit du site en ligne ne l’a confirmé (ou « Corrigé en local · pas en prod » quand seul le dépôt local est corrigé), en rouge « Toujours présent » quand un audit postérieur le retrouve — il revient alors aussi dans la liste avec un bouton Créer un autre ticket. Un sujet ignoré passe dans Archives › Ignorés, quitte le rapport PDF, les gains, les compteurs et le plan copié, et y reste d’un audit à l’autre ; Remettre dans la liste l’annule. Les liens des tickets historiques restent accessibles. Copier le plan (Markdown), à côté de l’export PDF, permet de transmettre le plan.
Résultat attendu : un audit conservé dans l’historique, des actions classées et une checklist persistante. Un nouveau passage peut réutiliser l’audit lorsque son contenu déterministe est inchangé.
Démonstration reproductible
La page Atelier Boréal fournie dans docs/demo/index.html est servie par HTTP local. Le script associe l’origine fictive publique à ce serveur ; le produit continue de refuser localhost et les adresses privées. Le service réel, SQLite et le bundle UI sont utilisés. La checklist est exercée via le service réel. Aucun service externe ni ticket réel.
Les captures sont en français, thème clair, viewport 1440 × 900. La performance reste non mesurée faute de sonde ; consulter les catégories et la couverture, sans confondre score et audit exhaustif.
Scores et couverture
Les variantes exclusives et causes communes sont résolues par page avant regroupement par code. Les pages cible et accueil pèsent 3, les autres 1. Les pénalités de page sont moyennées avec ces poids ; les règles critiques max s’appliquent pleinement à la cible ou à l’accueil. Les contrôles du site s’appliquent une fois par code. La somme est plafonnée à 100, puis les points entiers sont répartis par plus grands restes (égalité départagée par code). Pour chaque catégorie mesurée : categoryScore = 100 - sum(entries.pointsLost). nominalPenalty conserve le montant avant pondération et arrondi.
Le score global est la moyenne arrondie des catégories mesurées. Sans sonde, la performance vaut null et est exclue du calcul : aucune pénalité pour une mesure absente. Sans HTML live ou local exploitable, les catégories sont non mesurées et le score de stockage reste 0, avec état incomplet (« Non mesurable »). Une ressource secondaire en échec, une page omise ou une performance non mesurée n’invalident plus l’audit : le score global s’affiche (liste des sites, en-tête, historique, PDF) avec un badge discret « Partiel » qui en donne les raisons ; les deltas comparent aussi ces audits et signalent un changement de couverture. Les constats HTML locaux deviennent des écarts local-live-drift à zéro point dès qu’une page live est disponible. Les estimations IA restent consultatives et ne changent jamais les scores.
Le registre src/main/scoring-registry.ts définit les règles. scoreBreakdown expose les déductions et sources ; metadata.coverage.execution décrit les tentatives, omissions, limites et 26 domaines de contrôle. partial et not-checked décrivent la couverture, pas une réussite du site.
Outils MCP et erreurs
seo_get_board: Lire le tableau actuel du site, archives et tickets inclus (auditId) ; chaque constat portelifecycle(open, in-progress, failed, awaiting-production, resolved, ignored) etproductionCheck.seo_set_subject_state: Ignorer ou remettre dans la liste un sujet ({auditId, source, itemId, action: "ignore"|"restore"}) ; renvoie lelifecycleobtenu.seo_create_audit: Créer un audit depuis une URL publique.seo_get_audit: Lire les scores, rapports et métadonnées (auditId).seo_submit_analysis: Soumettre les constats IA et leur justification, sans changer le score (auditId,findings,scoreRationale).seo_list_sites: Lister les sites du workspace.seo_get_site: Lire un site (id).seo_run_audit: Auditer un site et son dossier (siteId,sourceTicketIdfacultatif).seo_get_prompt: Lire une consigne parmi les 14 types (promptId,siteIdfacultatif).seo_create_enrichment_ticket: Créer directement un nouveau ticket à chaque appel (siteId,auditIdfacultatif), sans modale ni déduplication : un agent ne peut pas valider une modale.seo_start_audit_from_ticket: Résoudre le site depuis un ticket prérempli, auditer et réutiliser le ticket source sans en créer un second.
Les erreurs SEO_INVALID_INPUT, SEO_INVALID_OUTPUT, SEO_SERVICE_UNAVAILABLE et SEO_OPERATION_FAILED signalent respectivement entrée invalide, contrat de réponse invalide, plugin inactif et échec d’opération. SEO_SITE_NOT_FOUND, SEO_AUDIT_NOT_FOUND, SEO_PROMPT_NOT_FOUND demandent un identifiant existant. SEO_INVALID_ANALYSIS et SEO_INVALID_COMPETITOR_ANALYSIS demandent de corriger la soumission. Le README documente tous les codes de persistance et de tickets.
Réglages, permissions et limites
SQLite conserve les données par workspace ; les settings servent aux réglages et migrations. Les permissions optionnelles de lecture permettent le scan du projet. process.spawn autorise la sonde locale, sans être requis pour activer le plugin. Les mots-clés, tous les candidats concurrents et l’environnement production/prévisualisation se règlent par site. Les mesures de laboratoire ne sont pas des données terrain ; les contrôles de contenu, llms.txt et robots IA ne garantissent ni classement ni citations.
En cas d’échec, vérifier activation, licence, permissions, URL publique, accès réseau et dossier. Une absence de mesure ne prouve pas l’absence de défaut. Cette démonstration ne valide pas le fournisseur IA, le transport MCP, l’installation distante.
Maintenance et reproduction
Documented version: 2.5.147.
pnpm install --frozen-lockfile
pnpm build:tooling
pnpm exec playwright install chromium
node --import tsx scripts/seo-dashboard-docs/capture.mjs --verify
node --import tsx scripts/seo-dashboard-docs/capture.mjs → assets/screenshots/{fr,en,es}/. docs/qualification/plugin-documentation/seo-dashboard.md.
Les outils seo_run_audit et seo_create_audit renvoient immédiatement un job (jobId). Interroger seo_get_audit_job toutes les 1–2 secondes jusqu’à complete ou failed, puis utiliser auditId avec seo_get_audit. seo_start_audit_from_ticket renvoie le job dans job. Chaque appel reste court ; ne pas relancer la collecte pour attendre. Les jobs sont limités à l’activation courante ; après redémarrage, consulter les audits persistés du site puis relancer si nécessaire.
Ouvrir Analyse IA pour lire la synthèse, les verdicts par thème et les limites de mesure. Filtrer par axe ou statut ; seuls les thèmes critiques sont ouverts au départ. Déplier les preuves pour consulter URL, observation et date. Les liens du détail du score ouvrent le sujet ou le thème correspondant. Une analyse précédente est signalée pendant le rafraîchissement.
Concurrents vérifiés
Chaque acteur découvert dans les pages du site, comparatifs, sources du code, annuaires ou audits antérieurs figure dans candidates avec une décision explicite verified, excluded ou merged et son motif. Une fusion indique mergedInto ; ne jamais citer un concurrent hors du registre ni supprimer silencieusement un historique. Une fiche vérifiée comprend nom, URL, positionnement en une phrase, audience, tarif éventuel, atouts, écarts, opportunités, mots-clés, pages comparées, date de vérification et sources datées. Le plugin collecte à chaque audit via network.fetch : accueil, robots.txt, nombre d’URL de sitemap.xml, llms.txt, title/meta/H1, langues/hreflang, données structurées, HTTPS, URL finale et statut HTTP. Un site injoignable conserve son échec daté. Comparer ces observations au site audité ; la méthode va dans limitations, jamais dans un journal d’outils. Les anciens résumés sont conservés mais masqués ; relancer les anciens audits pour obtenir le format vérifié.
Depuis une ligne ou le détail d’un sujet, Créer un ticket ouvre la modale native préremplie. Sélectionner plusieurs sujets visibles permet de les regrouper dans un seul ticket. L’enregistrement du ticket rattache automatiquement les sujets et les passe En cours. Créer un autre ticket est disponible à côté du ticket lié. Les agents peuvent appeler seo_create_subject_ticket pour créer directement avec {siteId, subjects: [{auditId, source, itemId}]} ; source vaut audit, ai ou competitor. Pour les tâches concurrentes, itemId est la chaîne JSON [competitorUrl, task]. Les deux parcours utilisent le même brouillon complet.
Le bouton Ticket est disponible sur chaque écart/opportunité concurrent, faiblesse ou thème à améliorer, mot-clé découvert, couverture à compléter, perte de points et récurrence. Il ouvre la modale native préremplie ; seule une création confirmée produit le tag de référence et le statut coloré. Le bouton Créer un autre ticket reste directement accessible. Un ticket terminé archive le sujet et colore son tag selon la vérification en production. La réconciliation utilise les événements disponibles puis un secours borné avec backoff, sans attendre le rafraîchissement de 30 secondes.
Continuer avec Singularity
Ce plugin s’utilise dans un espace de travail Singularity. Consultez les permissions et les conditions de licence dans le Marketplace avant de l’activer.