=== OGEEAT ===
Contributors: wpformation
Tags: open-graph, eeat, schema, seo, social-media
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.6.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Rank in AI, not just in Google. E-E-A-T schemas, GEO citability score, llms.txt and AI Crawler Firewall. The post-SEO plugin for WordPress.

== Description ==

**Your content deserves to be cited — not just indexed.**

In the AI-search era, ChatGPT, Perplexity, Claude, Gemini and Google’s AI Overviews answer millions of questions before anyone clicks a blue link. The engines decide *who* gets quoted. Your old SEO plugin was built to rank pages — not to make you citable. **OGEEAT is the free, GPL, post-SEO identity, authority and AI-citability layer for WordPress.**

No premium upsell. No subscription. No external SaaS. Where some tools charge hundreds of euros a month for "AI visibility", OGEEAT does it for free — and when it uses AI, it uses **your own AI**. Your keys stay yours.

It gives AI engines the three signals classic SEO plugins ignore:

* **WHO you are** — E-E-A-T identity, Schema.org Person + Organization (or LocalBusiness) + Article, generated automatically and linked together by `@id`.
* **WHY you’re credible** — Author credentials, expertise, certifications, degrees, years of experience, *Reviewed By* for YMYL, and site-level Trust Signals (About / Contact / HTTPS).
* **HOW to cite you** — Native `llms.txt` + `llms-full.txt`, a per-article GEO citability score, Share-with-AI buttons, APA references, and an AI Crawler Firewall.

**OGEEAT is not an SEO plugin. It’s a post-SEO plugin.** No sitemaps, no keyword tools, no redirections. It complements Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework, Squirrly or Slim SEO by adding the layer they don’t: AI readiness. When another plugin already handles Open Graph or `llms.txt`, OGEEAT defers automatically. Zero conflict.

---

### New in 2.6 — the AI-connector layer (BYO-LLM)

OGEEAT never ships, hosts or charges for an LLM. It routes every AI feature to **the AI you already have**:

* **Bring your own LLM** — On **WordPress 7** OGEEAT uses your site’s native AI connector (Settings → AI Connectors) with a **one-click approval** and **zero key stored** — it even respects the per-plugin AI-budget consent. On WordPress 6.x, paste your own **OpenAI** or **Anthropic** key instead, stored **AES-256-CBC encrypted**. No key is ever sent to WPFormation; the call goes straight from your site to your provider. A rolling 30-day usage counter shows exactly how much your provider was used.
* **Internal-linking cocon** — A local TF-IDF analysis (no AI, no external call) surfaces **orphan pages, keyword cannibalization and linking opportunities**, exportable to **CSV**. One on-demand button turns it into a prioritized **AI action plan** (Quick wins / Cannibalization / Cocon building) using your own connector — cached so repeat clicks don’t re-spend your budget.
* **Inline author E-E-A-T autofill** — On the user profile, point OGEEAT at any public "About" URL (or paste text) and your AI pre-fills job title, expertise, credentials, certifications and social links — protected by anti-SSRF blocking and a 5-calls/hour limit.
* **"Generate with AI" in the editor** — One-click generation of a meta description (≤155 chars), a voice snippet (≤40 words) and a quotable direct-answer opening (≤50 words), in your content’s language, via your own provider.
* **Google Search Console** — Read real queries, pages, clicks, impressions, CTR and position over the last 28 days, through **Site Kit’s** existing connection (zero OAuth setup) or your own Google Cloud OAuth client — cross-referenced with each page’s **GEO score and E-E-A-T completion**.
* **"Explain my AI visibility"** — One button turns your AI Visibility numbers into a plain-language explanation and concrete next steps, in French or English, via your own connector.
* **Bulk-audit inline quick-edit** — Edit a post’s OG title, OG description and `llms.txt` exclusion straight from the audit table; the status chip updates live, no reload.
* **IndexNow** — Opt-in instant notification to IndexNow (Bing, Yandex, Seznam, Naver) when a public post is published or updated, with an auto-generated verification key.
* **Expanded AI-Crawler Firewall** — A built-in database of **52 known AI bots** (16 traffic-driving search/assistant bots allowed by default, 36 training/scraping bots blocked), enforced via `robots.txt` **and** an `X-Robots-Tag` HTTP header.
* **Read-only Abilities + MCP server** — On WordPress 6.9+ OGEEAT registers 4 read-only Abilities (GEO score, E-E-A-T status, AI visibility, orphan content), published as **MCP tools** on WordPress 7 so AI agents can query your data safely.

---

### Everything OGEEAT does

**Identity & Authority**

* **Open Graph meta tags** — `og:title/description/url/type/site_name/locale/image` (with 1200×630 dimensions and `article:` author/published/modified), emitted on singular content and archives with a full fallback cascade (custom meta → title/excerpt/thumbnail → trimmed content / default image).
* **Twitter / X Cards** — `summary_large_image` cards with per-network title/description/image fields, `twitter:site`, and a `twitter:creator` derived from the author’s handle.
* **Organization / LocalBusiness schema** — Sitewide JSON-LD with logo, telephone, email, postal address, founding date, tax ID and `sameAs`; LocalBusiness adds geo-coordinates, opening hours (English *and* French day codes), price range, area served, currencies and payment methods. Auto-injects a `ContactPoint` when a Contact page is detected.
* **Person (author) schema** — Person JSON-LD from the profile’s job title, expertise (`knowsAbout`), photo, `sameAs`, and credentials (certifications + degrees) as `EducationalOccupationalCredential`, plus a years-of-experience description.
* **Article schema with entity linking** — Article JSON-LD linking author and publisher by `@id`, with image and `reviewedBy`.
* **Speakable / VEO voice snippet** — Adds a `SpeakableSpecification` for voice assistants (ChatGPT Voice, Gemini Live, Siri); the metabox field shows a live word count and recommends ≤40 words.
* **Reviewed By (YMYL)** — Designate a second expert as reviewer; surfaced as schema.org `reviewedBy`, a second Person schema, and a "Reviewed by…" line in the Author Box.
* **E-E-A-T author profile** — 12 dedicated profile fields (job title, expertise, years of experience, certifications, degrees, LinkedIn, Twitter/X, GitHub, YouTube, WordPress.org, website, photo) powering the schema and Author Box, with a completion percentage and a green/orange/red per-field analysis (including your native WordPress bio).
* **Front-end Author Box** — E-E-A-T card with photo, bio, up to 3 credential badges, post count, expertise and social links, marked up with Person microdata; configurable position, per-post opt-out, automatic skip on 22 legal/utility page slugs, and an `[ogeeat_author]` shortcode.
* **WebSite + SearchAction, BreadcrumbList, FAQPage, HowTo, VideoObject schemas** — Auto-generated where applicable: a sitelinks search box on the home page, breadcrumbs from page ancestors or the primary category, FAQ from `<details>`/Q&A headings (2+ pairs), HowTo from an ordered step list (English + French "comment"), and VideoObject from the first embedded YouTube/Vimeo.
* **APA references / citations** — Opt-in: mark links with the `ogeeat-cite` class or `[ogeeat_cite]` shortcode to get numbered in-text superscripts and an APA-lite "References" list (host, label, URL, retrieval date). Shortcodes `[ogeeat_references]` and `[ogeeat_cite]`.
* **Trust Signals** — Detects About page, Contact page and HTTPS as site-wide E-E-A-T signals (cached 6 hours) with a scored color and a dismissible admin notice when HTTPS is missing.
* **Editor metabox & Gutenberg sidebar** — Tabbed Google / Facebook / X-Twitter / LinkedIn live previews with character counters, per-network OG/Twitter override fields, a schema-status panel, an entity-linking map, plus a block-editor sidebar exposing OG fields, GEO score and author completion. Editable fields hide automatically when a detected SEO plugin manages OG.

**AI Readiness**

* **llms.txt & llms-full.txt** — Auto-generated plain-text files served at the site root, enriched with organization identity, author credentials and per-post metadata — an AI business card, not a dumb URL list. Configurable post/word limits, cache frequency, taxonomies and custom title/description/footer; meta description read from Yoast, Rank Math, AIOSEO, SEOPress or The SEO Framework.
* **Per-post llms.txt control** — Exclude individual posts (`_ogeeat_exclude_llms`) or override the AI-facing text with a custom note.
* **llms.txt manual editor** — Edit and serve a fully custom `llms.txt` (up to 500 KB, plain text only) that replaces the auto index, with save / reload-from-auto / reset actions.
* **llms.txt discovery & conflict detection** — Emits a discovery `<link>` tag and automatically stands down when the "Website LLMs.txt" plugin or Yoast SEO 24.9+ already provides `llms.txt`.
* **GEO citability score** — A per-post AI-citability score from **12 content checks** (Direct Answer, Structured Lists, FAQ, External Sources, Freshness, Identified Author, Voice Snippet, Statistics & Data, Internal Links, Content Length, OG Image, Organization), each scored green/orange/red with an overall rating; extendable via the `ogeeat_geo_checks` filter.
* **Share with AI** — Front-end buttons that open the article in **6 AI engines** (ChatGPT, Perplexity, Claude, Mistral, Gemini, Grok) with a locale-aware pre-filled prompt and return-tracking; configurable engines, position, label and template.
* **AI-Ready badge** — Optional "AI-Ready Content" footer badge.
* **Perfect-score celebration** — When a post hits a perfect GEO score, a celebration card with one-click share to X and LinkedIn.

**AI connector layer (BYO-LLM)**

* **3 providers, one facade** — WordPress 7 native connector (zero key), OpenAI, or Anthropic — resolved automatically, overridable by filter.
* **Encrypted key fallback** — OpenAI (`gpt-4o-mini` / `gpt-4o`) or Anthropic (`claude-haiku-4-5` / `claude-sonnet-4-6`), AES-256-CBC encrypted, with a "Test connection" validator and masked display.
* **Powers** author autofill, editor generation, internal-linking action plans, the AI-visibility explainer, and the Abilities/MCP layer — all on your own AI.

**Control & Insight**

* **AI Crawler Firewall** — Allow or block 52 known AI bots per-bot, plus custom user-agents; enforced via `robots.txt` and `X-Robots-Tag`, with a robots.txt preview and a warning when a physical `robots.txt` would override WordPress.
* **AI Visibility dashboard** — Tracks AI engine referrals, AI crawler visits and llms.txt fetches into a daily-aggregated table; metric cards, a 7/30/90-day trend chart, most-cited pages (with GEO score) and crawler activity.
* **AI Visibility Score (0-100)** — A composite directional score from referral traffic, crawl frequency, source diversity, llms.txt fetches and freshness, with a per-signal breakdown and automatic daily data-retention cleanup.
* **Bulk Audit** — A sortable table of every published post’s GEO score, E-E-A-T completion, OG status, inbound/outbound links (flagging orphans), author and date — with filtered views (missing OG image, low GEO, incomplete author, stale), inline quick-edit, and **CSV export** (UTF-8 BOM, RFC 4180).

**Workflow & onboarding**

* **3-step Setup Wizard** — First-activation onboarding for identity, site type and which of the 9 modules to enable.
* **Import from SEO plugin** — One-click import of Organization name, logo, phone, email and social profiles from Yoast, Rank Math or AIOSEO — fills only empty fields.
* **Settings export / import** — JSON backup of your whole config for migration or restore, plus a **preserve-data-on-uninstall** toggle.
* **Built-in Documentation** — An in-plugin Documentation page covering every module, an architecture table and a 9-entry FAQ.
* **Tabbed Settings hub** — A single OGEEAT menu with 4 tabs (Open Graph & Social, E-E-A-T & Organization, AI/GEO & Firewall, AI Connections).

---

### Why now

AI engines are deciding today who they will cite tomorrow. Sites that surface a real E-E-A-T identity, a citable structure and their own AI layer now compound an advantage that is nearly impossible to catch up later. Sites still optimized for 2019 SEO won’t.

OGEEAT gives you that layer — free, GPL, and powered by your own AI. Your keys stay yours.

---

**Version française :**

**Votre contenu mérite d’être cité, pas seulement indexé.**

À l’ère de la recherche par IA, ChatGPT, Perplexity, Claude, Gemini et les AI Overviews de Google répondent à des millions de questions avant le moindre clic sur un lien bleu. Ce sont les moteurs qui décident *qui* est cité. Votre ancienne extension SEO a été conçue pour classer des pages, pas pour vous rendre citable. **OGEEAT est la couche gratuite et GPL d’identité, d’autorité et de citabilité IA pour WordPress, à l’ère post-SEO.**

Aucune version premium. Aucun abonnement. Aucun service externe payant. Là où certaines suites de « visibilité IA » coûtent des centaines d’euros par mois, OGEEAT le fait gratuitement, et quand l’extension utilise l’IA, elle utilise **votre propre IA**. Vos clés restent chez vous.

Elle donne aux moteurs d’IA les trois signaux que les extensions SEO classiques ignorent :

* **QUI vous êtes** : identité [E-E-A-T](https://wpformation.com/eeat-wordpress/), schémas Schema.org Person + Organization (ou LocalBusiness) + Article, générés automatiquement et reliés entre eux par `@id`.
* **POURQUOI vous êtes crédible** : qualifications, expertise, certifications, diplômes, années d’expérience, *Reviewed By* pour le YMYL, et signaux de confiance au niveau du site (À propos / Contact / HTTPS).
* **COMMENT vous citer** : [llms.txt](https://wpformation.com/llms-txt-wordpress/) + llms-full.txt natifs, un score de citabilité [GEO](https://wpformation.com/geo-wordpress/) par article, des boutons de partage avec l’IA, des références APA et un firewall robots IA.

**OGEEAT n’est pas une extension SEO. C’est une extension post-SEO.** Pas de plans de site, pas d’outils de mots-clés, pas de redirections. Elle complète Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework, Squirrly ou Slim SEO en ajoutant la couche qu’elles ne fournissent pas : la préparation à l’IA. Quand une autre extension gère déjà l’Open Graph ou `llms.txt`, OGEEAT se met en retrait automatiquement. Aucun conflit.

---

### Nouveautés 2.6 : l’étage connecteur IA (BYO-LLM)

OGEEAT n’embarque, n’héberge et ne facture jamais de LLM. Chaque fonction IA s’appuie sur **l’IA que vous avez déjà** :

* **Apportez votre propre LLM** : sous **WordPress 7**, OGEEAT utilise le connecteur IA natif de votre site (Réglages → Connecteurs IA) avec une **autorisation en un clic** et **aucune clé stockée** ; il respecte même le consentement de budget IA propre à chaque extension. Sous WordPress 6.x, collez plutôt votre propre clé **OpenAI** ou **Anthropic**, stockée **chiffrée en AES-256-CBC**. Aucune clé n’est jamais envoyée à WPFormation : l’appel part directement de votre site vers votre fournisseur. Un compteur d’usage glissant sur 30 jours indique précisément combien votre fournisseur a été sollicité.
* **Cocon de maillage interne** : une analyse TF-IDF locale (sans IA, sans appel externe) fait remonter **pages orphelines, cannibalisation de mots-clés et opportunités de maillage**, exportables en **CSV**. Un bouton à la demande la transforme en **plan d’action IA** priorisé (gains rapides, cannibalisation, construction du cocon) via votre propre connecteur, mis en cache pour que les clics répétés ne reconsomment pas votre budget.
* **Auto-remplissage E-E-A-T de l’auteur ou autrice** : sur le profil, pointez OGEEAT vers n’importe quelle URL publique (page « À propos » ou autre, ou collez du texte) et votre IA préremplit titre professionnel, expertise, qualifications, certifications et liens sociaux ; le tout protégé par un blocage anti-SSRF et une limite de 5 appels par heure.
* **« Générer avec l’IA » dans l’éditeur** : génération en un clic d’une meta description (≤ 155 caractères), d’un extrait vocal (≤ 40 mots) et d’un paragraphe de réponse directe citable (≤ 50 mots), dans la langue de votre contenu, via votre propre fournisseur.
* **Google Search Console** : lisez requêtes, pages, clics, impressions, CTR et position réels sur les 28 derniers jours, via la connexion existante de **Site Kit** (aucune configuration OAuth) ou votre propre client OAuth Google Cloud, croisés avec le **score GEO et le niveau E-E-A-T** de chaque page.
* **« Expliquer ma visibilité IA »** : un bouton transforme vos chiffres de visibilité IA en une explication en langage clair, avec des actions concrètes, en français ou en anglais, via votre propre connecteur.
* **Édition rapide dans l’audit en masse** : modifiez le titre OG, la description OG et l’exclusion `llms.txt` d’un article directement depuis le tableau d’audit ; l’indicateur de statut se met à jour en direct, sans rechargement.
* **IndexNow** : notification instantanée et optionnelle à IndexNow (Bing, Yandex, Seznam, Naver) à chaque publication ou mise à jour d’un contenu public, avec une clé de vérification générée automatiquement.
* **Firewall robots IA étendu** : une base intégrée de **52 robots IA connus** (16 robots de recherche et d’assistance, porteurs de trafic, autorisés par défaut ; 36 robots d’entraînement et d’aspiration bloqués), appliquée via `robots.txt` **et** un en-tête HTTP `X-Robots-Tag`.
* **Abilities en lecture seule + serveur MCP** : sous WordPress 6.9+, OGEEAT enregistre 4 capacités (« Abilities ») en lecture seule (score GEO, statut E-E-A-T, visibilité IA, contenus orphelins), publiées comme **outils MCP** sous WordPress 7 pour que les agents IA interrogent vos données en toute sûreté.

---

### Tout ce que fait OGEEAT

**Identité et autorité**

* **Balises Open Graph** : `og:title/description/url/type/site_name/locale/image` (avec dimensions 1200×630 et `article:` auteur/publication/modification), émises sur les contenus uniques et les archives, avec une cascade de repli complète (meta personnalisée, puis titre/extrait/image mise en avant, puis contenu tronqué ou image par défaut).
* **Twitter / X Cards** : cartes `summary_large_image` avec champs titre/description/image propres au réseau, `twitter:site` et un `twitter:creator` déduit du compte de l’auteur ou autrice.
* **Schéma Organization / LocalBusiness** : JSON-LD à l’échelle du site avec logo, téléphone, e-mail, adresse postale, date de fondation, numéro fiscal et `sameAs` ; LocalBusiness ajoute coordonnées géographiques, horaires d’ouverture (codes de jours en anglais *et* en français), gamme de prix, zone desservie, devises et moyens de paiement. Injecte automatiquement un `ContactPoint` lorsqu’une page Contact est détectée.
* **Schéma Person (auteur ou autrice)** : JSON-LD Person à partir du titre professionnel, de l’expertise (`knowsAbout`), de la photo, des `sameAs` et des qualifications (certifications + diplômes) en `EducationalOccupationalCredential`, plus une description des années d’expérience.
* **Schéma Article avec liaison d’entités** : JSON-LD Article reliant auteur/autrice et éditeur par `@id`, avec image et `reviewedBy`.
* **Extrait vocal Speakable / VEO** : ajoute une `SpeakableSpecification` pour les assistants vocaux (ChatGPT Voice, Gemini Live, Siri) ; le champ de la metabox affiche un comptage de mots en direct et recommande ≤ 40 mots.
* **Reviewed By (YMYL)** : désignez une seconde personne experte comme relectrice ; restituée en `reviewedBy` schema.org, en second schéma Person et en ligne « Relu par… » dans l’encadré auteur ou autrice.
* **Profil E-E-A-T de l’auteur ou autrice** : 12 champs de profil dédiés (titre professionnel, expertise, années d’expérience, certifications, diplômes, LinkedIn, Twitter/X, GitHub, YouTube, WordPress.org, site web, photo) qui alimentent les schémas et l’encadré, avec un pourcentage de complétude et une analyse champ par champ en vert/orange/rouge (y compris votre biographie WordPress native).
* **Encadré auteur ou autrice (interface publique)** : carte E-E-A-T avec photo, biographie, jusqu’à 3 badges de qualification, nombre d’articles, expertise et liens sociaux, balisée en microdonnées Person ; position configurable, masquage individuel par article, masquage automatique sur 22 slugs de pages légales ou utilitaires, et code court `[ogeeat_author]`.
* **Schémas WebSite + SearchAction, BreadcrumbList, FAQPage, HowTo, VideoObject** : générés automatiquement le cas échéant : boîte de recherche de liens de site sur la page d’accueil, fil d’Ariane à partir des pages parentes ou de la catégorie principale, FAQ à partir des `<details>` ou titres question-réponse (2 paires minimum), HowTo à partir d’une liste ordonnée d’étapes (anglais + français « comment »), et VideoObject à partir de la première vidéo YouTube/Vimeo intégrée.
* **Références / citations APA** : optionnel ; marquez vos liens avec la classe `ogeeat-cite` ou le code court `[ogeeat_cite]` pour obtenir des appels de note numérotés en exposant et une liste « Références » au format APA simplifié (hôte, libellé, URL, date de consultation). Codes courts `[ogeeat_references]` et `[ogeeat_cite]`.
* **Signaux de confiance** : détecte page À propos, page Contact et HTTPS comme signaux E-E-A-T à l’échelle du site (mis en cache 6 heures), avec une couleur de score et une notice d’administration masquable lorsque le HTTPS manque.
* **Metabox éditeur et colonne latérale Gutenberg** : prévisualisations en direct Google / Facebook / X-Twitter / LinkedIn avec compteurs de caractères, champs OG/Twitter personnalisés par réseau, panneau de statut des schémas, carte de liaison d’entités, plus une colonne latérale dans l’éditeur de blocs exposant les champs OG, le score GEO et la complétude de l’auteur ou autrice. Les champs se masquent automatiquement quand une extension SEO détectée gère l’OG.

**Préparation à l’IA**

* **llms.txt et llms-full.txt** : fichiers texte générés automatiquement et servis à la racine du site, enrichis de l’identité de l’organisation, des qualifications de l’auteur ou autrice et des métadonnées par article ; une carte de visite IA, pas une simple liste d’URL. Limites d’articles et de mots, fréquence de cache, taxonomies et titre/description/pied personnalisés configurables ; meta description lue depuis Yoast, Rank Math, AIOSEO, SEOPress ou The SEO Framework.
* **Contrôle par article du llms.txt** : excluez certains articles (`_ogeeat_exclude_llms`) ou surchargez le texte destiné à l’IA par une note personnalisée.
* **Éditeur manuel du llms.txt** : éditez et servez un `llms.txt` entièrement personnalisé (jusqu’à 500 Ko, texte brut uniquement) qui remplace l’index automatique, avec actions enregistrer, recharger depuis l’auto et réinitialiser.
* **Découverte et détection de conflit du llms.txt** : émet une balise `<link>` de découverte et se met automatiquement en retrait quand l’extension « Website LLMs.txt » ou Yoast SEO 24.9+ fournit déjà `llms.txt`.
* **Score de citabilité GEO** : un score de citabilité IA par article à partir de **12 vérifications de contenu** (réponse directe, listes structurées, FAQ, sources externes, fraîcheur, auteur ou autrice identifié, extrait vocal, statistiques et données, liens internes, longueur du contenu, image OG, organisation), chacune notée vert/orange/rouge avec une note globale ; extensible via le filtre `ogeeat_geo_checks`.
* **Partager avec l’IA** : boutons en interface publique qui ouvrent l’article dans **6 moteurs d’IA** (ChatGPT, Perplexity, Claude, Mistral, Gemini, Grok) avec une invite préremplie adaptée à la langue et un suivi des retours ; moteurs, position, libellé et modèle configurables.
* **Badge « prêt pour l’IA »** : badge optionnel « AI-Ready Content » en pied de page.
* **Célébration du score parfait** : lorsqu’un article atteint un score GEO parfait, une carte de célébration avec partage en un clic vers X et LinkedIn.

**Étage connecteur IA (BYO-LLM)**

* **3 fournisseurs, une façade** : connecteur natif WordPress 7 (sans clé), OpenAI ou Anthropic, résolus automatiquement, surchargés par filtre.
* **Repli par clé chiffrée** : clé OpenAI ou Anthropic chiffrée en AES-256-CBC, avec un validateur « Tester la connexion » et un affichage masqué.
* **Alimente** l’auto-remplissage de l’auteur ou autrice, la génération dans l’éditeur, les plans d’action de maillage, l’explication de visibilité IA et l’étage Abilities/MCP ; le tout sur votre propre IA.

**Contrôle et observation**

* **Firewall robots IA** : autorisez ou bloquez 52 robots IA connus, robot par robot, plus des user-agents personnalisés ; appliqué via `robots.txt` et `X-Robots-Tag`, avec un aperçu du robots.txt et un avertissement lorsqu’un `robots.txt` physique prendrait le pas sur WordPress.
* **Tableau de bord Visibilité IA** : suit les renvois des moteurs d’IA, les visites des robots IA et les lectures de llms.txt dans un tableau agrégé par jour ; cartes de mesures, graphique de tendance 7/30/90 jours, pages les plus citées (avec score GEO) et activité des robots.
* **Score de visibilité IA (0-100)** : un score composite directionnel à partir du trafic de renvoi, de la fréquence d’exploration, de la diversité des sources, des lectures de llms.txt et de la fraîcheur, avec un détail par signal et un nettoyage automatique de la rétention des données.
* **Audit en masse** : un tableau triable du score GEO, de la complétude E-E-A-T, du statut OG, des liens entrants/sortants (signalant les orphelins), de l’auteur ou autrice et de la date de chaque article publié, avec vues filtrées (image OG manquante, GEO faible, auteur ou autrice incomplet, contenu daté), édition rapide en ligne et **export CSV** (UTF-8 BOM, RFC 4180).

**Mise en route et flux de travail**

* **Assistant de configuration en 3 étapes** : prise en main à la première activation pour l’identité, le type de site et les modules à activer.
* **Import depuis une extension SEO** : import en un clic du nom de l’organisation, du logo, du téléphone, de l’e-mail et des profils sociaux depuis Yoast, Rank Math ou AIOSEO ; ne remplit que les champs vides.
* **Export / import des réglages** : sauvegarde JSON de toute votre configuration pour migration ou restauration, plus une option « conserver les données à la désinstallation ».
* **Documentation intégrée** : une page de documentation couvrant chaque module, un tableau d’architecture et une FAQ.
* **Réglages centralisés à onglets** : un seul menu OGEEAT avec 4 onglets (Open Graph et social, E-E-A-T et organisation, IA/GEO et firewall, connexions IA).

---

### Pourquoi maintenant

Les moteurs d’IA décident aujourd’hui qui ils citeront demain. Les sites qui exposent dès maintenant une véritable identité E-E-A-T, une structure citable et leur propre couche IA accumulent une avance presque impossible à rattraper ensuite. Les sites encore optimisés pour le SEO de 2019, non.

OGEEAT vous donne cette couche : gratuite, GPL, et propulsée par votre propre IA. Vos clés restent chez vous.

== Installation ==

1. Upload the `ogeeat` folder to `/wp-content/plugins/`
2. Activate the plugin through the Plugins menu
3. Go to Settings → OGEEAT to configure
4. Fill in your author profile under Users → Profile

== Frequently Asked Questions ==

= Does OGEEAT replace Yoast or Rank Math? =

No. OGEEAT complements your SEO plugin by adding [E-E-A-T](https://wpformation.com/eeat-wordpress/) schemas and [GEO](https://wpformation.com/geo-wordpress/) optimization that SEO plugins don't provide.

= OGEEAT remplace-t-il Yoast ou Rank Math ? =

Non. OGEEAT complète votre extension SEO en ajoutant les schémas [E-E-A-T](https://wpformation.com/eeat-wordpress/) et l’optimisation [GEO](https://wpformation.com/geo-wordpress/) que les extensions SEO ne proposent pas.

= What happens if I use Yoast and OGEEAT? =

OGEEAT detects Yoast's Open Graph settings. If Yoast handles OG tags, OGEEAT disables its own OG module automatically. E-E-A-T and GEO features remain active.

= What is E-E-A-T? =

Experience, Expertise, Authoritativeness, Trustworthiness — [Google's quality signals](https://wpformation.com/eeat-wordpress/). OGEEAT generates structured data (Schema.org) that communicates your expertise to search engines and AI.

= Qu’est-ce que l’E-E-A-T ? =

Expérience, Expertise, Autorité, Fiabilité — les [signaux de qualité de Google](https://wpformation.com/eeat-wordpress/). OGEEAT génère des données structurées (Schema.org) qui communiquent votre expertise aux moteurs de recherche et à l’IA.

= What is GEO? =

[Generative Engine Optimization](https://wpformation.com/geo-wordpress/) — optimizing content to be cited by AI engines like ChatGPT, Perplexity, and Google AI Overviews. OGEEAT scores each post on 12 citability checks.

= Qu’est-ce que le GEO ? =

[Generative Engine Optimization](https://wpformation.com/geo-wordpress/) — l’optimisation du contenu pour être cité ou citée par les moteurs d’IA comme ChatGPT, Perplexity et Google AI Overviews. OGEEAT évalue chaque article sur 12 critères de citabilité.

= What is llms.txt? =

[llms.txt](https://wpformation.com/llms-txt-wordpress/) is a structured text file that helps AI engines understand your site, your expertise, and your content. Think of it as robots.txt for AI — but instead of blocking, it invites and informs.

= Qu’est-ce que llms.txt ? =

[llms.txt](https://wpformation.com/llms-txt-wordpress/) est un fichier texte structuré qui aide les moteurs d’IA à comprendre votre site, votre expertise et votre contenu. C’est comme un robots.txt pour l’IA — mais au lieu de bloquer, il invite et informe.

= What is the AI Crawler Firewall? =

The firewall lets you selectively allow or block 9 known AI bots via robots.txt rules and X-Robots-Tag HTTP headers. Search bots (GoogleBot, ChatGPT-User, PerplexityBot) are allowed by default. Training bots (GPTBot, CCBot, Bytespider) are blocked by default. You can customize each bot individually and add custom User-Agents.

= What is the Share with AI feature? =

Share with AI adds buttons to your posts so visitors can send your article directly to ChatGPT, Perplexity, Claude, Mistral, Gemini, or Grok. This increases the chance that AI engines learn about and cite your content.

= Is OGEEAT free? / OGEEAT est-il gratuit ? =

Yes, completely free with no premium upsells. / Oui, entièrement gratuite, sans version premium cachée.

== External services ==

OGEEAT only contacts an external service when you turn on the matching feature. The core identity, schema, llms.txt, GEO, audit and firewall features run entirely on your own server with no external call.

= Your AI provider (OpenAI / Anthropic / WordPress 7 AI connector) =

The optional AI features — author E-E-A-T autofill, "Generate with AI" in the editor, the internal-linking AI action plan, the "Explain my AI visibility" summary, and the connection test — send the relevant prompt and the page or profile text you target to the AI provider you configure. On WordPress 7 the request is made through your site's own native AI connector (Settings → AI Connectors). On WordPress 6.x, if you paste an OpenAI or Anthropic API key, OGEEAT calls the provider directly: OpenAI (`https://api.openai.com/v1/chat/completions`) or Anthropic (`https://api.anthropic.com/v1/messages`). No key or content is ever sent to WPFormation; the call goes straight from your site to your provider, and these features stay off until you configure one.
OpenAI — [Terms](https://openai.com/policies/terms-of-use/), [Privacy](https://openai.com/policies/privacy-policy/). Anthropic — [Terms](https://www.anthropic.com/legal/consumer-terms), [Privacy](https://www.anthropic.com/legal/privacy).

= Author autofill source page =

When you use the author E-E-A-T autofill, OGEEAT fetches the public URL you type in (for example an "About" page) to extract bio text before sending it to your AI provider. Only the URL you enter is requested; private and loopback addresses are blocked and the action is rate-limited.

= IndexNow =

When you enable IndexNow, OGEEAT submits the URL of a public post to the IndexNow API (`https://api.indexnow.org/indexnow`) each time it is published or updated, so participating engines (Bing, Yandex, Seznam, Naver) can recrawl it. Only the URL and your site's auto-generated IndexNow key are sent. Off by default. See [indexnow.org](https://www.indexnow.org/).

= Google Search Console (manual OAuth path only) =

If you connect Search Console without Site Kit, OGEEAT exchanges your Google OAuth authorization code with Google (`https://oauth2.googleapis.com/token`) and reads your last 28 days of Search Analytics (`https://searchconsole.googleapis.com/webmasters/v3/...`). When the Site Kit by Google plugin is installed, OGEEAT reads the data through Site Kit's own connection and makes no Google call itself. The scope is read-only (`webmasters.readonly`) and nothing happens until you connect. See [Google Privacy Policy](https://policies.google.com/privacy).

= Google Fonts =

On OGEEAT admin screens, the admin interface loads the Inter and JetBrains Mono web fonts from Google Fonts (`https://fonts.googleapis.com`). This is an admin-only stylesheet request made by your browser; it is never loaded on your public site. See [Google Privacy Policy](https://policies.google.com/privacy).

= Gravatar (Automattic) =

This plugin uses WordPress core's `get_avatar_url()` to display author avatars. WordPress may send a hashed email to [Gravatar](https://gravatar.com/) servers. This is controlled by Settings > Discussion > Avatars. See [Automattic Terms of Service](https://automattic.com/tos/) and [Privacy Policy](https://automattic.com/privacy/).

== Screenshots ==

1. Settings page — Social tab with Open Graph configuration
2. Settings page — Authority tab with Organization fields
3. Settings page — AI tab with GEO and LLMS.txt options
4. Dashboard overview widget with GEO, OG, E-E-A-T and AI metrics
5. Post editor — GEO citability score with badges and checks
6. Post editor — E-E-A-T author profile, schema status and entity linking map

== Changelog ==

= 2.6.5 =
* Internal Linking: the on-demand "AI action plan" now renders as formatted HTML (headings, bullets, bold) instead of raw Markdown, so it is readable. The AI Visibility explanation is formatted the same way.
* Internal Linking: the "Recompute" and "Export CSV" buttons are now plain text buttons — fixes the misaligned icons.

= 2.6.4 =
* Author E-E-A-T: the "Fill with AI" assistant is now an inline panel with a URL field you control (About page, profile, trainer page — any public URL), and it correctly maps the generated values to your profile fields.
* Internal Linking: added a CSV export (orphans, cannibalization and opportunities in one file) and an on-demand "AI action plan" that turns the analysis into a short, prioritized to-do list via your own AI connector. Fixed the misaligned "Recompute" icon.
* Search Console: split into two tabs (queries and pages) and each page is now cross-referenced with its GEO score and E-E-A-T level, so you can spot well-ranked pages that still need optimization.
* AI Visibility: added an on-demand "Explain my AI visibility" that turns the numbers into a plain-language summary with next steps, via your own AI connector.
* Bulk Audit: inline quick-edit of OG title, OG description and llms.txt exclusion directly from the table — no need to open each post.
* AI connector notice: OGEEAT now clears its own pending-approval entries once approved, so the native "a plugin is requesting access" notice no longer lingers.

= 2.6.3 =
* Search Console: OGEEAT now reads your real Search Console data (top queries and pages, last 28 days) directly through Site Kit by Google, with no Google credentials to create.
* Code quality: Plugin Check is now clean (0 errors, 0 warnings).

= 2.6.2 =
* Fix: AI generation now works with native WordPress 7 connectors. It sets a model preference (the client otherwise defaulted to an unavailable model) and surfaces real errors instead of returning empty.
* New: one-click "Authorize OGEEAT" button. WordPress 7 requires each plugin to be approved before using your AI connector; OGEEAT records that consent for you, and you can revoke it anytime.
* Internal Linking page reorganized into three tabs (orphans, cannibalization, opportunities) with counts, so every issue is visible at a glance.
* Search Console now integrates with Site Kit by Google: no Google OAuth credentials to create. Manual OAuth is kept as an advanced fallback.
* French typography pass on admin strings (em dashes removed, non-breaking spaces).

= 2.6.1 =
* Internal Linking (local cocon) page fully translated to French.
* AI features now rely on the native WordPress 7 AI connectors: configure a connector once under Settings, AI Connectors and OGEEAT uses it, with no API key to re enter.
* IndexNow moved to its own settings card, aligned with the other options.
* Clearer copy on the AI Connections tab; French typography fixes.

= 2.6.0 =
* New: Internal Linking, a local semantic cocon (orphan pages, internal link suggestions, keyword cannibalization) computed on your server, with no external API.
* New: extended schema.org output (WebSite and SearchAction, BreadcrumbList, FAQPage, HowTo, VideoObject).
* New: IndexNow support to notify search and AI engines on publish or update.
* New: OGEEAT abilities and MCP server exposing GEO, E-E-A-T and AI visibility data on WordPress 7.
* New: Google Search Console integration (opt in).
* New: AI Crawler Firewall now recognizes 52 bots.

= 2.5.0 =
* AI Author Assistant — auto-fill cartouches via OpenAI / Anthropic (opt-in).
* Console redesign — refonte visuelle complète (Inter + JetBrains Mono, hairlines, orange = IA).
* WordPress 7 ready — détection des connecteurs LLM natifs.
* Suppression du Firewall self-test (cassé sur shared hosting). Firewall lui-même intact.
* Provider abstraction Ogeeat_AI_Provider_Interface + chiffrement AES-256-CBC des clés API.

= 2.2.1 =
* Fix: GEO score Organization check always showed "not set" even when Organization was properly configured. Internal key mismatch prevented detection. Score and schema were unrelated — the Organization schema was generated correctly on the front-end.

= 2.2.0 =
* New: **Reviewed By** — YMYL expert validation. Add a reviewer to any post (select from any WP user with an E-E-A-T profile). Adds schema.org `reviewedBy` markup and displays "Reviewed by X, Job Title" under the Author Box. Strong credibility signal for medical, financial and legal content.
* New: **References APA** (opt-in) — mark outbound links with the CSS class `ogeeat-cite` or use the `[ogeeat_cite]` shortcode to auto-format an APA-style references block. Zero auto-modification of content, strict opt-in.
* New: **Trust Signals** — site-wide detection of About page, Contact page and HTTPS. Dashboard widget with actionable links (create missing pages, configure HTTPS). Contact page detection also feeds a `contactPoint` entry in the Organization schema. Admin notice when HTTPS is missing (YMYL critical).
* New: **llms.txt Inline Editor** — edit the content served at /llms.txt directly from wp-admin. Override auto-generation, reload from auto, reset, 500 KB cap. Copy URL and "Test live" buttons.
* New: **Author Box per-post hide** — a checkbox in the OGEEAT metabox to disable the Author Box on a specific article. Useful for guest posts, press releases, landing pages. Developer filter `ogeeat_author_box_display` also available.
* New: **Author Box smart defaults** — automatically hidden on legal/utility pages (mentions-legales, privacy-policy, terms, cookies, sitemap, etc.). Filter `ogeeat_author_box_legal_slugs` to customize.
* New: **Grok in Share with AI** — 6th AI engine supported alongside ChatGPT, Perplexity, Claude, Mistral and Gemini.
* New: **Shadow Score discoverability** — the scoring breakdown is now a click-to-toggle panel with `aria-expanded` / `aria-controls` attributes instead of a hidden hover tooltip. WCAG 2.1 AA compliant.
* New: **Import from SEO plugin** — one-click import of Organization name, logo, phone, email and social profiles from Yoast SEO, Rank Math or AIOSEO. Fills only empty OGEEAT fields.
* New: **Export / Import settings** — download the entire OGEEAT configuration as JSON and restore it on another site.
* New: **Firewall self-test** — pick an AI bot from the list and run a live request against your /robots.txt to confirm it's actually blocked.
* New: **Setup Wizard — Author Box step** — enable the Author Box and pick post types during onboarding.
* New: **Reviewed By column badge** — a green check icon in the post list makes it easy to spot reviewed articles.
* New: **Dashboard low-score counter** — "N article(s) with incomplete AI signals" quick action card linked to the Bulk Audit screen.
* New: **Metabox contextual hint** — when the Author Box is disabled globally or not active on the current post type, a hint links directly to the relevant setting.
* Improved: Trust Signals HTTPS notice now requires `manage_options` capability.
* i18n: new French strings for all above features (strict Polyglots compliance).

= 2.1.7 =
* New: Grok added to Share with AI (6 AI engines now supported: ChatGPT, Perplexity, Claude, Mistral, Gemini, Grok)
* Fixed: OGEEAT SEO detection notice was displayed on every admin page (including other plugin settings). Now limited to Dashboard, post/page lists and OGEEAT screens.
* i18n: Updated "Buttons to share content" docs string to include Grok

= 2.1.6 =
* i18n: Strict WordPress FR Polyglots compliance — curly apostrophes (U+2019), non-breaking spaces before `: ; ? !`, French guillemets « »
* i18n: Glossary terms enforced — plugin → extension, AI → IA, dashboard → Tableau de bord, settings → réglages, front-end → interface publique, shortcode → code court
* i18n: Inclusive writing — auteur/autrice, éditeur/éditrice, utilisateur/utilisatrice
* i18n: 515 translations submitted to translate.wordpress.org (347 plugin + 168 readme, pending PTE approval)
* Readme: French section fully rewritten to Polyglots standards (accents restored, terminology fixed)
* No code changes — i18n-only release

= 2.1.5 =
* i18n: Complete French translation (718 strings, was 240)
* Fixed: Plugin Check (PCP) — 0 errors, 0 warnings
* Fixed: Proper output escaping with absint() on printf args
* Fixed: phpcs:ignore annotations for nonce verification and SQL table names

= 2.1.4 =
* Security: URL validation (esc_url_raw) on Twitter image meta fields
* Security: Replaced innerHTML with DOM API in 3 admin JS files (defense-in-depth)
* Fixed: Removed duplicate links from English description (kept in French only)

= 2.1.3 =
* Fixed: Author box bio now renders links (a href) instead of displaying raw HTML
* New: Physical robots.txt detection — admin warning when a file overrides WP virtual robots.txt
* Improved: Setup Wizard CSS and JS externalized (no more inline scripts)
* Security: All inline scripts fully externalized across the plugin

= 2.1.2 =
* Security: ABSPATH direct access protection on all 16 PHP includes
* Security: All inline scripts externalized (author-photo.js, admin-settings.js)
* Security: sanitize_text_field() on firewall custom bots input
* Security: Badge inline styles moved to wp_add_inline_style()
* Improved: Firewall reset button externalized to admin-settings.js
* Improved: SEO notice uses wp_add_inline_script() instead of inline output
* Improved: Author profile fields use get_fields() with i18n support

= 2.1.1 =
* New: Setup Wizard — 3-step onboarding (Identity, Modules, Done)
* New: Auto-redirect to wizard on first activation
* New: Documentation page in-plugin with module guides

= 2.1.0 =
* New: AI Visibility Dashboard — track AI bot crawls and referral traffic
* New: Shadow crawl tracking with Chart.js visualization
* New: Bulk Audit — WP_List_Table to audit all posts at once

= 2.0.0 =
* New: Share with AI — buttons for ChatGPT, Perplexity, Claude, Mistral, Gemini
* New: AI Crawler Firewall — allow/block 9 AI bots via robots.txt and X-Robots-Tag headers
* New: VEO/Speakable schema support for voice assistants
* New: Author Box — front-end E-E-A-T card with photo, bio, credentials, social links
* New: Badge — "AI-Ready" footer badge
* New: GEO Score expanded from 6 to 12 checks
* Improved: Settings page with 4 tabs (Social, Authority, AI, Modules)
* Improved: Author profile with certifications, credentials, custom photo upload

= 1.2.3 =
* Version bump for WordPress.org submission

= 1.2.2 =
* Fixed: All Plugin Check (PCP) errors resolved — zero errors
* Fixed: Missing translators comments for i18n compliance
* Fixed: Escape output for all dynamic values (nonces, counts)
* Fixed: Input sanitization on all form saves
* Fixed: Tested up to WordPress 6.9
* Removed: Deprecated load_plugin_textdomain() call (auto-loaded since WP 4.6)
* Improved: Social sharing fields hidden when SEO plugin manages OG tags
* Improved: Clearer field labels — "Sharing Title/Description/Image" instead of "SEO / Social"
* Improved: Contextual explanation when SEO plugin handles social fields

= 1.2.1 =
* Improved: Settings page redesigned with White Cards pattern (modern admin UI)
* Improved: Max-width constraint (860px) on settings page for readability
* Improved: Dashboard widget — lighter borders, thinner progress bars, badge pills
* Improved: Entity map icons enlarged (42px) with thicker link lines
* Improved: GEO hero ring reduced (64px) for better proportion
* Improved: LLMS links simplified from pills to clean text links
* Improved: Author box CSS redesigned (premium light style)

= 1.2.0 =
* NEW: Yoast SEO / Website LLMs.txt conflict detection — auto-disables OGEEAT LLMS when another plugin handles llms.txt
* NEW: Per-post LLMS.txt exclusion toggle in the editor metabox
* NEW: LLMS.txt stats in dashboard widget (URL count, active status, links)
* NEW: Auto-flush rewrite rules on plugin update (fixes llms-full.txt 404)
* Redesigned: Grey background metabox (Yoast-style) — no more white-on-white
* Redesigned: White content cards on grey background for clear visual hierarchy
* Improved: Settings AI tab shows conflict warning and post count
* Improved: Cleaner, more compact dashboard widget

= 1.1.1 =
* Redesigned: Professional CSS with constrained content width (760px max)
* Redesigned: Better spacing, typography, shadows, and transitions throughout
* NEW: LLMS.txt status card in post editor metabox
* Improved: Dashboard widget cards with hover effects
* Improved: Input fields with focus states and border-radius

= 1.1.0 =
* NEW: LLMS.txt and llms-full.txt generation with E-E-A-T enrichment
* NEW: Author credentials, organization details, and entity relationships in llms.txt
* NEW: Descriptive help text and WPFormation links in all settings tabs
* Improved: Dashboard widget with 3 metric cards (GEO, OG, E-E-A-T)
* Improved: Persistent dismiss for SEO plugin notice
* Fixed: Metabox centering to match WordPress admin layout

= 1.0.1 =
* Redesigned GEO score with hero gradient, badges, and contextual messages
* Added schema status panel and entity linking map
* Improved E-E-A-T author card with completion ring
* 8 additional E-E-A-T checks for author profile audit

= 1.0.0 =
* Initial release
* Open Graph & Twitter Card meta tags
* E-E-A-T schemas: Person, Organization, Article
* GEO citability score (6 checks)
* Social preview in post editor
* SEO plugin conflict detection
* French translation included
