{"id":335167,"date":"2026-08-30T12:48:47","date_gmt":"2026-08-30T12:48:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-seo-geo-assistant\/"},"modified":"2026-08-30T17:10:33","modified_gmt":"2026-08-30T17:10:33","slug":"aisa-ai-seo-geo-assistant","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aisa-ai-seo-geo-assistant\/","author":6829662,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.99.993","stable_tag":"1.99.993","tested":"7.1","requires":"5.9","requires_php":"8.0","requires_plugins":null,"header_name":"AISA \u2014 AI SEO & GEO Assistant","header_author":"Ingenium Project","header_description":"Advanced AI-powered SEO & GEO for WordPress: works standalone or as a copilot for Yoast, Rank Math, SEOPress and AIOSEO. AI generation of SEO titles, meta descriptions and keyphrases, multilingual SEO Rotation, and llms.txt for AI answer engines (GEO). One-Click optimization of your entire site \u2014 posts, pages, images and categories \u2014 and bulk processing (Premium). AI Vision writes your image alt texts, helping bring your site into compliance with the European Accessibility Act (AgID guidelines in Italy). BYOK \u2014 your API keys, your data, human-in-the-loop.","assets_banners_color":"181e2b","last_updated":"2026-08-30 17:10:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/aiseoassistant.io","header_author_uri":"https:\/\/ingenium-project.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":68,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.99.990":{"tag":"1.99.990","author":"paolopiace","date":"2026-08-30 12:48:31","revision":3672528},"1.99.991":{"tag":"1.99.991","author":"paolopiace","date":"2026-08-30 14:05:54","revision":3672642},"1.99.992":{"tag":"1.99.992","author":"paolopiace","date":"2026-08-30 16:58:35","revision":3672867},"1.99.993":{"tag":"1.99.993","author":"paolopiace","date":"2026-08-30 17:10:33","revision":3672885}},"upgrade_notice":{"1.99.745":"<p>Compliance and security hardening for the WordPress.org release. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3672580,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3672580,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3672580,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3672580,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"aisa\/qa":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":2,"name":"aisa\/qa","title":"Q&A \/ FAQ","category":"widgets","icon":"editor-help","description":"Shows a Q&A set as an accordion and emits FAQPage structured data, so search and AI answer engines can read the questions.","keywords":["faq","questions","answers","schema","seo"],"textdomain":"aisa-ai-seo-geo-assistant","editorScript":"aisa-qa-block","attributes":{"setId":{"type":"number","default":0}},"supports":{"html":false,"align":["wide","full"]}}},"tagged_versions":["1.99.990","1.99.991","1.99.992","1.99.993"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The floating panel inside the editor: AI-generated title, meta description, keyphrase and slug, written into the fields of your SEO plugin.","2":"Auto SEO Fix: the on-page audit, with a targeted fix for each finding.","3":"AI image alt text in the Media Library \u2014 \"Describe with AISA Vision\", under the alt text field.","4":"Site-wide SEO Doctor: missing, duplicated and oversized metadata, with a before\/after preview.","5":"Optimal Schema: the structured data suggested for that content type."}},"plugin_section":[],"plugin_tags":[2353,5777,1117,186,1121],"plugin_category":[55],"plugin_contributors":[278323],"plugin_business_model":[],"class_list":["post-335167","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-meta-description","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_category-seo-and-marketing","plugin_contributors-paolopiace","plugin_committers-paolopiace"],"banners":{"banner":"https:\/\/ps.w.org\/aisa-ai-seo-geo-assistant\/assets\/banner-772x250.png?rev=3672580","banner_2x":"https:\/\/ps.w.org\/aisa-ai-seo-geo-assistant\/assets\/banner-1544x500.png?rev=3672580","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aisa-ai-seo-geo-assistant\/assets\/icon-128x128.png?rev=3672580","icon_2x":"https:\/\/ps.w.org\/aisa-ai-seo-geo-assistant\/assets\/icon-256x256.png?rev=3672580","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>You already have hundreds of pages online. Their SEO titles were written years ago, half the\nmeta descriptions are missing, and the product pages say whatever the importer put there. Fixing\nthat by hand means opening every post, one at a time, and you never get to the end of it.<\/p>\n\n<p>AI SEO &amp; GEO Assistant is a <strong>data optimization engine<\/strong> for content you have already published.\nIt reads a page \u2014 the real text, even when it was built with Elementor or a page builder \u2014 and\nwrites the SEO title, meta description, focus keyphrase, slug and structured data that page\nshould have had. It works inside the SEO plugin you already use, or on its own if you have none.<\/p>\n\n<p>You bring your <strong>own<\/strong> AI provider key. Your content goes to the provider you chose, with your\nkey, at your cost \u2014 a typical page costs a fraction of a cent. Nothing is sent anywhere unless\nyou press a button.<\/p>\n\n<h4>It works with your SEO plugin, not against it<\/h4>\n\n<p><strong>Integration mode<\/strong> \u2014 AISA detects Yoast SEO, Rank Math, SEOPress or All in One SEO and writes\ninto their own fields, through a floating panel that sits next to the editor. Your SEO plugin\nstays in charge of the output; AISA just fills it in properly.<\/p>\n\n<p><strong>Standalone mode<\/strong> \u2014 no SEO plugin at all? AISA emits the title, meta description, canonical and\nrobots tags itself. The moment an SEO plugin becomes active it steps back, so you never get two\nmeta descriptions in the same page.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Writes the SEO of a page in one call<\/strong> \u2014 title, meta description, focus keyphrase, slug and\nAI context, generated together so they agree with each other, then written into the fields of\nyour SEO plugin.<\/li>\n<li><strong>Audits the page and fixes what it finds<\/strong> \u2014 keyphrase in the title, in the URL, in the first\nparagraph, lengths, missing image ALT, outbound links. Each finding comes with a targeted fix,\nnot a red dot and a shrug.<\/li>\n<li><strong>Rewrites the content itself, when you ask it to<\/strong> \u2014 with an explicit confirmation and a\nrestore point, for Classic, Gutenberg, Elementor, WPBakery and Divi.<\/li>\n<li><strong>Optimal schema (JSON-LD)<\/strong> \u2014 proposes the structured data that actually suits each content\ntype, and completes the WooCommerce Product schema (availability, condition, brand, GTIN)\ninstead of emitting a second, competing one.<\/li>\n<li><strong>llms.txt and AI Search Context<\/strong> \u2014 publishes the file AI answer engines look for, and stores\na short machine-readable summary of every page.<\/li>\n<li><strong>Answers the questions people actually ask<\/strong> \u2014 generates an FAQ set for a page and can create\nthe FAQ page, with FAQPage schema.<\/li>\n<li><strong>Site-wide SEO Doctor<\/strong> \u2014 scans the whole site for missing, duplicated or oversized metadata,\nchecks PageSpeed, Safe Browsing and Bing, and shows you exactly what it would change, before\nand after.<\/li>\n<li><strong>Finds and repairs broken internal links<\/strong> \u2014 and suggests related published content to link\nto, with the anchor text.<\/li>\n<li><strong>The plumbing, done properly<\/strong> \u2014 breadcrumbs with BreadcrumbList schema, sitemap with IndexNow\nping, 301 redirects and 404 handling, SEO for categories and tags, Local SEO through Google\nBusiness Profile.<\/li>\n<li><strong>Brand Context<\/strong> \u2014 teach it once what your business is, who it serves and how it talks;\nevery generation uses it, so the output does not read like generic AI.<\/li>\n<li><strong>Language fidelity<\/strong> \u2014 the language is taken from the real text of the page, not from your\nsite setting, and a \"do not translate\" glossary keeps product names intact.<\/li>\n<li><strong>Backup, restore, migrate<\/strong> \u2014 SEO snapshots are plugin-agnostic, so restoring one under a\ndifferent SEO plugin migrates your SEO data from Yoast to Rank Math, or the other way round.<\/li>\n<li><strong>REST API<\/strong> \u2014 authenticated <code>aisa\/v1<\/code> endpoints, for headless setups and automation.<\/li>\n<\/ul>\n\n<h4>Your keys, your provider<\/h4>\n\n<p>OpenAI, Anthropic (Claude), Google Gemini, DeepSeek, GLM (Z.ai), xAI (Grok), Mistral and\nPerplexity. Enable the ones you want, paste your keys, pick a model per task. Costs are tracked\nper operation, so you always know what you spent.<\/p>\n\n<p>If you would rather not deal with API keys at all, <strong>AISA Cloud<\/strong> is an optional paid service\nwith prepaid credits: your requests go through our server, which forwards them to a provider.\nIt is strictly opt-in \u2014 connect no account and nothing ever reaches us. See <em>External services<\/em>.<\/p>\n\n<h4>AISA Premium (a separate plugin, optional)<\/h4>\n\n<p>Everything above is in this plugin, unlimited and unlocked. There is no trial, no quota and no\ncountdown.<\/p>\n\n<p>Some work, though, is bulk work: doing to nine hundred products what you just did to one page.\nThat lives in <strong>AISA Premium<\/strong>, a <strong>separate companion plugin<\/strong> you download from our site and\ninstall like any other plugin. This plugin never downloads or installs code on its own.<\/p>\n\n<ul>\n<li><strong>One-Click SEO across the site<\/strong> \u2014 pick what is missing, press once, and let it work through\nthe queue in the background while you close the tab.<\/li>\n<li><strong>Bulk SEO<\/strong> \u2014 hundreds of posts or products in one run, with a cost estimate before it starts\nand a stop button while it runs.<\/li>\n<li><strong>Image ALT in bulk with vision models<\/strong> \u2014 descriptive ALT text for a whole media library.<\/li>\n<li><strong>Multilingual SEO Rotation<\/strong> \u2014 serve a different title and description over time, coherently\nper language, deterministic server-side, no cloaking.<\/li>\n<li><strong>Scheduled regeneration<\/strong> \u2014 re-optimize what changed, every N days, with no browser open.<\/li>\n<li><strong>Applying SEO Doctor fixes in bulk<\/strong> \u2014 the free version finds and previews everything; Premium\napplies it: cleanup, find and replace across the site, mass 301 redirects.<\/li>\n<li><strong>SEO Consultant<\/strong> \u2014 targeted searches you want to rank for, scanned and turned into concrete\nwork on the pages you have.<\/li>\n<\/ul>\n\n<p>Why people upgrade: the free plugin makes one page excellent in a couple of minutes. Premium\ndoes that to the whole catalogue while you do something else \u2014 and at a fraction of a cent per\npage, the arithmetic tends to make itself.<\/p>\n\n<h3>Trademarks<\/h3>\n\n<p>AISA is an independent plugin by Ingenium Project. It is not affiliated with, endorsed by, or sponsored by any of the products it interoperates with.<\/p>\n\n<p>Yoast SEO is a trademark of Yoast BV. Rank Math is a trademark of Rank Math. SEOPress is a trademark of Benjamin Denis. All in One SEO is a trademark of Awesome Motive, Inc. WooCommerce and WordPress are trademarks of Automattic Inc. and the WordPress Foundation respectively. Elementor is a trademark of Elementor Ltd. OpenAI, Anthropic, Google, DeepSeek, Mistral, xAI and Z.ai are trademarks of their respective owners.<\/p>\n\n<p>These names are used here only descriptively, to state which products this plugin can work with.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party services. Each call happens only when you configure the related API key and trigger the corresponding action. No data is sent automatically in the background without your action.<\/p>\n\n<p><strong>AI text\/vision providers (you choose, with your own API key):<\/strong>\nWhen you run a generation, optimization, audit, Q&amp;A or image-ALT action, the plugin sends the relevant content of the selected post (e.g. title, excerpt or body text, and \u2014 for image ALT \u2014 the image URL) plus your \"brand context\" settings to the provider you enabled, in order to receive the generated SEO text. It is sent at the moment you click the action.<\/p>\n\n<ul>\n<li>OpenAI \u2014 Terms: https:\/\/openai.com\/policies\/terms-of-use \u2014 Privacy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<li>Anthropic (Claude) \u2014 Terms: https:\/\/www.anthropic.com\/legal\/consumer-terms \u2014 Privacy: https:\/\/www.anthropic.com\/legal\/privacy<\/li>\n<li>Google (Gemini) \u2014 Terms: https:\/\/ai.google.dev\/gemini-api\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/li>\n<li>DeepSeek \u2014 Terms: https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-terms-of-use.html \u2014 Privacy: https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-privacy-policy.html<\/li>\n<li>xAI (Grok) \u2014 Terms: https:\/\/x.ai\/legal\/terms-of-service \u2014 Privacy: https:\/\/x.ai\/legal\/privacy-policy<\/li>\n<li>Mistral \u2014 Terms: https:\/\/mistral.ai\/terms\/ \u2014 Privacy: https:\/\/mistral.ai\/terms\/#privacy-policy<\/li>\n<li>Perplexity (Sonar) \u2014 Terms: https:\/\/www.perplexity.ai\/hub\/legal\/terms-of-service \u2014 Privacy: https:\/\/www.perplexity.ai\/hub\/legal\/privacy-policy<\/li>\n<li>GLM \/ Z.ai \u2014 Terms: https:\/\/chat.z.ai\/legal-agreement\/terms-of-service \u2014 Privacy: https:\/\/docs.z.ai\/legal-agreement\/privacy-policy<\/li>\n<\/ul>\n\n<p><strong>AISA Cloud (optional \u2014 our own service, opt-in):<\/strong>\nOnly if you choose to connect an AISA Cloud account instead of using your own API keys: the plugin sends your AI requests (the same post content described above) to our server at aiseoassistant.net, which forwards them to an AI provider and manages your prepaid credit balance. When you connect the account, your admin email address is sent to create\/link the account. Nothing is sent to our server unless you explicitly connect a Cloud account.\nTerms: https:\/\/aiseoassistant.io\/terms\/ \u2014 Privacy: https:\/\/aiseoassistant.io\/privacy\/<\/p>\n\n<p><strong>Lemon Squeezy (optional \u2014 premium license validation):<\/strong>\nOnly if you enter a premium license key: the plugin sends the license key and your site URL to the Lemon Squeezy licensing API to activate\/validate\/deactivate the license. Sent when you enter, re-check or remove a license key.\nTerms: https:\/\/www.lemonsqueezy.com\/terms \u2014 Privacy: https:\/\/www.lemonsqueezy.com\/privacy<\/p>\n\n<p><strong>Bing Webmaster API (optional \u2014 SEO Doctor):<\/strong>\nOnly if you connect your own free Bing Webmaster API key: the plugin requests your site's crawl issues report from the Bing Webmaster API (ssl.bing.com). Your site URL and the API key are sent when you connect the key or fetch the report. Terms: https:\/\/www.microsoft.com\/en-us\/legal\/terms-of-use \u2014 Privacy: https:\/\/privacy.microsoft.com\/en-us\/privacystatement<\/p>\n\n<p><strong>Google PageSpeed Insights API (optional \u2014 SEO Doctor):<\/strong>\nOnly when you run the performance check: the plugin sends your homepage URL (and your Google API key, if set) to the PageSpeed Insights API to measure performance and Core Web Vitals. Terms: https:\/\/developers.google.com\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google Safe Browsing API (optional \u2014 SEO Doctor):<\/strong>\nOnly when you run the safety check (requires your own Google API key): the plugin sends your homepage URL to the Safe Browsing API to verify the site is not flagged as dangerous. Terms: https:\/\/developers.google.com\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google Places API (optional \u2014 Local SEO feature):<\/strong>\nOnly if you use the \"Local SEO (Google Business Profile)\" feature: the plugin sends your business name\/search query to the Google Places API to find and link your business and read its public profile data. Sent when you search or sync your business.\nTerms: https:\/\/policies.google.com\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>IndexNow (optional \u2014 standalone SEO feature):<\/strong>\nOnly if you enable IndexNow: when you publish or update content, the plugin submits the URL(s) to the IndexNow endpoint so search engines (e.g. Bing) can recrawl. Sent on publish\/update.\nAbout: https:\/\/www.bing.com\/indexnow \u2014 Privacy: https:\/\/privacy.microsoft.com\/privacystatement<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/ai-seo-geo-assistant<\/code> or install it from the Plugins screen.<\/li>\n<li>Activate it through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Open <strong>AI SEO &amp; GEO Assistant<\/strong> and run the setup wizard.<\/li>\n<li>Add at least one AI provider API key (OpenAI, Claude, Gemini, DeepSeek or Perplexity).<\/li>\n<li>Open any post\/page and use the floating panel (integration mode) or the AI SEO block (standalone) to generate and apply SEO fields.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Yes, unless you use AISA Cloud. By default the plugin uses your own provider key, so you control\nboth the cost and where your content goes. You only enable the providers you want. Alternatively\nyou can connect an AISA Cloud account \u2014 an optional paid service with prepaid credits \u2014 and skip\nAPI keys entirely.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20yoast%2C%20rank%20math%2C%20seopress%20or%20all%20in%20one%20seo%3F\"><h3>Does it work with Yoast, Rank Math, SEOPress or All in One SEO?<\/h3><\/dt>\n<dd><p>Yes, with all four. AISA detects the active one and writes into its fields, so your SEO plugin\nkeeps producing the output. With no SEO plugin active it works standalone and emits the SEO tags\nitself, without ever duplicating them.<\/p><\/dd>\n<dt id=\"will%20it%20send%20my%20content%20somewhere%20without%20me%20knowing%3F\"><h3>Will it send my content somewhere without me knowing?<\/h3><\/dt>\n<dd><p>No. Content is sent only when you trigger an action \u2014 generate, optimize, audit \u2014 either directly\nto the AI provider you configured with your own key, or through AISA Cloud if you chose to\nconnect an account. Nothing runs in the background on its own. <em>External services<\/em> lists every\nendpoint, what is sent, and when.<\/p><\/dd>\n<dt id=\"how%20much%20does%20one%20optimization%20cost%3F\"><h3>How much does one optimization cost?<\/h3><\/dt>\n<dd><p>It depends on the provider and model you pick, but a typical page is a fraction of a cent. The\nplugin tracks what you spend per operation and shows an estimate before long runs.<\/p><\/dd>\n<dt id=\"is%20anything%20in%20the%20free%20version%20locked%2C%20limited%20or%20time-limited%3F\"><h3>Is anything in the free version locked, limited or time-limited?<\/h3><\/dt>\n<dd><p>No. Everything described above works, without quotas or expiry. The bulk and automation features\nare not disabled here \u2014 their code is in a separate plugin, which you install only if you buy it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20a%20local%20site%20or%20a%20staging%20server%3F\"><h3>Does it work on a local site or a staging server?<\/h3><\/dt>\n<dd><p>Yes. It needs an outbound connection to your AI provider, nothing else \u2014 no license check that\nfails offline, no domain lock on the free plugin.<\/p><\/dd>\n<dt id=\"will%20it%20overwrite%20the%20seo%20i%20have%20already%20written%3F\"><h3>Will it overwrite the SEO I have already written?<\/h3><\/dt>\n<dd><p>Only what you ask it to. Generation shows you the result before applying it, bulk operations let\nyou choose which fields to touch, and there is a backup and restore for SEO fields. Content\nrewriting asks for explicit confirmation and keeps a restore point.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Product titles and descriptions are optimized like any other content, and the Product\nJSON-LD is completed rather than duplicated: availability, item condition, brand, GTIN and price\nvalidity are filled into the schema your store already emits.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpml%20or%20polylang%3F\"><h3>Does it work with WPML or Polylang?<\/h3><\/dt>\n<dd><p>Yes. The language of a page is detected from its actual content, so a page in English gets\nEnglish SEO even when the rest of your site is not. Categories and tags are handled per language.<\/p><\/dd>\n<dt id=\"does%20it%20write%20my%20articles%20for%20me%3F\"><h3>Does it write my articles for me?<\/h3><\/dt>\n<dd><p>No, and that is deliberate. AISA optimizes content you already have: metadata, structure, schema,\nalt text, internal links. It can rewrite a paragraph to fix a specific SEO problem, with your\nconfirmation \u2014 it is not there to fill your blog with generated articles.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.99.993<\/h4>\n\n<ul>\n<li>Fixed: the score sparkline on the dashboard rendered as a black rectangle \u2014 the escaping added in 1.99.989 was stripping the CSS class off the shape, and an SVG shape without it defaults to a black fill. Gradients and a few other attributes were being removed the same way.<\/li>\n<li>Added: the Premium component now updates itself, so you install it by hand once and never again.<\/li>\n<\/ul>\n\n<h4>1.99.992<\/h4>\n\n<ul>\n<li>Fixed: with a valid license but the Premium component not installed, the button sent you to the pricing page \u2014 that is, it asked you to buy again. It now offers the download, with the steps to install it.<\/li>\n<li>Changed: the plugin's source strings are now English, so anyone can translate it from English on translate.wordpress.org. Existing translations were kept: 11 languages remain complete.<\/li>\n<li>Added: the Q&amp;A block declares its metadata, so it shows as \"Q&amp;A \/ FAQ\" instead of a name derived from its slug.<\/li>\n<\/ul>\n\n<h4>1.99.991<\/h4>\n\n<ul>\n<li>Added: Writing DNA is back \u2014 teach AISA how you write, and every generation follows your voice. It had been left out of this package by mistake.<\/li>\n<li>Changed: the plugin now lists what it actually does on the directory: alt text for accessibility, metadata, schema, brand voice, and your own AI keys.<\/li>\n<li>Fixed: the screenshot captions described two features that are not part of this package.<\/li>\n<\/ul>\n\n<h4>1.99.990<\/h4>\n\n<ul>\n<li>Added: a Trademarks section to this readme \u2014 AISA is an independent product and the third-party names it mentions are used descriptively only.<\/li>\n<li>Changed: the Q&amp;A inline styles are now registered with the plugin version, so browsers pick up changes after an update.<\/li>\n<\/ul>\n\n<h4>1.99.989<\/h4>\n\n<ul>\n<li>Security: creating a Q&amp;A page now checks that you actually have permission to create pages, not just to edit the Q&amp;A set.<\/li>\n<li>Security: about twenty admin outputs (SVG icons, badges, score rings, sparklines, progress bars, SERP preview, breadcrumbs, Elementor dynamic tags) now go through wp_kses() with a suitable allow-list.<\/li>\n<li>Changed: the JSON-LD blocks are printed with wp_print_inline_script_tag() instead of a raw echo.<\/li>\n<li>Fixed: the robots.txt admin and AJAX paths are derived from admin_url(), so they are correct when wp-admin has been moved or WordPress lives in a subdirectory.<\/li>\n<\/ul>\n\n<h4>1.99.988<\/h4>\n\n<ul>\n<li>Fixed: the plugin folder and the text domain now match in every package, which removes hundreds of spurious Plugin Check notices. Translations were already loading correctly.<\/li>\n<li>Fixed: multilingual scans (SEO Doctor, find &amp; replace, link check) no longer suppress WordPress filters \u2014 they use the WPML and Polylang APIs instead, and still cover every language.<\/li>\n<li>Fixed: file moves use the WordPress filesystem API rather than rename() and unlink().<\/li>\n<li>Fixed: a string with a placeholder was missing its translator comment, and \"Tested up to\" did not match between this readme and the plugin header.<\/li>\n<\/ul>\n\n<h4>1.99.987<\/h4>\n\n<ul>\n<li>Changed: features that require the separate Premium companion (applying SEO Doctor fixes in bulk, mass find-and-replace, bulk 301 redirects, SEO Consultant) are no longer part of this package at all \u2014 their code ships with the companion plugin. The free plugin keeps the full site-wide analysis and previews.<\/li>\n<li>Improved: combined (single-call) AI generation is now always on, so you spend fewer tokens with your own API key.<\/li>\n<li>Security: sanitised the find\/replace inputs of the SEO Doctor; hardened the Q&amp;A custom CSS with wp_strip_all_tags(); added JSON_HEX_TAG to the LocalBusiness and breadcrumb JSON-LD; escaped the Elementor SEO widget output and the shortcode before\/after text.<\/li>\n<li>Fixed: the restore waiting screen no longer prints inline CSS \u2014 the stylesheet is enqueued.<\/li>\n<\/ul>\n\n<h4>1.99.986<\/h4>\n\n<ul>\n<li>Changed: Perplexity now uses the new Agent API \u2014 the previous Sonar chat endpoint is only supported until 27 September 2026.<\/li>\n<li>Fixed: the connection test for Perplexity, Grok and Mistral used a hardcoded model instead of the one you configured.<\/li>\n<\/ul>\n\n<h4>1.99.985<\/h4>\n\n<ul>\n<li>Added: DeepSeek Vision \u2014 image ALT text at a fraction of the cost of other providers.<\/li>\n<li>Added: GLM (Z.ai) as an AI provider; its Flash models are free to use.<\/li>\n<li>Improved: refreshed every provider's model list and cost information (several were out of date).<\/li>\n<\/ul>\n\n<h4>1.99.980<\/h4>\n\n<ul>\n<li>Improved: the One-Click token\/credit estimate is now field-aware \u2014 it counts what is actually missing per field instead of multiplying by every listed item (no more scary inflated totals on nearly-complete sites).<\/li>\n<li>Improved: image runs now show an upfront duration estimate and an explicit \"preparing safety backup\" message; the progress bar completes at the end of the run and the report lists the contents whose images failed (with edit links).<\/li>\n<li>Fixed: failed image generations are now recorded in the error log (file name and reason).<\/li>\n<\/ul>\n\n<h4>1.99.979<\/h4>\n\n<ul>\n<li>New: \"Reset &amp; describe (from scratch)\" mode for AISA Vision \u2014 in the Media Library, One-Click and Bulk: ignores the current (possibly wrong) title\/caption and rewrites alt + title purely from what is visible.<\/li>\n<li>New: image mode selector in One-Click and Bulk (automatic alt+title \/ alt only \/ reset &amp; describe).<\/li>\n<li>Improved: when rewriting an image title, the old title is no longer fed to the AI as context (wrong titles no longer self-perpetuate).<\/li>\n<li>Improved: WooCommerce product association for image alt is now verified (featured image, gallery or product content) \u2014 a wrong post_parent can no longer force a product name into every alt.<\/li>\n<li>Changed: One-Click no longer pre-selects the Q&amp;A set generation when a set already exists.<\/li>\n<li>All bundled languages updated to 100% coverage.<\/li>\n<\/ul>\n\n<h4>1.99.978<\/h4>\n\n<ul>\n<li>Fixed: restoring a large SEO backup could exhaust memory on WPML sites with many attachments (media duplication hooks are now suspended during restore).<\/li>\n<li>Fixed: the One-Click SEO page could exhaust memory on very large sites (meta cache pre-loading removed).<\/li>\n<li>Fixed: the \"needs SEO\" menu badge could show a stale count for up to 6 hours after restoring a backup.<\/li>\n<li>Restore now shows a progress screen while running.<\/li>\n<li>Excluded page-builder template post types (Dotstore WooCommerce Page Builder) from SEO counts.<\/li>\n<li>All bundled languages updated to 100% coverage.<\/li>\n<\/ul>\n\n<h4>1.99.866<\/h4>\n\n<ul>\n<li>Full internationalization pass: ~280 previously hardcoded UI strings (JS dialogs, status messages, provider\/model labels, template designer) are now translatable.<\/li>\n<li>All 12 bundled languages updated to 100% coverage (2060 strings each).<\/li>\n<\/ul>\n\n<h4>1.99.865<\/h4>\n\n<ul>\n<li>Full disclosure pass: External services now lists every endpoint the plugin can reach (AI providers incl. xAI\/Grok and Mistral, AISA Cloud, Lemon Squeezy license API).<\/li>\n<li>Translations now load correctly on English sites (load_plugin_textdomain restored).<\/li>\n<li>Security hardening: nonce added to a dashboard metrics endpoint, stricter escaping of Google Places data, hardened JSON-LD encoding.<\/li>\n<li>Package cleanup: internal documents and design sources removed from the distribution.<\/li>\n<\/ul>\n\n<h4>1.99.745<\/h4>\n\n<ul>\n<li>WordPress.org compliance pass (Plugin Check): output escaping, input sanitization and nonces, prepared SQL, i18n translator comments, asset versioning.<\/li>\n<li>Added readme.txt and External services disclosure.<\/li>\n<li>The GitHub auto-updater is no longer part of the free build (updates come from WordPress.org).<\/li>\n<\/ul>\n\n<p>For the full development history see the changelog included with the plugin.<\/p>","raw_excerpt":"Advanced AI SEO &amp; GEO \u2014 standalone or with Yoast, Rank Math, SEOPress, AIOSEO. One-Click &amp; bulk (Premium), AI Vision alt text. Your API keys.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/335167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=335167"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/paolopiace"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=335167"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=335167"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=335167"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=335167"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=335167"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=335167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}