CiteProof - full changelog

= 2.75.0 =
* Overview: "What your plan includes", from the health ping (the account's plan on every channel, the shared list of what it unlocks, in the WordPress language). "Unlock" goes where the account pays: CiteProof checkout, or a note to change the plan in the Wix or Shopify app.

= 2.74.0 =
* Connect with one click: the setup and Settings show "Connect with one click". The owner signs in to CiteProof (or creates a free account with their email) and presses Connect; the dashboard sends them back with a one-time code (10 minutes, single use) that the plugin trades for its key server to server. The pasted key stays as the fallback.

= 2.73.3 =
* Links to the CiteProof dashboard (Open the dashboard, Settings → Plugin, plans, questions, articles, brand) carry the language of this WordPress, so the dashboard opens in Italian, German or English.
* Brand: the fact sheet's own phone number is no longer reported as "a different phone" on the contact page.

= 2.73.2 =
* Admin tables: the quick filter above long tables no longer borrows the round dot of the Pages filter buttons (its own CSS class).
* Links: in the "the link will land here" preview a heading no longer runs into the sentence under it.

= 2.73.1 =
* The stylesheet of the /ai-info pages is registered and printed only through the WordPress style API (wp_register_style, wp_enqueue_style, wp_print_styles): no hand-written link tag.
* German: the table filter, the API key label in the guided setup and counts with one item read correctly; contact pages called "kontakt" or "anfahrt" are checked against the fact sheet.

= 2.73.0 =
* German: the whole plugin interface is available in German (de_DE, de_AT, de_CH; Swiss spelling with "ss"). Texts the plugin writes on the site (About page draft, AI info page, llms.txt sections) follow the site language too.
* German sites: "ueber-uns", "haeufige-fragen" and similar slugs are recognised as About and FAQ pages; opening hours accept "geschlossen".
* The site language (it / en / de) is sent to the platform for AI drafts, image descriptions and link sentences.

= 2.72.1 =
* WooCommerce: the plugin tells the platform the site's language with the catalog, so the texts written from the dashboard (category guides, product rewrites, link sentences) come out in the language of the store, not the one set in the dashboard.

= 2.72.0 =
* Links: the link plan can now be seen and used from the platform dashboard too (Internal links page): the same plan, the same AI sentences to review, the same log and undo, the weekly switch. The plugin stays where the plan is computed and the texts are written; the dashboard talks to it through the site's API key.
* Links: a sentence proposed from the dashboard shows in the plugin's Links tab as well, and the other way round.

= 2.71.4 =
* Links: when the AI could not write a sentence for a page (no link words, no related page, no text, site not connected) the reason is shown in place of the button, so no click ends in an error.
* Links: the AI is offered the whole page title before pieces cut from it, so links read as a natural mention.
* Fixed two PHP 8.4 deprecation notices (explicitly nullable parameters).

= 2.71.3 =
* Links: before applying a sentence written by the AI you can correct it (the link words must stay in it, once); until you press Apply the page does not change.

= 2.71.2 =
* Links: the AI sentence button says it uses one AI rewrite and how many are left this month (and disappears when none are left); short, natural link words are offered to the AI first; a clearer message when a page has no words to link with yet.

= 2.71.1 =
* Links tab: the site link plan's table and the AI sentence preview no longer show stray empty boxes (the plan form is laid out as a block).

= 2.71.0 =
* Links: a link plan for the whole site. The plugin finds the pages that need links (orphans, pages with one or two inbound links, pages Google shows between position 4 and 20), links them with the words people search in Search Console or with their title, from pages that already contain those words. Never two links to the same page from one page, never the same words towards two different pages, at most 3 new links per page. Apply all or a selection, or let the plugin write up to 10 a week; every link can be undone. For pages that need links when no page contains their words, the AI can rewrite one sentence of the closest page to hold the link: you see before and after and apply it yourself; undo puts the original sentence back (uses one AI rewrite of the month).

= 2.70.3 =
* llms.txt: on WooCommerce stores the "Product categories" section was never printed (the virtual file was served before WooCommerce registered its taxonomies); the cart, checkout and account pages are no longer listed under "Main pages".

= 2.70.2 =
* WordPress.org review: the editor boxes' scripts and the quick-edit script move to an enqueued file (assets/boxes.js); the /ai-info documents load their stylesheet through the enqueue API; nonce values are sanitised before verification; a key preloaded in the package is used only after the owner confirms the connection in the guided first run; the plugin presents itself as CiteProof on every site.

= 2.70.1 =
* Plugin Check pass before the WordPress.org review: every output escaped, every request value sanitised, justified exceptions documented in the code. No change in behaviour.

= 2.70.0 =
* WooCommerce: product descriptions rewritten from the dashboard (facts, use cases, specifications, FAQ) are applied to the product together with the SEO title and meta description; the previous text is kept for "Undo".

= 2.69.0 =
* WooCommerce: the category mini guide comes in two parts: two or three sentences in the category description (above the products) and the buying criteria, "ideal for" and frequently asked questions printed below the grid, with FAQPage in JSON-LD.

= 2.68.0 =
* WooCommerce categories are sent to the platform together with the products: text above the grid, SEO meta, image, best sellers of each category.
* "Category truth": the platform scores every category (text that helps choose, doorway pages, empty pages, uncategorised products) and says which one to start from.
* The category mini guide approved in the dashboard is written into the category description, with the previous text kept for "Undo".

= 2.67.0 =
* WooCommerce: once a day the plugin sends your products (best sellers first, up to what your plan covers) to the platform, which checks what AI shopping answers need: price, availability, GTIN, brand, variants, images, descriptions, return and shipping policies. Nothing in the store is changed.

= 2.66.0 =
* Pages to exclude: the pages listed in the dashboard (auto-apply settings) get nothing from the fixes: no schema, no meta tags, and the FAQ page is not created or rewritten if its address is excluded. "/checkout/*" covers the page and everything below it, "/contact" that page only. The list arrives with the periodic sync.

= 2.65.0 =
* Schema is applied only when it is complete: a JSON-LD with placeholders (such as "[Phone]" or "TODO"), an empty value or a missing required property (address and phone for a local business, answers for a FAQ, price for a product) is not applied and the message says what is missing. This holds for automatic fixes, for fixes received from the platform and for "Approve".
* Fixes received by the periodic sync go live on their own only when the platform has released them for auto-apply; all the others wait for your approval. This also fixes the sync stopping with an error on PHP 8.
* A fix made of several JSON-LD blocks is now accepted.
* Approve, Reject and Revoke tell the platform exactly what happened, so a fix you rejected is not applied again automatically.

= 2.64.1 =
* AI bot log: a request that WordPress or an SEO plugin redirects (for example /sitemap.xml sent to the sitemap index) is now recorded as a redirect, not as an error. The 404 log no longer lists those addresses as invented.

= 2.64.0 =
* Search Console: every "title and description to rewrite" row has "Write with AI": the platform writes the title and description from the searches people really make for that page (no invented numbers), and can propose a new page heading (H1). "Write the first 3 with AI" does three pages at once. Nothing changes until you press "Use the draft"; the H1 changes only if you tick its box.
* Editor: next to the page's Search Console searches, "Write title and description from these searches (AI)" fills the SEO fields and offers the new H1 for the page title. Saved with the page.
* Pages tab: the AI proposal can also change the H1, with the same tick box.
* The automatic draft (without AI) no longer stops mid-sentence.

= 2.63.0 =
* Internal links: suggestions only offer words that can really become a link (not words found only in a heading or already inside a link); when a link cannot be added, the editor says why.
* "In short" box: three looks (tinted box, accent line only, plain text), the "In short:" label can be hidden, and the colour can be changed (SEO → Advanced → Content for AI).
* FAQ: if the page already has a FAQ (Yoast or Rank Math block, or a "FAQ" section in the text) the plugin adds only the missing questions inside it, in the same style, instead of a second FAQ section; the structured data gets one FAQ list with all the questions. The previous behaviour is still available as an option. A FAQ can also be shown as plain headings instead of drop-downs.
* The AI-readiness score and the AI drafts count the questions already on the page.

= 2.62.0 =
* /ai-info is now optional and off on new sites: no engine has announced it reads such a page. Turn it on from Brand or in the guided first run. Sites where it was already live keep it. It is no longer a step in the "What to do now" list.

= 2.61.0 =
* One design everywhere: Redirects, Locations, Import, Settings, Pending fixes and the SEO advanced settings now use the same cards, buttons and labelled forms as the rest of the plugin; the SEO settings are split into section cards with a Save bar that stays in view.
* Editor: the SEO box uses the plugin's design; the AI draft shows "now on the page" next to the proposal.
* Menu grouped by what you do: Every week, The site for AI, Setup.
* Dashboard widget: key numbers, up to three to-dos and one button, instead of long lists.
* Pages no AI has read: the first suggestion is linking them from pages that are read; llms.txt is offered only as an extra.

= 2.60.0 =
* Editor: the SEO box writes and shows the AI draft in place (no reload, unsaved edits kept); "Use the draft" fills the short answer and FAQ fields.
* Internal links: the sentence the link lands in is shown before inserting; results come back to the log, highlighted; bulk names the pages it skipped and why; full log on demand.
* Image descriptions: the last batch is listed (image, text, edit link); images still without a description are listed.
* IndexNow: queued URLs and each batch's URLs are listed; the sitemap confirm states the real count.
* Pending fixes: readable types and dates, what each fix changes and where (FAQ questions listed), a confirm before robots.txt/llms.txt/FAQ changes, back to the row with the outcome, "see it on the site".
* Settings: opens instantly (last connection result) with a "Check connection" button; the API key is masked with Show/Hide; turning off review-only asks first.
* Locations: a refused save keeps what you typed; the primary change is spelled out; each location shows how engines read it (hours and schema).
* Import: honest preview wording, batches add up, Import only after a preview, links to what was imported.
* Search Console: "Prepare the update with AI" for pages losing clicks, every list shows "8 of N" with "Show all", tracking reports what was added, reused or skipped.
* AI bots: warning when a physical robots.txt hides the rules, a note when blocking a bot switches off its citations, visit counts open the filtered log.
* Brand: slug change warning, edit link per discrepancy, documents marked offline when /ai-info is off.
* Guided setup and Overview: explicit "continue without connecting", opt-outs for schema and /ai-info, "Not now" on the setup banner, llms.txt pinned pages with unpin, full activity log.
* Uninstall removes every temporary entry the plugin created.

= 2.59.0 =
* SEO settings: Save works again when IndexNow or automatic image descriptions are on (their buttons sat in a form nested inside the settings form); a "Settings saved" message confirms it; status links jump to their section.
* AI bots: "Block every AI bot" never blocks Google, Bing or Apple (they keep the site in search). Presets fill in the table and the robots.txt preview; nothing changes until "Save the rules". The guided first run keeps custom rules instead of resetting them.
* Pending fixes: fixes applied automatically are shown as applied (with Revoke), not "to approve"; a fix approved by hand can be revoked (robots.txt, llms.txt, FAQ page); manual-only types say "to do by hand".
* Articles: read the article (text, address, images) before publishing; "Publish live" only from the preview and never for "to review" articles; drafts show as drafts with "Open the draft".
* Search Console: "Add as FAQ" shows the answer, editable, before it goes on the page; title/description drafts show the current text next to them.
* Overview: AI drafts written from the Overview are read and approved there ("AI drafts to approve"); the KPI boxes open the list behind them; clearer bulk buttons.
* Guided first run: the About step no longer loops or creates duplicate drafts; founders keep their commas.
* Redirects: rules that would catch every address are refused; a rejected rule keeps what you typed; "Clear log" asks first; the 404 table no longer overlaps.
* Import: existing templates are kept unless "Overwrite" is ticked; the report lists example pages and readable field names.
* Brand: "Align entity" never erases a schema field because the sheet left it empty.
* Buttons that wait on the platform show a working state; the "unsaved changes" bar only appears on settings forms; the dashboard widget is shown to administrators only.

= 2.58.0 =
* Pages: after "Write the opening answer with AI" the draft appears on the page's card, next to the current text, with "Add to the page", "Edit in the editor", "Rewrite" and "Discard". Nothing is written into the page until you choose.
* Pages: every card lists the AI questions behind it: the ones the engines answer without citing you (and who they cite instead) and the ones where they cite the page (and which engines).
* Pages: after any action you land back on the same card with the outcome inside it; AI buttons show a working state while the draft is written.
* Overview: invented URLs show where each redirect would go ("from → to"); you tick the ones to create, nothing is created before.

= 2.57.0 =
* Free account: connected sites show "Free account" in the header, the month's quotas, and where to see the plans when a quota runs out (AI drafts, image descriptions, AI rewrites, tracked questions) or when a feature needs a plan (fixes from the audit). Paying accounts see none of it.

= 2.56.1 =
* New sites: "Create a free account" in the first run, the header and Settings, and a "Get started" link on the Plugins screen.
* Pages, Search Console, Articles and Pending fixes explain what they do once connected, instead of a one-line "connect first".
* Published pages get an AEO score right away (no need to re-save them first).
* Settings and Pending fixes fully translated; forms suggest the country, phone prefix and postcode of the site's language.
* The 404 log ignores scripts, styles, images and WordPress internals, also on sites in a sub-folder.
* Fixes: quota reset date shown in the past, a person listed twice in the brand preview, a stray comma in the editor box, empty edit links, Italian text in the public llms.txt.

= 2.56.0 =
* Track many questions at once: paste a list (one per line, from a document, an email or Excel) in Search Console → "Track questions on the AI engines", or track every Google question of the period with one button. Numbers, dashes and duplicates are removed; the plan's slots apply.

= 2.55.2 =
* New name: CiteProof – AI SEO & GEO for AI Visibility. One plugin, two brands by site language: on sites in Italian it is Citami and talks to citami.ai, everywhere else CiteProof and citeproof.co.

= 2.55.1 =
* Plugin name with what it does (AI SEO & GEO).

= 2.55.0 =
* Ready for the WordPress.org directory: every value printed in the admin and on the site goes through WordPress escaping (an allow-list for the plugin's own icons, forms and cards), form input is sanitized where it is read, WordPress functions replace raw PHP ones (wp_parse_url, wp_rand, wp_delete_file), structured data is printed with wp_print_inline_script_tag, diagnostics are written only in debug mode.
* Key rotation moved to its own file; the self-hosted updater is not part of the WordPress.org build.
* The settings and the first-run screen say exactly what is sent once the plugin is connected, with a link to the privacy policy.
* New "External services" section in this readme.

= 2.54.3 =
* On phones, the wide tables (redirect and 404 log, AI bot log, brand checks, articles, internal links) scroll inside their own box instead of pushing the whole page sideways.

= 2.54.2 =
* Articles published from the platform: images are saved in the Media Library under the article's name (no more hero.webp), with their alt text, and the opening image is no longer shown twice when it becomes the featured image.
* Article structured data: when the site already describes the post (this plugin, Yoast, Rank Math), only the extra FAQ data is added; otherwise the article gets the post's real address, dates and featured image instead of the placeholder values.

= 2.54.1 =
* Pages tab redesigned: a summary band with the recoverable clicks and the AI drafts left this month, filters by problem, one card per page with its numbers side by side (clicks and their change, CTR against your typical CTR, position, AI questions, AI reads), the estimated gain and the action next to it. The AI title and description are shown as a before/after Google result with character counts; the update brief as sections to add and a checklist.
* Overview: the week's three actions as a compact numbered list.

= 2.54.0 =
* New "Pages" tab: one diagnosis per page, built by crossing Search Console (clicks now vs the 28 days before, the searches of each page), the questions the AI engines cite or skip you on, the AI bots that read the page and the people the assistants send. Each diagnosis comes with one action: AI rewrites the title and description from the real searches (pages Google shows but few click, measured against your own pages' typical CTR), AI prepares an update brief (pages losing clicks), AI writes the opening answer (pages the AI engines skip), IndexNow (pages no AI bot has read), internal links (pages close to page one) or a pointer when two pages compete for the same search. Every AI draft is reviewed before it goes live. Each applied change is remembered with that day's numbers, and the card shows what changed two to four weeks later.
* Overview: the three highest-priority page actions of the week.

= 2.53.0 =
* Reads to answer someone. Claude-User, Claude-SearchBot, MistralAI-User and DuckAssistBot visits are now sent to the platform (before, only the local log saw them), so the dashboard can tell the pages an AI assistant opened while writing an answer for a person from the training and index crawlers. The Overview says how many of the last 14 days' crawler visits were reads to answer.

= 2.52.0 =
* Review pass on every screen. llms.txt no longer lists non-public content (an Elementor kit pinned by mistake printed as "Default Kit") in "Important pages". The internal-links log says "(page deleted)" instead of an empty cell when a page is gone. The Bot AI visit log shows 30 rows with a "show the others" button instead of 100 rows in a row. The Search Console subtitle prints only the property and period it actually has. The SEO column in the post list explains T/D on hover in plain words. The Redirect tab shows one 404 table, AI-invented URLs first with the likely page, instead of the same rows twice. The API key in the guided first run is masked, with a "Show" button. The Locations form placeholders follow the site language (ZIP, US, +1, $$ on an English site). A complete fact sheet is folded on the Brand tab, one click opens it. The empty "Fixes queue" and "Import" screens say what will appear there.

= 2.51.0 =
* Search Console → "Track in the AI engines": a query people already type into Google (a title to rewrite, a question to answer) becomes, in one click, a question the platform asks the AI engines at every audit. Same catalogue and budget as the dashboard; an identical question is reused.
* Publish the platform's articles from WordPress. New "Articles" tab: the Content Agent's articles that are ready (or waiting for a read) are listed with their keywords and length; "Save as draft" or "Publish live" creates the post on this site, with images imported into the media library, excerpt and structured data, and tells the platform the post id and URL so performance tracking starts as for a dashboard publish. Published articles show their URL and an Edit link. The Overview says how many are waiting. The REST route the dashboard calls now uses the same post-creation code.

= 2.50.0 =
* The block editor sidebar says the same things as the SEO box: score, at most three things to do with the button that does them (the field under the article, the platform draft by kind, the internal link), body-text fixes in one line, the drafts used this month once under the list, every check under "Dettagli" (closed). The four area bars are gone. The sidebar now reads the SEO box fields too, so typing a short answer under the article updates the list on the right. The draft panel only appears when the platform wrote something. The pre-publish panel lists the things to do instead of the check names. The links to-do tells apart "no link to another page" (button) from "no external source" (text).

= 2.49.0 =
* The SEO box in the editor says what to do, not what it measured. At the top: the score and at most three things to do, in plain words, each with the button that does it ("Scrivila" jumps to the field, "Falla scrivere alla piattaforma" asks for the draft, "Inserisci il link «frase» → Pagina" writes the internal link into the page and reloads). Body-text fixes are one line ("Nel testo: paragrafi più corti, numeri concreti"). The four area scores are gone; every check with its detail sits under "Dettagli". Check names lost the jargon (no "Risposta subito", "Fiducia", "Entità nominata", "TL;DR"). Below: SEO title (placeholder is the actual default, not template variables), description, short answer, customer questions; canonical, robots, internal links, structured data, social and languages are folded under "Altre opzioni". "Copia link" is replaced by "Inserisci il link", which writes the link on the phrase already in the text (published pages; drafts say so).

= 2.48.0 =
* One Organization node, from the fact sheet: when the sheet has a name, the home page's Organization is built from it (name, aliases, description, founders, address, official profiles, Wikidata QID as sameAs + identifier); the platform block and the schema settings only add fields the sheet does not carry. The sheet gains a Wikidata (QID) field, filled by the dashboard's "How the engines see you" check or by hand, and travels with the sync in both directions.

= 2.47.0 =
* Quotas visible before they run out: the platform's health ping now carries this month's usage of alt texts (300) and AI drafts (150 pages), with the reset date. Shown in Settings → General ("Consumi del mese"), under the "Done by the plugin" card, in the alt-text settings row, and next to "Write a short answer and 3 FAQ" in the SEO box and the block editor sidebar ("4 of 150 drafts used this month"). Amber from 80 %, red when used up, and the generate button gives way to the reset date instead of failing.

= 2.46.0 =
* One connection state everywhere: the pill in the header, the Overview row and Settings → General now share the same answer, with the reason as tooltip and a link to where it is fixed. New state "Connected · cron stalled": the plugin talks to the platform through WP-Cron (which only runs on visits); when it has been silent for 2 hours the plugin says so and explains that the dashboard will read the site as not connected until a system cron calls wp-cron.php. The first handshake now runs on the first admin page load instead of waiting for the General tab.

= 2.45.0 =
* The AI draft in the block editor: the AEO sidebar gets a "Draft from the platform" panel with "Write a short answer and 3 FAQ", the draft shown in place, "Use the draft" / "Discard" / "Try again" without leaving the editor. Using it also fills the SEO box fields so a later Update keeps what was written. Same functions and quota as the SEO box links; the SEO box section stays for the classic editor.

= 2.44.0 =
* The AEO panel writes: in the SEO box of every page, "Write a short answer and 3 FAQ" asks the platform for a draft built only from the page's saved text (no numbers, names or promises that are not already there: proposals that fail that check are dropped and counted). The draft is shown in the box with "Use the draft" (short answer written, FAQ appended, existing FAQ kept, AEO score recomputed, IndexNow notified) or "Discard". The Overview's weakest pages get a "Write AI draft" link. Monthly quota per account, shown when reached.

= 2.43.0 =
* Search Console that acts: the tab opens with three things to do, computed from the query × page rows the platform now sends. Titles and descriptions to rewrite (page one, many impressions, CTR under 2 %) come with a draft built from the query and the page's own text, editable and saved with one click (IndexNow notified); pages losing more than 20 % of their clicks show the queries they are found for, with "Open and update" and an IndexNow button; question queries without a FAQ on the page get "Add as FAQ" with an answer drafted from the page text, to review in the SEO box. The full query and page tables are folded below. The SEO box of every page lists the queries it is found for.

= 2.42.0 =
* Overview that acts: "Create the N redirects" for the invented URLs that have a safe target, "Send to IndexNow" and "Put them in llms.txt" for the important pages no AI has read (a pinned "Important pages" section now opens llms.txt), and the three weakest pages by AEO score with their edit links. New "Done by the plugin" card: what ran on its own (URLs sent to IndexNow, alt texts generated, invented URLs redirected, fixes applied, links written), today's count and the last actions. SEO tab opens with a status card (what is on, off or left to another plugin, one line each) and folds the forty fields under "Advanced settings".

= 2.41.0 =
* Internal links now act instead of listing: every orphan page with a matching phrase in another page gets an "Insert link" button that writes the link into that page (first free occurrence, never inside existing links, headings or code; page-builder content is left to its editor), a "Connect the first N" bulk action, and a log where each written link can be removed with the text left intact. Orphans without a candidate are grouped with the instruction that makes the button appear.

= 2.40.0 =
* The content-health snapshot now carries what the plugin knew and the dashboard did not see: the AI bot policy with the citing bots it blocks, the redirect rules (count, active, hits), the full list of locations, the hreflang state (mode, multilingual plugin, mirrors, mapped pages), per-page meta coverage (custom titles and descriptions, noindex pages) and the AEO score of every scored page (up to 50, weakest first). The Citami dashboard shows them; still counts, ids, titles and URLs only, never content.

= 2.39.1 =
* Contract with the platform: approving, rejecting or revoking a fix in wp-admin is now reported to Citami (before, only the sync pull reported); a sheet filled in WordPress travels with the sync and seeds the dashboard's sheet when it has none; the Overview shows how many answers cited the site in the last audit; long post titles can no longer sink the content-health snapshot.

= 2.39.0 =
* Bot AI tab rebuilt: preset cards with the active policy, per-bot Allow/Block segmented controls grouped by purpose (citing bots first), visit bars, verification chips, and a live preview of the robots.txt block that follows every change before you save. Brand tab rebuilt: three status cards (site consistency, About page score with its checks, /ai-info switches), the sheet split into fieldsets and a live preview of how the AI read it.

= 2.38.0 =
* New admin app: the plugin has its own menu entry, a side navigation, an Overview with the AEO ring, the AI crawler activity of the last 14 days, the "what to do now" checklist and the numbers the dashboard widget already knew. Every tab restyled (cards, switches, filters, unsaved-changes bar). Other plugins' notices stay off the screen. Old Settings links redirect.

= 2.37.0 =
* AEO panel in the block editor: a sidebar (icon in the top-right toolbar) with the live score, the four areas, every check with its hint, failing ones first, and a pre-publish panel with the score and the top three things missing. Same checks as the classic meta box.

= 2.36.1 =
* Seen on the browser tour: the first-run notice now carries the build's brand; wider postal code, region, country and year fields in the wizard.

= 2.36.0 =
* Two brands from one code base: the plugin presents itself as Citami Connector (citami.ai) or Citeproof Connector (citeproof.co) depending on the build; the dashboard serves the build of the site you download from, and updates follow the same brand.

= 2.35.0 =
* Guided first run: five screens after activation (connect to Citami or skip, the business as a fact sheet prefilled from WordPress, the About page found and scored or drafted from the sheet, crawler preset + IndexNow + footer link, done). Entity aligned and /ai-info switched on along the way. A notice until done or skipped; reachable any time from the settings header.

= 2.34.0 =
* Daily history: one row per day (90 days) with AI crawler hits and pages read, AI-driven 404s, invented URLs turned into redirects, AEO average, fact-sheet errors and About score. The last 60 days travel to the Citami dashboard, which builds the monthly proof (this month vs last month) from them.

= 2.33.0 =
* Dashboard widget "AI and your site": AI crawler visits in the last 7 days and the pages they read, the important pages no AI has read yet, the URLs assistants invented (with one-click redirect), the wrong facts still open on the platform, the average AEO score, the state of /ai-info and of the About page, the last audit score. Every number links to the tab that fixes it.

= 2.32.1 =
* About page check: the Brand tab scores the About page against the fact sheet (exact name, founding year, a person with a role, city, main services, phone or email, 150 words, the description sentence, AboutPage schema) and lists what is missing; the score travels to the Citami dashboard.

= 2.32.0 =
* URLs invented by AI: the 404 log now knows when a missing page was requested by an AI crawler (ChatGPT-User, PerplexityBot, Claude-User, …) or by a visitor sent by an assistant (chatgpt.com, perplexity.ai, gemini.google.com, Copilot, claude.ai). The Redirects tab lists them first with the most likely existing page and a one-click "Create redirect" pre-filled; the top ten travel to the Citami dashboard with the sync.

= 2.31.1 =
* Page builders: the AEO score, the automatic meta description, the internal-link index, wordCount and the fact-sheet scan now read Elementor pages (rebuilt from the builder data: headings, text, lists, images, accordions, buttons) and Divi / WPBakery / Avada shortcode content. Before, an Elementor page counted as empty.
* Page caches: a fix or a meta change now purges the page in WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed, WP Fastest Cache, Cache Enabler, SiteGround, Breeze, Hummingbird and Autoptimize; a settings change purges the site; a fact-sheet or document change purges /ai-info, its documents and llms.txt. Before, the cached page kept the old HTML until it expired and the verify bot read the old page.
* Multilingual URL prefixes: /it/ai-info/ and /it/ai-info/<document>/ are served when WPML, Polylang or TranslatePress use language directories.
* Tested on a real WordPress with Elementor Pro, WP Rocket (cache, lazy-load, minify, delay JS) and WPML active: every public URL and every admin screen rendered without a notice from this plugin.

= 2.31.0 =
* Brand corpus: the documents published from the Citami dashboard (overview, how it works, pricing, factsheet, team, …) are served under /ai-info/<name>/ with a Markdown twin and Article JSON-LD, listed on /ai-info, in llms.txt and in the Brand tab.

= 2.30.0 =
* Entity Truth Sheet: one record of facts (from the Citami dashboard or edited in the new Brand tab), a consistency scan of entity settings, primary location, About and contact pages and the served home page, one-click alignment of the schema entity, and a crawlable /ai-info page (HTML + JSON-LD + Markdown) with an optional footer link.

= 2.29.1 =
* First run on a real WordPress (7.1.2, PHP 8.4, SQLite): every screen and every public URL rendered without a PHP notice.
* Automatic meta description: block boundaries become spaces, entities decoded, cut on a word (a heading no longer glues to the previous sentence).

= 2.29.0 =
* Admin and front stylesheets, brand header with connection status on the settings page.
* Panels in the editor and the Search Console tab use shared classes instead of inline styles.
* readme.txt for WordPress.org, QA pass (PHP 7.4 compatibility, capabilities and nonces on every action, escaping, uninstall coverage).

= 2.28.0 =
* Internal links: inbound candidates cached per page on the index version; one query per request instead of one per post.

= 2.27.0 =
* Content-health snapshot sent with the sync (AEO scores, orphan pages, images without alt, IndexNow, locations).

= 2.26.0 =
* Internal link suggestions: index, editor panel, orphan pages tab.

= 2.25.0 =
* Search Console panel: settings tab, dashboard widget, posts column, meta box line.

= 2.24.0 =
* Automatic alt text: fill at output; optional vision-model description through the platform with a monthly quota.

= 2.23.0 =
* hreflang: per-page alternates, mirror sites, home alternates, x-default, sitemap alternates.

= 2.22.0 =
* IndexNow: key file, automatic submission of every change, queue with retry, manual and full-sitemap submission.

= 2.21.0 =
* Local SEO, multi-location: locations tab, LocalBusiness nodes, page ↔ location link, shortcodes, import from Rank Math / Yoast Local.

= 2.20.0 =
* AEO score in the editor: sixteen checks, live updates, stored score and posts column.

= 2.19.0 =
* Open Graph / X cards, XML sitemap, redirect manager with 404 log, breadcrumb, virtual llms.txt.

= 2.18.0 =
* Content for the AI engines: TL;DR, FAQ with FAQPage schema, author box with Person and sameAs, entity extras.

= 2.17.0 =
* AI bot control: crawler catalogue with purpose, robots.txt per crawler, verified crawler log, access-log reading.

= 2.16.0 =
* Schema engine: one graph with stable ids, defaults per post type, override per page.

= 2.15.0 =
* Importer from Yoast SEO and Rank Math: per-post meta, templates, redirects, schema settings.

= 2.14.0 =
* Per-page meta: title, description, canonical, robots, templates, quick and bulk edit.

= 2.13.0 =
* Modular plugin, PHP test harness, fix-id data model with exact rollback, sync pull, self-hosted updates, key rotation, full uninstall.

