=== Geoa — AI Visibility ===
Contributors: addonnordic
Tags: ai, seo, schema, woocommerce, aeo
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 0.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

See and improve how AI answer engines understand your WordPress & WooCommerce site — registry-verified schema and AI-visibility scoring, EU-hosted.

== Description ==

AI answer engines — ChatGPT, Gemini, Perplexity, Claude and Copilot — increasingly decide who gets recommended. **Geoa makes your WordPress site machine-readable and trusted by those engines**, and shows you how you're doing.

Geoa is built for the European market. Analysis runs on Geoa's **EU-hosted, GDPR-safe** backend, and — uniquely — it publishes **registry-verified** business schema from official national registries (Danish CVR, Norwegian Brønnøysund, Swedish Bolagsverket/Allabolag, Finnish PRH). Generated output is in your own language.

= What it does =

**Structured data for AI**

* **Registry-verified Organization schema** — enter your registration number; Geoa fetches verified legal name, VAT status (VIES), address, founding date and industry, and publishes valid JSON-LD. Contact data is hidden automatically when a business has marketing protection (GDPR).
* **Entity verification (sameAs)** — link your Trustpilot, LinkedIn and other profiles, plus the official registry page, so engines can corroborate your business. Nordic directories included (Krak, Finn.no, Hitta.se, Ratsit, Finder.fi and more).
* **FAQ schema in your language** — turns the questions and answers already in your posts into FAQPage markup for AI extraction.
* **Article schema** — author, dates and publisher for single posts.
* **WooCommerce Product schema** — price, availability, brand, GTIN, ratings and an EU return policy (14-day right of withdrawal) so AI shopping agents can cite your products. Variable products emit a proper price range, and when your business is verified the Offer is linked to a **registry-verified seller** — a trust signal generic Product schema can't express. A per-product AI-readiness score sits in the product editor.
* **Optional llms.txt** — a curated, opt-in file for AI crawlers.

**Analysis**

* **In-editor AEO readiness** — a per-post score for the structural signals answer engines rely on (headings, question-style headings, extractable lists, depth, structured data), right in the block editor.
* **E-E-A-T trust signals** — identity, contact, about, privacy and author signals.
* **Citation coverage** — which third-party sources you have and which are missing.
* **AI crawler activity** — see when GPTBot, ClaudeBot, PerplexityBot and others fetch your pages.

**AI visibility (connect a Geoa account)**

* **AI Visibility Score** per engine, **Share of Voice**, and an **AI Command Center** of prioritised actions.

Geoa never emits duplicate structured data: when Yoast or Rank Math already provide a schema type, Geoa augments their graph instead of adding a second node.

== External services ==

This plugin is a client for the Geoa service (https://geoa.app), operated by addon Nordic ApS. It sends requests to the Geoa API at https://api.geoa.app to verify your business against official national registries and to run AI-visibility analysis. It uses no other external service.

What data is sent, and when:

* Registry verification — when you enter your country and registration number in Geoa → Settings (or open that screen with them saved), that registration number is sent so the service can verify your business and return your official company data (legal name, VAT status, address, industry, founding date).
* Structured-data and analysis features — when you use them, the URL and the public content of the page(s) you choose to analyse are sent.
* AI-visibility scoring — only after you connect a Geoa account: your per-site pairing key (obtained from the Geoa dashboard) is sent as an authentication header so the service knows which account to read. The free tier never triggers a paid backend call.

This plugin does NOT track your site's visitors. It sets no cookies, adds no front-end tracking scripts, assigns no visitor identifiers, and never sends visitor or personal data to any external service. The AI crawler log records only the user-agent of known AI crawlers (e.g. GPTBot, ClaudeBot) that request your pages; it is stored locally in your own database and is never transmitted anywhere.

Service: https://geoa.app
Terms of Service: https://geoa.app/terms
Privacy Policy: https://geoa.app/privacy

== Installation ==

1. Upload the `geoa-ai-visibility` folder to `/wp-content/plugins/`, or install it from the Plugins screen.
2. Activate the plugin.
3. Go to **Geoa → Settings**, choose your country and enter your registration number, then publish your registry-verified schema.
4. (Optional) Connect a Geoa account with a pairing code from your Geoa dashboard to see live AI-visibility scores.

== Frequently Asked Questions ==

= Do I need a Geoa account? =

No. Registry-verified schema, FAQ/Article/Product schema, the in-editor readiness check, E-E-A-T and the AI crawler log all work without an account. A Geoa account adds live per-engine AI-visibility scoring, Share of Voice and the AI Command Center.

= Does it conflict with Yoast or Rank Math? =

No. When an SEO plugin already emits a schema type, Geoa merges its data into that plugin's graph instead of adding a duplicate node.

= Which countries are supported for registry verification? =

Denmark (CVR), Norway (Brønnøysund), Sweden (Bolagsverket/Allabolag) and Finland (PRH).

= Is my data processed in the EU? =

Yes. The Geoa backend is EU-hosted, and contact data covered by marketing protection is never published.

= Does it work with WooCommerce? =

Yes. On product pages it publishes enriched Product schema — price, availability, brand, GTIN, ratings, an EU return policy and, when your business is verified, a registry-verified seller. Variable products emit a correct price range (AggregateOffer). If Yoast or Rank Math already emits Product schema, Geoa merges these fields into their graph instead of adding a duplicate. A per-product AI-readiness score appears in the product editor.

== Screenshots ==

1. Registry-verified Organization schema — verify your business against the official national registry (Danish CVR, Norwegian Brønnøysund, Swedish Bolagsverket, Finnish PRH), VIES-checked, and publish trusted JSON-LD.
2. Per-post answer-engine (AEO) readiness, scored right in the block editor.
3. Enriched WooCommerce Product schema with a per-product AI-readiness score, EU return policy and a registry-verified seller.
4. E-E-A-T trust signals and citation coverage — the identity signals AI answer engines check before citing you.
5. AI crawler activity — see when GPTBot, ClaudeBot and PerplexityBot fetch your pages.

== Changelog ==

= 0.2.0 =
* WooCommerce: Product Offers are now linked to your registry-verified seller (name + tax ID) when your business is verified.
* WooCommerce: variable products emit a correct price range (AggregateOffer with low/high price and offer count) instead of a single minimum price.
* WooCommerce: Product schema now merges into Yoast or Rank Math's graph (adding the EU return policy and verified seller they lack) instead of staying silent, so its value is never lost on stores that already run an SEO plugin.
* WooCommerce: added itemCondition and, for active sales, priceValidUntil to Offers.
* WooCommerce: a per-product AI-readiness scorecard in the product editor (works in both the classic and block product editor).

= 0.1.0 =
* Initial release: registry-verified Organization schema (DK/NO/SE/FI) with sameAs; FAQ, Article and WooCommerce Product schema; optional llms.txt; in-editor AEO readiness; E-E-A-T and citation-coverage scorecards; AI crawler log; per-site pairing with AI Visibility Score, Share of Voice and AI Command Center.
