{"id":346478,"date":"2026-10-14T06:24:51","date_gmt":"2026-10-14T06:24:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/amaso\/"},"modified":"2026-10-14T06:34:24","modified_gmt":"2026-10-14T06:34:24","slug":"amaso","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/amaso\/","author":23530626,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.25","stable_tag":"1.0.25","tested":"7.1.3","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Amaso","header_author":"Fosia Ltd","header_description":"Amaso (\"eyes\" in Kinyarwanda) \u2014 find out if AI search sees your business. Track Google rankings, JSON-LD schemas, llms.txt and AI crawler visits from your WordPress dashboard. By Fosia Ltd.","assets_banners_color":"565b71","last_updated":"2026-10-14 06:34:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/amasoai.com\/","header_author_uri":"https:\/\/amasoai.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.25":{"tag":"1.0.25","author":"fosialtd","date":"2026-10-14 06:34:24","revision":3745473}},"upgrade_notice":{"1.0.1":"<p>No locked\/paywalled controls anywhere in the free build; unlimited keyword and market tracking.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3745466,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3745466,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3745466,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3745466,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.25"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3745473,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3745473,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3745473,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3745473,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3745473,"resolution":"5","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Dashboard \u2014 local observations and action plan.","2":"Business Profile \u2014 scan findings and validated business details.","3":"Schema Manager \u2014 JSON-LD editor and supported schema controls.","4":"Content Audit \u2014 heuristic findings and available review\/fix actions.","5":"Settings \u2014 provider keys, automation settings and data tools."}},"plugin_section":[],"plugin_tags":[2353,216196,2591,1117,186],"plugin_category":[49,55],"plugin_contributors":[286652],"plugin_business_model":[],"class_list":["post-346478","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-geo","plugin_tags-schema","plugin_tags-seo","plugin_category-maps-and-location","plugin_category-seo-and-marketing","plugin_contributors-fosialtd","plugin_committers-fosialtd"],"banners":{"banner":"https:\/\/ps.w.org\/amaso\/assets\/banner-772x250.png?rev=3745466","banner_2x":"https:\/\/ps.w.org\/amaso\/assets\/banner-1544x500.png?rev=3745466","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/amaso\/assets\/icon-128x128.png?rev=3745466","icon_2x":"https:\/\/ps.w.org\/amaso\/assets\/icon-256x256.png?rev=3745466","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/amaso\/assets\/screenshot-1.png?rev=3745473","caption":"Dashboard \u2014 local observations and action plan."},{"src":"https:\/\/ps.w.org\/amaso\/assets\/screenshot-2.png?rev=3745473","caption":"Business Profile \u2014 scan findings and validated business details."},{"src":"https:\/\/ps.w.org\/amaso\/assets\/screenshot-3.png?rev=3745473","caption":"Schema Manager \u2014 JSON-LD editor and supported schema controls."},{"src":"https:\/\/ps.w.org\/amaso\/assets\/screenshot-4.png?rev=3745473","caption":"Content Audit \u2014 heuristic findings and available review\/fix actions."},{"src":"https:\/\/ps.w.org\/amaso\/assets\/screenshot-5.png?rev=3745473","caption":"Settings \u2014 provider keys, automation settings and data tools."}],"raw_content":"<!--section=description-->\n<p><strong>Amaso Lite<\/strong> brings local SEO\/GEO checks and optional AI-provider workflows into\nWordPress. Review your business context, inspect answers to customer questions\nand record what you changed. English is the source documentation; a short French\nsummary appears below.<\/p>\n\n<p>Website: <a href=\"https:\/\/amasoai.com\/\">amasoai.com<\/a> \u00b7 Guides: <a href=\"https:\/\/amasoai.com\/resources\/\">AI visibility resources<\/a> \u00b7 Pro plans: <a href=\"https:\/\/amasoai.com\/pricing\/\">pricing<\/a><\/p>\n\n<p>The interface uses English source strings. A partial French catalogue covers\ncore navigation and common actions; untranslated strings fall back to English.\nWordPress site\/user language settings select the interface language.<\/p>\n\n<h4>Included in Lite<\/h4>\n\n<ul>\n<li><strong>Keywords and local markets<\/strong> \u2014 no artificial Lite keyword or market quota; manual SEO ranking records are included.<\/li>\n<li><strong>Business Profile<\/strong> \u2014 quick and deep scans of supported site content, with manually validated type, location and services retained through rescans.<\/li>\n<li><strong>AI suggestions<\/strong> \u2014 local suggestions and included BYOK suggestions; provider processing is optional and billed by the provider.<\/li>\n<li><strong>AI citations<\/strong> \u2014 manual records plus on-demand and scheduled checks with your own supported provider keys. No artificial Lite monthly citation quota; provider limits, request safeguards and hosting capacity still apply.<\/li>\n<li><strong>Content Audit<\/strong> \u2014 local\/full audits and included fix actions, plus BYOK AI content audit and FAQ generation. Review proposed changes and publishable content before applying them.<\/li>\n<li><strong>Schema and llms.txt<\/strong> \u2014 supported automatic\/manual JSON-LD, AI metadata and public text indexes. llms.txt is an optional publication format, not a verified ranking or citation signal.<\/li>\n<li><strong>Crawler\/referral observations<\/strong> \u2014 local request-based records with the measurement limits below.<\/li>\n<li><strong>Action plan and exports<\/strong> \u2014 a local work journal and CSV\/JSON exports for the available datasets.<\/li>\n<li><strong>IndexNow<\/strong> \u2014 optional URL notification after explicit opt-in; off by default.<\/li>\n<\/ul>\n\n<h4>Separate Pro capabilities<\/h4>\n\n<p>The paid Amaso edition provides Autopilot, Google Search Console and GA4\nintegrations, Share of Voice, PDF-ready reporting and related client-reporting\nfeatures according to the active plan, and letting an AI assistant (Claude, ChatGPT) connect to the site and make changes for you. These are not included in Lite; the Assistant inside the WordPress admin, which reads and audits, is.\nA paid subscription does not include or replace your AI-provider usage charges.\nLite's included local and BYOK features do not require an Amaso product license.<\/p>\n\n<h4>What the measurements mean<\/h4>\n\n<p>GEO and content-audit scores are heuristic checklists of observed page signals.\nThey are not a measured probability of citation, a ranking factor supplied by\nGoogle, or proof of business results. A good Google position does not guarantee\nan AI citation, and a citation does not establish a conversion or sale.<\/p>\n\n<p>Provider checks record the query, engine, time and available answer\/citation\nevidence. Results can differ from the provider's consumer app and change across\nqueries, models and dates. Crawler logs recognize request user-agents; they do\nnot prove indexing or citation. First-party AI referral counters count recognized\ninbound page requests, not unique visitors, qualified leads or revenue.\nThe plugin does not automatically attribute conversions or sales to AI.<\/p>\n\n<h4>Citation check batches and provider usage<\/h4>\n\n<p>The \"Check batches this month (UTC)\" counter and applicable AMASO commercial\nquotas count successful keyword-and-engine check batches. One batch concerns\none keyword and one AI engine; it consumes one quota unit when at least one\nquery-variant result is stored. A stored result can say the site was not cited.\nSeveral stored variants in that batch still consume only one AMASO quota unit.<\/p>\n\n<p>A batch can make 1\u20135 query-variant provider requests. Retries and provider search\ntools may add usage and cost. For example, five stored variants from one keyword\nand one engine count as one successful batch, with separate provider usage.\nAMASO's batch counter is therefore not a count of HTTP requests or provider fees.\nA failed batch with no stored variants consumes no successful-batch quota,\nalthough provider charges may still apply.<\/p>\n\n<p>Lite has no AMASO monthly citation-batch quota. Provider charges, provider limits,\nrequest safeguards and hosting capacity still apply to its included BYOK checks.<\/p>\n\n<h4>Local action plan and journal<\/h4>\n\n<p>The dashboard action plan uses local configuration and saved scan findings.\nRecord an action's status and a private evidence note, then recheck observable\nconditions. \"Reviewed\" records a human review; \"Verified\" applies to the specific\nlocal condition checked, not to search rankings or AI recommendations.<\/p>\n\n<p>The journal retains the latest 100 events, including timestamps, WordPress user\nIDs, task\/status changes and submitted notes. Current task notes\/statuses and\nbaseline\/latest evidence are saved separately; the 100-event cap is not a cap on\nall saved data. Notes are for authorized WordPress administrators and are not\nautomatically published in llms.txt or sent as AI prompts.<\/p>\n\n<h4>Privacy and consent<\/h4>\n\n<p>Lite has no license activation\/heartbeat client or custom updater; WordPress.org\nhandles its plugin updates. It does make external requests for the optional\nservices documented below, so it is not a zero-outbound-network plugin.\nSaving results locally does not mean that provider processing stays on the site.<\/p>\n\n<h4>Stored data and public output<\/h4>\n\n<p>Data is saved in the site's WordPress database: keywords and markets, ranking\nand citation records, available answer evidence, schema definitions, business\nprofiles and durable manual corrections, discovered public contacts\/URLs,\nsettings, encrypted API credentials, caches, usage counters and operational\nlogs. The action plan also stores its evidence snapshots, private notes, user\nIDs and event history. The Pro edition additionally stores data for enabled\ncompetitor, reporting and Autopilot features.<\/p>\n\n<p>The 404 monitor (Optimize \u2192 Redirects) records each address visitors could not find: the path without its query string, how many times, the first and last time, and the referring website's host name only \u2014 never an IP address, user agent or cookie. Recording is rate-limited and capped, static files are ignored, and dismissing an address or adding a redirect for it removes the entry. Redirects you create are stored as a path map. The link checker (Optimize \u2192 Links) stores only the list of problem links found in its last scan. When no SEO plugin is active, the search description you (or the Assistant) set for a page is stored in the page's own custom field and printed as a single description tag in that page's head; with Yoast, Rank Math, All in One SEO or SEOPress active, Amaso writes to their field instead and prints nothing. A search title you set for a page is stored in a custom field on that page and printed as its title tag only when no SEO plugin is active. Locations (Setup \u2192 Locations) stores only the details you type for each place (name, address, phone, email, opening hours, coordinates) and the page it is linked to, and prints them as structured data on that page. Topic clusters (Optimize \u2192 Topic clusters) stores only the ids of the pages you mark as pillars; internal-link suggestions are computed from your own content and kept briefly as a temporary cache.<\/p>\n\n<p>Every action the in-admin Assistant (Optimize \u2192 Assistant) runs is logged (which\ntool, its arguments and result, the calling WordPress user, and a timestamp) so\nit can be reviewed or, for the actions that support it, undone. The Assistant's\nown conversation is saved per WordPress user so it is still there next time that\nadmin opens the page; \"Clear conversation\" erases it.<\/p>\n\n<p>Business contact details and user-entered notes can contain personal information.\nPublic pages, active schema, AI metadata, robots.txt and llms.txt\/llms-full.txt\nare readable by visitors and crawlers. Review public business details and author\ndisplay names before publishing them. The administration email is not a fallback\nfor a public business contact.<\/p>\n\n<p>CSV\/JSON downloads cover the datasets offered by the export tool; they are not\na complete backup of every option or private note. WordPress personal-data tools\nprovide the plugin's supported site-owner export\/erasure workflow, not a blanket\nguarantee of legal compliance or complete portability. Include the WordPress\ndatabase in a backup when you need all settings, saved data and notes.\nData is retained by default on uninstall; an explicit removal option controls\ncleanup. Review the resulting database\/backup if complete removal is required.<\/p>\n\n<h3>External services<\/h3>\n\n<p><strong>Google PageSpeed Insights<\/strong>: only when you click \"Test speed\" on a page in the technical health check. The address of that page of your site (nothing else) is sent to https:\/\/www.googleapis.com\/pagespeedonline\/v5\/runPagespeed, which loads it and returns its speed measures (Core Web Vitals). An optional free API key you enter in Settings is sent with it. Google terms: https:\/\/developers.google.com\/terms and privacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Anonymous usage statistics (amasoai.com)<\/strong>: OFF by default. Only if you tick \"Send anonymous usage statistics\" in Settings, Amaso sends once a week to https:\/\/amasoai.com\/wp-json\/gvlm\/v1\/usage: a random ID created on your site, the edition, plugin\/WordPress\/PHP versions, the site language, and per-module counters (which modules are on, how often each was used this month). Never your site address, content, keywords or personal data. Untick the box to stop it. Terms and privacy: https:\/\/amasoai.com\/terms-conditions\/<\/p>\n\n<p><strong>No inbound connections<\/strong> \u2014 Amaso Lite does not open a remote-access\nendpoint, does not accept connections from outside clients and does not create\nApplication Passwords or OAuth tokens. The Assistant only works inside the\nWordPress admin, for a logged-in administrator, and only calls the AI provider\nyou configured (see below).<\/p>\n\n<p><strong>IndexNow<\/strong> \u2014 automatic submission is OFF by default on new installs.\nExisting saved choices are retained. Explicitly enable it or request a manual\nsubmission to notify participating search engines about public URLs. After\nopt-in, eligible publish\/update events can submit URLs in the background.\nRequests to https:\/\/api.indexnow.org\/indexnow include the host, URL list,\nverification key and key-file URL; the service also receives normal connection\nmetadata. Notification or HTTP acceptance does not guarantee crawling, indexing,\nGoogle inclusion, AI indexing, citations or an immediate result.\n<a href=\"https:\/\/www.indexnow.org\/terms\">IndexNow terms and website privacy information<\/a>.<\/p>\n\n<p><strong>Google Autocomplete<\/strong> \u2014 used only when you click \"Find real searches\" (Setup\nwizard, step 2, or Keywords). Amaso requests\nhttps:\/\/suggestqueries.google.com\/complete\/search for up to four topic phrases\ntaken from your business profile or keyword list (with your city or country when\nthe business is local), together with your site language and country code. No\npage content, no site URL and no personal data are sent; Google receives the\nusual connection metadata, including your server's IP address. Answers are kept\nfor a week in a WordPress transient. This is a public suggestion endpoint that\nGoogle does not document as an API: it can change or refuse requests, and\nAmaso then shows a message instead of results. Autocomplete shows what people\ntype; it does not provide search volume or keyword difficulty.\n<a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a> and\n<a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<p><strong>OpenAI, Anthropic (Claude), Google (Gemini) and Perplexity<\/strong> \u2014 optional\nbring-your-own-key (BYOK) services for supported citation checks, business\nclassification, suggestions, FAQ generation, the in-admin Assistant (Optimize\n\u2192 Assistant) and AI-assisted content work.\nLocal heuristics do not require a provider account. AI features require your\nconfigured provider credentials and may incur that provider's charges, rate\nlimits or account restrictions; free API access is not promised.<\/p>\n\n<p>Review the provider policies and the data being submitted before choosing an AI\naction or saving credentials for scheduled use. Requests can contain keywords,\nquestions\/instructions, the site URL, business context and relevant page excerpts,\ndepending on the action. Public source content is still sent externally when\nused in such a request. Configured citation checks can run through WP-Cron, and\na scan can use a configured provider for classification; requests are not limited\nto clicking a single test button. Review schedules before adding keys and remove\ncredentials or disable the relevant automation to stop future provider calls.\nAPI requests go to the selected provider using your key.<\/p>\n\n<ul>\n<li>OpenAI: <a href=\"https:\/\/openai.com\/policies\/services-agreement\/\">API services agreement<\/a> \u00b7 <a href=\"https:\/\/openai.com\/policies\/privacy-policy\/\">privacy<\/a><\/li>\n<li>Anthropic: <a href=\"https:\/\/www.anthropic.com\/legal\/commercial-terms\">commercial API terms<\/a> \u00b7 <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">privacy<\/a><\/li>\n<li>Google: <a href=\"https:\/\/policies.google.com\/terms\">terms<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">privacy<\/a><\/li>\n<li>Perplexity: <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/perplexity-api-terms-of-service\">API terms<\/a> \u00b7 <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/privacy-policy\">privacy<\/a><\/li>\n<\/ul>\n\n<p><strong>amasoai.com (Fosia Ltd)<\/strong> \u2014 Upgrade requests public monthly USD catalogue\nprices from https:\/\/amasoai.com\/wp-json\/gvlm\/v1\/plans when you click \"Check\ncurrent prices\". Automatic price checks are OFF by default. If you explicitly\nallow them on Upgrade, opening that page checks again when the last successful\ncheck is at least 12 hours old. Failed automatic checks retry no more often\nthan every 15 minutes, on a later page view. No background cron is scheduled.\nYou can turn automatic checks off on the same page; a manual check does not\nturn them on. A manual check always requests prices immediately.<\/p>\n\n<p>The last complete valid catalogue and its check date are stored locally until\nreplaced or plugin data is explicitly erased. A network failure retains those\nprices with a warning; bundled prices are marked as unverified references.\nLegacy cached prices have no check date until the next successful request.\nOnly a cache-busting timestamp is attached to the request, with a generic\nAmaso-Pricing user-agent. No license key, site URL or business content is sent\nby this integration. The server still receives normal connection metadata,\nincluding the requesting IP address. A price check does not activate a license,\npurchase a plan, or change existing subscription charges.\nFosia Ltd: <a href=\"https:\/\/amasoai.com\/terms-conditions\/\">Terms &amp; privacy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Amaso Lite through WordPress, or upload the amaso folder.<\/li>\n<li>Open Amaso \u2192 Setup and review the detected business profile, public contacts and tracked queries.<\/li>\n<li>Run a local audit and review the action plan. Check public schema and llms output.<\/li>\n<li>For AI features, review the data\/cost disclosures, add your own supported provider keys and review the configured schedule before starting checks.<\/li>\n<li>Leave IndexNow off unless you choose to submit public URLs to that service.<\/li>\n<\/ol>\n\n<p>Minimum requirements: WordPress 6.0+, PHP 8.1+, MySQL 5.7+ or MariaDB 10.3+.\nHosting capacity, WordPress cron execution and provider availability affect runtime.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20api%20key%20or%20a%20paid%20amaso%20license%3F\"><h3>Do I need an API key or a paid Amaso license?<\/h3><\/dt>\n<dd><p>Local scans, heuristic scores, manual records, schema and text-index generation\ndo not require AI keys. Included AI processing uses your own provider keys and\nprovider billing. Lite does not require a paid Amaso license for those features.<\/p><\/dd>\n<dt id=\"can%20both%20editions%20be%20installed%3F\"><h3>Can both editions be installed?<\/h3><\/dt>\n<dd><p>Both can be installed, but only one runtime loads. An active compatible Pro\nedition takes priority over Lite; an admin notice explains the choice. The plugin\ndoes not silently change your activation choices. Back up shared data before\nchanging or deleting editions.<\/p><\/dd>\n<dt id=\"where%20is%20the%20data%3F\"><h3>Where is the data?<\/h3><\/dt>\n<dd><p>The site's database prefix is used for geo_* tables, including keyword, ranking,\ncitation, schema and request records. Shared installation code can create tables\nused by the other edition; table existence does not enable a Pro feature.\nProfiles, corrections, credentials, caches and the private action journal also\nuse WordPress options. See \"Stored data and public output\" for export limits.<\/p><\/dd>\n<dt id=\"r%C3%A9sum%C3%A9%20en%20fran%C3%A7ais\"><h3>R\u00e9sum\u00e9 en fran\u00e7ais<\/h3><\/dt>\n<dd><p>Lite inclut les outils locaux, les suggestions et contr\u00f4les IA avec vos propres\ncl\u00e9s, les audits, la g\u00e9n\u00e9ration de FAQ et les exports disponibles, sans quota\nartificiel de mots-cl\u00e9s ou de march\u00e9s. Les frais des fournisseurs IA restent \u00e0\nvotre charge. IndexNow est d\u00e9sactiv\u00e9 par d\u00e9faut. Les scores sont heuristiques et\nne garantissent ni classement, ni citation, ni vente. Le journal local conserve\nles 100 derniers \u00e9v\u00e9nements ; les notes restent priv\u00e9es dans WordPress.\nAutopilot, GSC, GA4, Share of Voice et les rapports PDF rel\u00e8vent de Pro.<\/p>\n\n<p>Le compteur mensuel utilise les lots de v\u00e9rification r\u00e9ussis : un mot-cl\u00e9 et un\nmoteur IA, avec au moins une variante enregistr\u00e9e, comptent pour une unit\u00e9 AMASO.\nUn lot peut effectuer 1 \u00e0 5 requ\u00eates de variantes ; les nouvelles tentatives et\nla recherche peuvent ajouter des frais fournisseur. Un lot sans variante\nenregistr\u00e9e ne consomme pas ce quota, mais peut entra\u00eener des frais fournisseur.\nLite reste sans quota mensuel AMASO de lots de citations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.25 - 2026-10-10<\/h4>\n\n<ul>\n<li>CHANGED: requires WordPress 6.2 or later.<\/li>\n<li>CHANGED: the admin screens load their scripts and styles as files through the WordPress script and style API; translated text reaches them through wp_localize_script.<\/li>\n<li>CHANGED: every database query goes through $wpdb-&gt;prepare(), with table names bound as identifiers.<\/li>\n<li>FIXED: some admin styles (Assistant, Keywords, Schema, Settings and others) were not applied.<\/li>\n<li>FIXED: when you choose to remove data on uninstall, the AI sources and missions tables are now removed too.<\/li>\n<\/ul>\n\n<h4>1.0.24 \u2014 2026-10-04<\/h4>\n\n<ul>\n<li>CHANGED: Amaso Lite no longer includes the remote MCP server, Application-Password and OAuth connection. The Assistant inside the WordPress admin stays: it reads and audits your site and can track and pause keywords and mark pillar pages. The changes to pages (titles, descriptions, links, redirects, structured data) are made on the Amaso screens, which are all in Lite; having an assistant apply them for you is part of the separate paid edition.<\/li>\n<li>NEW: the Dashboard opens on your week: how often AI assistants cited you in the last 7 days against the 7 before, your missions, and the three fixes worth doing now (a blocking technical problem first).<\/li>\n<li>NEW: Visibility \u2192 Missions: choose a search you want to be recommended for; Amaso records where you start, builds a plan (on your site and across the web) and measures the result at every check, with an honest verdict (\"too early\", \"no change yet\", \"improving\").<\/li>\n<li>NEW: AI Citations shows the websites the assistants actually consulted for your searches (your site, reviews and directories, social and video, guides and forums, other websites), each with what to do.<\/li>\n<li>NEW: Optimize \u2192 Technical health: what stops Google and AI assistants from reading your key pages (errors, redirects, noindex, canonical, titles, H1, phone viewport, HTTPS, image descriptions, hreflang, robots.txt, sitemap), most severe first, with the fix. Optional speed test per page through Google PageSpeed Insights, only when you click (see External services).<\/li>\n<li>NEW: Optimize \u2192 Shop (WooCommerce): product pages missing what AI shopping answers need (price, photo, descriptions, category, reviews, identifiers), worst first. WooCommerce products are now included in every content feature.<\/li>\n<li>NEW: Amaso panel in the block editor: the GEO score updates as you write, with a Google preview, and the search title and description can be edited there (or written with your own AI key). The classic editor keeps the meta box.<\/li>\n<li>NEW: the Assistant has ready-made workflows (weekly review, why am I not recommended, start a mission, improve my product pages, write the missing cluster articles) and tools for AI sources, page comparison, technical and shop audits.<\/li>\n<li>IMPROVED: after a redirect, a search title or a search description is saved, the cached copy of that page is cleared in LiteSpeed Cache, WP Rocket, W3 Total Cache, WP Super Cache or SiteGround Optimizer, so the change shows at once.<\/li>\n<li>NEW: Redirects suggests the page an old address used to be (matching words in the address and your page titles) and redirects the confident ones in one click; addresses your own pages link to are listed first, with the page that holds the link; automatic probes are no longer recorded.<\/li>\n<li>NEW: the Assistant can read a page, pause weak keywords and mark a pillar page, each undoable.<\/li>\n<li>IMPROVED: internal links read pages built with Divi, Elementor and other builders as visitors see them.<\/li>\n<li>NEW: Keywords flags single common words, pricing words and past years (each tracked keyword costs AI credit) and pauses them in one click; the setup wizard no longer pre-selects them.<\/li>\n<li>IMPROVED: readability and accessibility: larger small text, stronger contrast, visible keyboard focus, reduced motion respected, plain-language activity log.<\/li>\n<li>IMPROVED: French translation of every new screen.<\/li>\n<\/ul>\n\n<h4>1.0.23 \u2014 2026-10-03<\/h4>\n\n<ul>\n<li>NEW: \"Fix these first\" after setup and on the Dashboard: up to five concrete findings with the screen that fixes each.<\/li>\n<li>NEW: optional monthly email report (off until you turn it on).<\/li>\n<li>NEW: the Assistant can diagnose why AI assistants may not recommend you for a search, and list what to fix first.<\/li>\n<li>NEW: MCP tools get_cluster_gaps and draft_cluster_article: a connected Claude or ChatGPT can write the articles a topic cluster is missing, saved as drafts linked to the pillar page.<\/li>\n<li>FIX: Plugin Check errors (exception messages now escaped, a translator comment, a WordPress 6.5 function on a 6.0 minimum).<\/li>\n<li>NEW: optional, off-by-default anonymous usage statistics (see External services).<\/li>\n<li>FIX: the setup wizard no longer spins forever after the site scan.<\/li>\n<li>SECURITY: request data is sanitized as soon as it is read (business profile, Schema JSON, service account, utm_source, Schema form fields).<\/li>\n<\/ul>\n\n<h4>1.0.22 \u2014 2026-09-28<\/h4>\n\n<ul>\n<li>NEW: Setup \u2192 Locations \u2014 describe each shop, clinic or office once (address, phone, opening hours, coordinates) and link it to its page. Amaso prints that place as its own LocalBusiness structured data on that page only, refuses invalid values with a reason instead of dropping them silently, and warns when the page text does not show the details the structured data claims. The Assistant gets get_locations.<\/li>\n<li>NEW: Search title. The Assistant can now set a page's search title \u2014 the headline shown in Google \u2014 written into your SEO plugin's field when you use one, or printed by Amaso when you don't (as the whole title tag, only on themes that support title tags). Undoable, like every change.<\/li>\n<li>IMPROVED: Settings \u2192 AI Engines \u2192 MCP now shows, in plain steps, how to connect Claude.ai or ChatGPT to your site (paste the connection URL, approve on the consent screen, switch the connector on in a chat) \u2014 the instructions used to be hidden behind the Application Password button.<\/li>\n<\/ul>\n\n<h4>1.0.21 \u2014 2026-09-28<\/h4>\n\n<ul>\n<li>NEW: the Assistant now works with Claude, ChatGPT (OpenAI) or Gemini using your own key, remembers your conversation between visits, and every change it makes is listed under \"Recent actions\" with an Undo button.<\/li>\n<li>NEW: connect Claude.ai, ChatGPT or any MCP client with a sign-in flow (OAuth) instead of an Application Password; connected apps can be disconnected at any time from Settings.<\/li>\n<li>NEW: Optimize \u2192 Links scans your published content for broken links, in small batches so it never slows the site.<\/li>\n<li>NEW: Optimize \u2192 Redirects \u2014 a 404 monitor (path, count and referring host only; no IP, user agent or cookie) and a redirect manager.<\/li>\n<li>NEW: Optimize \u2192 Internal links lists published pages that nothing links to and, for each, the pages that could link to it using words already written there. Links are added one click at a time, never inside headings or existing links, and never in page-builder pages.<\/li>\n<li>NEW: Optimize \u2192 Topic clusters \u2014 mark a pillar page and see which supporting pages link to it and which it links back to, with a one-click fix for each gap.<\/li>\n<li>NEW: Schema \u2192 import structured data from a URL (private and local addresses are refused).<\/li>\n<li>NEW: a fallback XML sitemap when WordPress's own is unavailable.<\/li>\n<li>FIX: with no SEO plugin active, a search description set by Amaso was stored but never printed in the page head. Amaso now prints a single description tag in that case only; with Yoast, Rank Math, All in One SEO or SEOPress active it writes to their field and prints nothing. Unfilled template values such as %%excerpt%% are never printed.<\/li>\n<li>FIX: plain Gutenberg content was wrongly detected as built with a page builder.<\/li>\n<li>FIX: restoring or writing content through Amaso could corrupt backslashes and accented characters in some cases.<\/li>\n<li>FIX: uninstall now removes all of Amaso's tables, options and saved conversations.<\/li>\n<\/ul>\n\n<h4>1.0.20 \u2014 2026-09-27<\/h4>\n\n<ul>\n<li>NEW: Assistant tab (Amaso \u2192 Optimize \u2192 Assistant) \u2014 a chat built into Amaso's own admin, backed by the same tools the MCP server exposes to an outside client. It runs your own configured Claude key server-side, so no external app or MCP client is needed for day-to-day questions and actions; every tool call it makes is shown in the conversation as it happens. Free, like the rest of the BYOK model.<\/li>\n<li>NEW: MCP\/Assistant can now write a full blog article draft on a topic (grounded in your real business profile, always saved as a draft \u2014 never published automatically) and can preview then apply an FAQ section to help a page's GEO score, in the same reviewed-before-saved pattern the existing Content Audit fix flow already uses.<\/li>\n<li>NEW: Settings \u2192 AI Engines \u2192 MCP now has a one-click \"Generate an Application Password for MCP\" button, a \"Test connection\" button that verifies the connection live from the browser, and a ready-to-copy Claude Desktop configuration snippet.<\/li>\n<li>FIX: the MCP \"Test connection\" button could fail with an unrelated 401 because the browser's own logged-in session cookies were sent alongside the Application Password, triggering WordPress's cookie nonce check before the password was even considered.<\/li>\n<\/ul>\n\n<h4>1.0.19 \u2014 2026-09-27<\/h4>\n\n<ul>\n<li>NEW: MCP server, off by default. Turn it on in Amaso \u2192 Settings \u2192 AI Engines and paste the connection URL into Claude, ChatGPT or any other MCP client (using a WordPress Application Password \u2014 no separate key to create). Your assistant can then read this site's GEO score, tracked keywords, citation stats, business-page audit, site structure and real searches, and \u2014 only when you ask it to and see it happen in the conversation \u2014 track a keyword, set a page's search description, or add structured data through the guided Schema builder. Free in both editions; nothing here is gated by plan.<\/li>\n<li>NEW: every MCP tool call is a single, explicit, named action, validated field by field before anything runs \u2014 there is no open-ended \"do whatever seems right\" tool.<\/li>\n<li>FIX: the business-pages audit occasionally returned a stale \"limit\" figure when serving a cached result for a smaller request than the one already cached.<\/li>\n<\/ul>\n\n<h4>1.0.18 \u2014 2026-09-24<\/h4>\n\n<ul>\n<li>FIX: activating the plugin now schedules the weekly automated check correctly. The weekly interval was not yet registered at activation time, so the schedule silently failed while the plugin recorded a next run that did not exist.<\/li>\n<li>SECURITY: opening the Content Audit page or the post editor no longer saves GEO scores. Scores are stored only when a post is saved, when you click \"Rescan all\" or \"Re-analyse\" (both nonce and permission checked), or by a background batch after an update.<\/li>\n<li>SECURITY: the GEO score saved alongside a post no longer depends on an optional nonce; it reads no request input and checks that the user can edit the post.<\/li>\n<li>IMPROVED: the Content Audit filter tabs carry a nonce.<\/li>\n<li>IMPROVED: the AI Citations screen's script and styles are now loaded as files through WordPress instead of inline tags; JSON-LD is printed with WordPress's own script-tag helper.<\/li>\n<li>FIX: the Terms &amp; privacy link in this readme pointed to a page that does not exist.<\/li>\n<\/ul>\n\n<h4>1.0.17 \u2014 2026-09-24<\/h4>\n\n<ul>\n<li>FIX: WordPress Plugin Check reported four errors in the guided Schema builder (a text-cleaning function WordPress discourages). They are fixed: text typed into a Schema form field is now cleaned with WordPress's own function.<\/li>\n<li>IMPROVED: code-quality clean-up flagged by Plugin Check, with no change in behaviour. Queries on the plugin's own tables now state in place why they are safe, the two places that read posted data say how it is cleaned, and the requests that ask PHP for more time (asking several AI engines, scanning many pages) go through one helper instead of five copies.<\/li>\n<li>FIX: the kinds of business offered in the guided Schema form (Restaurant, Hotel, Pharmacy\u2026) can now be translated; they could not be extracted before.<\/li>\n<li>FIX: on the Lite edition, Settings and the setup checklist no longer raise PHP \"undefined array key\" warnings (visible with WordPress debugging on) when there is no Search Console detector to describe.<\/li>\n<\/ul>\n\n<h4>1.0.16 \u2014 2026-09-22<\/h4>\n\n<ul>\n<li>FIX: Schema Markup (\"Structured data about the business is switched off\") no longer accuses your own settings when it isn't the cause. Every check is now read from the published page itself \u2014 the one search engines and AI actually receive \u2014 so a site where Yoast SEO, Rank Math or another SEO plugin already writes the structured data is credited for it by name, instead of Amaso claiming there is none.<\/li>\n<li>NEW: Guided Schema \u2014 add LocalBusiness, Service, Product, Event, FAQ, How-to or Software structured data by filling in a form (name, address, phone, opening hours, prices, questions and answers\u2026), with one clear message per missing or wrong field. No JSON-LD to write, and it works whether or not an SEO plugin is also active.<\/li>\n<li>FIX: on a page built with a page builder whose content only exists on the public site (Divi 5 and similar), Amaso now reads the published page itself for its Schema check too, instead of silently seeing nothing.<\/li>\n<\/ul>\n\n<h4>1.0.15 \u2014 2026-09-21<\/h4>\n\n<ul>\n<li>FIX: pages built with a page builder that renders only on the public site (Divi 5, Bricks, Oxygen\u2026) showed \"0 words\" and a score of 16 in Content Audit, because their content does not exist in the admin. Amaso now reads the published page as a visitor gets it (main content only, without menu, sidebar or footer), keeps the result for twelve hours and never asks more than a few pages per screen. If the server refuses to reach its own address, the page is marked \"not scored: could not be read\" instead of \"Poor\".<\/li>\n<li>FIX: a page that is only a grid of articles (a blog page built with a page builder), and the WooCommerce Shop page, are no longer scored or listed among your business pages: they are listings, judged through what they list.<\/li>\n<li>FIX: on a site where Yoast SEO, Rank Math or AIOSEO writes the structured data, the homepage check no longer says \"Auto-Schema is switched off\": the SEO plugin owns the schema.<\/li>\n<\/ul>\n\n<h4>1.0.14 \u2014 2026-09-21<\/h4>\n\n<ul>\n<li>NEW: \"How your site is organised\" in Content Audit. Amaso now reads how WordPress serves your content: which page is the homepage, whether a Blog page lists your articles, your categories and tags, the content types your theme or plugins add, and whether tag, author and date pages can be indexed. It keeps three kinds of address apart: pages (the business), articles (your topics) and listing pages.<\/li>\n<li>NEW: it flags what goes wrong when they are mixed up: a homepage that is only a list of latest articles, a homepage and Blog page that are the same page, articles with no listing page, articles left in the default category, tags that hold a single article, category pages with no introduction, author and date pages that repeat the Blog page, and a missing XML sitemap. A one-page site with no articles gets no findings.<\/li>\n<li>IMPROVED: nothing is guessed. Indexing is read from Yoast SEO and Rank Math settings; with another SEO plugin it says \"not readable\" instead of blaming a setting it cannot see.<\/li>\n<li>NEW: each finding becomes an Action Plan task and is marked verified once it is no longer raised.<\/li>\n<\/ul>\n\n<h4>1.0.13 \u2014 2026-09-21<\/h4>\n\n<ul>\n<li>NEW: \"What people actually search\". Amaso can show the real searches around your topics from Google Autocomplete (what people type; free, no key, in your language; a local business is asked about its city, then its country). It is available in Setup wizard step 2 and on the Keywords page, only runs when you click, and gives no search volume or difficulty because Autocomplete has none. Documented under External services.<\/li>\n<\/ul>\n\n<h4>1.0.12 \u2014 2026-09-21<\/h4>\n\n<ul>\n<li>NEW: \"Fix first: your business pages\" in Content Audit and the Action Plan. Homepage, services, contact, pricing, about and FAQ pages are checked for what each one must say \u2014 a search description, enough text, a phone number a crawler can read, a way to write (form, email or WhatsApp), prices, a clear next step, your city \u2014 and listed most urgent first. Articles are not part of this list.<\/li>\n<li>NEW: pages are listed most urgent first: homepage, contact, services, pricing, about, then FAQ. Amaso makes no claim about how Google treats a page unless it has real data for it.<\/li>\n<li>NEW: the Action Plan tracks these pages one by one and marks a page verified once a re-audit finds nothing left to fix.<\/li>\n<li>FIX: the homepage is scored on its own text \u2014 the titles and excerpts of the articles a theme lists on it no longer count as homepage content.<\/li>\n<\/ul>\n\n<h4>1.0.11 \u2014 2026-09-21<\/h4>\n\n<ul>\n<li>FIX: the setup wizard and Business Profile now read the site the way its owner describes it \u2014 SEO title and description, tagline, menu, page and product names, headings \u2014 instead of counting words across page-builder text. A WordPress-plugin SaaS is no longer classified as a caf\u00e9, and \"chatgpt perplexity\" \/ \"inside wordpress\" are no longer suggested as keywords.<\/li>\n<li>FIX: the business type is only pre-selected when the scan is confident (and shows the words it was based on). Otherwise the wizard asks, because whatever it shows is saved as the business profile that every other feature trusts.<\/li>\n<li>IMPROVED: keyword suggestions carry the reason they were chosen (\"your homepage SEO title\", \"your menu\"), only the strongest are pre-checked, the business's own city is added once (not \"\u2026 Douala Douala\"), and keywords are saved in the site's language instead of always \"en\". English and French sites are supported.<\/li>\n<li>FIX: GEO Score and Content Audit no longer confuse pages and articles. Each item is judged as what it is (article, homepage, service page, product, about, contact, pricing, FAQ) \u2014 a Contact page is no longer asked for an author bio and external citations. Legal, cart, login and account pages are not scored, so they never appear as \"poor content\"; Autopilot no longer proposes fixes for them.<\/li>\n<li>NEW: Content Audit has Pages \/ Articles \/ Products tabs and a \"Not scored\" list.<\/li>\n<li>NEW: a saved API key can be replaced or removed from Settings \u2192 API Keys (Remove asks for confirmation).<\/li>\n<li>IMPROVED: business-type labels no longer carry emoji.<\/li>\n<\/ul>\n\n<h4>Unreleased<\/h4>\n\n<ul>\n<li>FIXED: Remove a request header rejected by WordPress Playground networking, which caused HTTP 400 on manual\/automatic price checks. Preserve the cache-busting URL, validated catalogue and consent settings.<\/li>\n<li>FIXED: Keep the last verified plan prices when the cache ages or a request fails; show the last successful check and validate complete responses, including zero-priced plans.<\/li>\n<li>NEW: Explicit, reversible automatic price checks on Upgrade page visits (12 hours), off by default; manual checks remain available.<\/li>\n<li>CLARIFIED: Preserve the existing successful keyword-and-engine batch quota unit (at least one stored variant), separate it from 1\u20135 variant requests and possible retry\/search costs, and explain that failed batches do not consume AMASO successful-batch quota. Lite remains unlimited.<\/li>\n<li>DOCUMENTATION: Reconcile Lite's included local\/BYOK features and remove obsolete Lite keyword, market and citation quotas. Separate Autopilot, GSC\/GA4, Share of Voice and PDF reporting from Lite; provider charges remain separate.<\/li>\n<li>CORRECTED: Describe scores as heuristic page checks and distinguish citations, crawlers, referrals and business outcomes. No ranking, AI-indexing, conversion or revenue guarantee is made.<\/li>\n<li>PRIVACY: Document optional provider processing, background schedules, public output, stored configuration\/private notes, export limits and IndexNow's default-off opt-in. Retain the explicit public-price check and disclose request metadata.<\/li>\n<li>DOCUMENTED: Local action plan with baseline\/latest evidence, private notes, user IDs and a journal capped at the latest 100 events; current notes\/statuses are stored separately.<\/li>\n<li>FIXES DOCUMENTED: Exact-host referral attribution, durable business corrections, passive Divi content extraction and explicit query-filter preservation.<\/li>\n<li>Historical entries below are retained as release history; the current sections above describe the updated behavior.<\/li>\n<\/ul>\n\n<h4>1.0.10 \u2014 2026-09-08<\/h4>\n\n<ul>\n<li>CHANGED: Amaso now has its own dedicated domain, amasoai.com \u2014 replacing fosiarw.com (Fosia Ltd's agency site) as the license\/pricing server referenced by this plugin, and fokwasiaka.com (the developer's personal domain) as the Author URI. No functional change for Lite users: this build still makes zero outbound calls except the two documented opt-in exceptions (your own AI provider key; the \"Check current prices\" button), which now point at amasoai.com instead of fosiarw.com.<\/li>\n<\/ul>\n\n<h4>1.0.9 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>NEW: SEO Rankings now has a \"Striking Distance\" panel \u2014 active keywords currently ranking #11-#20 (page 2), the cheapest wins available, instead of only showing a raw list mixed with harder long-shot keywords.<\/li>\n<li>NEW: Business Profile's Deep Scan results now include a \"Manual action list for the GEO specialist\" \u2014 concrete, numbered to-dos (write the N missing meta descriptions, connect GSC, review auto-extracted keywords for generic\/template noise) instead of raw counts a human has to interpret themselves.<\/li>\n<li>FIX: a rejected\/expired AI provider API key now shows an actionable message (\"this key was rejected \u2014 generate a fresh one and re-save it\") instead of just echoing the provider's raw error text.<\/li>\n<\/ul>\n\n<h4>1.0.8 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>IMPROVED: reworded the plugin description and reordered the free feature list to lead with the SEO fundamentals (keyword tracking, schema markup, IndexNow) that make AI citation possible in the first place, instead of presenting AI-citation features as a separate, disconnected track.<\/li>\n<li>IMPROVED: llms.txt is now described honestly as an unofficial, not-yet-widely-adopted file \u2014 not \"the standard\" \u2014 and moved lower in the feature list, matching its actual (unconfirmed) adoption by AI crawlers today.<\/li>\n<\/ul>\n\n<h4>1.0.7 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>IMPROVED: the GEO Score meta box now shows a plain-language disclaimer \u2014 it's a heuristic on-page checklist correlated with AI citation, not a guarantee, and ranking well in classic Google search is still the main prerequisite.<\/li>\n<li>IMPROVED: the Dashboard's System Health panel now detects a WP-Cron event that is scheduled but overdue (a common failure mode on low-traffic shared hosting where WP's pseudo-cron never actually fires) instead of showing a false \"Scheduled\" green check.<\/li>\n<li>IMPROVED: Settings \u2192 API Keys now has a step-by-step \"get a free Gemini key in under a minute\" guide next to the Gemini field \u2014 no credit card required, the most accessible of the four supported AI providers.<\/li>\n<li>IMPROVED: the Dashboard now presents SEO ranking and AI citation tracking as one pipeline (SEO first, AI citations second) instead of two unrelated charts, with a short explanation of why the former drives the latter.<\/li>\n<\/ul>\n\n<h4>1.0.6 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>FIX: removed <code>suppress_filters =&gt; true<\/code> from every internal content-scanning query (business profile scan, site discovery, llms.txt generation) \u2014 it bypassed other active plugins' query filters (e.g. a multilingual plugin's language filtering) with no real benefit, and Plugin Check flags it as an error. These queries now behave like a normal WordPress query.<\/li>\n<\/ul>\n\n<h4>1.0.5 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>NEW: the Upgrade screen has a \"Check current prices\" button \u2014 click it to fetch the live Amaso Pro\/Starter\/Agency prices from fosiarw.com instead of the numbers bundled with the plugin. Strictly opt-in: nothing is fetched automatically, and this remains the only page in Amaso Lite that ever contacts a Fosia server without you first adding your own third-party API key.<\/li>\n<\/ul>\n\n<h4>1.0.4 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>IMPROVED: full pass on Plugin Check's output-escaping findings \u2014 every dynamic value echoed in the admin UI (counts, icons, exception messages) now goes through <code>esc_html()<\/code>\/<code>absint()<\/code>\/<code>wp_kses()<\/code> at the point of output instead of relying on earlier, harder-to-audit escaping.<\/li>\n<li>IMPROVED: <code>parse_url()<\/code> \u2192 <code>wp_parse_url()<\/code>, <code>strip_tags()<\/code> \u2192 <code>wp_strip_all_tags()<\/code> (discouraged-function warnings).<\/li>\n<li>IMPROVED: a handful of <code>\/\/ phpcs:ignore<\/code> comments on already-safe, hardcoded-table-name queries were incorrectly placed (on the statement's first line instead of the line the linter actually flags) and were not suppressing anything \u2014 corrected.<\/li>\n<\/ul>\n\n<h4>1.0.3 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>FIX: two <code>%s<\/code> placeholders left unnumbered in a translatable string (missed in 1.0.2's translators-comment pass).<\/li>\n<li>IMPROVED: the Settings \u2192 API Keys layout \u2014 the Google Service Account card (JSON textarea + setup guide) is now full-width instead of being paired with a much shorter provider card, which left an awkward empty gap next to it.<\/li>\n<\/ul>\n\n<h4>1.0.2 \u2014 2026-09-07<\/h4>\n\n<ul>\n<li>FIX: Deep Scan (full-site content analysis) is now genuinely unlocked in this build \u2014 it's pure local computation with no external service and no cost to provide, so it's no longer gated behind a plan check.<\/li>\n<li>FIX: this build no longer deactivates Amaso Pro (or vice-versa) automatically \u2014 an incompatibility notice with a one-click link is shown instead, so only the site admin decides.<\/li>\n<li>FIX: an unrelated helper plugin used on the developer's own site (<code>site\/amaso-docs-cpt<\/code>) was accidentally bundled into this ZIP \u2014 removed from the build entirely.<\/li>\n<li>FIX: two broken links in the External Services section of this readme (IndexNow\/Bing privacy policy, Perplexity terms of service) now point to the correct, live pages.<\/li>\n<li>FIX: a manually-entered JSON-LD schema value could break out of its <code>&lt;script&gt;<\/code> tag; now escaped with <code>JSON_HEX_TAG<\/code> wherever schema JSON is saved or displayed.<\/li>\n<li>FIX: added missing <code>sanitize_*()<\/code> calls on a handful of raw <code>$_SERVER<\/code>\/<code>$_POST<\/code> reads, and added the <code>translators:<\/code> comments required by every translatable string that has a placeholder.<\/li>\n<li>IMPROVED: <code>load_plugin_textdomain()<\/code> removed (discouraged since WP 4.6 for wp.org-hosted plugins \u2014 translations are auto-loaded by core).<\/li>\n<li>IMPROVED: \"Tested up to\" bumped to 7.1; plugin name in this readme now matches the plugin header exactly.<\/li>\n<\/ul>\n\n<h4>1.0.1 \u2014 2026-09-04<\/h4>\n\n<ul>\n<li>FIX: removed every locked\/upgrade-prompt control from the free build (AI Suggestions, Deep Scan, Content Audit AI-fix, AI Citation article generation, the Intelligence Engine dashboard preview) \u2014 features not included in this build are simply not shown, instead of appearing as a clickable but paywalled control.<\/li>\n<li>IMPROVED: keyword tracking and target markets are no longer capped \u2014 both are pure local computation with no cost to provide for free.<\/li>\n<li>IMPROVED: all inline <code>&lt;script&gt;<\/code>\/<code>&lt;style&gt;<\/code> blocks in the admin UI now go through <code>wp_add_inline_script()<\/code> \/ <code>wp_add_inline_style()<\/code> instead of being echoed directly, as recommended by the WordPress.org Plugin Check.<\/li>\n<li>FIX: a gettext call using a ternary as its text argument (untranslatable) is now two separate, translatable strings.<\/li>\n<li>Chart.js updated to 4.5.1.<\/li>\n<li>Documented all third-party services (IndexNow, and the optional bring-your-own-key OpenAI\/Claude\/Gemini\/Perplexity used by the Prompt Simulator) in this readme.<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2014 2026<\/h4>\n\n<ul>\n<li>Initial WordPress.org release of Amaso Lite: automatic JSON-LD schemas, llms.txt generator, AI crawler detection, GEO Score, Business Profile auto-scan, keyword tracking, manual SEO ranking log, IndexNow, data export, WordPress Privacy integration.<\/li>\n<\/ul>","raw_excerpt":"Inspect AI citations, review WordPress content and schema, and track local evidence with optional bring-your-own-key AI tools.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346478","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=346478"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fosialtd"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346478"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346478"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346478"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346478"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346478"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}