=== AISA — AI SEO & GEO Assistant === Contributors: ingeniumproject, paolopiace Tags: seo, ai, meta description, schema, structured data Requires at least: 5.9 Tested up to: 7.1 Requires PHP: 8.0 Stable tag: 1.99.990 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Advanced AI SEO & GEO — standalone or with Yoast, Rank Math, SEOPress, AIOSEO. One-Click & bulk (Premium), AI Vision alt text. Your API keys. == Description == AI SEO & GEO Assistant adds an AI copilot to your existing SEO workflow. It reads your content and helps you write better SEO titles, meta descriptions, focus keyphrases, slugs and structured data — directly inside the editor of the SEO plugin you already use, or on its own when you have none. AISA is a **Data Optimization engine**. It's not there to write an article from scratch — it takes everything you've *already* published (even thousands of pages) and optimizes it in bulk, semantically: updating the metadata and adapting it for GEO / AI answer engines, without you having to open every post one by one. You connect your **own** AI provider key (BYOK — Bring Your Own Key), so you stay in control of cost and data. A typical optimization costs a fraction of a cent. = Works WITH your SEO plugin (or without) = * **Integration mode** — detects Yoast SEO, Rank Math, SEOPress or AIOSEO and writes into their fields through a floating panel. * **Standalone mode** — no SEO plugin? AISA emits the SEO title, meta description, canonical and robots itself (no duplicate output when an SEO plugin is active). = What it does = * **One-Click SEO** — a single AI call generates title, meta description, focus keyphrase, slug and AI context for a page, then dispatches the values to your SEO plugin. * **Bulk optimization (Data Optimization)** — take content you've already published and optimize hundreds of posts/products at once, semantically, with a clear token/cost estimate before you start — instead of editing every page by hand. * **Auto SEO Fix** — on-page audit (keyphrase in title/meta/URL, lengths, first paragraph, image ALT, outbound links…) with a targeted AI fix. * **AI image ALT & title** — generate descriptive ALT text and titles with vision models, with a context fallback. * **Optimal Schema (JSON-LD)** — propose and emit the most fitting structured data per content type; completes the Product schema for stores. * **GEO / llms.txt** — publish an llms.txt and AI Search Context so AI answer engines understand your site. * **Multilingual SEO Rotation** — server-side, deterministic title/description rotation (no cloaking), coherent per language with WPML/Polylang. * **Local SEO (Google Business Profile)** — connect your business via the Places API to enrich your brand context and LocalBusiness data. * **Backup & migration** — snapshot SEO fields and restore them; because the snapshot is plugin-agnostic, restoring under a different SEO plugin migrates your SEO data. * **Breadcrumbs** — a visible breadcrumb trail (`[aisa_breadcrumbs]` shortcode + theme function) with full hierarchy (post / page / product / taxonomy / archive) and BreadcrumbList schema. * **Internal link suggestions** — the editor proposes related published content to link to (shared taxonomies + focus keyphrase), skips links you already have, and suggests an anchor. * **SEO inside Elementor** — an "AISA SEO" tab in the Elementor editor: live SERP preview, keyphrase / title / meta description, one-click AI generation and rotation variants. * **REST API** — authenticated `aisa/v1` endpoints (Application Passwords) to read/write SEO fields, run an AI optimize and fetch your llms.txt — headless / automation ready. *On the roadmap:* AI / MCP control, so an AI agent (e.g. Claude) can operate your SEO — optimize, audit and check your AI visibility across the whole site. = Compatible AI providers (BYOK) = OpenAI, Anthropic (Claude), Google (Gemini), DeepSeek, GLM (Z.ai), xAI (Grok), Mistral and Perplexity (Sonar). You enable only the providers you want and paste your own API keys. = AISA Cloud (optional alternative to API keys) = Instead of bringing your own API key, you can connect an **AISA Cloud** account — an optional paid service with prepaid optimization credits. In Cloud mode your AI requests are routed through our server (aiseoassistant.net), which forwards them to an AI provider and manages your credit balance. Cloud mode is strictly opt-in: nothing is ever sent to our server unless you connect an account. See *External services*. = Premium license (optional) = Additional features (One-Click SEO, Bulk SEO, SEO Rotation, scheduled regeneration, applying SEO Doctor fixes in bulk and the SEO Consultant) are provided by a **separate companion plugin**, distributed from our own site. Nothing in this plugin is locked or limited: the companion adds its own code. If you have a license key, entering it validates through the Lemon Squeezy licensing API. You download the companion plugin yourself from our site and install it like any other plugin: this plugin never installs, downloads or updates code on its own. See *External services*. = Privacy & data = The plugin sends content to an AI service **only when you trigger an action** (generate, optimize, audit) — either directly **to the provider you configured with your own key**, or **through the AISA Cloud service if you chose to connect a Cloud account**. See *External services* below for exactly what is sent and when. == Trademarks == 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. 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. These names are used here only descriptively, to state which products this plugin can work with. == External services == 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. **AI text/vision providers (you choose, with your own API key):** When you run a generation, optimization, audit, Q&A or image-ALT action, the plugin sends the relevant content of the selected post (e.g. title, excerpt or body text, and — for image ALT — 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. * OpenAI — Terms: https://openai.com/policies/terms-of-use — Privacy: https://openai.com/policies/privacy-policy * Anthropic (Claude) — Terms: https://www.anthropic.com/legal/consumer-terms — Privacy: https://www.anthropic.com/legal/privacy * Google (Gemini) — Terms: https://ai.google.dev/gemini-api/terms — Privacy: https://policies.google.com/privacy * DeepSeek — Terms: https://cdn.deepseek.com/policies/en-US/deepseek-terms-of-use.html — Privacy: https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html * xAI (Grok) — Terms: https://x.ai/legal/terms-of-service — Privacy: https://x.ai/legal/privacy-policy * Mistral — Terms: https://mistral.ai/terms/ — Privacy: https://mistral.ai/terms/#privacy-policy * Perplexity (Sonar) — Terms: https://www.perplexity.ai/hub/legal/terms-of-service — Privacy: https://www.perplexity.ai/hub/legal/privacy-policy * GLM / Z.ai — Terms: https://chat.z.ai/legal-agreement/terms-of-service — Privacy: https://docs.z.ai/legal-agreement/privacy-policy **AISA Cloud (optional — our own service, opt-in):** Only 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. Terms: https://aiseoassistant.io/terms/ — Privacy: https://aiseoassistant.io/privacy/ **Lemon Squeezy (optional — premium license validation):** Only 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. Terms: https://www.lemonsqueezy.com/terms — Privacy: https://www.lemonsqueezy.com/privacy **Bing Webmaster API (optional — SEO Doctor):** Only 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 — Privacy: https://privacy.microsoft.com/en-us/privacystatement **Google PageSpeed Insights API (optional — SEO Doctor):** Only 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 — Privacy: https://policies.google.com/privacy **Google Safe Browsing API (optional — SEO Doctor):** Only 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 — Privacy: https://policies.google.com/privacy **Google Places API (optional — Local SEO feature):** Only 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. Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy **IndexNow (optional — standalone SEO feature):** Only 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. About: https://www.bing.com/indexnow — Privacy: https://privacy.microsoft.com/privacystatement == Installation == 1. Upload the plugin to `/wp-content/plugins/ai-seo-geo-assistant` or install it from the Plugins screen. 2. Activate it through the **Plugins** menu in WordPress. 3. Open **AI SEO & GEO Assistant** and run the setup wizard. 4. Add at least one AI provider API key (OpenAI, Claude, Gemini, DeepSeek or Perplexity). 5. Open any post/page and use the floating panel (integration mode) or the AI SEO block (standalone) to generate and apply SEO fields. == Frequently Asked Questions == = Do I need an API key? = Yes, unless you use AISA Cloud. By default the plugin uses your own provider key (BYOK), so you control cost and data — you only enable the providers you want. Alternatively you can connect an AISA Cloud account (optional paid service with prepaid credits) and skip API keys entirely. = Does it work with Yoast / Rank Math / SEOPress / AIOSEO? = Yes. It detects the active SEO plugin and writes into its fields. With no SEO plugin active it works standalone, emitting the SEO output itself without duplicating tags. = Does it send my content anywhere automatically? = No. Content is sent only when you trigger an action (generate, optimize, audit) — to the AI provider you configured with your own key, or through the AISA Cloud service if you connected a Cloud account. Nothing runs in the background without your action. See *External services*. = How much does an optimization cost? = It depends on your provider and model, but a typical page optimization is a fraction of a cent. The plugin shows an estimate before bulk operations. == Screenshots == 1. One-Click SEO: a single AI call fills title, meta description, keyphrase and slug. 2. Floating panel inside the editor (integration with your SEO plugin). 3. Auto SEO Fix: on-page audit with a targeted AI fix. 4. Bulk optimization with a cost estimate. 5. Optimal Schema (JSON-LD) suggestions. == Changelog == = 1.99.990 = * Added: a Trademarks section to this readme — AISA is an independent product and the third-party names it mentions are used descriptively only. * Changed: the Q&A inline styles are now registered with the plugin version, so browsers pick up changes after an update. = 1.99.989 = * Security: creating a Q&A page now checks that you actually have permission to create pages, not just to edit the Q&A set. * 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. * Changed: the JSON-LD blocks are printed with wp_print_inline_script_tag() instead of a raw echo. * 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. = 1.99.988 = * 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. * Fixed: multilingual scans (SEO Doctor, find & replace, link check) no longer suppress WordPress filters — they use the WPML and Polylang APIs instead, and still cover every language. * Fixed: file moves use the WordPress filesystem API rather than rename() and unlink(). * 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. = 1.99.987 = * 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 — their code ships with the companion plugin. The free plugin keeps the full site-wide analysis and previews. * Improved: combined (single-call) AI generation is now always on, so you spend fewer tokens with your own API key. * Security: sanitised the find/replace inputs of the SEO Doctor; hardened the Q&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. * Fixed: the restore waiting screen no longer prints inline CSS — the stylesheet is enqueued. = 1.99.986 = * Changed: Perplexity now uses the new Agent API — the previous Sonar chat endpoint is only supported until 27 September 2026. * Fixed: the connection test for Perplexity, Grok and Mistral used a hardcoded model instead of the one you configured. = 1.99.985 = * Added: DeepSeek Vision — image ALT text at a fraction of the cost of other providers. * Added: GLM (Z.ai) as an AI provider; its Flash models are free to use. * Improved: refreshed every provider's model list and cost information (several were out of date). = 1.99.980 = * Improved: the One-Click token/credit estimate is now field-aware — it counts what is actually missing per field instead of multiplying by every listed item (no more scary inflated totals on nearly-complete sites). * 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). * Fixed: failed image generations are now recorded in the error log (file name and reason). = 1.99.979 = * New: "Reset & describe (from scratch)" mode for AISA Vision — in the Media Library, One-Click and Bulk: ignores the current (possibly wrong) title/caption and rewrites alt + title purely from what is visible. * New: image mode selector in One-Click and Bulk (automatic alt+title / alt only / reset & describe). * Improved: when rewriting an image title, the old title is no longer fed to the AI as context (wrong titles no longer self-perpetuate). * Improved: WooCommerce product association for image alt is now verified (featured image, gallery or product content) — a wrong post_parent can no longer force a product name into every alt. * Changed: One-Click no longer pre-selects the Q&A set generation when a set already exists. * All bundled languages updated to 100% coverage. = 1.99.978 = * Fixed: restoring a large SEO backup could exhaust memory on WPML sites with many attachments (media duplication hooks are now suspended during restore). * Fixed: the One-Click SEO page could exhaust memory on very large sites (meta cache pre-loading removed). * Fixed: the "needs SEO" menu badge could show a stale count for up to 6 hours after restoring a backup. * Restore now shows a progress screen while running. * Excluded page-builder template post types (Dotstore WooCommerce Page Builder) from SEO counts. * All bundled languages updated to 100% coverage. = 1.99.866 = * Full internationalization pass: ~280 previously hardcoded UI strings (JS dialogs, status messages, provider/model labels, template designer) are now translatable. * All 12 bundled languages updated to 100% coverage (2060 strings each). = 1.99.865 = * 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). * Translations now load correctly on English sites (load_plugin_textdomain restored). * Security hardening: nonce added to a dashboard metrics endpoint, stricter escaping of Google Places data, hardened JSON-LD encoding. * Package cleanup: internal documents and design sources removed from the distribution. = 1.99.745 = * WordPress.org compliance pass (Plugin Check): output escaping, input sanitization and nonces, prepared SQL, i18n translator comments, asset versioning. * Added readme.txt and External services disclosure. * The GitHub auto-updater is no longer part of the free build (updates come from WordPress.org). For the full development history see the changelog included with the plugin. == Upgrade Notice == = 1.99.745 = Compliance and security hardening for the WordPress.org release. Recommended for all users.