=== Rank Press AI Visibility – AI Agent for llms.txt, Schema & AI Search ===
Contributors: rankpresscom
Tags: ai visibility, eeat, schema, llms.txt, answer engine optimization
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.5.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Get cited by ChatGPT, Google AI & Perplexity: llms.txt, Schema, E-E-A-T and a public Brand Facts page. Hosted AI included, no API key.

== Description ==

Your next visitors are AI engines. ChatGPT, Google AI Overviews, Perplexity and Gemini increasingly answer questions for your audience, and they decide which sites to read, trust and cite. Rank Press AI Visibility makes your WordPress site readable, trustworthy and quotable by those engines, using clean, standards-based signals generated right on your site.

It runs locally, with no account and no API key. You activate it, and the signals are published.

This is generative engine optimization (GEO) and answer engine optimization (AEO) for WordPress: the layer your classic SEO plugin does not cover yet. It runs next to Yoast, Rank Math or any SEO plugin, and focuses only on the AI-specific signals they do not generate.

**What makes it different**

* **A public Brand Facts page** at /brand-facts/, plus a machine-readable .well-known/brand-facts.json. This is a single, trustworthy source of truth about your business (what you do, since when, where, your offerings, your key facts) that AI engines can quote instead of inventing answers about you. Most AI plugins publish an llms.txt and stop there. This one gives the engines the facts, in their format.
* **E-E-A-T identity, structured for machines.** You describe your organization and your author once (role, expertise, credentials, areas of knowledge, professional links), and it is turned into Schema.org Person and Organization data so AI and search engines see a real, credible entity behind the content, not an anonymous page.
* **Clean Markdown twins of your posts**, the format LLMs parse most reliably, served automatically alongside your normal pages.
* **Hosted AI included, no API key.** An optional one-click "Analyze my site" reads your homepage with AI hosted by Rank Press and pre-fills your brand profile. No key to paste, no credits to manage, no account to create. Every other feature works with or without it.

== What you get ==

* **A public Brand Facts page** (/brand-facts/) and a .well-known/brand-facts.json file, so AI engines quote accurate facts about your business instead of guessing.
* **E-E-A-T entity data** for your organization and your author (role, expertise, credentials, areas of knowledge, professional profiles), emitted as Schema.org Person and Organization so engines trust the source behind your content.
* **Schema.org structured data, built from your content** (Organization, WebSite with SearchAction, Article, FAQ, Breadcrumb, Person), so search and AI engines understand your entities without guesswork.
* **An llms.txt index AI crawlers can read** so assistants discover your most important pages in the format they expect (llmstxt.org), plus a machine-readable ai.json usage policy.
* **Clean Markdown twins** of your posts, the format LLMs parse most reliably.
* **AI robots signals you control** to welcome citation and search bots (ChatGPT, Claude, Perplexity, Googlebot) while optionally refusing training crawlers, all through the standard robots.txt.
* **An AI-aware sitemap** that points crawlers to every AI resource above.
* **OpenGraph and X (Twitter) cards** for crisp, clickable previews when your pages are shared on X, LinkedIn and Facebook, built from your content and brand. It stands down automatically if an SEO plugin (Yoast, Rank Math…) already provides them, so there is never a duplicate.
* **Richer structured data when your content warrants it**: VideoObject for embedded YouTube or Vimeo videos, HowTo for step-by-step guides, and Speakable hints for voice and AI assistants, all detected from your content.
* **AI visit monitoring** so you see which AI crawlers (ChatGPT, Claude, Perplexity, Gemini and more) actually read your site, which pages they read, and when. Your AI visibility, finally made visible.
* **An AI citability score on every article** (green, amber or red) that grades how quotable each post is by AI engines, on ten concrete, local checks (a direct lead answer, lists, an FAQ, cited sources, freshness, an identified author, depth, a featured image, internal links and structured data), with a one-line tip for each. Shown in your posts list, in the editor, and on a dedicated "AI score" page inside Rank Press that ranks every article, filters the ones to fix and jumps you straight to each. Nothing is sent anywhere.

Every signal above is generated locally and keeps working at all times. There is nothing to configure to get value on day one.

== Hosted AI included, no API key ==

Some AI plugins ask you to bring your own OpenAI or Anthropic API key, which means creating an account, pasting a key and watching your own credits. Rank Press AI Visibility does not. The optional AI help is hosted by Rank Press and included: one click on "Analyze my site" reads your homepage and pre-fills your brand profile (name, description, industry, audience, country, language). No API key, no account, nothing to configure. You review the result and save. It is entirely optional, and every local feature keeps working with or without it.

== Works with your existing setup ==

Rank Press AI Visibility runs next to whatever SEO setup you already have. It serves its sitemap at its own path and focuses on the AI-specific signals (llms.txt, Brand Facts, E-E-A-T entity data, AI robots) that classic SEO tools do not generate yet. There is nothing to reconfigure.

== Part of the Rank Press suite ==

This free plugin is the AI visibility agent. The full Rank Press suite adds hosted article writing with E-E-A-T and fact-checking, site-wide AI authority and a WooCommerce assistant, all as one-click AI agents in your dashboard. [Discover the full Rank Press suite](https://rankpress.com/).

== Installation ==

Automatic installation:

1. Go to Plugins > Add New and search for "Rank Press AI Visibility".
2. Click Install Now, then Activate.
3. Open the Rank Press menu, fill in your business details, and choose which AI signals to publish.

Manual installation:

1. Download the plugin ZIP from WordPress.org.
2. Go to Plugins > Add New > Upload Plugin, upload the ZIP and click Install Now.
3. Activate the plugin.

The plugin works out of the box. The local AI visibility signals are published as soon as it is active.

== Frequently Asked Questions ==

= Do I need an API key or an account? =

No. The AI visibility signals are generated locally on your site, with no key and no account. The optional hosted AI help is included by Rank Press and also needs no key.

= What is the Brand Facts page? =

It is a public page at /brand-facts/ (plus a machine-readable .well-known/brand-facts.json) that presents verified facts about your business: what you do, since when, where, your offerings and your key facts. AI engines can read and quote it to answer questions about you accurately, instead of inventing details. You fill your business profile once and the page stays in sync.

= How does this help me get cited by ChatGPT and Google AI? =

AI engines read structured, machine-friendly signals to decide what a site is about, whether the source is credible, and whether to quote it. This plugin publishes the formats they look for (llms.txt, Schema.org, E-E-A-T entity data, a Brand Facts page and AI robots signals) so AI engines can read, trust and cite your pages and facts.

= Does it help with E-E-A-T? =

Yes. You describe your organization and your author once (role, expertise, credentials, areas of knowledge, professional links), and the plugin turns that into Schema.org Person and Organization data and includes it on your Brand Facts page, so engines see a credible, identified source behind your content.

= Will it slow down my site? =

No. The files are generated from your existing content and cached. There is no third-party script on your front end and no external request for the local features.

= Will it conflict with my current SEO setup? =

No. It adds AI-specific signals and serves its sitemap at its own path, so it does not duplicate or override anything you already run.

= What data is sent anywhere? =

The local features send nothing. Only when you click the optional "Analyze my site" button, and after you consent, your site URL is sent to the Rank Press hosted AI, which reads your homepage and returns suggested brand details. See the External services section below.

= Can I stop AI models from training on my content? =

Yes. One toggle refuses known training crawlers in robots.txt while keeping citation and search bots allowed, so you stay visible in AI answers without feeding training datasets.

= What is the AI citability score? =

It is a green, amber or red grade on every published article that tells you how quotable that page is by ChatGPT, Google AI and Perplexity. It is computed entirely on your site from ten concrete checks (a direct lead answer, lists, an FAQ block, cited sources, freshness, an identified author, enough depth, a featured image, internal links and structured data), each with a one-line tip to improve it. You see it in your posts list and in the editor. It is a private editorial helper: nothing is sent anywhere and nothing is shown on your site.

== Screenshots ==

1. Everything AI engines need, generated on your own site: llms.txt, ai.json, Markdown twins, Schema.org and a Brand Facts page.
2. Enter your business and author once and it feeds every AI signal: E-E-A-T Schema.org, llms.txt and your public Brand Facts page.
3. You activate, it gets published: llms.txt, Schema, Brand Facts, AI robots signals and an AI sitemap go live in one click.
4. The public Brand Facts page AI engines quote to answer questions about your business.
5. Welcome citation bots like ChatGPT, Perplexity, Claude and Googlebot, and optionally refuse AI training crawlers.
6. See which AI crawlers actually read your site, which pages and when: ChatGPT, Claude, Perplexity, Gemini and more, monitored locally and first-party.

== External services ==

This plugin connects to one external service, only for the optional "AI enrichment" feature, and only when you explicitly click an enrichment button after giving consent. The local visibility features never contact any external service.

* Service: Rank Press hosted AI (app.rankpress.com), operated by Permis Online SRL.
* What it does: (1) when you click the optional "Analyze my site" button, it reads your homepage with hosted AI and pre-fills your brand profile (name, description, industry, audience, country, language), so you do not need your own AI API key; (2) the plugin also ships an optional AI field-suggestion action (for example a brand description draft or FAQ ideas) built from the brand profile you have already filled in, capped at 3 uses per month.
* What is sent, and when: only on an explicit click, and only after you consent. "Analyze my site" sends your site URL (home_url) to app.rankpress.com, which fetches and analyzes your homepage with an AI provider and returns suggested brand details. The AI field-suggestion action sends your site URL plus the public brand profile fields you typed on the My business page (the same data your public Brand Facts page already exposes). Nothing is sent automatically or in the background.
* Terms and privacy: Terms of Use https://rankpress.com/agents-terms/ , Data Processing Agreement https://rankpress.com/dpa/ , Privacy Policy https://rankpress.com/privacy-policy/

== Changelog ==

= 1.5.0 =
* This release reunites two development lines built in parallel: the 1.3.0/1.4.0 features below (AI citability score, OpenGraph cards, richer structured data, CSV export) and the 1.2.3 to 1.2.5 fixes below. Nothing else is new in 1.5.0 itself.

= 1.4.0 =
* New: OpenGraph and X (Twitter) cards site-wide, for crisp social/AI previews when your pages are shared. Built locally from your content and brand, with an automatic stand-down when an SEO plugin (Yoast, Rank Math, SEOPress, All in One SEO) already provides them, so there is never a duplicate. Toggle on the Rank Press dashboard.
* New: richer structured data, detected from your content: VideoObject for embedded YouTube/Vimeo videos, HowTo for step-by-step guides (a clear how-to signal plus an ordered list), and Speakable hints for voice and AI assistants.
* New: export your AI citability scores to CSV from the AI score page (title, type, URL, score, verdict, checks to improve).
* Fully local: no AI, no network request for any of the above.

= 1.3.0 =
* New: an AI citability score on every published article (green / amber / red), graded on ten local checks (direct lead answer, lists, FAQ, cited sources, freshness, identified author, depth, featured image, internal links, structured data), each with a tip to improve it.
* The score shows as an "AI score" column in your posts and pages list, as a panel in the editor sidebar, as a summary on the Rank Press dashboard, and on a dedicated "AI score" page inside Rank Press that ranks every article, filters by colour and links straight to the one to fix.
* Fully local and deterministic: no AI, no network request, no quota. It is a private editor helper and is never shown on your site.

= 1.2.5 =
* Fixed: on the public Brand Facts page, the brand description appeared twice in a row (as a header subtitle and again in the citable summary right below). It is now shown once, in the summary.
* Fixed: the citable summary no longer produces a double period when the description ends with one, and no longer repeats the founding year when the description already mentions it.
* Fixed: the page's meta description no longer starts with the brand name twice when the description itself begins with the brand name.

= 1.2.4 =
* New: cooperative schema dedupe. When a page already defines a structured-data node at the same @id (hand-written JSON-LD, another plugin's template, a builder Code module), the plugin no longer redefines it: its own duplicate node is removed and the remaining graph references the page's definition instead. Two definitions of the same node with diverging values split the entity for search engines and AI assistants; the page's own markup now wins. Fully fail-open (any unreadable markup leaves the page untouched), and can be disabled with the `rankpress_cooperative_schema_dedupe` filter.
* Fixed: the sitemap's /brand-facts/ entry reported the time of the request as its last-modified date, changing on every fetch. It now reports the site's latest content change, or omits the tag when unknown, so search engines can trust the sitemap's lastmod values again.
* Removed: generated table PDFs are no longer listed in the sitemap. They duplicate the tables already visible in the pages; listing the bare documents asked search engines to index them instead of the pages. The files themselves are untouched and still downloadable.
* Clearer llms.txt instruction for AI agents: the Markdown-twin rule now spells out the exact transformation (remove any trailing slash from the article URL, then append ".md"), because the short "append .md" wording produced a broken /article/.md form on trailing-slash permalinks.

= 1.2.3 =
* Fixed: pages whose content is produced by another plugin's shortcode had an EMPTY Markdown twin (word_count: 0). The twin now reads the content the way a reader sees it, while the plugin's own render-time blocks stay out of it as before. Pages without shortcodes are unchanged.
* New filter `rankpress_md_contenu` ( $content, $post ): a plugin whose content does not live in post_content can supply it for the Markdown twin.
* Pages marked "noindex" (Yoast, Rank Math, SEOPress, All in One SEO) no longer get a Markdown twin, are no longer advertised, and stay out of the sitemap. New filter `rankpress_is_noindex` ( $noindex, $post ) has the final say.
* Fixed: the word count of the Markdown twin was inflated on non-English sites (the native counter split accented words in two).
* Fixed: on the public Brand Facts page, the trade name was published as the organisation's legal name.

= 1.2.2 =
* Clearer plugin page: the public Brand Facts page and the E-E-A-T identity data (organization and author) are now presented as first-class features, and the included hosted AI (no API key) is spelled out.
* No functional change to the plugin itself.

= 1.2.1 =
* The display name now says what the plugin does at a glance (the slug and your settings do not change).
* Refreshed French translation files.

= 1.2.0 =
* Security hardening: every dynamic value is now escaped at its exact point of output, across all admin screens and public documents.
* The styles of the sitemap preview, the Brand Facts page, the AI agents screen and the welcome modal now load through the official WordPress styles API or as real stylesheet files.
* robots.txt now delegates its base rules to WordPress core, and every path the plugin adds to the robots output is derived from the site's real configuration (subdirectory installs included).
* The review link now opens the plugin's full reviews page on wordpress.org, and the review request no longer suggests a rating.
* The "search engines discouraged" notice now describes what WordPress actually does (a noindex signal).

= 1.1.3 =
* Fixed: the welcome screen's close button was pushed out of position after a layout change, sitting right next to the logo instead of the top-right corner, so it could be clicked by mistake.
* Fixed: the welcome screen's close icon and the checklist's feature icons were not rendering (missing icon styles).

= 1.1.2 =
* First public release.
* Local llms.txt and ai.json, plus clean Markdown twins of your posts, for AI crawlers.
* Schema.org structured data built from your content (Organization, WebSite, Article, FAQ, Breadcrumb, Person).
* A public Brand Facts page at /brand-facts/ and a .well-known/brand-facts.json file.
* AI robots signals you control, with an optional toggle to refuse training crawlers while keeping citation and search bots.
* An AI-aware sitemap that points crawlers to every AI resource.
* Optional "Analyze my site" hosted AI that pre-fills your brand profile, no API key required.
* Fully translatable (gettext), with a complete bundled French translation.

== Upgrade Notice ==

= 1.5.0 =
Reunites the AI citability score, OpenGraph cards, richer structured data and CSV export (1.3.0/1.4.0) with the parallel 1.2.3 to 1.2.5 fixes, including a Brand Facts page that no longer repeats the description, the founding year or the brand name.

= 1.4.0 =
New: OpenGraph and X cards for social/AI previews (auto stand-down next to SEO plugins), richer structured data (Video, HowTo, Speakable), and CSV export of your AI scores. Fully local.

= 1.3.0 =
New: an AI citability score on every article (green / amber / red) with tips to get cited by AI engines. Fully local, nothing sent anywhere.

= 1.2.5 =
The public Brand Facts page no longer shows the brand description twice, no longer doubles the final period, and no longer repeats the founding year or the brand name in its summary and meta description.

= 1.2.4 =
Cooperative schema dedupe (a node your page already defines is referenced, never redefined), reliable sitemap lastmod dates, generated PDFs no longer listed in the sitemap, and an unambiguous Markdown-twin instruction for AI agents.

= 1.2.3 =
Markdown twins are no longer empty on shortcode-built pages, and noindex pages stay out of the twins and the sitemap.

= 1.2.2 =
Clearer plugin page (Brand Facts and E-E-A-T identity highlighted). No functional change.
