Be Found and Cited by AI.
For a long time, the goal was to master SEO and rank on Google. Now the game has changed: with GEO (Generative Engine Optimization), your site can be found and cited by AI models like ChatGPT, Claude, Gemini, Perplexity, and others.
GEO Rank Optimizer covers both sides of AI search.
GEO (Generative Engine Optimization) is about being the source a generative engine cites by name.
AEO (Answer Engine Optimization) is about structuring your content so those engines can lift it as the direct answer. This plugin is the AI SEO layer that handles both, on top of whatever you already do for Google.
Who it is for
This plugin is built for bloggers and publishers who want their articles quoted instead of ignored, WooCommerce stores that want their products named when someone asks an AI for a recommendation, agencies running AI visibility for client sites, and anyone who wants to know whether AI crawlers are actually reading their content.
It is designed to sit alongside your existing SEO plugin, not replace it. GEO Rank Optimizer reads the data you already filled in — it picks up meta titles, Open Graph fields and focus keywords from Yoast SEO, Rank Math and All in One SEO instead of asking you to type them again, and its AI crawler rules are appended to robots.txt after those plugins run, so it never overwrites what they wrote.
With the GEO Rank Optimizer plugin:
- A GEO Score panel right in the post editor. Open any post, click Analyze, and the sidebar panel scores it against 40+ criteria and lists exactly what to fix — no leaving the editor, no separate dashboard, no account to connect.
- A GEO Score column on your Posts list. See at a glance which articles are ready to be cited and which are dragging your site down, and fix the weakest ones first.
- Full GEO Diagnostics for each post across 8 categories, with practical improvement recommendations.
- AI Bot Tracker — monitor which AI bots are visiting your site, how often, and which pages they read.
- Automatic generation of llm-full.txt, llms.txt, ai.txt, and robots.txt — the files AI models read to understand your site.
- AI bot access control via robots.txt.
- Structured Schema Markup and Open Graph generation for posts.
- Agent-readiness check for the emerging ACP and UCP manifests (see below).
- Dashboard with your site''''s average score, score history, and lists of your highest and lowest performing posts.
- Dashboard export and public sharing.
- Competitor analysis for AI visibility.
No complex setup required: install, activate, and your site starts speaking the language of AI.
The future of search isn't a link. It's a citation.
Agent Ready: the ACP and UCP manifests
AI agents are starting to browse — and buy — on their own, and before they do they look for a manifest at /.well-known/agent.json. GEO Rank Optimizer checks whether your site publishes one, and whether it publishes the UCP manifest alongside it, right on the dashboard next to your llms.txt and ai.txt status.
It runs the same check against any competitor you enter, so you can see who in your market is already agent-ready and who is not. This is still an emerging standard, which is exactly why it is worth knowing where you stand before your competitors do.
Generating the agent.json manifest for a WooCommerce store, following the ACP (Agentic Commerce Protocol) standard, is available in Pro + WooCommerce, together with llms-shop.txt — a structured product catalog for commerce agents.
Analysis Categories
- Generative Search - Quick answers, FAQ structure, definitions
- Structure - Heading hierarchy, paragraphs, lists
- Semantic - Keywords, variations, named entities
- Readability - Flesch-Kincaid, active voice, transitions
- Context - Introduction, conclusion, internal/external links
- Authority - Author info, dates, sources cited
- Technical Formatting - Images, videos, tables, code blocks
- Technical SEO - Meta title, description, Open Graph, Schema
Why GEO Matters
Traditional SEO focuses on ranking in search results. GEO focuses on being
cited by AI in generative responses. As AI-powered search becomes more prevalent, optimizing for AI understanding is crucial for visibility.
3.9.39
- Interface: the contextual help in the sidebar now follows the screen you are on, and sites running WooCommerce see information about the store features.
- Fixed: the "Most Popular" badge was cut off at the top of the plans page, and the three plan cards now share the same height.
3.9.30
Translation fixes: "OpenAI" was rendering as "Open" in every language
- A find-and-replace over the translation catalogues had turned "OpenAI" into "Open" in Portuguese, Spanish, French and German — visible in the connection-test message, the API error message and the Pro feature description. Fixed in all four.
- French: repaired a broken string that appended duplicate HTML and extra placeholders after the link, which rendered as literal markup on screen.
- French: corrected three score thresholds that disagreed with the original (60 where the source says 50).
- French: restored missing accents in eight WooCommerce strings, fixed a gender error, replaced anglicisms, restored content dropped from four strings, and applied French sentence-case capitalisation across roughly 50 labels.
3.9.29
Fix: the button icon alignment rule now actually applies
- The general rule added in 3.9.28 was being overridden and was missing the one declaration that matters: making the icon span itself a centered flex box. A dashicon's glyph sits at the bottom of its own box, so
line-height: 1 alone never centered it. Both corrected.
3.9.28
Fix: dashicon alignment in every plugin button, once
- The "Test Connection" buttons had the same misaligned-icon problem just fixed in the delete buttons. Rather than patch a fourth button class, the alignment is now a single rule covering every button inside the plugin's admin pages, so new buttons inherit it automatically.
3.9.27
Fix: trash icons misaligned in the Settings danger buttons
- The icons in "Delete All Analyses" and "Delete AI Bot Tracker" sat below the label baseline. The
.button-danger .dashicons rule set only the colour, so the icon inherited wp-admin's line-height and dropped. Same fix already applied to the Save Settings button in v3.9.11. CSS-only change.
3.9.26
AI Bot Tracker: larger card subtitles
- The subtitle under each KPI card went from 11px to 19px, with line-height added so it stays readable at the new size. The text explaining what each kind of bot visit means was too small to register next to the 28px figure above it.
3.9.25
AI Bot Tracker: the four cards now say what each visit means
- The card subtitles no longer repeat the star ranking. "Highest GEO value" and "High GEO value" said nothing about what actually happened; they now read "Read to answer someone" and "Indexed for AI answers". The stars continue to carry the ranking.
- AI Assistant visits (ChatGPT-User, Google-Agent, Perplexity-User and similar) only fire when a real person asks an assistant something and it fetches the page to answer. That is the closest observable signal to being used in an AI answer, and the card now says so.
- Translated into all five bundled locales.
3.9.24
Listing: Agent Ready section and feature order
- Added an "Agent Ready" section documenting the /.well-known/agent.json (ACP) and /.well-known/ucp checks on your own site and on competitors — capabilities the plugin already had but that the listing never mentioned.
- The GEO Score panel in the post editor and the GEO Score column on the Posts list are now the first two items in the feature list, ahead of the diagnostics detail.
- Corrected "40 different criteria" to "40+ criteria across 8 categories", matching the FAQ.
- No functional changes: readme.txt only.
3.9.23
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce bulk analysis is PRO-only).
3.9.22
Directory listing: tags, positioning and compatibility clarity
- Replaced three tags that were not ranking (
ai, geo, llm) with answer engine optimization, llms.txt and ai seo, keeping generative engine optimization and adding aeo.
- Rewrote the short description to cover GEO, AEO, AI SEO, llms.txt and schema within the 150-character limit.
- Added a paragraph distinguishing GEO (being cited) from AEO (being the answer), and a "Who it is for" section naming the audiences the plugin serves.
- Documented that the plugin reads meta titles, Open Graph fields and focus keywords from Yoast SEO, Rank Math and All in One SEO, and that its AI crawler rules are appended to robots.txt after those plugins run.
- Added two FAQ entries: the difference between GEO and AEO, and compatibility with Yoast SEO and Rank Math, including the note that schema output should be enabled in only one plugin to avoid duplicate markup.
- No functional changes: readme.txt only.
3.9.21
Refined contextual Pro block in the sidebar
- The Pro Version button and the contextual card are now a single visual block. Fixed a 3px left misalignment between them caused by the base sidebar rule applying a 3px left border that the Pro button repainted in its own colour.
- Removed the duplicated "Pro Version" heading from the card, since the button directly above already carries it.
- The call to action is now a solid button ("Unlock now") with a 30-day guarantee note, replacing the previous plain text link.
- The Dashboard message now reads "Rewriting with AI, scheduled LLMs, advanced Bot Tracker and much more!". Translated into all five bundled locales.
3.9.20
Contextual Pro information in the sidebar and translation fixes
- Added a contextual Pro Version card at the bottom of the plugin sidebar, showing the Pro feature relevant to the screen the user is on. It only appears inside the plugin's own admin pages, uses static local text and makes no remote requests.
- Fixed missing translations for the LLM file accessibility messages, which were displayed in English regardless of the site language. All five bundled locales now translate them.
3.9.19
Cleanup: free build no longer contains unused AI-provider code
- Removed the dormant AI provider integration (API-key handling, connection test and external AI calls) that was not usable in the free version, so the free build makes no AI service connections. The External Services section now accurately documents the Freemius opt-in and the competitor-URL fetching the free version performs. Added an Upgrade Notice.
3.9.18
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version.
3.9.17
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce schema/diagnostic is PRO-only).
3.9.16
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce diagnostic is PRO-only).
3.9.15
Fix: post score no longer penalized for missing optional elements
- The Technical Formatting criteria for code, videos, tables and blockquotes are now treated as not-applicable when the element is absent, instead of scoring 0. Posts without code/tables/etc. are no longer penalized and no longer get the corresponding recommendations. When the element is present, it is still scored as before.
3.9.14
Improvement: clearer post recommendations (cohesion vs. transition)
- The "Few transition words" recommendation now describes what it actually measures — sequence/example markers (first, next, for example, in summary) — instead of repeating the logical-connective examples used by "Low textual cohesion". The two no longer look like duplicates. Updated across all locales.
3.9.13
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce diagnostic is PRO-only).
3.9.12
Improvement: competitor re-analysis cooldown
- Reduced the re-analysis cooldown from 1 hour to 30 seconds (it only guards against accidental rapid re-clicks against external sites).
- Your own domain is now exempt from the cooldown entirely, so re-analyzing your own site is always instant. Updated the wait message (seconds) across all locales.
3.9.11
Fix: icon alignment in the Settings buttons
- The icons in the "Generate Now", "Delete" and "Add social profile" buttons are now vertically centered with their labels (and sized consistently). CSS-only change.
3.9.10
Fix: search icon alignment in the Analyze / Re-analyze buttons
- The magnifying-glass icon is now vertically centered with the button label on the Competitors tab. CSS-only change.
3.9.9
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version.
3.9.8
Maintenance: version sync
- Internal version bump to keep parity with the PRO build. No functional changes in the free version.
3.9.7, 3.9.6, 3.9.5
Fix: Diagnostics action buttons keep their pill shape in all states
The "See Recommendations / Edit Post / View Post" anchors were distorted by wp-admin's native anchor styles across
:active and
:focus (square shape, then a blue ring, then a red rectangular border). Added
:active/
:focus rules pinning the pill shape and switched the focus ring to
:focus-visible (keyboard-only). CSS-only fix.
3.9.4
Fix: Competitors tab — Analyze and Delete buttons now work
A nonce action name mismatch (introduced in v3.7.5 when admin JS was externalized) made
check_ajax_referer() fail silently in the
?tab=competitors page. Nonce aligned with the handlers. Same fix applied to the step-6 onboarding auto-refresh, which was failing for the same reason.
3.9.3
Defense-in-depth: explicit nonce check on bulk-action handler
GeoIaWpCore::handle_bulk_actions() now calls
check_admin_referer( 'bulk-posts' ) explicitly. WordPress core already verifies this nonce before dispatching the filter, but the explicit check makes the security contract visible to auditors and protects against future refactors. No functional change.
3.9.2
Plugin Check cleanup: zero errors, zero warnings
Tested up to bumped to 7.0. Changelog rewritten to fit the 5000-char limit (full history in
CHANGELOG.md). All
foreach loop variables in 8 admin templates renamed to the
$georankopt_* prefix to satisfy
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound. Zero functional changes.
3.9.1
Fix: Save Settings button — icon and text now stay white in all states
Corrected the CSS selector targeting (was using a legacy ID; now uses the actual
.geo-save-config-btn class). The dashicon and label remain white on the pink background during base, hover, and
:disabled (saving) states. Hover suppressed during save. Same fix in FREE and PRO.
3.9.0
Fix: Save Settings button visual during saving state
:disabled rules added that preserve pink background and white text/icon (overriding the browser's
graytext default). Hover effect suppressed while disabled. Consolidates several UI polish fixes since v3.8.0 (onboarding button "square flash", sidebar focus ring, Bot Tracker legend/disclaimer parity).
3.8.9, 3.8.8, 3.8.7
UI polish:
:focus-visible on sidebar tabs to hide blue ring after mouse click while preserving keyboard accessibility. FREE/PRO parity for Bot Tracker (User-Agent disclaimer + "What each category means" 4-card legend in 5 locales).
3.8.6
Definitive fix: onboarding navigation buttons converted from <a> to <button>
Root cause of the "button turns square on click" glitch: anchors inherited wp-admin
:active styles (border-radius: 3px, reduced padding). Converting the 5 navigation anchors to
<button type="button"> eliminates the issue entirely. The defensive CSS
:active rule remains as secondary safeguard.
3.8.5, 3.8.4, 3.8.3, 3.8.2, 3.8.1
Iterative attempts to fix the onboarding button "square flash" via CSS specificity, scoped overrides, and
:active declarations. All superseded by the structural fix in v3.8.6. v3.8.3 reverted earlier CSS changes that had inadvertently broken the hover state.
3.8.0
Post-Google I/O 2026 release
- AI Bot Tracker: 6 new Google user-agents recognized (Google-Agent — Project Mariner equivalent of ChatGPT-User; Google-Read-Aloud; google-speakr; Storebot-Google; GoogleOther-Image; GoogleOther-Video).
update_date criterion now composite: 75% recency + 25% renderable dateModified in JSON-LD. Denominator unchanged (5 criteria in Authority).
- PRO+WOO: UCP-ready WooCommerce schema (GTIN, hasMerchantReturnPolicy, OfferShippingDetails).
llms-shop.txt gained a UCP-Ready header signal and per-product GTIN: line.
3.7.5
Resolves WP.org Plugin Review feedback (T5, 21 May 2026)
- All admin tab JavaScript moved to dedicated external files under
assets/js/admin/, enqueued via wp_register_script() + wp_enqueue_script(). PHP data passed via wp_localize_script(); translatable strings via wp.i18n API with wp_set_script_translations().
handle_public_share() rewritten: wp_verify_nonce() is the first action after reading $_GET['_wpnonce']. Shareable-link hash_equals() is an explicit dual-factor fallback.
- All
$geo_* locals renamed to $georankopt_*. Deleted includes/Helpers/GeoRankOptInlineScriptHelper.php.
3.7.4
Fix: Dashboard could show contradictory file-accessibility status for LLM files. Now re-verifies after each generation/deletion; upgrade clears stale alerts.
3.7.3
Resolves
WP.org review T4: wp_enqueue for inline assets, ob_start refactored, menu position, ABSPATH guards, all
geo_* globals renamed to
georankopt_*.
Earlier versions
For releases 3.5.0 through 3.7.2, see
CHANGELOG.md in the plugin directory.