{"id":360636,"date":"2026-10-31T18:12:32","date_gmt":"2026-10-31T18:12:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/contexta-ai-seo-editor\/"},"modified":"2026-10-31T20:50:32","modified_gmt":"2026-10-31T20:50:32","slug":"visibility-flux","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/visibility-flux\/","author":23554128,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.16","stable_tag":"1.8.16","tested":"7.1.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Visibility Flux - AI SEO Editor","header_author":"InfinaCode","header_description":"Rank every page by the clicks it is losing, test whether AI crawlers can read your site, and measure traffic from ChatGPT and Perplexity.","assets_banners_color":"130e2a","last_updated":"2026-10-31 20:50:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/infinacode.com\/plugins\/visibility-flux-ai-seo-editor","header_author_uri":"https:\/\/infinacode.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":184,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.14":{"tag":"1.8.14","author":"infinacode","date":"2026-10-31 18:11:57","revision":3777255},"1.8.15":{"tag":"1.8.15","author":"infinacode","date":"2026-10-31 18:20:04","revision":3777264},"1.8.16":{"tag":"1.8.16","author":"infinacode","date":"2026-10-31 20:50:32","revision":3777368}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3777255,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3777255,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3777255,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3777255,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3777255,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.14","1.8.15","1.8.16"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3777255,"resolution":"1","location":"assets","locale":"","width":1280,"height":620},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3777255,"resolution":"2","location":"assets","locale":"","width":1280,"height":620},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3777255,"resolution":"3","location":"assets","locale":"","width":1280,"height":620},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3777255,"resolution":"4","location":"assets","locale":"","width":1280,"height":620},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3777255,"resolution":"5","location":"assets","locale":"","width":1280,"height":790}},"screenshots":{"1":"The Problem Map \u2014 every page ranked by estimated lost clicks per month","2":"AI Access Check \u2014 your site fetched with the real GPTBot and PerplexityBot user-agents","3":"AI Traffic \u2014 click-throughs from twelve AI assistants","4":"Commerce Readiness \u2014 WooCommerce product data audited for AI shopping agents","5":"The editor \u2014 SEO title and meta with a live Google preview"}},"plugin_section":[],"plugin_tags":[2353,216196,46987,186,286],"plugin_category":[45,55],"plugin_contributors":[289962],"plugin_business_model":[],"class_list":["post-360636","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-google-search-console","plugin_tags-seo","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-infinacode","plugin_committers-infinacode"],"banners":{"banner":"https:\/\/ps.w.org\/visibility-flux\/assets\/banner-772x250.png?rev=3777255","banner_2x":"https:\/\/ps.w.org\/visibility-flux\/assets\/banner-1544x500.png?rev=3777255","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/visibility-flux\/assets\/icon.svg?rev=3777255","icon":"https:\/\/ps.w.org\/visibility-flux\/assets\/icon.svg?rev=3777255","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/visibility-flux\/assets\/screenshot-1.png?rev=3777255","caption":"The Problem Map \u2014 every page ranked by estimated lost clicks per month"},{"src":"https:\/\/ps.w.org\/visibility-flux\/assets\/screenshot-2.png?rev=3777255","caption":"AI Access Check \u2014 your site fetched with the real GPTBot and PerplexityBot user-agents"},{"src":"https:\/\/ps.w.org\/visibility-flux\/assets\/screenshot-3.png?rev=3777255","caption":"AI Traffic \u2014 click-throughs from twelve AI assistants"},{"src":"https:\/\/ps.w.org\/visibility-flux\/assets\/screenshot-4.png?rev=3777255","caption":"Commerce Readiness \u2014 WooCommerce product data audited for AI shopping agents"},{"src":"https:\/\/ps.w.org\/visibility-flux\/assets\/screenshot-5.png?rev=3777255","caption":"The editor \u2014 SEO title and meta with a live Google preview"}],"raw_content":"<!--section=description-->\n<p>Most SEO plugins grade the page you are already editing. Visibility Flux starts from your real\nGoogle Search Console data and tells you <strong>which page to open first<\/strong> \u2014 the one quietly\nlosing the most clicks.<\/p>\n\n<p>Upload your Search Console CSV export and Visibility Flux scores every page against the\nclick-through rate its ranking position should be earning. The gap multiplied by\nimpressions gives you <strong>estimated lost clicks per month<\/strong>: a worklist sorted worst-first,\nnot a traffic light.<\/p>\n\n<p>It also covers the half of search that changed recently \u2014 whether AI assistants can reach\nyour site at all, and whether they send you readers.<\/p>\n\n<h4>The Problem Map<\/h4>\n\n<p>Five views over your whole site, built from your own data:<\/p>\n\n<ul>\n<li><strong>Low CTR<\/strong> \u2014 seen often, clicked rarely, sorted by the clicks that gap is costing you<\/li>\n<li><strong>Almost there<\/strong> \u2014 page-two pages and queries a small edit could lift onto page one<\/li>\n<li><strong>Cannibalisation<\/strong> \u2014 your own pages competing, with keep and merge recommendations<\/li>\n<li><strong>Losing ground<\/strong> \u2014 pages sliding down between your last two imports, before it hurts<\/li>\n<li><strong>Results<\/strong> \u2014 what changed on the pages you already fixed, before and after<\/li>\n<\/ul>\n\n<p>Search Console exports are parsed in any language \u2014 English, French, German, Spanish,\nDutch, Arabic and more, comma or semicolon separated. Nothing to reformat.<\/p>\n\n<h4>Can ChatGPT actually read your site?<\/h4>\n\n<p>Editing robots.txt tells you what you wrote. It does not tell you what a crawler receives.\nThe common failure is a CDN or firewall refusing the request before WordPress is ever\nreached, and no robots.txt editor can show you that.<\/p>\n\n<p>Visibility Flux requests your site using the <strong>real user-agent strings<\/strong> of GPTBot,\nOAI-SearchBot and PerplexityBot, and reports the status code that actually comes back.\nIt checks nine AI crawlers, plus the settings that would remove your whole site from\nsearch and AI answers, with one-click fixes.<\/p>\n\n<p>It also generates an <strong>llms.txt<\/strong> from your best performing pages, served virtually at\n\/llms.txt \u2014 no file written to disk.<\/p>\n\n<h4>AI traffic, counted<\/h4>\n\n<p>When someone clicks through from an AI answer, most analytics tools file the visit under\n\"direct\". Visibility Flux counts those visits properly, across twelve assistants: ChatGPT,\nPerplexity, Gemini, Claude, Copilot, Meta AI, You.com, Poe, Phind, DeepSeek, Mistral and\nGrok.<\/p>\n\n<p>No cookies. No accounts. No visitor identity in your stored traffic: only which assistant\nsent the reader and which page they landed on. Daily totals are kept for 90 days, monthly\ntotals for 36 months, the 200 most visited pages, and a log of the last 100 visits, each\nwith its time, the assistant, the landing path and the referring site's hostname. Nothing\nleaves your site \u2014 the count is made by your own WordPress. On by default, with a switch in\nSettings to turn it off; switching it off stops the counting and keeps the figures already\ncollected.<\/p>\n\n<p>A small flag in the browser's session storage stops one visit being counted twice. It is not\na cookie, it is never sent anywhere, and it goes when the tab closes.<\/p>\n\n<p>The tracking endpoint is throttled so it cannot be spammed to inflate your numbers. That\ncheck salts the visitor IP with your own site key and keeps a counter under the resulting\nhash for ten minutes. It is never reversible and never reaches your stored data.<\/p>\n\n<h4>AI Commerce Readiness (WooCommerce)<\/h4>\n\n<p>AI shopping agents buy from structured product data, not from your page design. Visibility Flux\naudits every product for missing images, prices, thin descriptions, missing categories,\nGTIN, brand and weight \u2014 a score per product, worst first, with a direct edit link.<\/p>\n\n<p>Fully deterministic: no AI calls, no API key, no cost.<\/p>\n\n<h4>Also included<\/h4>\n\n<ul>\n<li><strong>Content audit<\/strong> \u2014 one sweep for missing, duplicate and truncated titles and\ndescriptions, thin pages, and images with no alt text. Duplicates can only be found\nsite-wide: no single page knows its title is shared<\/li>\n<li><strong>Speed audit<\/strong> \u2014 fetches your busiest pages and names the actual files slowing them:\nwhich image gates the first paint, which scripts block rendering and which plugin\nshipped them, how much JavaScript you carry. Real files, real sizes, no API key<\/li>\n<li><strong>Answer readiness<\/strong> \u2014 whether each page has the JSON-LD, freshness, structure and\nverifiable author that assistants lift answers from<\/li>\n<li><strong>hreflang validation<\/strong> \u2014 self-reference, x-default and language tags, on multilingual\nsites only<\/li>\n<li>Instant indexing via IndexNow \u2014 Bing, Yandex, Naver and Seznam. Off until you switch it on in Settings; no account or key needed<\/li>\n<li>Internal link suggestions scored by real keyword relevance<\/li>\n<li>Manual SEO title and meta editing with a live Google preview<\/li>\n<li>Thin-content detection that reads page-builder content, not just the classic editor<\/li>\n<li>Writes into Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework or Slim SEO, or sets the title and meta description itself when none is installed<\/li>\n<li>Works in any language, including right-to-left scripts<\/li>\n<\/ul>\n\n<h4>Visibility Flux Pro<\/h4>\n\n<p>Everything above is free, forever, with no time limit. Visibility Flux Pro adds the writing:<\/p>\n\n<ul>\n<li>AI-generated SEO titles and meta descriptions, written against the page's real ranking queries<\/li>\n<li>Content generation \u2014 intros, H2 sections, FAQ blocks, product CTAs and full rewrites<\/li>\n<li>Two-pass proofreading that does not break your HTML<\/li>\n<li>JSON-LD schema generation and a 0\u2013100 quality score per article<\/li>\n<li>AI internal link insertion<\/li>\n<li>Competitor gap research<\/li>\n<li>A five-layer site memory that learns your brand voice<\/li>\n<li>Batch processing across your whole site<\/li>\n<li>Submitting pages to Google through the Indexing API<\/li>\n<\/ul>\n\n<p>Pro is available with a <strong>7-day free trial<\/strong> at <a href=\"https:\/\/infinacode.com\/plugins\/visibility-flux-ai-seo-editor\">infinacode.com<\/a>.\nIt uses your own Anthropic API key, so you pay Anthropic directly for what you use and\nevery action shows its exact cost. When a trial ends, the plugin returns to the free\nfeatures \u2014 nothing is deleted.<\/p>\n\n<h3>External services<\/h3>\n\n<p><strong>IndexNow<\/strong> notifies Bing, Yandex, Naver and Seznam when a page is published or updated. It\nis off until you switch on instant indexing in Settings, and it never runs for a noindex page.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/www.indexnow.org\/\">IndexNow<\/a>, <code>https:\/\/api.indexnow.org\/indexnow<\/code><\/li>\n<li>Data sent: the page address, your site's host name and a generated key file name. No\ncontent, no personal data, no visitor data<\/li>\n<li>Terms: https:\/\/www.indexnow.org\/faq \u00b7 https:\/\/www.bing.com\/webmasters\/indexnow<\/li>\n<\/ul>\n\n<p><strong>Speed audit.<\/strong> While you run it, the plugin sends a HEAD request for each image and script\nyour pages load and reads the first few stylesheets. Files hosted by other companies (a font\nservice, an analytics script, a CDN) are requested from their own servers: the file's\naddress only, no page content, no visitor data. Private and loopback addresses are refused.<\/p>\n\n<h3>Third-party libraries<\/h3>\n\n<p><strong>Lucide<\/strong> 1.39.0 (ISC licence) draws the icons: <code>assets\/vendor\/lucide\/lucide.min.js<\/code>, licence\nin <code>assets\/vendor\/lucide\/LICENSE<\/code>.<\/p>\n\n<ul>\n<li>Unminified build: https:\/\/unpkg.com\/lucide@1.39.0\/dist\/umd\/lucide.js<\/li>\n<li>Source: https:\/\/github.com\/lucide-icons\/lucide\/tree\/1.39.0<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In Google Search Console, open Performance, then Export, then Download CSV.<\/li>\n<li>Go to Visibility Flux, then Settings, then Import GSC, and upload the Pages and Queries files.<\/li>\n<li>Open the Problem Map. Your pages are ranked by estimated lost clicks per month.<\/li>\n<\/ol>\n\n<p>For the best cannibalisation detection, add <strong>Page<\/strong> as a second dimension to the Queries\nreport before exporting.<\/p>\n\n<p>Requirements: WordPress 6.0 and PHP 8.0 or newer, with the PHP <strong>mbstring<\/strong> extension enabled.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20need%20anything%20special%20from%20my%20host%3F\"><h3>Does it need anything special from my host?<\/h3><\/dt>\n<dd><p>Only the PHP <strong>mbstring<\/strong> extension, which almost every host enables. It is what lets the\nplugin measure and cut text in any language \u2014 including scripts that do not space their\nwords. WordPress itself treats mbstring as optional, so if yours is missing, this plugin\nsays so in the WordPress admin and loads nothing rather than failing halfway. Ask your host\nto enable it; nothing else changes and your data is untouched.<\/p><\/dd>\n<dt id=\"does%20this%20replace%20yoast%20or%20rank%20math%3F\"><h3>Does this replace Yoast or Rank Math?<\/h3><\/dt>\n<dd><p>No. Visibility Flux writes into their fields and handles what they do not: Search Console\nanalysis, AI crawler access, and AI traffic measurement. Run both.<\/p>\n\n<p>Without an SEO plugin, Visibility Flux sets each page's title and meta description itself.\nWith one installed, it leaves that to the SEO plugin, so a page never gets two.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Not for the free plugin. Nothing in it makes an AI call. An Anthropic API key is only\nneeded for the AI writing features in Visibility Flux Pro.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20data%20anywhere%3F\"><h3>Does it send my data anywhere?<\/h3><\/dt>\n<dd><p>The free plugin never contacts our servers, and makes no AI calls. Your Search Console\ndata stays in your WordPress database.<\/p>\n\n<p>It does contact two places, both on your instruction: <strong>your own site<\/strong>, which the crawler\ntest, speed audit, answer readiness and hreflang checks fetch the way a visitor would, and\n<strong>IndexNow<\/strong>, which is told the address of a page you just published. See <em>External\nservices<\/em> below for the details.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20supported%3F\"><h3>Which languages are supported?<\/h3><\/dt>\n<dd><p>Your site can be in any language, including right-to-left. Two different things are worth\nseparating here:<\/p>\n\n<ul>\n<li><strong>Reading and checking your site<\/strong> works in any language. Word counts handle scripts that\ndo not space their words \u2014 Chinese, Japanese, Thai, Khmer, Burmese \u2014 instead of reporting a\nfull article as one word. Search Console exports import whatever language their column\nheaders are in. Thirty-five languages additionally have their own tables for number and\ncurrency formatting and for the filler phrasing the content checks flag.<\/li>\n<li><strong>The plugin's own interface<\/strong> follows your WordPress locale and is translated through the\nWordPress.org translation project, so which languages are available there is down to what\nvolunteers have completed.<\/li>\n<\/ul><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%3F\"><h3>What happens if I uninstall?<\/h3><\/dt>\n<dd><p>Deleting the plugin removes all of its data: settings, imported data, caches, AI traffic\nhistory and post meta. Deactivating alone keeps everything.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.16<\/h4>\n\n<ul>\n<li>Shorter External services and Third-party libraries notes in the readme<\/li>\n<\/ul>\n\n<h4>1.8.15<\/h4>\n\n<ul>\n<li>New logo<\/li>\n<\/ul>\n\n<h4>1.8.14<\/h4>\n\n<ul>\n<li>Articles with emoji no longer ask about unsaved changes, and saving them keeps the emoji as text<\/li>\n<\/ul>\n\n<h4>1.8.13<\/h4>\n\n<ul>\n<li>The AI Access Check runs in steps, so it no longer ends in a server error on a slow site<\/li>\n<li>Settings now says \"Settings saved.\" after you save<\/li>\n<li>The hreflang check accepts upper-case language codes such as EN-GB<\/li>\n<\/ul>\n\n<h4>1.8.12<\/h4>\n\n<ul>\n<li>Changelog clean-up<\/li>\n<\/ul>\n\n<h4>1.8.11<\/h4>\n\n<ul>\n<li>The AI-traffic script no longer delays pages and skips search and author pages<\/li>\n<li>Search Console imports ignore blank lines<\/li>\n<li>Scripts load from files, and Pro-only code is no longer in this plugin<\/li>\n<\/ul>\n\n<h4>1.8.10<\/h4>\n\n<ul>\n<li>Page titles with quotes or apostrophes display correctly<\/li>\n<li>AI traffic records pages in non-Latin alphabets under their real address<\/li>\n<li>Allowing AI crawlers in robots.txt now reports a failed write<\/li>\n<\/ul>\n\n<h4>1.8.9<\/h4>\n\n<ul>\n<li>Pages stored in an older database are read correctly again: word counts, thin-content detection and internal link matching no longer lose accented words<\/li>\n<\/ul>\n\n<h4>1.8.8<\/h4>\n\n<ul>\n<li>Translation updates<\/li>\n<\/ul>\n\n<h4>1.8.7<\/h4>\n\n<ul>\n<li>Documentation corrections<\/li>\n<\/ul>\n\n<h4>1.8.6<\/h4>\n\n<ul>\n<li>Compatibility and security fixes, and a better editor layout on narrow and right-to-left screens<\/li>\n<\/ul>\n\n<h4>1.8.5<\/h4>\n\n<ul>\n<li>New setting to switch AI traffic tracking off, plus security and reliability fixes<\/li>\n<\/ul>\n\n<h4>1.8.4<\/h4>\n\n<ul>\n<li>The page-builder panel now says how many blocks and words the page has<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Fixes for pages built with a page builder<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Fixes for the article editor and the Content tab<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fixes for the article editor<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Renamed to Visibility Flux. Your imports, settings and fix history move across on first load<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Maintenance release<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Maintenance release<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Fixes for Site Memory and the settings screens<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Pro is now an add-on that installs alongside the free plugin<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>First release on WordPress.org<\/li>\n<\/ul>","raw_excerpt":"Rank every page by the clicks it is losing, test whether AI crawlers can read your site, and measure traffic from ChatGPT and Perplexity.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/360636","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=360636"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/infinacode"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=360636"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=360636"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=360636"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=360636"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=360636"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=360636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}