{"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-07-31T13:12:50","modified_gmt":"2026-07-31T13:12:50","slug":"hiveeo","status":"publish","type":"plugin","link":"https:\/\/sw.wordpress.org\/plugins\/hiveeo\/","author":17321272,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.0.52","stable_tag":"5.0.52","tested":"7.0.2","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-07-31 13:12:50","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":251,"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"},"5.0.52":{"tag":"5.0.52","author":"clifford19","date":"2026-07-31 13:12:50"}},"upgrade_notice":{"5.0.51":"<p>llms.txt now updates automatically whenever you save a product, change settings, or publish a post. Also adds a Recent Articles section so AI crawlers discover new content immediately.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3630023,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"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-1544x500.png":{"filename":"banner-1544x500.png","revision":3630023,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"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","5.0.52"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3630023,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3630023,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3630023,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3630023,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3630023,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3630023,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Dashboard \u2014 real progress metrics across your whole AEO setup, not a static score","2":"AEO Checklist \u2014 Setup, Entity, and Presence categories with a real action plan","3":"Content Calendar \u2014 every published and scheduled post across the month, at a glance","4":"Community Comment Generator \u2014 Gemini-powered, unlimited, built specifically for AEO-relevant threads","5":"AI Visibility Tracker \u2014 probe ChatGPT, Perplexity, and Gemini directly to see whether you're actually being cited","6":"Infrastructure panel \u2014 auto-updating llms.txt, AI bot allowlist, crawler log, and entity strength score"}},"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":"https:\/\/ps.w.org\/hiveeo\/assets\/banner-1544x500.png?rev=3630023","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":[{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-1.png?rev=3630023","caption":"Dashboard \u2014 real progress metrics across your whole AEO setup, not a static score"},{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-2.png?rev=3630023","caption":"AEO Checklist \u2014 Setup, Entity, and Presence categories with a real action plan"},{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-3.png?rev=3630023","caption":"Content Calendar \u2014 every published and scheduled post across the month, at a glance"},{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-4.png?rev=3630023","caption":"Community Comment Generator \u2014 Gemini-powered, unlimited, built specifically for AEO-relevant threads"},{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-5.png?rev=3630023","caption":"AI Visibility Tracker \u2014 probe ChatGPT, Perplexity, and Gemini directly to see whether you're actually being cited"},{"src":"https:\/\/ps.w.org\/hiveeo\/assets\/screenshot-6.png?rev=3630023","caption":"Infrastructure panel \u2014 auto-updating llms.txt, AI bot allowlist, crawler log, and entity strength score"}],"raw_content":"<!--section=description-->\n<p>HiveEO is an Answer Engine Optimisation (AEO) toolkit for WordPress. It doesn't just optimise your content for AI search \u2014 it generates it, publishes it, tracks whether AI is actually citing you, and builds authority through real distribution. Get your business, products, and services cited and recommended by ChatGPT, Perplexity, Google Gemini, and Claude.<\/p>\n\n<p>Also called Generative Engine Optimization (GEO), AIO, or AI SEO \u2014 different names for the same shift: search results are being replaced by a single AI-written answer, and the only question that matters now is whether your business is the source that answer is built from.<\/p>\n\n<p>Two ways in: click <strong>HiveEO<\/strong> in your WordPress admin sidebar \u2014 it's there the moment you activate the plugin, no setup step needed to see it. Or add <code>[hiveeo]<\/code> to any page if you'd rather it live on the front end. Either way the full tool renders immediately. One real step still required before anything AI-powered works: paste a free Gemini API key into Settings (takes under a minute, no billing needed) \u2014 the interface itself needs no configuration, but generation, comments, and probing all need that key first.<\/p>\n\n<p>\ud83d\udea8 <strong>Why this matters right now:<\/strong> AI Overviews already appear on roughly half of all Google searches, and organic click-through collapses hard the moment one shows up on a query \u2014 unless your page is the one being cited, in which case cited pages see meaningfully <em>more<\/em> clicks than before. The pages winning that citation are increasingly not the ones ranking #1. A large share of AI Overview citations now come from pages outside the top 5 organic results entirely. Traditional domain authority barely correlates with getting cited anymore. What does correlate: clean structured data, direct-answer content formatted for extraction, real author expertise signals, and topical depth across a whole content cluster \u2014 not one lucky blog post.<\/p>\n\n<p>\ud83d\udcca <strong>What Google and AI search engines actually demand in 2026 \u2014 and how HiveEO addresses each one:<\/strong><\/p>\n\n<ul>\n<li><strong>Structured data \/ schema markup.<\/strong> The large majority of pages cited by Google's AI Mode and by ChatGPT carry structured data. \u2192 HiveEO's Schema Builder auto-injects Organisation, Product, and FAQ schema into your site's <code>&lt;head&gt;<\/code> \u2014 no copy\/paste, no separate plugin.<\/li>\n<li><strong>Extractable, front-loaded answers.<\/strong> AI systems retrieve short, self-contained passages \u2014 a direct answer in the first sentence or two of a section, not three paragraphs of preamble first. \u2192 HiveEO's Create tab writes to AEO rules by default: direct-answer leads, FAQ sections, question-phrased subheadings.<\/li>\n<li><strong>E-E-A-T and named author expertise.<\/strong> AI Overview citations skew overwhelmingly toward sources with clear expertise and trust signals \u2014 this became a <em>stricter<\/em> filter through 2026, not a looser one. \u2192 HiveEO's Entity Strength score and Infrastructure panel are built around exactly this signal.<\/li>\n<li><strong>Topical authority via content clusters<\/strong>, not isolated posts. \u2192 This is what AutoPilot's Pillar\/Cluster pipeline is for \u2014 building out a full topic, not one article.<\/li>\n<li><strong>Multi-format presence.<\/strong> Content combining text, structured data, and video sees a substantially higher citation rate than text alone. \u2192 HiveEO's NotebookLM Studio and YouTube distribution exist specifically because video is currently the fastest-growing single source AI engines cite from.<\/li>\n<li><strong>Genuine off-site authority signals<\/strong> (Reddit is currently the single most-cited domain across every major AI engine). \u2192 HiveEO's Threads tab and Growth Nexus outreach exist for exactly this reason \u2014 AEO isn't just an on-page problem.<\/li>\n<li><strong>llms.txt \u2014 included, honestly framed.<\/strong> HiveEO generates and auto-updates yours. To be straight with you: Google has said on the record it doesn't use llms.txt for Search or AI Overviews, and no major AI provider has officially confirmed reading it at inference time either. Perplexity and Claude show more retrieval interest in it than the others. It costs you nothing to have, it's part of the emerging agent-readiness stack, and we're not going to pretend it's a bigger lever than it currently is.<\/li>\n<\/ul>\n\n<p>\u2705 <strong>What You Get For Free (WP.org):<\/strong><\/p>\n\n<p>\u2705 <strong>AEO Checklist<\/strong> \u2014 Setup, Entity, and Presence categories, a real action plan not just a score\n\u2705 <strong>Schema Builder<\/strong> \u2014 Organisation, Product, and FAQ schema, auto-injected into your site's <code>&lt;head&gt;<\/code>\n\u2705 <strong>Create<\/strong> (Gemini BYOK) \u2014 AI blog post generator and repurposer, AEO writing rules, A\/B headline\/hook variants, social copy for LinkedIn\/Facebook\/Instagram\/Pinterest\/X, Article + DefinedTerm schema\n\u2705 <strong>Community Comment Generator<\/strong> (Gemini BYOK) \u2014 unlimited; no other AEO plugin in this category has one\n\u2705 <strong>Thread Creator<\/strong> (Gemini BYOK) \u2014 unlimited\n\u2705 <strong>AI Visibility Tracker<\/strong> (BYOK) \u2014 probe ChatGPT, Perplexity, and Gemini directly, see whether you're actually being cited\n\u2705 <strong>Infrastructure Panel<\/strong> \u2014 llms.txt editor (auto-updating), AI bot allowlist, crawler log, entity strength score\n\u2705 <strong>Action Guide<\/strong> \u2014 Module 1, 4 lessons, built on our EPPM framework\n\u2705 <strong>Dashboard<\/strong> \u2014 real progress metrics, not a static score<\/p>\n\n<p>\u26a1 <strong>Additional features at haiv3.com\/hiveeo:<\/strong><\/p>\n\n<p>\u26a1 AutoPilot \u2014 fully automated Pillar\/Cluster content pipeline: citation-gap discovery \u2192 generation \u2192 publish \u2192 social distribution, on a schedule\n\u26a1 Growth Nexus \u2014 outreach CRM: AI Prospector, Outreach &amp; Backlinks, Network Analytics\n\u26a1 GA4 Analytics Chat \u2014 ask questions about your real traffic data, grounded in a live report, with real charts\n\u26a1 Confirmed AI Citations \u2014 cross-references real AI-referred traffic against what you're actually being cited for\n\u26a1 Multi-platform social distribution \u2014 YouTube, TikTok, Binance Square, LinkedIn, Facebook, Instagram, Pinterest, Telegram, X\n\u26a1 NotebookLM Studio \u2014 multi-format audio\/video generation from your content\n\u26a1 Podcast Feed \u2014 automatic RSS feed built from your generated audio content\n\u26a1 Compiled eBooks with marketplace reference links\n\u26a1 Distribution Status \u2014 one unified view across every publishing channel\n\u26a1 Intent Match &amp; Voice of AI \u2014 query-intent classification and per-engine sentiment tracking\n\u26a1 Google Search Console integration \u2014 real opportunities feeding straight into your citation gap bank\n\u26a1 Brand Defence comment mode \u2014 get ahead of misinformation before AI cites it\n\u26a1 Reverse Discovery \u2014 find out who AI is citing in your space instead of you\n\u26a1 URL scraper and AI product description generator\n\u26a1 Sitemap batch importer\n\u26a1 Full 13-category AEO checklist with per-engine strategies\n\u26a1 Action Guide \u2014 all 18 lessons (Modules 2\u20134)\n\u26a1 Agency white-label and multi-client dashboard<\/p>\n\n<p>\ud83d\udcaa <strong>Why HiveEO is different from a typical AEO plugin:<\/strong> most AEO tools score your existing content and stop there \u2014 you still have to go write the fix yourself. HiveEO generates the content, publishes it, distributes it across social and video, and then tells you whether any of it actually got cited. Optimisation, generation, and distribution in one place instead of three separate tools.<\/p>\n\n<p>\ud83d\udc64 <strong>Who this is for:<\/strong> professionals, consultants, founders, and businesses who want to be the source AI chooses to reference \u2014 not just another page Google ranks.<\/p>\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 sent directly from your server to your chosen AI provider \u2014 there is no relay or intermediary server.<\/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, blog posts and social copy in the Create tab, 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, and \u2014 for the Create tab \u2014 your topic, tone, or pasted\/fetched content to repurpose). 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, and optionally as an alternate generation provider in the Create tab. 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<p><strong>6. User-provided URLs (Create tab)<\/strong>\nWhen generating or repurposing content, HiveEO fetches the page content of any URL you enter in the \"Reference link\" field, any URL used for \"Repurpose from URL\", and any URL mentioned in the \"What is this entity?\" description (e.g. \"see HEX.com\"). This is requested only when you click a generate button. The fetched text is included in the prompt sent to your chosen AI provider (Gemini or OpenAI) as factual reference material \u2014 it is not stored or sent anywhere else. No data is sent to any third party other than the site whose URL you entered (a normal page request) and your chosen AI provider.<\/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>Click <strong>HiveEO<\/strong> in your WordPress admin sidebar \u2014 the full tool is already there, no page needed. (Prefer it on a public page instead? Create a WordPress page, add <code>[hiveeo]<\/code> to the content, and publish \u2014 same tool, either location.)<\/li>\n<li>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) \u2014 never to haiv3.com.<\/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>5.0.52<\/h4>\n\n<ul>\n<li>Readme: added Screenshots section with real image assets (icon, banner, screenshots)<\/li>\n<li>No functional code changes in this release<\/li>\n<\/ul>\n\n<h4>5.0.51<\/h4>\n\n<ul>\n<li>Feature: llms.txt now auto-updates whenever a product is saved, settings are changed, or a post is published via the Create tab \u2014 no manual regeneration needed<\/li>\n<li>Enhancement: llms.txt now includes a \"Recent Articles\" section listing the 20 most recently published posts (title, URL, date, excerpt) so AI crawlers discover new content immediately<\/li>\n<\/ul>\n\n<h4>5.0.50<\/h4>\n\n<ul>\n<li>Fix: WP.org compliance \u2014 replaced \"unlocks\" in Threads tab UI copy to avoid false-positive upsell language flag<\/li>\n<\/ul>\n\n<h4>5.0.49<\/h4>\n\n<ul>\n<li>UI: In-progress gap items now sort to the top of both Site Scan and Quick Scan results lists<\/li>\n<li>UI: Scan History blocks removed from bottom of Site Scan and Quick Scan panels \u2014 now consolidated in the collapsible toggle at the top of the Citation Gap panel<\/li>\n<\/ul>\n\n<h4>5.0.48<\/h4>\n\n<ul>\n<li>Fix: Article generation truncation \u2014 PHP execution timeout and wp_remote_post timeout were killing the Gemini response mid-generation for longer articles. Timeouts increased to 240s (PHP) and 180s (HTTP). set_time_limit() called before generation.<\/li>\n<\/ul>\n\n<h4>5.0.47<\/h4>\n\n<ul>\n<li>UI: Scan History moved to top of Citation Gap panel as a collapsible toggle \u2014 \"\u25be Scan History (N)\" button appears next to the subtitle when history exists. Shows Site Scans and Quick Scans combined. Collapsed by default.<\/li>\n<\/ul>\n\n<h4>5.0.46<\/h4>\n\n<ul>\n<li>Fix: Resume button now shows \"Resume existing scan\" when urls_processed count is unavailable (after a status reset), instead of \"Resume from 0 pages\"<\/li>\n<\/ul>\n\n<h4>5.0.45<\/h4>\n\n<ul>\n<li>Fix: Resume button now derives page count from unique URLs in existing results when status counter was reset \u2014 shows correct count instead of \"0 pages\"<\/li>\n<\/ul>\n\n<h4>5.0.44<\/h4>\n\n<ul>\n<li>Fix: Site Scan Resume button now correctly shows pages processed (not result count) \u2014 \"Resume from 86 pages\" not \"Resume from 255 pages\"<\/li>\n<li>Fix: Resume now correctly excludes already-processed URLs even for scans that predate processed_urls tracking, by deriving the exclusion list from existing results<\/li>\n<\/ul>\n\n<h4>5.0.43<\/h4>\n\n<ul>\n<li>UI: Dashboard Schema Conflicts card simplified \u2014 shows count and plugin name\/risk only, no action text. \"View details in Infrastructure\" link added.<\/li>\n<li>Fix: Dashboard and Intelligence Suite Citations now show \"X of N queries\" instead of the meaningless \"5\/2 probes\" fraction \u2014 cited count from log vs configured probe count were different things being mixed together.<\/li>\n<\/ul>\n\n<h4>5.0.42<\/h4>\n\n<ul>\n<li>New: Site Scan Resume \u2014 if a scan is cancelled or stuck, a \"Resume from N pages\" button appears that continues from where it left off, preserving all existing gap results. Previously-processed URLs are tracked and excluded from the resumed queue.<\/li>\n<\/ul>\n\n<h4>5.0.41<\/h4>\n\n<ul>\n<li>Fix: Site Scan stuck state \u2014 Cancel now fully resets scan status to idle and clears the cooldown so a fresh scan can start immediately. \"Scan stuck? Reset &amp; restart\" button added alongside Cancel when scan is running.<\/li>\n<\/ul>\n\n<h4>5.0.40<\/h4>\n\n<ul>\n<li>Fix: Recent Work remove (\u2715) and Clear all buttons now work correctly \u2014 inline @click handlers with heredoc quoting issues replaced with proper Alpine methods (removeRecentWork, clearRecentWork)<\/li>\n<\/ul>\n\n<h4>5.0.39<\/h4>\n\n<ul>\n<li>New: Recent Work entries can now be individually removed with the \u2715 button, or the entire list cleared with \"Clear all\" (with confirmation)<\/li>\n<\/ul>\n\n<h4>5.0.38<\/h4>\n\n<ul>\n<li>Fix: Edit in WP button now works \u2014 admin URL was being output as literal PHP tag text inside heredoc string<\/li>\n<li>Fix: Open in Create now restores all social copy fields (LinkedIn, Facebook, Instagram, Pinterest, X, Hashtags, Image Prompt, Meta Description) \u2014 save_recent_work was using wrong key \"social\" instead of individual social_linkedin etc. fields<\/li>\n<\/ul>\n\n<h4>5.0.37<\/h4>\n\n<ul>\n<li>Fix: Dashboard Schema Conflicts card now shares state with Infrastructure panel \u2014 both read from the same REST call, no contradictions possible. Conflicts detected on page load and shown consistently everywhere.<\/li>\n<li>Fix: Empty social copy boxes (LinkedIn, Facebook, etc.), meta description, and image prompt now hidden when not present \u2014 e.g. when loading a WP post into Create tab<\/li>\n<li>Fix: Gutenberg block comment markup stripped when fetching WP post content into Create tab<\/li>\n<\/ul>\n\n<h4>5.0.36<\/h4>\n\n<ul>\n<li>Fix: Recent Work buttons now correctly appear \u2014 nested x-data scope was preventing Alpine from calling parent methods. Refactored to use parent scope methods (openRecentWork, loadRecentWorkPost) instead.<\/li>\n<\/ul>\n\n<h4>5.0.35<\/h4>\n\n<ul>\n<li>New: \"Link WP post\" button on Recent Work entries without article content \u2014 paste any WordPress post ID to load that post's content into the Create tab. Works for any post regardless of how it was created (Gutenberg, Classic Editor, imported, HiveEO or manually written).<\/li>\n<\/ul>\n\n<h4>5.0.34<\/h4>\n\n<ul>\n<li>New: Legacy Recent Work entries (saved before v5.0.33) are automatically backfilled with article content from the saved WordPress post on next page load \u2014 the \"Open in Create\" button will appear without any manual action needed<\/li>\n<li>Fix: post_id is now written back into Recent Work immediately when a post is saved, enabling future backfill if needed<\/li>\n<\/ul>\n\n<h4>5.0.33<\/h4>\n\n<ul>\n<li>New: Recent Work entries now store the full generated article, FAQs, social post, topic, target query, and callout URL. Each entry shows an \"\u21a9 Open in Create\" button that restores the full result back into the Create tab exactly as it was. \"\u270f Edit in WP\" link also shown when a post has been saved.<\/li>\n<\/ul>\n\n<h4>5.0.32<\/h4>\n\n<ul>\n<li>UI: Citation Gap ring now same size as Optimization Score ring (70px)<\/li>\n<\/ul>\n\n<h4>5.0.31<\/h4>\n\n<ul>\n<li>UI: Citation Gap section in the Optimization Score card now has its own SVG ring chart showing citation rate % \u2014 red at 0%, amber when improving, green above 50%. Mirrors the AEO Score ring visual language. Stats compact to 3 (Gaps\/Cited\/Queries) alongside the ring.<\/li>\n<\/ul>\n\n<h4>5.0.30<\/h4>\n\n<ul>\n<li>UI: Citation Gap data merged into the Optimization Score card as a subsection below the category bars, with Top Products restored as the right-column pair. Stats (Gaps\/Cited\/Queries\/Rate), rate bar, and top gap with Fix button all inside the card.<\/li>\n<\/ul>\n\n<h4>5.0.29<\/h4>\n\n<ul>\n<li>Fix: Schema Conflicts wording corrected \u2014 \"No conflicts detected\" was contradictory; now reads \"Clean \u2014 no competing SEO plugins detected\"<\/li>\n<li>Fix: Article output area now shows a visible scrollbar and has correct heading colours (h2 white, h3 light green) so headings are readable against the dark green background<\/li>\n<li>UI: Article output area height increased to 420px<\/li>\n<\/ul>\n\n<h4>5.0.28<\/h4>\n\n<ul>\n<li>New: Site Scan results now appear live as pages are scanned \u2014 newest results shown at the top with a \"Live \u2014 results appearing\" indicator during scanning. Results re-sort to gaps-first when scan completes. Fixed unstable Alpine keys that were preventing live rendering.<\/li>\n<\/ul>\n\n<h4>5.0.27<\/h4>\n\n<ul>\n<li>New: Citation Gap dashboard card \u2014 standalone card below Optimization Score showing Gaps \/ Cited \/ Queries \/ Citation Rate with a colour-coded progress bar and top gap with one-click Fix button. Sources Site Scan results first, Quick Scan as fallback. Shows Run Scan prompt if no scan yet.<\/li>\n<\/ul>\n\n<h4>5.0.26<\/h4>\n\n<ul>\n<li>New: Citation Rate row added to the Optimization Score card on the Dashboard \u2014 shows your latest citation rate as a colour-coded bar (green &gt;50%, amber &gt;20%, red below). Sources from Site Scan results first, Quick Scan as fallback. Shows \"Run scan to see \u2192\" link if no scan has been run yet.<\/li>\n<\/ul>\n\n<h4>5.0.25<\/h4>\n\n<ul>\n<li>Fix: Site Scan progress bar now correctly fills as pages are processed \u2014 values parsed as integers before calculation to prevent NaN from PHP string coercion<\/li>\n<li>UI: Countdown timer removed from Site Scan (was inaccurate given variable Gemini response times)<\/li>\n<\/ul>\n\n<h4>5.0.24<\/h4>\n\n<ul>\n<li>New: \"In progress\" gap items now show a \"\u21a9 Resume in Create \u2192\" button that re-populates the Create tab with the original question and context, plus a \"\u21ba Reset\" button to revert back to gap status. Applies to both Site Scan and Quick Scan.<\/li>\n<\/ul>\n\n<h4>5.0.23<\/h4>\n\n<ul>\n<li>Fix: Site Scan was timing out silently \u2014 batch size reduced from 5 to 2 pages per poll (each page requires 3 Gemini calls ~25s total, exceeding PHP max_execution_time at 5 pages). set_time_limit(120) added as safety net. Questions per page reduced from 5 to 3. Countdown timer updated to match.<\/li>\n<\/ul>\n\n<h4>5.0.22<\/h4>\n\n<ul>\n<li>Fix: Reddit threads now load correctly \u2014 Reddit blocks direct browser fetch() requests (CORS\/403), so fetching is now routed through a PHP REST endpoint (hiveeo\/v1\/fetch-reddit) with a proper user-agent. HN fetching unchanged.<\/li>\n<\/ul>\n\n<h4>5.0.21<\/h4>\n\n<ul>\n<li>New: Site Scan now shows estimated time remaining (calculated from pages left at 35 seconds per 5-page batch) and a note to keep the tab open<\/li>\n<li>New: Affiliate \/ reference link field now has a \"Fetch description\" button \u2014 clicks fetch the page meta description and auto-fill the description field, which remains editable<\/li>\n<\/ul>\n\n<h4>5.0.20<\/h4>\n\n<ul>\n<li>Fix: Site Scan no longer relies on WP-Cron to process batches \u2014 each front-end poll (every 35 seconds) now directly triggers the next batch via the REST API. WP-Cron is kept as a fallback only. This fixes scans stuck at 0\/100 on low-traffic sites where WP-Cron never fires.<\/li>\n<\/ul>\n\n<h4>5.0.19<\/h4>\n\n<ul>\n<li>Fix: Hacker News \"View post\" links now go to the HN discussion thread (news.ycombinator.com\/item?id=...) instead of the external article being submitted \u2014 item.url was incorrectly taking priority over the discussion link<\/li>\n<\/ul>\n\n<h4>5.0.18<\/h4>\n\n<ul>\n<li>Fix: Citation Gap action buttons (Fix this gap, Mark resolved, Undo) now correctly appear \u2014 Alpine expressions in HTML attributes had incorrectly escaped single quotes (\\') which were being output literally rather than as quote characters, causing all status conditions to evaluate false<\/li>\n<\/ul>\n\n<h4>5.0.17<\/h4>\n\n<ul>\n<li>Fix: Citation Gap action buttons now correctly appear \u2014 citationGapLast, siteScanResults, scoreHistory and related keys were missing from the initial Alpine config declaration, preventing Alpine reactivity from picking them up on page load<\/li>\n<\/ul>\n\n<h4>5.0.16<\/h4>\n\n<ul>\n<li>Fix: Citation Gap results action buttons (Fix this gap, Mark resolved, Undo) now correctly appear on results from previous scans where status was not yet stored \u2014 treats missing status as gap<\/li>\n<\/ul>\n\n<h4>5.0.15<\/h4>\n\n<ul>\n<li>New: Schema Conflict Detector \u2014 detects Yoast SEO, Rank Math, All in One SEO, SmartCrawl, and SEOPress running alongside HiveEO and flags potential duplicate schema types with specific fix instructions<\/li>\n<li>New: HiveEO now automatically skips FAQPage schema injection when another active plugin has already output FAQ schema for that post (covers Yoast FAQ blocks, Rank Math rich snippets, SmartCrawl, SEOPress, The SEO Framework, AIOSEO)<\/li>\n<li>Update: Schema Conflicts section added to Infrastructure tab<\/li>\n<\/ul>\n\n<h4>5.0.14<\/h4>\n\n<ul>\n<li>New: Gap results persist as a task queue \u2014 gaps stay in the list with status tracking (gap \/ in progress \/ resolved). \"Fix this gap\" marks the item in-progress, \"Mark resolved\" strikes it through. Undo available.<\/li>\n<li>New: Scan history \u2014 last 10 scans stored for both Site Scan and Quick Scan, showing date, gap count, cited count, and citation rate trend. Click any entry to view its full results.<\/li>\n<li>New: History viewer modal \u2014 view any historical scan's full results without losing the current scan.<\/li>\n<\/ul>\n\n<h4>5.0.13<\/h4>\n\n<ul>\n<li>Improvement: \"Fix this gap\" now uses the Gemini response excerpt as reference context so the Create tab knows what shape of answer to beat, not just the question to target<\/li>\n<li>New: \"Fix this gap\" behaviour setting in Settings \u2014 choose between navigating to Create tab manually or auto-generating immediately<\/li>\n<\/ul>\n\n<h4>5.0.12<\/h4>\n\n<ul>\n<li>Update: GSC Settings notice updated \u2014 clarifies that GSC integration requires OAuth2 and is available in HiveEO Premium; directs free users to Citation Gap Scan as the immediate alternative<\/li>\n<\/ul>\n\n<h4>5.0.11<\/h4>\n\n<ul>\n<li>New: Site Scan \u2014 crawls your sitemap, reads each page, generates probe questions from the actual content, then checks whether Gemini cites you for each. Runs as a background WP-Cron job (5 pages every 2 minutes), updates results in real time, 100 pages per scan, 12-hour cooldown. Citation Gap tab now has two modes: Site Scan and Quick Scan.<\/li>\n<\/ul>\n\n<h4>5.0.10<\/h4>\n\n<ul>\n<li>Fix: Citation Gap Scan now works with all Gemini models \u2014 removed responseMimeType parameter that some models reject, added robust JSON extraction from response text with multiple fallback strategies, increased timeout to 45s, and now surfaces the actual Gemini error message on failure<\/li>\n<\/ul>\n\n<h4>5.0.9<\/h4>\n\n<ul>\n<li>Fix: Citation Gap Scan was reading business name from a non-existent settings wrapper key \u2014 now reads directly from hiveeo_business_name user meta, matching how Settings saves it<\/li>\n<\/ul>\n\n<h4>5.0.8<\/h4>\n\n<ul>\n<li>Fix: Backup and Restore routes were missing \u2014 now implemented<\/li>\n<li>Fix: Saved entities migration \u2014 entities saved under Buzz AI meta keys are automatically migrated to HiveEO on first load<\/li>\n<li>Fix: GSC API key approach replaced with clear OAuth2 notice; Create tab GSC panel hidden until OAuth is implemented; Citation Gap Scan (no GSC needed) pointed to as the immediate alternative<\/li>\n<\/ul>\n\n<h4>5.0.7<\/h4>\n\n<ul>\n<li>New: Citation Gap Scan \u2014 discovers the questions AI engines should cite you for (based on your Products &amp; Settings), probes Gemini with each, and returns a cited\/not-cited report with one-click \"Generate post for this gap\" on every gap found. Located under Probe in the sidebar.<\/li>\n<\/ul>\n\n<h4>5.0.6<\/h4>\n\n<ul>\n<li>New: AEO Score trend history \u2014 a sparkline chart now appears on the Dashboard AEO Score card showing your score over the last 30 days, with a delta indicator (e.g. \u2191 +12pts). History is recorded automatically every time you tick a checklist item.<\/li>\n<\/ul>\n\n<h4>5.0.5<\/h4>\n\n<ul>\n<li>Fix: posts saved from the Create tab now attach FAQPage schema (Question + acceptedAnswer) instead of DefinedTermSet \u2014 FAQPage is the correct schema type for Q&amp;A content and is what Google uses for AI Overviews rich results<\/li>\n<li>UI: Intelligence Suite dashboard cards (Citation Gap, Intent Match, Entity Strength, Voice of AI) now show \"ELITE\" label alongside \"Coming soon\" so users understand these are a paid tier feature, not just a timing thing<\/li>\n<\/ul>\n\n<h4>5.0.4<\/h4>\n\n<ul>\n<li>Security fix: [hiveeo] shortcode now restricted to administrators only. Previously any logged-in user on a site could access the full HiveEO interface via the shortcode page. If you use the shortcode on a front-end page, update immediately.<\/li>\n<li>Security: Save as post (Create tab) now requires edit_posts capability<\/li>\n<li>New: Google Search Console integration (v5.0.3) \u2014 add GSC API key in Settings to see striking-distance queries on the Create tab<\/li>\n<\/ul>\n\n<h4>5.0.3<\/h4>\n\n<ul>\n<li>New: Google Search Console integration \u2014 add your GSC API key and verified site URL in Settings to pull striking-distance queries (position 4\u201320, 10+ impressions) directly onto the Create tab as one-click content suggestions<\/li>\n<\/ul>\n\n<h4>5.0.2<\/h4>\n\n<ul>\n<li>New: \"Go Premium\" tab under Overview \u2014 a dedicated \"What's included in Premium\" panel listing all paid features across Create Suite, Visibility &amp; Probe, Products &amp; Schema, and Learn &amp; Agency, with a link to the pricing page<\/li>\n<li>Improvement: mobile bottom nav rebalanced \u2014 Go Premium added to Set 1, Products moved to Set 2, Infrastructure moved to Set 3 (all 12 tabs now reachable across 3 sets)<\/li>\n<\/ul>\n\n<h4>5.0.1<\/h4>\n\n<ul>\n<li>New: FAQ promotion \u2014 Products tab \"Import FAQs from a Create-tab post\" flow: pick a saved post, select FAQs to append to the product, with an option to also refresh that post's DefinedTermSet schema<\/li>\n<li>Fix: DefinedTerm schema names were truncated question fragments (e.g. \"What natural resources does\"); now correctly extracts the subject as a noun phrase (e.g. \"Africa's natural resources\")<\/li>\n<li>Fix: Learn section moved to just below Overview in the sidebar, now collapsible so experienced users can hide it; Action Guide reordered above AEO Checklist<\/li>\n<li>Fix: Learn section auto-expands when navigating to Action Guide or AEO Checklist tabs<\/li>\n<\/ul>\n\n<h4>5.0.0<\/h4>\n\n<ul>\n<li>Improvement: Create tab now fetches the content of any reference URL you provide (the reference link, or a URL mentioned in \"What is this entity?\") and gives it to the AI as factual material to cite \u2014 previously such links were decorative only<\/li>\n<li>Fix: softened the brand-accuracy rule so it no longer suppresses accurate AI knowledge about well-known entities (e.g. established cryptocurrencies, products, companies) \u2014 it still prevents invented details about unfamiliar\/niche entities<\/li>\n<li>Fix: Dashboard Top Products badge now reads ON\/OFF (was OK\/OFF) and correctly shows ON for products saved before the schema-injection toggle existed, matching the Products and Schema tabs<\/li>\n<li>Compliance: corrected outdated readme references to a haiv3.com relay \u2014 AI requests have been sent directly to providers since v4.1.x; readme now matches actual behaviour<\/li>\n<li>Compliance: documented the new Create-tab URL-fetching behaviour as External Service #6<\/li>\n<\/ul>\n\n<h4>4.2.1<\/h4>\n\n<ul>\n<li>Fix: Products tab was missing the list of saved products (a regression from earlier compliance work) \u2014 restored, with Edit and Delete wired to the existing product management functions<\/li>\n<li>Fix: corrected a div-nesting issue in the product Add\/Edit form (URL slug, Purchase URL, and Info page URLs are now properly separated form sections)<\/li>\n<\/ul>\n\n<h4>4.2.0<\/h4>\n\n<ul>\n<li>New: Create tab \u2014 AI blog post generator and repurposer (Gemini\/OpenAI BYOK), with AEO writing rules, brand-accuracy grounding, A\/B hook variants, social copy for 5 platforms, and Recent Work history<\/li>\n<li>New: Save generated posts as drafts or published posts directly from the Create tab, with Article\/BlogPosting and DefinedTerm schema attached automatically<\/li>\n<li>New: Settings \u2014 Author Profile, Monetize URL, Callout description, Voice training sample, and a saved Entities list for quick brand-grounding<\/li>\n<li>New: navigation reorganised into Establish \/ Publish \/ Probe \/ Monetize \/ Learn sections following the EPPM workflow<\/li>\n<\/ul>\n\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:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309039"}],"author":[{"embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/clifford19"}],"wp:attachment":[{"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309039"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309039"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309039"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309039"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309039"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}