{"id":309039,"date":"2026-06-04T23:15:18","date_gmt":"2026-06-04T23:15:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hiveeo-ai-search-visibility-suite\/"},"modified":"2026-06-04T23:14:54","modified_gmt":"2026-06-04T23:14:54","slug":"hiveeo","status":"publish","type":"plugin","link":"https:\/\/pt-ao.wordpress.org\/plugins\/hiveeo\/","author":17321272,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.1.97","stable_tag":"4.1.97","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"HiveEO \u2014 AI Search Visibility Suite","header_author":"haiv3","header_description":"Get your business cited in ChatGPT, Claude, Perplexity and Gemini. Add [hiveeo] to any page. Powered by your free Gemini API key.","assets_banners_color":"3f3015","last_updated":"2026-06-04 23:14:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/haiv3.com\/hiveeo","header_author_uri":"https:\/\/haiv3.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":{"4.1.97":{"tag":"4.1.97","author":"clifford19","date":"2026-06-04 23:14:54"}},"upgrade_notice":{"4.1.97":"<p>Fully functional AEO toolkit. No feature locks. Add [hiveeo] to any page to get started.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3561675,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3561677,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3561681,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.1.97"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard tab \u2014 progress metrics and AI Visibility Tracker","2":"Comments tab \u2014 AI-powered community comment generator","3":"Products tab \u2014 product management with schema types and FAQs","4":"Schema tab \u2014 live structured data preview with auto-inject","5":"AEO Checklist \u2014 47-item action plan with per-engine strategies","6":"Settings tab \u2014 business entity, social profiles, and API keys"}},"plugin_section":[],"plugin_tags":[244526,220145,1117,186,1121],"plugin_category":[55],"plugin_contributors":[265884],"plugin_business_model":[],"class_list":["post-309039","plugin","type-plugin","status-publish","hentry","plugin_tags-aeo","plugin_tags-ai-search","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_category-seo-and-marketing","plugin_contributors-clifford19","plugin_committers-clifford19"],"banners":{"banner":"https:\/\/ps.w.org\/hiveeo\/assets\/banner-772x250.png?rev=3561681","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/hiveeo\/assets\/icon.svg?rev=3561677","icon":"https:\/\/ps.w.org\/hiveeo\/assets\/icon.svg?rev=3561677","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>HiveEO is an Answer Engine Optimisation (AEO) toolkit for WordPress. It helps you get your business, products, and services cited and recommended by AI assistants including ChatGPT, Perplexity, Google Gemini, and Claude.<\/p>\n\n<p>Add <code>[hiveeo]<\/code> to any WordPress page. The full tool renders immediately \u2014 no complex setup required.<\/p>\n\n<p><strong>Free features (WP.org):<\/strong><\/p>\n\n<ul>\n<li>AEO Checklist \u2014 Setup, Entity, and Presence categories<\/li>\n<li>Organisation, Product, and FAQ schema builder \u2014 copy\/paste ready<\/li>\n<li>Schema auto-inject into site <code>&lt;head&gt;<\/code> \u2014 no copy\/paste needed<\/li>\n<li>Unlimited products with FAQs<\/li>\n<li>AI comment generator \u2014 unlimited (Gemini BYOK)<\/li>\n<li>AI thread creator \u2014 unlimited (Gemini BYOK)<\/li>\n<li>AI Visibility Tracker \u2014 probe ChatGPT, Perplexity, and Gemini (BYOK)<\/li>\n<li>Infrastructure panel \u2014 llms.txt editor, AI bot allowlist, crawler log, entity strength score<\/li>\n<li>Action Guide \u2014 Module 1 (4 lessons)<\/li>\n<li>Settings \u2014 business entity, social profiles, Gemini \/ OpenAI \/ Perplexity API keys<\/li>\n<li>Dashboard \u2014 progress metrics<\/li>\n<\/ul>\n\n<p><strong>Additional features available at haiv3.com\/hiveeo:<\/strong><\/p>\n\n<ul>\n<li>Brand Defence comment mode<\/li>\n<li>Reverse Discovery \u2014 find who AI cites in your space<\/li>\n<li>URL scraper and AI product description generator<\/li>\n<li>Sitemap batch importer<\/li>\n<li>Full AEO checklist \u2014 all 13 categories including per-engine strategies<\/li>\n<li>Action Guide \u2014 all 18 lessons (Modules 2\u20134)<\/li>\n<li>Agency white-label and multi-client dashboard<\/li>\n<\/ul>\n\n<p><strong>Bring Your Own API Key (BYOK)<\/strong><\/p>\n\n<p>HiveEO uses your own API keys (Gemini, OpenAI, Perplexity). Keys are stored in your WordPress database. AI generation requests are routed through the haiv3.com relay service (see External Services below) which fetches the prompt template and returns it to your server \u2014 your API key is then used on your server to call the AI provider directly.<\/p>\n\n<p>Get a free Gemini key at <a href=\"https:\/\/aistudio.google.com\/app\/apikey\">aistudio.google.com<\/a> \u2014 no billing required.<\/p>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<p><strong>1. Google Gemini API (generativelanguage.googleapis.com)<\/strong>\nUsed to generate community comments, seed threads, AI product descriptions, and visibility probe responses. Requests are made only when you click a generate button \u2014 never automatically. Your Gemini API key is sent directly from your WordPress server to Google. Data sent includes your prompt text (business context, product details, thread content). See Google's <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a> and <a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">Terms of Service<\/a>.<\/p>\n\n<p><strong>2. OpenAI API (api.openai.com)<\/strong>\nUsed optionally in the Visibility Tracker to probe ChatGPT responses. Only used if you add an OpenAI API key in Settings. See OpenAI's <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy Policy<\/a> and <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms of Service<\/a>.<\/p>\n\n<p><strong>3. Perplexity API (api.perplexity.ai)<\/strong>\nUsed optionally in the Visibility Tracker to probe Perplexity responses. Only used if you add a Perplexity API key in Settings. See Perplexity's <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/privacy-policy\">Privacy Policy<\/a> and <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/terms-of-service\">Terms of Service<\/a>.<\/p>\n\n<p><strong>4. Reddit API (reddit.com)<\/strong>\nUsed in the Threads tab to fetch live trending threads from relevant subreddits. Requests are made only when you click \"Refresh live threads\" \u2014 never automatically. No personal data is sent. Data received includes public post titles, scores, and URLs. See Reddit's <a href=\"https:\/\/www.reddit.com\/policies\/privacy-policy\">Privacy Policy<\/a> and <a href=\"https:\/\/www.reddit.com\/policies\/user-agreement\">Terms of Service<\/a>.<\/p>\n\n<p><strong>5. Hacker News API (hacker-news.firebaseio.com)<\/strong>\nUsed in the Threads tab to fetch live trending Hacker News stories. Requests are made only when you click \"Refresh live threads\" \u2014 never automatically. No personal data is sent. Data received includes public story titles, scores, and URLs. See Y Combinator's <a href=\"https:\/\/www.ycombinator.com\/legal\">Terms of Service<\/a> and <a href=\"https:\/\/www.ycombinator.com\/legal#privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>Local Data Storage<\/h3>\n\n<p><strong>AI Bot Visit Log<\/strong>\nThe plugin optionally logs visits from known AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) to your site. This data is stored entirely within your own WordPress database \u2014 no data is sent to any external service. Each log entry stores: the bot name, the URL visited, the timestamp, and a 12-character hash of the visitor IP address (derived using your site's WordPress salt \u2014 the original IP is never stored). This log is used only to display AI crawler activity in the Infrastructure panel.<\/p>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>This plugin bundles the following open-source libraries locally (no CDN):<\/p>\n\n<ul>\n<li><strong>Alpine.js<\/strong> v3.15.12 \u2014 MIT License. Source: https:\/\/github.com\/alpinejs\/alpine<\/li>\n<li><strong>Tailwind CSS<\/strong> v3.4.19 \u2014 MIT License. Source: https:\/\/github.com\/tailwindlabs\/tailwindcss<\/li>\n<li><strong>Tabler Icons<\/strong> v2.47.0 \u2014 MIT License. Source: https:\/\/github.com\/tabler\/tabler-icons<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>HiveEO is free software: you can redistribute it and\/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/hiveeo\/<\/code> or install via the WordPress plugins screen<\/li>\n<li>Activate the plugin<\/li>\n<li>Create a WordPress page, add <code>[hiveeo]<\/code> to the content, publish it<\/li>\n<li>Visit the page, go to the Settings tab, paste your free Gemini API key<\/li>\n<li>Start with the AEO Checklist to set up your business entity<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20pay%20for%20the%20ai%20features%3F\"><h3>Do I need to pay for the AI features?<\/h3><\/dt>\n<dd><p>No. HiveEO uses your own free Gemini API key (Google AI Studio). The free tier of Gemini 2.5 Flash has no billing requirement and is sufficient for all core features.<\/p><\/dd>\n<dt id=\"does%20hiveeo%20store%20my%20api%20keys%20on%20its%20servers%3F\"><h3>Does HiveEO store my API keys on its servers?<\/h3><\/dt>\n<dd><p>Your API keys are stored in your WordPress database. They are sent directly from your server to the respective AI provider (Google, OpenAI, Perplexity). They are never transmitted to haiv3.com. The haiv3.com relay only receives your business context (name, description, product details) to generate the AI prompt \u2014 not your keys.<\/p><\/dd>\n<dt id=\"what%20is%20aeo%3F\"><h3>What is AEO?<\/h3><\/dt>\n<dd><p>Answer Engine Optimisation is the practice of structuring your online presence so that AI assistants like ChatGPT, Perplexity, and Gemini recommend and cite your business when users ask relevant questions.<\/p><\/dd>\n<dt id=\"will%20this%20affect%20my%20existing%20seo%3F\"><h3>Will this affect my existing SEO?<\/h3><\/dt>\n<dd><p>No. HiveEO adds structured data (JSON-LD schema) to your site's <code>&lt;head&gt;<\/code> which is additive \u2014 it enhances your existing SEO signals without removing or overriding anything.<\/p><\/dd>\n<dt id=\"what%20wordpress%20version%20is%20required%3F\"><h3>What WordPress version is required?<\/h3><\/dt>\n<dd><p>WordPress 6.0 or higher. PHP 7.4 or higher.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20caching%20plugins%3F\"><h3>Is this plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. HiveEO includes specific compatibility code for Hummingbird Pro to prevent schema tags from being delayed or minified. Other caching plugins should work without configuration.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.1.97<\/h4>\n\n<ul>\n<li>Fix: restored full UI from v4.1.80 \u2014 previous versions had incorrectly stripped Schema, Checklist, Settings and Products tab content<\/li>\n<li>Fix: applied only required compliance fixes to restored UI \u2014 removed Google Fonts CDN, quota UI, trialware terms, ELITE TIER badge<\/li>\n<li>Fix: height script registered as wp_register_script(false) with hiveeo-alpine dependency \u2014 WP.org compliant, no raw script tags<\/li>\n<\/ul>\n\n<h4>4.1.96<\/h4>\n\n<ul>\n<li>Fix: moved hiveoApp function to hiveeo-height script handle \u2014 ensures it outputs after Alpine loads, fixing Alpine x-data initialisation<\/li>\n<\/ul>\n\n<h4>4.1.95<\/h4>\n\n<ul>\n<li>Fix: height\/fullscreen script now registered as a proper wp_register_script handle with no src and hiveeo-alpine as dependency \u2014 WP.org compliant, no raw script tags, correct execution order guaranteed by WordPress dependency system<\/li>\n<\/ul>\n\n<h4>4.1.94<\/h4>\n\n<ul>\n<li>Fix: removed defer from Alpine.js enqueue \u2014 caused race condition where hiveoApp() was defined after Alpine initialised x-data<\/li>\n<li>Fix: removed incorrect 'before' position from hiveoApp inline script \u2014 must run after Alpine loads, not before<\/li>\n<li>Fix: corrected DOMContentLoaded script string termination<\/li>\n<\/ul>\n\n<h4>4.1.93<\/h4>\n\n<ul>\n<li>Fix: removed stray closing brace in generate_comment() in class-api.php \u2014 left from relay removal, caused fatal syntax error on activation<\/li>\n<\/ul>\n\n<h4>4.1.92<\/h4>\n\n<ul>\n<li>Security: added sslverify:true to all 5 wp_remote_post calls in class-api.php (Gemini, OpenAI, Perplexity)<\/li>\n<\/ul>\n\n<h4>4.1.91<\/h4>\n\n<ul>\n<li>Fix: moved $hiveeo_exclude_handles out of global scope into hiveeo_get_exclude_handles() function<\/li>\n<li>Fix: removed unused $biz_url variable from AJAX thread handler<\/li>\n<li>Fix: corrected Version header spacing alignment<\/li>\n<\/ul>\n\n<h4>4.1.90<\/h4>\n\n<ul>\n<li>Fix: removed Domain Path header and languages folder \u2014 no translations exist, both caused Plugin Check errors<\/li>\n<\/ul>\n\n<h4>4.1.89<\/h4>\n\n<ul>\n<li>Fix: created \/languages folder \u2014 Domain Path header now resolves correctly<\/li>\n<li>Fix: Upgrade Notice section trimmed to single short notice (max 300 chars)<\/li>\n<li>Fix: added phpcs:disable for false-positive PrefixAllGlobals warnings in class-api.php \u2014 all flagged functions are class methods inside HiveEO_API, not global functions<\/li>\n<\/ul>\n\n<h4>4.1.88<\/h4>\n\n<ul>\n<li>Code: removed dead relay\/licensing comment block from hiveeo.php<\/li>\n<li>Code: updated misleading comment in class-engine.php (relay \u2192 premium features)<\/li>\n<li>Code: updated misleading file header in class-action-guide.php<\/li>\n<li>Code: removed stale tier comment from class-schema.php<\/li>\n<\/ul>\n\n<h4>4.1.87<\/h4>\n\n<ul>\n<li>readme: removed haiv3.com from external services list \u2014 plain HTML links are not external service connections; 5 genuine data-transmitting services remain documented<\/li>\n<li>hiveeo.php: fixed plugin header \u2014 added Requires at least, Requires PHP, Tested up to, License URI, Domain Path; fixed extra space on Version line; fixed define() indentation \u2014 plain HTML links are not external service connections; 5 genuine data-transmitting services remain documented<\/li>\n<\/ul>\n\n<h4>4.1.86<\/h4>\n\n<ul>\n<li>readme: corrected haiv3.com external service entry \u2014 links only, no automatic data transmission<\/li>\n<\/ul>\n\n<h4>4.1.85<\/h4>\n\n<ul>\n<li>Compliance: updated haiv3.com readme entry \u2014 relay no longer used, prompts are embedded<\/li>\n<li>Compliance: renamed hiveeo-tier-paid CSS class to hiveeo-tier-pro<\/li>\n<li>Confirmed: all 7 include files have ABSPATH direct access prevention on line 18<\/li>\n<li>Confirmed: all inputs sanitized, all outputs escaped, all SQL uses prepare()<\/li>\n<\/ul>\n\n<h4>4.1.84<\/h4>\n\n<ul>\n<li>Compliance: removed HIVEEO_ENGINE_SECRET constant \u2014 relay removed, secret is now unused dead code<\/li>\n<li>Compliance: changed \"unlock the comment generator\" to \"enable the comment generator\" \u2014 unlock implies a paywall<\/li>\n<li>Compliance: removed \"tier and feature gates\" comment from init code<\/li>\n<li>Compliance: removed launch countdown comment block<\/li>\n<\/ul>\n\n<h4>4.1.83<\/h4>\n\n<ul>\n<li>Compliance: embedded all AI prompts directly in class-engine.php \u2014 relay to haiv3.com no longer required for core functionality<\/li>\n<li>Compliance: removed relay() method and haiv3.com HTTP dependency from class-engine.php<\/li>\n<li>Compliance: perm_read upgraded from is_user_logged_in() to current_user_can('manage_options') for \/crawler-log and \/conflicts endpoints<\/li>\n<li>Compliance: moved DOMContentLoaded height\/fullscreen inline script to wp_add_inline_script()<\/li>\n<\/ul>\n\n<h4>4.1.82<\/h4>\n\n<ul>\n<li>Compliance: moved phpcs:ignore for $_POST nonce check inline on the exact flagged line in class-admin.php<\/li>\n<\/ul>\n\n<h4>4.1.81<\/h4>\n\n<ul>\n<li>Compliance: added phpcs:ignore PluginCheck.CodeAnalysis.WriteFile.ABSPATHDetected to all three llms.txt file writes \u2014 llms.txt must live at domain root for AI crawler discovery; wp_upload_dir() would place it at the wrong path<\/li>\n<\/ul>\n\n<h4>4.1.80<\/h4>\n\n<ul>\n<li>Final WP.org compliance pass \u2014 full line-by-line audit of every file<\/li>\n<li>readme.txt: corrected free features list to accurately reflect unlimited generation and all features available<\/li>\n<li>readme.txt: removed inaccurate feature limits (was incorrectly stating \"up to 5 products\", \"up to 5 comments\")<\/li>\n<li>class-action-guide.php: removed dead auth_check() method<\/li>\n<li>hiveeo.php: HIVEEO_VERSION constant synced to match plugin header version<\/li>\n<\/ul>\n\n<h4>4.1.79<\/h4>\n\n<ul>\n<li>Removed all tier\/licensing system remnants from class-engine.php (get_tier_config, get_user_tier, get_tier_data, tier_features, checklist_visible_cats)<\/li>\n<li>Removed handle_backup() and handle_restore() dead methods<\/li>\n<li>Removed \/verify-license, \/register-free, \/tier, \/backup, \/restore endpoints<\/li>\n<li>Removed hiveeo_generate_product_ai and hiveeo_batch_scrape_page AJAX handlers (paid features not in WP.org build)<\/li>\n<li>Removed generateProductAI() JS function and productAI state from shortcode<\/li>\n<li>Removed URL scraper, sitemap importer, and reverse discovery UI and endpoints entirely<\/li>\n<li>Removed brand defence mode from comments UI and API<\/li>\n<li>Fixed: readme.txt free\/paid feature descriptions now accurately match plugin behaviour<\/li>\n<li>Fixed: all permission_callback method references replaced with inline lambdas in class-engine.php and class-action-guide.php<\/li>\n<li>Fixed: \"Free tier capped at 7 days\" comment removed from class-aeo-infrastructure.php<\/li>\n<li>Fixed: admin closure structure corrected in class-admin.php<\/li>\n<\/ul>\n\n<h4>4.1.78<\/h4>\n\n<ul>\n<li>Compliance: removed all trialware remnants \u2014 tierFeatures, tierLimits, isPaid, canAccess, hasFeature, atLimit, ELITE TIER badge, projectPass<\/li>\n<li>Compliance: removed upgradeUrl() function and upgrade_url parameter entirely from free build<\/li>\n<li>Compliance: all paid-version UI text replaced with neutral external links<\/li>\n<li>Compliance: template and div balance restored to 0\/0 after feature removals<\/li>\n<li>Fixed: OpenAI and Perplexity probing always visible \u2014 removed key-length visibility gate<\/li>\n<\/ul>\n\n<h4>4.1.77<\/h4>\n\n<ul>\n<li>Compliance: HIVEEO_VERSION constant fixed to match plugin header version<\/li>\n<li>Compliance: full audit from actual zip file rather than working folder<\/li>\n<\/ul>\n\n<h4>4.1.76<\/h4>\n\n<ul>\n<li>Compliance: removed all hasFeature\/atLimit\/canAccess\/tierLabel functions from WP.org build<\/li>\n<li>Compliance: template balance fixed after feature stripping operations<\/li>\n<li>Compliance: removed all orphaned closing tags from previous feature removals<\/li>\n<\/ul>\n\n<h4>4.1.75<\/h4>\n\n<ul>\n<li>Compliance: removed scrape-url, sitemap-urls, reverse-discovery stub functions and endpoints<\/li>\n<li>Compliance: removed brand defence defend mode from generate_comment endpoint<\/li>\n<li>Compliance: removed projectPass state object from Alpine data<\/li>\n<li>Compliance: removed all paid-version API comments and 404 stubs<\/li>\n<li>Compliance: removed ELITE TIER badge from dashboard<\/li>\n<\/ul>\n\n<h4>4.1.74<\/h4>\n\n<ul>\n<li>Compliance: removed all upgrade_required gates, daily quotas, and feature limits<\/li>\n<li>Compliance: removed all hasFeature() UI gates from shortcode<\/li>\n<li>Compliance: removed sitemap importer UI, URL scraper UI, and brand defence UI entirely<\/li>\n<li>Compliance: removed reverse discovery UI entirely<\/li>\n<\/ul>\n\n<h4>4.1.73<\/h4>\n\n<ul>\n<li>Compliance: removed Google Fonts CDN call \u2014 system font fallback used<\/li>\n<li>Compliance: $_POST nonce suppression added with explanation comment<\/li>\n<li>Compliance: verify_manage_options inlined in permission callback<\/li>\n<\/ul>\n\n<h4>4.1.72<\/h4>\n\n<ul>\n<li>Compliance: $_GET['page'] check separated into own add_action closure in class-admin.php<\/li>\n<li>Compliance: NonceVerification warning addressed with phpcs:ignore and explanation<\/li>\n<\/ul>\n\n<h4>4.1.71<\/h4>\n\n<ul>\n<li>Author email updated to info@haiv3.com across all plugin files<\/li>\n<\/ul>\n\n<h4>4.1.70<\/h4>\n\n<ul>\n<li>Removed Support submenu from free WP.org build<\/li>\n<\/ul>\n\n<h4>4.1.69<\/h4>\n\n<ul>\n<li>Added headers_sent() fallback with meta refresh for Upgrade redirect<\/li>\n<li>Support and Upgrade submenus now redirect correctly in all environments including Playground<\/li>\n<\/ul>\n\n<h4>4.1.68<\/h4>\n\n<ul>\n<li>Removed debug console.log from thread generator<\/li>\n<\/ul>\n\n<h4>4.1.67<\/h4>\n\n<ul>\n<li>readme.txt: added Hacker News Terms of Service link (was missing, only Privacy Policy was linked)<\/li>\n<\/ul>\n\n<h4>4.1.66<\/h4>\n\n<ul>\n<li>Compliance: all permission_callback method references replaced with inline lambdas<\/li>\n<li>is_user_logged_in() now explicitly visible in every permission callback lambda<\/li>\n<li>verify_manage_options inlined with current_user_can('manage_options') explicit<\/li>\n<\/ul>\n\n<h4>4.1.65<\/h4>\n\n<ul>\n<li>Compliance: removed hiveeo-app.js from zip (dead code containing undocumented HN fetch calls)<\/li>\n<li>Compliance: removed remaining hasFeature('dash_vt') upgrade prompt block<\/li>\n<li>Compliance: renamed verify_nonce method to require_logged_in_user<\/li>\n<\/ul>\n\n<h4>4.1.64<\/h4>\n\n<ul>\n<li>Action Guide: completedCount now validates against current guide lesson IDs only<\/li>\n<li>Action Guide: added Reset progress button<\/li>\n<li>Action Guide: added \/action-guide\/reset REST endpoint<\/li>\n<\/ul>\n\n<h4>4.1.63<\/h4>\n\n<ul>\n<li>UI: content area padding set to 20px 28px for equal left\/right breathing room<\/li>\n<\/ul>\n\n<h4>4.1.62<\/h4>\n\n<ul>\n<li>Fixed: horizontal scrollbar on WP admin page \u2014 html\/body\/wpwrap overflow-x:hidden added<\/li>\n<\/ul>\n\n<h4>4.1.61<\/h4>\n\n<ul>\n<li>Fixed: horizontal scroll caused by wpwrap not being in overflow rules<\/li>\n<\/ul>\n\n<h4>4.1.60<\/h4>\n\n<ul>\n<li>Compliance: phpcs:ignore with PluginCheck.Security.DirectDB.UnescapedDBParameter added inline on get_results() lines<\/li>\n<\/ul>\n\n<h4>4.1.59<\/h4>\n\n<ul>\n<li>Compliance: DB query phpcs:ignore annotations added at exact flagged line numbers<\/li>\n<\/ul>\n\n<h4>4.1.58<\/h4>\n\n<ul>\n<li>UI: button border-radius unified to 8px across all tabs<\/li>\n<li>UI: global button reset rule fixed \u2014 was overriding all hr-btn class rules<\/li>\n<li>UI: topbar restructured \u2014 hamburger \u00b7 title \u00b7 spacer \u00b7 FREE \u00b7 User Guide \u2192 \u00b7 fullscreen<\/li>\n<li>UI: content padding halved to reduce excessive whitespace<\/li>\n<li>UI: mobile bottom nav More tray replaces 4 hidden tabs<\/li>\n<li>UI: action guide lesson menu toggle added<\/li>\n<li>UI: optimization score bars show correct free-tier categories with emerald gradient<\/li>\n<li>UI: custom CSS checkboxes replace native browser checkboxes<\/li>\n<li>UI: splash screen removed (commented out for easy restoration)<\/li>\n<li>Fixed: action guide progress bar \u2014 server is sole authority, localStorage fallbacks removed<\/li>\n<li>Fixed: completed lesson count validates against current guide IDs only<\/li>\n<\/ul>\n\n<h4>4.1.32<\/h4>\n\n<ul>\n<li>Schema: FAQ conflict detection added for Yoast, Rank Math, AIOSEO, SEOPress, SmartCrawl, TSF<\/li>\n<li>Infrastructure: entity strength score added (0-100)<\/li>\n<li>Infrastructure: llms.txt inline editor added<\/li>\n<li>Infrastructure: AI bot allowlist UI added with per-bot allow\/block toggles<\/li>\n<li>Infrastructure: AI crawler visit log added (hashed IP, stored locally)<\/li>\n<li>Products: unlimited products confirmed \u2014 no limit in free version<\/li>\n<li>Checklist: Setup, Entity, Presence categories in free build<\/li>\n<li>Action Guide: Module 1 (4 lessons) in free build<\/li>\n<\/ul>\n\n<h4>4.1.16<\/h4>\n\n<ul>\n<li>Compliance: moved inline styles and scripts to wp_add_inline_style() and wp_add_inline_script()<\/li>\n<li>Compliance: added Reddit and Hacker News to External Services documentation<\/li>\n<li>Fix: reverted load-lock script to inline render to prevent site-wide scroll lock<\/li>\n<\/ul>\n\n<h4>4.1.15<\/h4>\n\n<ul>\n<li>Compliance: moved inline styles and scripts to wp_enqueue functions<\/li>\n<\/ul>\n\n<h4>4.1.14<\/h4>\n\n<ul>\n<li>AI generation: switched to gemini-2.5-flash with response_schema for reliable JSON output<\/li>\n<li>AI generation: added keywords field to AI-generated product data<\/li>\n<\/ul>\n\n<h4>4.1.1<\/h4>\n\n<ul>\n<li>Fix: added clifford19 to Contributors field in readme.txt<\/li>\n<li>Fix: corrected Alpine.js enqueue version string to 3.15.12 to force cache bust<\/li>\n<\/ul>\n\n<h4>4.1.0<\/h4>\n\n<ul>\n<li>AI generation: switched to gemini-2.0-flash for faster responses<\/li>\n<li>Schema: fixed author field being ignored in BlogPosting\/Article schema output<\/li>\n<li>Schema: fixed product page matching when stored slug differs from WordPress post slug<\/li>\n<li>Schema: added URL-based page matching via purchase_url and info_urls as fallback<\/li>\n<li>Updated Alpine.js to 3.15.12<\/li>\n<li>Compliance: documented Reddit and Hacker News as external services in readme<\/li>\n<li>Compliance: added clifford19 as contributor<\/li>\n<\/ul>","raw_excerpt":"Get your business cited in ChatGPT, Perplexity, Gemini and Claude. Schema auto-inject, AEO checklist, comment generator, and AI visibility tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309039"}],"author":[{"embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/clifford19"}],"wp:attachment":[{"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309039"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309039"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309039"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309039"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309039"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt-ao.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}