Popis
GEO (Generative Engine Optimization) made simple. AI assistants are becoming a major way people find websites. Wille GEO shows you which AI systems read your pages – GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended and more – and how many people click through to you from ChatGPT, Perplexity, Gemini and Copilot. On top, it gives you a set of optimizations for AI search, each with a plain-language explanation of what it does.
Results from the first minute. Right after activation the dashboard checks whether anything keeps AI crawlers away from your site, scores your existing posts and pages for AI search and offers an email notification for the first AI visit. The statistics fill up as AI systems arrive. Works alongside Yoast SEO, Rank Math, All in One SEO, SEOPress and The SEO Framework.
Free. No subscription, no premium version, no account, no personal data. Two optional features contact external services and are off until you enable them – see „External services“ below.
AI statistics
- Which AI reads which page for which term – every access by ChatGPT-User, GPTBot, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot, Perplexity-User, Bingbot, Bytespider, Amazonbot, CCBot and more is logged and mapped to the focus term of the page.
- The three bot classes explained: Agent bots fetch your page live because a human just asked an AI about it. Retrieval bots build the index AI answers cite from. Training bots only feed models. The dashboard separates them, because they mean completely different things for your business.
- Human visitors from AI answers: people who click your link inside ChatGPT, Perplexity, Gemini, Copilot & co. – detected via referrer and via utm_source (ChatGPT tags its outbound links, which survives even stripped referrers).
- Bot identity verification (opt-in): user agents can be faked. Enable verification and every hit is checked against the official IP ranges published by OpenAI, Anthropic, Perplexity, Google and Microsoft – impostors are flagged separately.
- Counts AI visitors even behind full-page caches: an opt-in, sub-1-kB beacon reports visits from AI answers that server-side tracking cannot see (no cookies, no IPs, no external service).
- Weekly email report (opt-in): totals with trend, top bots, AI visitors, most-read pages and open issues – sent only when there was AI activity.
- AI column in your content lists: see AI accesses of the last 30 days next to every post and page.
- Modern React dashboard: interactive stacked timeline (tooltips, zoom brush, toggleable series), KPI cards with sparklines and change vs. the previous period, bot-class donut, top bots, term × AI matrix, landing pages, 7/30/90-day ranges, CSV export.
- Built to scale: raw hits are compressed into a daily aggregate table after 7 days, so the dashboard stays fast on busy sites.
- WP-CLI:
wp geoins stats,export,report,cleanup,refresh-ranges,selftest.
GEO optimizations – always with a benefit explanation
- AI crawler control (robots.txt): block or allow each AI bot individually, grouped by what blocking actually costs you. Blocking training bots does not affect whether AI answers can cite you; blocking retrieval/agent bots removes you from AI answers – the UI points this out clearly.
- llms.txt generator: a machine-readable Markdown summary of your site at /llms.txt. Honest explanation included: big crawlers rarely fetch it yet, but it costs nothing and helps AI agents.
- llms-full.txt + Markdown endpoints: your complete key content as clean Markdown in one file, and a Markdown version of every page by appending .md to its URL (advertised via a link tag) – pure content, cheap for AI agents to read.
- Live GEO checks while you write: in the block editor, the 13-point checklist updates as you type, right in the sidebar.
- Structured data (JSON-LD): WebSite, Organization/Person, Article with dates and author, breadcrumbs – plus automatic FAQ schema from question headings (H2/H3 ending in “?”).
- Meta description & Open Graph fallbacks – only when no other SEO plugin is active, so nothing is ever duplicated.
- GEO check per post: a 13-point checklist (direct answer first, question headings, lists/tables, concrete numbers, internal links, image alt text, freshness, author bio …) – every check explains why AI systems care.
- Site status panel: visibility, robots.txt analysis, permalinks, sitemap, llms.txt, IndexNow, schema – traffic-light simple.
- Content & freshness signals: exact lastmod times in the XML sitemap, an optional visible „Updated on“ date, and an optional auto table of contents with citable heading anchors.
- Author E-E-A-T: job title + profile URLs per author feed the article schema; author archives ship ProfilePage structured data.
- IndexNow (opt-in): new and updated content is pushed to Bing & co. within minutes. Bing feeds Copilot and parts of ChatGPT search – faster indexing means faster AI citations.
- „How it works“ page: a plain-language explainer for non-technical users – what GEO is, how the plugin works, and an honest assessment of what results to expect.
Plays nicely with your SEO plugin
Yoast SEO, Rank Math, All in One SEO, SEOPress and The SEO Framework are detected automatically. Wille GEO then leaves schema and meta tags to them and only adds what they don’t do: AI tracking, llms.txt, AI robots control and GEO content checks.
Privacy
- No IP addresses stored, no cookies set, no fingerprinting.
- No external requests by default. The only exceptions are two opt-in features, documented in „External services“ below.
- Configurable data retention with automatic cleanup.
- Data is only removed on uninstall if you opt in.
About the author
Wille GEO is developed and maintained by Lucas Wille, a web developer from Magdeburg, Germany, who builds websites and AI automations: https://lucaswille.de/
Found a bug or have an idea? Open a topic in the support forum. And if the plugin helps you, a review on WordPress.org is the best way to say thanks – it helps other site owners find it.
External services
The plugin works without any external service. Two optional features, both off by default, connect to third-party services. Nothing is sent on activation; nothing is sent to the plugin author.
Bot identity verification (opt-in, setting „Verify bot identity against official IP ranges“)
Used to check whether a visitor that claims to be an AI crawler really comes from that company. When enabled, the plugin downloads the public lists of crawler IP ranges once a day (WP-Cron) from the services below. These are plain GET requests for public JSON files; no data about your site or your visitors is sent, apart from the technical request itself (your server’s IP address and a user agent naming the plugin). Visitor IPs are compared locally in memory and never stored or transmitted.
- OpenAI – https://openai.com/gptbot.json, https://openai.com/searchbot.json, https://openai.com/chatgpt-user.json. Terms of use: https://openai.com/policies/terms-of-use/ – Privacy policy: https://openai.com/policies/privacy-policy/
- Anthropic – https://claude.com/crawling/bots.json. Terms: https://www.anthropic.com/legal/commercial-terms – Privacy policy: https://www.anthropic.com/legal/privacy
- Perplexity – https://www.perplexity.ai/perplexitybot.json, https://www.perplexity.ai/perplexity-user.json. Terms of service: https://www.perplexity.ai/hub/legal/terms-of-service – Privacy policy: https://www.perplexity.ai/hub/legal/privacy-policy
- Google – https://developers.google.com/static/search/apis/ipranges/special-crawlers.json. Terms of service: https://policies.google.com/terms – Privacy policy: https://policies.google.com/privacy
- Microsoft (Bing) – https://www.bing.com/toolbox/bingbot.json. Services agreement: https://www.microsoft.com/en-us/servicesagreement – Privacy statement: https://www.microsoft.com/en-us/privacy/privacystatement
IndexNow (opt-in, setting „Ping IndexNow on publish and update“)
Used to notify search engines (Bing, Seznam, Naver and others) as soon as content changes, so it is recrawled sooner. When enabled, each time a post is published, updated or deleted the plugin sends the post’s URL, your site’s host name and the IndexNow key of your site to https://api.indexnow.org/indexnow, which shares it with the participating search engines. Once a day the plugin also requests its own key file from your site to make sure the engines can verify it. No visitor data is sent.
- IndexNow terms: https://www.indexnow.org/terms – documentation: https://www.indexnow.org/documentation
- The shared endpoint api.indexnow.org is operated by Microsoft: Privacy statement https://www.microsoft.com/en-us/privacy/privacystatement
Weekly email report (opt-in)
Sent with your site’s own wp_mail() configuration to the address you enter; the plugin itself does not contact a mail service.
Third-party libraries
The statistics dashboard bundles the following open-source libraries into assets/js/geoins-dashboard.js (no CDN, no external requests; license headers are preserved in the bundle):
- React and ReactDOM – Copyright (c) Meta Platforms, Inc. and affiliates. Released under the MIT License.
- Apache ECharts – Copyright (c) The Apache Software Foundation. Released under the Apache License 2.0 (GPL-compatible).
- Simple Icons (selected brand icon paths) – released under CC0 1.0; all trademarks remain the property of their respective owners and are used for identification only.
The license headers of these libraries are kept in the bundle, and the readable source of the bundle ships with the plugin in src/dashboard/. Full license texts:
- MIT License: https://opensource.org/licenses/MIT
- Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0
- CC0 1.0: https://creativecommons.org/publicdomain/zero/1.0/
Snímky obrazovky







Instalace
- In your dashboard go to Plugins Add New, search for „Wille GEO“ and click Install, then Activate. (Or upload the ZIP under Plugins Add New Upload Plugin.)
- Open Wille GEO Settings. Tracking, llms.txt, Markdown endpoints and sitemap freshness work right away; everything that sends data anywhere (bot verification, IndexNow, email reports) stays off until you switch it on.
- Optional: give your key posts a focus term in the „GEO check“ panel of the editor, so the statistics can map AI accesses to topics.
- Open Wille GEO AI Statistics: until the first AI crawler visits (usually within a few days), it shows what blocks AI systems, scores your existing content and offers an email notification for the first AI visit.
Nejčastější dotazy
-
Which term did an AI search for when it accessed my site?
-
AI crawlers do not transmit search queries – no tool can see them. Wille GEO gives you the honest, practical equivalent: you assign a focus term to each post (or the title is used), and every AI access is mapped to that term. For human visitors from AI answers, the source (ChatGPT, Perplexity …) and landing page are recorded.
-
Does this plugin slow down my site?
-
No. Tracking is a single indexed database insert, and only for requests that match a known AI signature. By default there is no JavaScript on your public pages (the optional AI-visitor beacon is under 1 kB) and no external service.
-
Do I need this if I already use an SEO plugin?
-
Yes – classic SEO plugins optimize for Google’s blue links. Wille GEO adds the AI layer: who reads your content, AI crawler control, llms.txt and AI-oriented content checks. Overlapping features are disabled automatically.
-
My SEO plugin already creates an llms.txt. What does Wille GEO add?
-
The statistics. An llms.txt only invites AI systems; Wille GEO shows which AI systems actually read which of your pages, separates training, AI search and live agent requests, counts the people who click through from AI answers and can verify bot identities against the official IP ranges. If your SEO plugin already serves an llms.txt, simply leave the llms.txt option in Wille GEO switched off.
-
Does it work with page caching?
-
Bot tracking runs in PHP; requests served entirely from a full-page cache bypass it. AI crawlers frequently request uncached variants, so bot numbers stay a solid picture (treat them as a lower bound). For human visitors from AI answers there is a fix: enable the opt-in beacon and those visits are counted in the browser – cache or no cache.
-
How many new customers will this bring me?
-
An honest answer: visitors from AI answers are still a small share of most sites‘ traffic, but the share is growing, and these visitors arrive with a clear intent – they already read an AI summary and clicked because they want more. The plugin takes care of the technical basics (crawler access, llms.txt, structured data, freshness signals) and shows you which pages AI systems read; the content quality that earns citations still has to come from you. The „How it works“ page in the plugin gives you a realistic, hype-free assessment.
-
Is the user-agent detection reliable?
-
User agents can be spoofed. By default the plugin matches the official signatures of each AI company – a very good indicator. For proof, enable the opt-in identity verification: every hit from OpenAI, Anthropic and Perplexity crawlers is then checked against the official IP ranges those companies publish, and impostors are flagged separately in your statistics.
-
Where is the source code of the dashboard?
-
The dashboard script (assets/js/geoins-dashboard.js) is built with esbuild from the readable React source that ships with the plugin in src/dashboard/. Development repository with the build and test tooling: https://github.com/lcswll/wordpress-geo
-
Is this GDPR compliant?
-
The plugin is built privacy-first: it stores no personal data at all (no IPs, no cookies, no user agents of human visitors). Bot statistics are not personal data. As with any tool, the overall compliance of your site remains your responsibility.
Recenze
Pro tento plugin nejsou žádné recenze.
Autoři
Wille GEO – AI Crawler Stats, llms.txt & AI Visibility je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.
SpolupracovníciPlugin „Wille GEO – AI Crawler Stats, llms.txt & AI Visibility“ byl přeložen do 3 jazyků. Děkujeme všem překladatelům za jejich pomoc.
Přeložte “Wille GEO – AI Crawler Stats, llms.txt & AI Visibility” do svého jazyka.
Zajímá vás vývoj?
Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.
Přehled změn
2.4.0
- New: first-run panel – until the first AI visit, the statistics page shows what keeps AI systems away from your site, scores your existing posts and pages for AI search (weakest pages first) and turns on the email notification for the first AI visit in one click.
- New: when a new AI reads your site for the first time, a notice on the WordPress dashboard tells you – also if you rarely open the plugin.
- Translations: German (formal and informal) reviewed against the German WordPress style guide and glossary; 34 more languages submitted to translate.wordpress.org.
2.3.2
- New: Live Preview on wordpress.org – try the plugin in your browser with a filled demo dashboard, no installation needed.
- Readme: more precise search tags.
2.3.1
- Security: Markdown endpoints, llms.txt and llms-full.txt escape their output – text that decodes to markup (e.g. „<script>“ in a post) can no longer reach the response; sent with X-Content-Type-Options: nosniff.
- Hardened: profile fields verify the nonce themselves, utm_source is read from the request URI, no silenced errors, robots.txt is read via the WordPress filesystem API, WP-CLI export writes via WP_Filesystem.
- Development: no check can be switched off by a code comment anymore – PHPCS ignores inline annotations (database sniffs aside), Plugin Check fails on warnings.
2.3.0
- Changed: the plugin is now called „Wille GEO – AI Crawler Stats, llms.txt & AI Visibility“ (slug wille-geo-ai-visibility) to avoid confusion with an unrelated product of the same name.
- Security: JSON-LD output escapes <, >, & and quotes, so no value can end the script element.
- Security: the opt-in AI-visitor beacon now requires a same-origin request and a page token signed with the site’s secret salt.
- Fixed: PHP 7.4 compatibility – no PHP 8-only string functions are used anymore.
- Changed: no translation files are bundled anymore; translations are delivered by translate.wordpress.org.
- Changed: the welcome notice after activation only appears on the Plugins screen.
- Docs: new „External services“ section with what is sent, when, and links to the terms and privacy policies.
2.2.0
- New: redesigned admin screens – a brand bar with the radar logo and navigation between Statistics, Audit, Settings and the explainer on every page, plus a consistent indigo accent for buttons, toggles and filters.
- New: author credit and links – the plugin list shows „How it works“ and a rating link; the footer of the plugin’s pages credits the author.
- New: a friendly, one-time review request on the plugin’s own pages – only after two weeks of use and once AI accesses are actually being recorded. „Maybe later“ hides it for 30 days, „I already did“ for good. Never shown elsewhere in the admin.
2.1.0
- Changed: requires WordPress 6.5 or newer.
- Improved: all statistics queries use prepared identifiers for table and column names, with an allow-list for groupable columns.
- Improved: the GEO check meta box (classic editor) builds its result list with DOM methods instead of HTML strings.
- Fixed: the table of contents could empty a post if the heading scan failed on very large content – the content is now left untouched instead.
- Fixed: rarely hit error paths (CSV export without a writable output stream, missing page lists, failed regex runs on huge content) are handled gracefully.
- Development: automated test suite (unit tests, integration tests in a real WordPress on PHP 7.4 and 8.4, browser tests) and the readable dashboard source in src/dashboard/.
2.0.0
- New: visualization engine switched to Apache ECharts 6 – smoother canvas rendering, richer tooltips, a zoom slider on long ranges, legend toggling built in.
- New: AI companies treemap (share of accesses, click a company to zoom into its bots).
- New: flow diagram (Sankey) – which AI bot reads which page, band width = accesses.
- New: crawl heatmap – bot accesses by weekday and hour in your site’s timezone, so you can publish before the busy hours.
- New: site GEO score gauge on the audit page, next to the score distribution and the opportunity map.
- Improved: donuts with rounded segments and centered totals, moving-average trend for AI visitors, animated gauge/histogram; all charts honor prefers-reduced-motion.
- Verified end-to-end on a real WordPress (Playground, PHP 8.2) – zero PHP warnings across all screens.
1.9.0
- New: audit charts – an opportunity map (every AI-read page plotted by AI accesses vs. GEO score, click a dot to edit) and a score distribution histogram.
- New: dashboard charts – a bot-identity donut (verified / impostors / unchecked) when verification is on, and an AI-visitor trend line with 7-day moving average.
- New: the built-in self-test can be run from a live site via the admin-only REST route geoins/v1/selftest (44 assertions, shared with wp geoins selftest).
- Verified end-to-end on a real WordPress instance (WordPress Playground, PHP 8.2): bot and referral tracking, beacon, AI radar, alerts, llms.txt/.md endpoints with 304 revalidation, robots.txt analysis, structured data incl. author E-E-A-T, sitemap lastmod, dashboard/audit/settings screens – zero PHP warnings.
1.8.0
- New: citation alerts – the dashboard (and an opt-in daily-bundled email) tells you the moment a new AI crawls your site for the first time, the first human visitors arrive from an AI assistant, or AI visitors spike. Existing sources are seeded silently on upgrade, so nothing floods.
- New: AI radar – AI-sounding crawlers that are NOT in the registry yet are collected with their user agent and counts, so new AI systems surface instead of staying invisible. Dismiss known noise with one click; add real ones via the geoins_bots filter.
- New: site-wide GEO Audit page – every published post and page scored against the 13 checks in a sortable table (worst first), with the failed checks and the AI accesses of the last 30 days side by side. Scores are cached per post and refresh automatically when content changes.
1.7.0
- Improved: modernized admin UI – design tokens, elevated KPI cards with gradient accent bars and hover lift, a segmented pill toolbar, gradient stat bars, refined tables and status cards, smoother animated charts (respecting prefers-reduced-motion), polished toggles and a sticky save bar on the settings page. Pure visual refresh, no behavior changes.
1.6.0
- New: exact update times (lastmod) in the core XML sitemap – WordPress omits them; reliable lastmod makes engines recrawl changed pages faster, so updates reach AI answers sooner. On by default.
- New: visible „Updated on“ date on meaningfully revised posts (opt-in) – freshness is a ranking and citation signal, and the visible date is what snippets and AI answers pick up.
- New: automatic table of contents with anchor IDs on H2/H3 headings (opt-in) – every section becomes precisely citable via deep link.
- New: author E-E-A-T signals – job title and profile URLs (sameAs) on the user profile flow into the article schema, and author archives get Google’s documented ProfilePage structured data.
- New: two more GEO checks – at least one internal link, and alt text on all images (13 checks total, live in the editor as always).
- New: .md endpoints answer conditional requests (Last-Modified / 304) – cheaper recrawls for AI agents.
- New: status check for pretty permalinks (required by the .md endpoints and the IndexNow key file).
1.5.1
- Improved: the robots.txt status check now reads and analyzes a physical robots.txt instead of blanket-warning about it. A file that blocks no citation-relevant AI bots and matches your configured blocks is reported as fine (green); the check warns specifically when the file blocks bots that put you into AI answers, when it blocks ALL crawlers, or when your configured blocks are missing from it. The settings page notice is analysis-aware too.
- New: wp geoins selftest covers the robots.txt analyzer (12 new assertions), including BOM handling, wildcard syntax (Disallow: /*), version-suffixed tokens (GPTBot/1.0) and exception groups.
- Improved: the analyzer resolves the real web-root robots.txt on „WordPress in its own directory“/Bedrock layouts and refuses to judge files larger than the 500 KiB crawler processing limit.
1.5.0
- New: filter the entire dashboard by AI company – one click on OpenAI, Anthropic, Perplexity, Google, Microsoft & co. filters totals, timeline, bots, visitors, the term matrix, landing pages and the CSV export. Chips appear for the AIs active in the selected range.
- New: brand icons everywhere – top bots, AI visitor sources, the term matrix and the filter chips show each AI’s mark (Simple Icons, CC0 collection). Brands that do not permit icon redistribution (OpenAI, Microsoft, Amazon …) get clean monogram badges in their brand colors.
1.4.0
- New: the statistics dashboard is now a modern React app – interactive stacked timeline with tooltips, zoom brush (30/90 days) and clickable legend to toggle series, sparklines in the KPI cards, a donut of bot classes, horizontal bar charts for top bots and AI referral sources, loading skeletons and a friendly first-run screen.
- New: REST API endpoint (geoins/v1/dashboard, admin-only) replaces the admin-ajax data endpoint.
- Note: charts are rendered with Recharts (MIT), bundled locally – no CDN, no external requests. Build source: src/dashboard/ in the development repository (see plugin homepage).
1.3.0
- New: weekly email report (opt-in) – totals with trend, top bots, AI visitors, most-read pages and open issues; sent only when there was AI activity.
- New: IndexNow integration (opt-in) – new and updated content is pushed to Bing & co. within minutes; key file is generated and served automatically.
- New: cache-proof AI visitor counting (opt-in) – a sub-1-kB browser beacon counts visitors from AI answers even when pages are served from a full-page cache.
- New: „How it works“ page – a plain-language explainer of GEO, the plugin, and realistic expectations, written for non-technical users.
- New: WP-CLI commands – wp geoins stats / export / report / cleanup / refresh-ranges / selftest.
- New: „AI (30d)“ column on the posts and pages lists shows AI accesses per item.
- New: bot identity verification now also covers Google (GoogleOther) and Microsoft (Bingbot) via their official IP lists.
- New: 8 more AI crawlers recognized – Applebot, YouBot, PetalBot, AI2Bot, Cohere, Diffbot, Timpibot, Omgilibot (26 total).
- New: article schema now includes keywords (focus term + tags).
- New: AI bot fetches of .md pages, llms.txt and llms-full.txt now appear in the statistics (previously these endpoint hits were invisible).
- Improved: referral dedupe is now per-visitor (salted, expiring hash – nothing stored), so several people arriving from the same AI answer within a minute are all counted.
- Improved: visits through a canonical redirect are no longer counted twice under two paths.
- Improved: statistics windows now partition rolled-up days cleanly – totals, trend arrows and the daily chart are consistent.
- Fixed: .md endpoints and dashboard links now work correctly on subdirectory installs.
- Fixed: a settings save while verification was off no longer wipes the proxy/CDN header choice.
- Fixed: network-wide deactivation now clears the cron events on every subsite; uninstall clears them too.
- Fixed: uninstall now also removes llms.txt pins and all new options.
1.2.0
- Fixed: bot identity verification now works behind Cloudflare and other proxies/CDNs – declare your setup in the settings and the original visitor IP is used. Without this, every real bot behind a CDN looked like an impostor.
- Fixed: word counts are now Unicode-aware (umlauts and accents no longer split words) – affects the GEO checks and the wordCount in structured data.
- Improved: the live editor checks are debounced, keeping the editor smooth on long posts.
- New: feature content in llms.txt – a checkbox on the edit screen pins your most important pages into a „Key content“ section, listed first in llms.txt and llms-full.txt.
- New: sameAs profiles in structured data (one URL per line) – AI systems recognize you as one consistent entity (E-E-A-T).
- New: quick actions „Block all training bots“ / „Allow all bots“ in the crawler settings.
1.1.0
- New: opt-in bot identity verification against the official IP ranges of OpenAI, Anthropic and Perplexity – impostors are flagged.
- New: live GEO checks in the block editor sidebar (updates while you type).
- New: llms-full.txt and Markdown endpoints (.md URL for every page, advertised via link tag).
- New: CSV export and change vs. previous period in the dashboard.
- New: welcome pointer after activation.
- Improved: daily aggregate table keeps the dashboard fast on busy sites; term matrix now runs on a single query.
- Improved: referral double-count protection (60-second window).
- Fixed: full multisite support (network activation, new subsites, uninstall).
1.0.0
- Initial release: AI bot tracking, AI referral tracking, statistics dashboard, robots.txt AI control, llms.txt generator, JSON-LD schema with auto-FAQ, meta tags, per-post GEO checks, EN/DE translations.
