Pan4 AI Visibility Toolkit

Description

Is your website even found anymore – now that more and more people ask AI search systems instead of Google?

Pan4 AI Visibility Toolkit is the AI visibility toolkit for WordPress: score, live citation test, AI crawler tracking, and llms.txt generator – checks whether and how your content is found and cited by AI search systems (Google AI Overviews, ChatGPT, Perplexity). Completely free, no pro version, no hidden limits, no credit card required.

Why Pan4 AI Visibility Toolkit?

  • Truly free. No free tier with an artificial cap, no “pro” version holding back the genuinely useful features.
  • Score without an API key. The AI visibility score runs entirely on your own server – no account, no third-party access to your content needed to get started.
  • A real test, not just a heuristic. The AI search actually asks a real AI search engine with web access, instead of just guessing.
  • Privacy-friendly. AI crawler tracking detects bot visits purely from the user agent, without sending any data to an external service.
  • No vendor lock-in. Settings import/export, the open llms.txt standard, works alongside any other SEO plugin.

AI Visibility Score

  • On-page heuristic across 5 checks: direct-answer structure, heading/structure signals, E-E-A-T signals, paragraph independence, llms.txt
  • 0–100 points per post/page, recalculated automatically on save
  • Bulk recalculation for existing content, optional column in the post list
  • Runs entirely locally, no API key needed

AI Search (live citation test)

  • Queries a real AI search engine with live web access (Mistral, Perplexity, or OpenAI – your choice)
  • Checks whether your own domain actually appears among the cited sources
  • Runs only on manual click, never automatically in the background
  • Requires its own API key (only for this one add-on feature; the score itself needs none)

Fully standalone

  • No other SEO plugin required – has its own focus keyword field
  • Own Gutenberg sidebar (block editor) and meta box (classic editor)
  • Compatible alongside Yoast, RankMath, Seo-Pan & co.
  • Settings import/export

By pan4.de – we also build other WordPress tools, see pan4.de.

External services

This plugin only contacts an external AI provider for the optional “AI Search” feature. This feature is disabled by default and only runs after you actively enable it, choose a provider, and enter your own API key for that provider. No other part of this plugin sends any data anywhere.

Each request is triggered exclusively by you manually clicking “Test live now” on an individual post or page – never automatically, never in the background, and never on a schedule. What is sent each time: a single short query text (your post’s focus keyword, or the post title if no focus keyword is set). Your own API key for your chosen provider is stored on your own server and is never sent to pan4.de or any other party.

You choose exactly one of the following three providers in the plugin’s dashboard:

Mistral AI (default option)
Used to ask whether a real AI search engine cites your website as a source for the query above.
Mistral AI: Terms of Service, Privacy Policy

Perplexity
Used the same way as Mistral, if you select Perplexity as your provider instead.
Perplexity: API Terms of Service, Privacy Policy

OpenAI
Used the same way as Mistral, if you select OpenAI as your provider instead.
OpenAI: Terms of Use, Privacy Policy

Screenshots

Installation

Basic installation

  1. Search for and activate the plugin via “Add New” in the WordPress backend (or upload the ZIP under Plugins Add New Upload Plugin)
  2. After activation, “Pan4 AI Visibility Toolkit” appears in the left-hand menu
  3. All features can be switched on/off individually and are off by default – nothing runs automatically in the background until you activate it

Enable the AI visibility score (recommended first step, no API key needed)

  1. Pan4 AI Visibility Toolkit Dashboard check “Enable score”
  2. Open a post/page and save it once, or use “Check all now” in the dashboard for all existing content at once
  3. The result appears on the right in the block editor (GEO icon in the top toolbar) or as its own box in the classic editor

Set up AI search (optional, live test against a real AI search engine)

  1. Get an API key from one of the three providers:
  2. Pan4 AI Visibility Toolkit Dashboard choose provider enter key “Save”
  3. Check “Enable AI search”
  4. In a post/page, click “Test live now” – every click may incur cost with the chosen provider, so it is deliberately manual-only

Enable the llms.txt generator (optional)

  1. Requirement: “pretty” permalinks (Settings Permalinks, not “Plain”) – the dashboard automatically warns if this doesn’t match
  2. Pan4 AI Visibility Toolkit Dashboard check “Enable llms.txt generator”
  3. Result available at your-domain.com/llms.txt

Enable AI crawler tracking (optional, no API key needed)

  1. Pan4 AI Visibility Toolkit Dashboard check “Enable AI crawler tracking”
  2. Visits from known AI bots (GPTBot, ClaudeBot, PerplexityBot, and others) appear under Pan4 AI Visibility Toolkit AI Crawler

For developers/agencies

  • WP-CLI: wp pan4-ai-visibility backfill recalculates the score for all published content (options: --post_type=post,page, --dry-run)
  • Settings import/export under Dashboard Import/Export (also useful for moving to another website)

FAQ

Do I need an API key?

Not for the AI visibility score – it runs entirely locally. Only the optional AI search (live citation test) needs its own, free account with Mistral, Perplexity, or OpenAI, since it queries a real AI search engine live.

Does using this cost anything?

Pan4 AI Visibility Toolkit itself is completely free, no pro version. The only possible cost: if you enable the optional AI search, the AI provider you chose (Mistral/Perplexity/OpenAI) may charge for your own queries – depending on their pricing model, often with free quotas included.

Do I need another SEO plugin as well?

No, Pan4 AI Visibility Toolkit is fully standalone and comes with its own focus keyword field. It works just as well alongside Yoast, RankMath, Seo-Pan & co.

Is my data sent anywhere?

The score and AI crawler tracking run entirely on your own server; no data is sent to third parties. Only when AI search is active is your chosen query (focus keyword or post title) sent to the AI provider you selected – just like any other search there.

What’s the difference between the score and AI search?

The score is an on-page heuristic: it evaluates the structure of your content (e.g. question headings, FAQ structure), regardless of whether an AI has actually found it yet. AI search is a real live test: it actually queries an AI search engine and checks whether your domain is cited as a source.

Does this plugin work with my caching plugin?

Yes. Dashboard toggles are protected with cache-busting, and /llms.txt is explicitly excluded from full-page caching. Only limitation: AI crawler tracking only captures visits where WordPress actually rebuilds the page – with an active caching plugin, the numbers are a lower bound.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Pan4 AI Visibility Toolkit” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.6.6

  • FIX (WordPress.org submission): updated “Tested up to” to 7.1 (WordPress 7.1 “Mary Lou” released August 19, 2026; was still 7.0). No known compatibility issues expected – the plugin uses only stable core APIs

2.6.5

  • FIX (regression from the 2.6.4 rename): the top-level menu page uses the slug “pan4-ai-visibility”, but all submenu pages (KI-Crawler, Fehlerprotokoll, Hilfe) use the shorter “pan4aiv-” prefix instead. The stylesheet/script enqueue check only matched pages starting with “pan4-ai-visibility”, so it silently failed to load admin.css/admin.js on every submenu page except the dashboard itself – those pages rendered completely unstyled. Fixed the detection to match both patterns

2.6.4

  • RENAME (WordPress.org trademark review): renamed from “GEO-Pan” to “Pan4 AI Visibility Toolkit” (slug: pan4-ai-visibility) following a reviewer-flagged potential conflict with a registered “GEOPAN” trademark held by an unrelated third party. All internal identifiers renamed accordingly: PHP function/hook/option prefix geo_pan_ -> pan4aiv_, class prefix Geo_Pan_ -> Pan4AIV_, CSS/JS prefix geo-pan- -> pan4aiv-, main file and all includes/ files renamed. No functional changes – feature set, behavior, and all fixes from prior versions carry over unchanged

2.6.3

  • FIX (WordPress.org manual review, final remaining item): the error log submenu slug was still built by dynamically concatenating $this->parent_slug with ‘-errorlog’, which static analysis can’t verify as always producing a uniquely-prefixed value. Since this class is now exclusively Pan4 AI Visibility Toolkit’s own (see 2.6.0), hardcoded the slug to the literal ‘pan4aiv-errorlog’ instead

2.6.2

  • FIX (WordPress.org Plugin Check): the developer-only test file (tests/test-elementor-paragraph-fallback.php, a standalone CLI regression test) was included in the distributed plugin ZIP and got flagged by Plugin Check for not following web-output escaping conventions – rules that don’t apply to a CLI-only script that was never meant to run inside WordPress or output anything to a browser. Excluded the tests/ folder from the distributed package entirely; it remains available as a development tool, kept outside of what WordPress.org actually hosts. No functional code changed since 2.6.1

2.6.1

  • FIX (page builder compatibility): the “Paragraph independence” score check only looked for standard <p> tags. Some page builder widgets (e.g. Elementor’s Icon Box widget) output real body text wrapped in <div> elements without <p> tags, which caused this single check to incorrectly report “no paragraphs found” even for substantial written content. Added a fallback that reconstructs paragraphs from block-level boundaries when no <p> tags are present, with a minimum length filter so short UI fragments (button labels, menu items) aren’t mistaken for real paragraphs. The other 4 score checks (headings, links, author bio) already extracted plain text safely regardless of markup structure and were not affected. 5 new automated tests added covering this case

2.6.0

  • FIX (WordPress.org manual review): added a required “External services” section to readme.txt documenting the three optional AI providers (Mistral, Perplexity, OpenAI), what data is sent, when, and links to each provider’s Terms of Service and Privacy Policy
  • FIX (WordPress.org manual review): the shared, generically-prefixed classes Pan4_Error_Log and Pan4_Admin_Menu (used across multiple -Pan plugins with a common “pan4_” prefix) have been replaced with a fully standalone, uniquely-prefixed Pan4AIV_Error_Log class and a dedicated top-level admin menu, with no shared naming or dependency on any other plugin. The error log navigation hook is now a single static “pan4aiv_error_log_nav” hook rather than a dynamically built name. As a result, the previous Reflection-based version-collision defense (needed only because the class used to be shared across plugins) is no longer necessary and has been removed, simplifying the plugin bootstrap

2.5.9

  • FIX (visual): the error log page (includes/class-pan4-error-log.php) still referenced hardcoded “seo-pan-” CSS classes in its HTML output (leftover from the shared file’s origin) that don’t exist in Pan4 AI Visibility Toolkit’s own admin.css – the page has been rendering completely unstyled this whole time. Corrected to “pan4aiv-” throughout
  • Cleanup: removed roughly 50% of admin.css (562 274 lines) – dead, unused rules left over from the file’s Seo-Pan origin (SERP preview, counters, analysis list, dashboard stat grid, and more), verified none of it was referenced anywhere in the plugin before removal

2.5.8

  • FIX: corrected the Contributors field in readme.txt to the real WordPress.org username “pan4de” (no dot – WordPress.org usernames don’t allow dots), previously set to the placeholder “pan4.de”

2.5.7

  • FIX (WordPress.org Plugin Check, third pass): moved the phpcs:ignore comments for the dynamic hook names onto each individual flagged line instead of once before the block – the previous placement only suppressed the first line, not the do_action() calls or the elseif branch. Plugin Check now reports 0 errors and only the 1 remaining, deliberate, documented false positive (DONOTCACHEPAGE)

2.5.6

  • FIX (WordPress.org Plugin Check, second pass – down from 1 error + 6 warnings to a documented, deliberate baseline): translated the entire readme.txt to English (WordPress.org requires the base readme in English since July 2025; the plugin’s own admin UI/help text stays fully German, unaffected by this change); replaced the nonce-suppression comment on the import status message with a genuine nonce check (redirect URLs now carry a signed nonce, verified before the message is displayed); documented two deliberate, unavoidable trade-offs with explanatory phpcs:ignore comments rather than breaking the shared -Pan-plugin architecture: the shared Pan4_Admin_Menu/Pan4_Error_Log class names (must stay identical across all -Pan plugins for the collision-safe class_exists() pattern to work), and the dynamically derived per-plugin hook name in the error log navigation (built from each plugin’s own slug, so this one shared file works correctly for every -Pan plugin without hardcoding a plugin name)

2.5.5

  • FIX (WordPress.org Plugin Check, 7 errors + 11 warnings resolved): wrong text domain ‘pan4’ instead of ‘pan4-ai-visibility’ in class-pan4-admin-menu.php; 4 missing translators comments on sprintf() calls with placeholders; $SERVER[‘REQUEST_METHOD’] now properly unslashed/sanitized; more robust $_FILES handling (isset check, sanitized tmp_name) on settings import; removed load_plugin_textdomain() (automatic on WordPress.org since WP 4.6, was “discouraged”); readme.txt tags trimmed from 7 to 5, short description translated to English; loose global variables in the shared Pan4 classes wrapped in IIFEs; error log navigation hook now also fires an additional, correctly per-plugin-prefixed hook (e.g. pan4aiv_error_log_nav) alongside the existing pan4 hook, for WordPress.org naming conventions without breaking backward compatibility with other -Pan plugins
  • Known false positive (deliberately left unchanged): the DONOTCACHEPAGE constant was incorrectly flagged as an unprefixed hook name – it is a fixed WordPress core constant; renaming it would break cache-plugin compatibility

2.5.4

  • FIX (WordPress.org submission): updated “Tested up to” to 7.0 (was still 6.8; the automated plugin check requires the current WordPress version). Pan4 AI Visibility Toolkit uses only stable core APIs (hooks, register_post_meta, WP_Query, etc.), no known conflicts with WordPress 7.0 expected

2.5.3

  • FIX (WordPress.org submission): Plugin URI and Author URI were identical (both pan4.de) – rejected by the WordPress.org check. Plugin URI now points to pan4.de/pan4-ai-visibility/ (plugin-specific), Author URI stays pan4.de (general)

2.5.2

  • readme.txt: set Contributors field to “pan4.de”

2.5.1

  • Help tab fully reworked and made significantly more detailed: new table listing all 5 score checks with weighting and explanation, author bio and import/export added to the feature overview, AI search text updated for multi-provider (no longer Perplexity only), 3 new FAQ entries

2.5.0

  • NEW: author bio can now be managed directly in the Pan4 AI Visibility Toolkit dashboard (own field, independent of the native WordPress profile form, which can be hidden by other plugins on some sites). Automatically lists all authors with published posts/pages, feeds directly into the E-E-A-T check

2.4.1

  • Polish: the hint shown for a missing author bio (E-E-A-T check) is now more specific – names the affected author and notes that filling it in once affects ALL of that author’s posts at once

2.4.0

  • CHANGE: score checks 1+2 (5 of 10 weighting points combined) were too narrowly restricted to question-form headings (“What is…?”) – normal, meaningful subheadings with a concise follow-up sentence now count equally. Question form/FAQ structure remains a bonus mentioned in the hint text but is no longer required for points. Existing scores update automatically on the next “Check all now”

2.3.2

  • FIX: added a visible admin notice if the Pan4_Error_Log collision protection falls back to its no-op mode (e.g. because another -Pan plugin copy with a different version loaded first). Previously invisible: the “Error Log” tab led nowhere (“You are not allowed”) with no clear reason. Now also shows the file path of the copy that actually loaded

2.3.1

  • Dashboard and help tab now show the site’s actual llms.txt URL (e.g. yourdomain.com/llms.txt) as copyable info – even before activation, as a preview of what the URL will be

2.3.0

  • NEW: real progress bar for “Check all now” instead of plain text
  • NEW: first-steps welcome card on the dashboard, shown only while nothing is enabled yet
  • NEW: the score ring (meta box + Gutenberg sidebar) is now clickable and jumps straight to the weakest check, with color coding and a brief highlight

2.2.8

  • Improvement: the pan4aiv_ai_bots filter (AI crawler tracking) is now hardened against a misbehaving third-party hook (no more fatal error on a non-array return)
  • Improvement: the pan4aiv_post_types filter was duplicated in 9 places in the code (each individually vulnerable to the same issue) – switched to a single, hardened helper function pan4aiv_post_types()

2.2.7

  • Security audit ahead of WordPress.org submission: fixed text domain errors in the shared Pan4 classes (27 occurrences, ‘seo-pan’ instead of ‘pan4-ai-visibility’), replaced unsafe .html() string concatenation in admin.js with safe DOM construction (AI search result, score checks), hardened raw-response logging for AI search (API key defensively stripped, length capped)
  • Improvement: the AI answer snippet (previously calculated but never shown) is now visible in the meta box and Gutenberg sidebar

2.2.6

  • Branding cleanup: “L-Effects” and personal name/location references replaced throughout with pan4.de

2.2.5

  • Expanded readme.txt into a full WordPress.org listing page: stronger hook, “Why Pan4 AI Visibility Toolkit?” differentiation, FAQ section (6 questions), screenshots section with 5 captions. Short description optimized to 142 characters (150-character limit)

2.2.4

  • readme.txt: added a complete Installation section – previously missing entirely. Covers basic setup, score, AI search (including links to all three API key providers), llms.txt generator, AI crawler tracking, and WP-CLI

2.2.3

  • FIX (important): the error log page was registered twice (once manually in pan4-ai-visibility.php, once automatically by Pan4_Error_Log itself) – would have output its content twice. Removed the redundant manual registration
  • FIX: “Check all now” (bulk score recalculation) ran as a single, unbounded request for many posts – a genuine timeout risk. Switched to server-side batching (20 posts/request) with a client-side progress indicator
  • Improvement: /llms.txt no longer sends an unnecessary body on HEAD requests (used, among others, by the score’s own check)
  • Improvement: the WP-CLI command now registers via the official cli_init hook instead of directly on load

2.2.2

  • Updated tagline/description: “AI visibility toolkit” instead of just “score + live test”, now also reflecting crawler tracking and the llms.txt generator. Plugin name stays Pan4 AI Visibility Toolkit

2.2.1

  • FIX: /llms.txt now sets DONOTCACHEPAGE so common caching plugins (WP Rocket, WP Super Cache, W3 Total Cache, LiteSpeed Cache) don’t incorrectly cache the dynamic route as a static copy
  • Added a transparent notice: AI crawler tracking only captures visits where WordPress actually rebuilds the page – with an active caching plugin, the numbers are a lower bound, not a complete picture

2.2.0

  • NEW: AI crawler tracking – detects visits from known AI bots (GPTBot, ClaudeBot, PerplexityBot, and others) purely from the user agent, no API key needed, own overview tab. Master switch off by default
  • NEW: WP-CLI command wp pan4-ai-visibility backfill for bulk score recalculation (including –post_type= and –dry-run), only loaded under WP-CLI

2.1.0

  • NEW: llms.txt generator (basic version) – serves /llms.txt dynamically (title, description, published posts/pages with excerpts), no physical file, master switch off by default
  • Runs purely virtually via a WordPress rewrite route – if a dedicated plugin like llms.txt-Pan creates a real file, it automatically takes precedence on standard hosting, no mutual conflict detection needed
  • Dashboard warning if “Plain” permalinks are active (required for the virtual route)

2.0.0

  • Pan4 AI Visibility Toolkit is now completely free – no separate pro version anymore, all former pro features (multi-provider AI search, score, import/export) are part of the one free plugin
  • Removed the license key tab (no longer needed)
  • Added a subtle link to pan4.de (more tools) in the dashboard, help tab, editor sidebar, and meta box

1.2.0

  • Settings import/export (dashboard) – API keys are not exported by default, can be deliberately included via checkbox

1.1.0

  • Free choice of AI provider for AI search (dashboard dropdown) – Mistral, Perplexity, OpenAI. API keys are stored separately per provider
  • Only providers with genuine, source-backed web access (grounding/citations) are offered

1.0.0

  • First release: AI visibility score + AI search as a standalone plugin