{"id":291603,"date":"2026-06-23T18:38:15","date_gmt":"2026-06-23T18:38:15","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/geo-rank-optimizer-generative-engine-optimization\/"},"modified":"2026-06-23T21:19:47","modified_gmt":"2026-06-23T21:19:47","slug":"geo-rank-optimizer","status":"publish","type":"plugin","link":"https:\/\/ido.wordpress.org\/plugins\/geo-rank-optimizer\/","author":15159584,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.9.19","stable_tag":"3.9.19","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"GEO Rank Optimizer - Generative Engine Optimization","header_author":"Alex Barbosa","header_description":"Optimize your WordPress blog posts for AI engines, improving clarity, structure, and context to increase the chances of understanding, summarization, and citation in generative search responses.","assets_banners_color":"cb6d83","last_updated":"2026-06-23 21:19:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/georankoptimizer.com\/","header_author_uri":"https:\/\/georankoptimizer.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.9.19":{"tag":"3.9.19","author":"alexbarbosa","date":"2026-06-23 21:19:47"}},"upgrade_notice":{"3.9.19":"<p>Maintenance and accuracy release: cleaner free build (removed unused integration code) plus several diagnostic improvements. Recommended update.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3583772,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3583772,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3586189,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.9.19"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3583772,"resolution":"1","location":"assets","locale":"","width":1544,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3583772,"resolution":"2","location":"assets","locale":"","width":1544,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3583772,"resolution":"3","location":"assets","locale":"","width":1544,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3583772,"resolution":"4","location":"assets","locale":"","width":1544,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3583772,"resolution":"5","location":"assets","locale":"","width":1544,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3583772,"resolution":"6","location":"assets","locale":"","width":1544,"height":800}},"screenshots":{"1":"Guided onboarding to prepare your site for AI search","2":"Dashboard with AI visibility and GEO Score overview","3":"Post GEO diagnostics with score and optimization criteria","4":"AI Bot Tracker for visits from AI assistants and crawlers","5":"Competitor analysis for GEO files and AI directives","6":"Settings and AI file generation (llm-full.txt, llms.txt, ai.txt)"}},"plugin_section":[262246],"plugin_tags":[2353,245227,268601,2591,226124],"plugin_category":[49],"plugin_contributors":[268602],"plugin_business_model":[],"class_list":["post-291603","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-ai","plugin_tags-generative-engine-optimization","plugin_tags-generative-search","plugin_tags-geo","plugin_tags-llm","plugin_category-maps-and-location","plugin_contributors-alexbarbosa","plugin_committers-alexbarbosa"],"banners":{"banner":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/banner-772x250.png?rev=3586189","banner_2x":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/banner-1544x500.png?rev=3583772","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/icon-256x256.gif?rev=3583772","icon_2x":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/icon-256x256.gif?rev=3583772","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-1.png?rev=3583772","caption":"Guided onboarding to prepare your site for AI search"},{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-2.png?rev=3583772","caption":"Dashboard with AI visibility and GEO Score overview"},{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-3.png?rev=3583772","caption":"Post GEO diagnostics with score and optimization criteria"},{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-4.png?rev=3583772","caption":"AI Bot Tracker for visits from AI assistants and crawlers"},{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-5.png?rev=3583772","caption":"Competitor analysis for GEO files and AI directives"},{"src":"https:\/\/ps.w.org\/geo-rank-optimizer\/assets\/screenshot-6.png?rev=3583772","caption":"Settings and AI file generation (llm-full.txt, llms.txt, ai.txt)"}],"raw_content":"<!--section=description-->\n<p><strong>Be Found and Cited by AI.<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p><strong>With the GEO Rank Optimizer plugin:<\/strong><\/p>\n\n<ul>\n<li>Full GEO Diagnostics for each post based on 40 different criteria, with practical improvement recommendations.<\/li>\n<li>AI Bot Tracker \u2014 monitor which AI bots are visiting your site, how often, and which pages they read.<\/li>\n<li>Automatic generation of llm-full.txt, llms.txt, ai.txt, and robots.txt \u2014 the files AI models read to understand your site.<\/li>\n<li>AI bot access control via robots.txt.<\/li>\n<li>Structured Schema Markup and Open Graph generation for posts.<\/li>\n<li>Dashboard with your site's average score, score history, and lists of your highest and lowest performing posts.<\/li>\n<li>Dashboard export and public sharing.<\/li>\n<li>Competitor analysis for AI visibility.<\/li>\n<\/ul>\n\n<p>No complex setup required: install, activate, and your site starts speaking the language of AI.<\/p>\n\n<p><strong>The future of search isn't a link. It's a citation.<\/strong><\/p>\n\n<h4>Analysis Categories<\/h4>\n\n<ol>\n<li><strong>Generative Search<\/strong> - Quick answers, FAQ structure, definitions<\/li>\n<li><strong>Structure<\/strong> - Heading hierarchy, paragraphs, lists<\/li>\n<li><strong>Semantic<\/strong> - Keywords, variations, named entities<\/li>\n<li><strong>Readability<\/strong> - Flesch-Kincaid, active voice, transitions<\/li>\n<li><strong>Context<\/strong> - Introduction, conclusion, internal\/external links<\/li>\n<li><strong>Authority<\/strong> - Author info, dates, sources cited<\/li>\n<li><strong>Technical Formatting<\/strong> - Images, videos, tables, code blocks<\/li>\n<li><strong>Technical SEO<\/strong> - Meta title, description, Open Graph, Schema<\/li>\n<\/ol>\n\n<h4>Why GEO Matters<\/h4>\n\n<p>Traditional SEO focuses on ranking in search results. GEO focuses on being <strong>cited by AI<\/strong> in generative responses. As AI-powered search becomes more prevalent, optimizing for AI understanding is crucial for visibility.<\/p>\n\n<h3>External Services<\/h3>\n\n<h4>Freemius (opt-in, licensing and upgrade flow)<\/h4>\n\n<p>This plugin uses the Freemius SDK to handle the optional account opt-in, license activation, and the upgrade flow to the premium version. When you choose \"Allow &amp; Continue\" on the opt-in screen, basic environment and usage data (such as your site URL, WordPress and PHP versions, and the active theme\/plugin list) is sent to Freemius. If you choose \"Skip\", this data is not sent.<\/p>\n\n<ul>\n<li>Service provider: Freemius, Inc.<\/li>\n<li>Data sent: site URL and basic environment\/usage data, only after you opt in<\/li>\n<li><a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>Competitor websites you analyze<\/h4>\n\n<p>The Competitor Analysis feature checks whether a competitor publishes AI\/GEO optimization files. When you enter a competitor URL and click \"Analyze\", the plugin sends HTTP requests from your server to that URL and to standard paths on the same domain (such as \/llms.txt, \/ai.txt, \/robots.txt and \/.well-known\/ files). Only the URL you provide is contacted, and only when you trigger the analysis. No data from your own site is transmitted.<\/p>\n\n<ul>\n<li>Data sent: an HTTP request to the competitor URL you enter (no data from your own site)<\/li>\n<li>When: only on your explicit action (clicking \"Analyze\")<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>geo-rank-optimizer<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to any post and look for the \"GEO Score\" metabox<\/li>\n<li>Click \"Analyze\" to get your content's GEO score and recommendations<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20geo%3F\"><h3>What is GEO?<\/h3><\/dt>\n<dd><p>GEO stands for Generative Engine Optimization. It's the practice of optimizing content to be better understood, summarized, and cited by AI engines like ChatGPT, Google AI Overview, Perplexity, and others.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20yoast%20seo%20or%20other%20plugins%3F\"><h3>Does this plugin require Yoast SEO or other plugins?<\/h3><\/dt>\n<dd><p>No. GEO Rank Optimizer works completely independently without requiring any other SEO plugins.<\/p><\/dd>\n<dt id=\"how%20is%20the%20geo%20score%20calculated%3F\"><h3>How is the GEO Score calculated?<\/h3><\/dt>\n<dd><p>The score is calculated based on 40+ criteria across 8 categories, each with different weights. Generative Search optimization has the highest weight as it directly impacts AI citability.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Will this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. The analysis runs only in the admin area when you click \"Analyze\". It does not affect frontend performance.<\/p><\/dd>\n<dt id=\"what%20languages%20are%20supported%3F\"><h3>What languages are supported?<\/h3><\/dt>\n<dd><p>English, Portuguese (Brazil), Spanish, French, and German.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>For the complete version history, see CHANGELOG.md in the plugin directory.<\/p>\n\n<h4>3.9.19<\/h4>\n\n<p><strong>Cleanup: free build no longer contains unused AI-provider code<\/strong>\n* 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.<\/p>\n\n<h4>3.9.18<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version.<\/p>\n\n<h4>3.9.17<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce schema\/diagnostic is PRO-only).<\/p>\n\n<h4>3.9.16<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce diagnostic is PRO-only).<\/p>\n\n<h4>3.9.15<\/h4>\n\n<p><strong>Fix: post score no longer penalized for missing optional elements<\/strong>\n* 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.<\/p>\n\n<h4>3.9.14<\/h4>\n\n<p><strong>Improvement: clearer post recommendations (cohesion vs. transition)<\/strong>\n* The \"Few transition words\" recommendation now describes what it actually measures \u2014 sequence\/example markers (first, next, for example, in summary) \u2014 instead of repeating the logical-connective examples used by \"Low textual cohesion\". The two no longer look like duplicates. Updated across all locales.<\/p>\n\n<h4>3.9.13<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version (the WooCommerce diagnostic is PRO-only).<\/p>\n\n<h4>3.9.12<\/h4>\n\n<p><strong>Improvement: competitor re-analysis cooldown<\/strong>\n* Reduced the re-analysis cooldown from 1 hour to 30 seconds (it only guards against accidental rapid re-clicks against external sites).\n* 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.<\/p>\n\n<h4>3.9.11<\/h4>\n\n<p><strong>Fix: icon alignment in the Settings buttons<\/strong>\n* 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.<\/p>\n\n<h4>3.9.10<\/h4>\n\n<p><strong>Fix: search icon alignment in the Analyze \/ Re-analyze buttons<\/strong>\n* The magnifying-glass icon is now vertically centered with the button label on the Competitors tab. CSS-only change.<\/p>\n\n<h4>3.9.9<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version.<\/p>\n\n<h4>3.9.8<\/h4>\n\n<p><strong>Maintenance: version sync<\/strong>\n* Internal version bump to keep parity with the PRO build. No functional changes in the free version.<\/p>\n\n<h4>3.9.7, 3.9.6, 3.9.5<\/h4>\n\n<p><strong>Fix: Diagnostics action buttons keep their pill shape in all states<\/strong><\/p>\n\n<p>The \"See Recommendations \/ Edit Post \/ View Post\" anchors were distorted by wp-admin's native anchor styles across <code>:active<\/code> and <code>:focus<\/code> (square shape, then a blue ring, then a red rectangular border). Added <code>:active<\/code>\/<code>:focus<\/code> rules pinning the pill shape and switched the focus ring to <code>:focus-visible<\/code> (keyboard-only). CSS-only fix.<\/p>\n\n<h4>3.9.4<\/h4>\n\n<p><strong>Fix: Competitors tab \u2014 Analyze and Delete buttons now work<\/strong><\/p>\n\n<p>A nonce action name mismatch (introduced in v3.7.5 when admin JS was externalized) made <code>check_ajax_referer()<\/code> fail silently in the <code>?tab=competitors<\/code> page. Nonce aligned with the handlers. Same fix applied to the step-6 onboarding auto-refresh, which was failing for the same reason.<\/p>\n\n<h4>3.9.3<\/h4>\n\n<p><strong>Defense-in-depth: explicit nonce check on bulk-action handler<\/strong><\/p>\n\n<pre><code>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.\n<\/code><\/pre>\n\n<h4>3.9.2<\/h4>\n\n<p><strong>Plugin Check cleanup: zero errors, zero warnings<\/strong><\/p>\n\n<pre><code>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.\n<\/code><\/pre>\n\n<h4>3.9.1<\/h4>\n\n<p><strong>Fix: Save Settings button \u2014 icon and text now stay white in all states<\/strong><\/p>\n\n<p>Corrected the CSS selector targeting (was using a legacy ID; now uses the actual <code>.geo-save-config-btn<\/code> class). The dashicon and label remain white on the pink background during base, hover, and <code>:disabled<\/code> (saving) states. Hover suppressed during save. Same fix in FREE and PRO.<\/p>\n\n<h4>3.9.0<\/h4>\n\n<p><strong>Fix: Save Settings button visual during saving state<\/strong><\/p>\n\n<pre><code>: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).\n<\/code><\/pre>\n\n<h4>3.8.9, 3.8.8, 3.8.7<\/h4>\n\n<p>UI polish: <code>:focus-visible<\/code> 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).<\/p>\n\n<h4>3.8.6<\/h4>\n\n<p><strong>Definitive fix: onboarding navigation buttons converted from <code>&lt;a&gt;<\/code> to <code>&lt;button&gt;<\/code><\/strong><\/p>\n\n<p>Root cause of the \"button turns square on click\" glitch: anchors inherited wp-admin <code>:active<\/code> styles (border-radius: 3px, reduced padding). Converting the 5 navigation anchors to <code>&lt;button type=\"button\"&gt;<\/code> eliminates the issue entirely. The defensive CSS <code>:active<\/code> rule remains as secondary safeguard.<\/p>\n\n<h4>3.8.5, 3.8.4, 3.8.3, 3.8.2, 3.8.1<\/h4>\n\n<p>Iterative attempts to fix the onboarding button \"square flash\" via CSS specificity, scoped overrides, and <code>:active<\/code> 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.<\/p>\n\n<h4>3.8.0<\/h4>\n\n<p><strong>Post-Google I\/O 2026 release<\/strong><\/p>\n\n<ul>\n<li>AI Bot Tracker: 6 new Google user-agents recognized (Google-Agent \u2014 Project Mariner equivalent of ChatGPT-User; Google-Read-Aloud; google-speakr; Storebot-Google; GoogleOther-Image; GoogleOther-Video).<\/li>\n<li><code>update_date<\/code> criterion now composite: 75% recency + 25% renderable <code>dateModified<\/code> in JSON-LD. Denominator unchanged (5 criteria in Authority).<\/li>\n<li>PRO+WOO: UCP-ready WooCommerce schema (GTIN, hasMerchantReturnPolicy, OfferShippingDetails). <code>llms-shop.txt<\/code> gained a <code>UCP-Ready<\/code> header signal and per-product <code>GTIN:<\/code> line.<\/li>\n<\/ul>\n\n<h4>3.7.5<\/h4>\n\n<p><strong>Resolves WP.org Plugin Review feedback (T5, 21 May 2026)<\/strong><\/p>\n\n<ul>\n<li>All admin tab JavaScript moved to dedicated external files under <code>assets\/js\/admin\/<\/code>, enqueued via <code>wp_register_script()<\/code> + <code>wp_enqueue_script()<\/code>. PHP data passed via <code>wp_localize_script()<\/code>; translatable strings via <code>wp.i18n<\/code> API with <code>wp_set_script_translations()<\/code>.<\/li>\n<li><code>handle_public_share()<\/code> rewritten: <code>wp_verify_nonce()<\/code> is the first action after reading <code>$_GET['_wpnonce']<\/code>. Shareable-link <code>hash_equals()<\/code> is an explicit dual-factor fallback.<\/li>\n<li>All <code>$geo_*<\/code> locals renamed to <code>$georankopt_*<\/code>. Deleted <code>includes\/Helpers\/GeoRankOptInlineScriptHelper.php<\/code>.<\/li>\n<\/ul>\n\n<h4>3.7.4<\/h4>\n\n<p>Fix: Dashboard could show contradictory file-accessibility status for LLM files. Now re-verifies after each generation\/deletion; upgrade clears stale alerts.<\/p>\n\n<h4>3.7.3<\/h4>\n\n<p>Resolves WP.org review T4: wp_enqueue for inline assets, ob_start refactored, menu position, ABSPATH guards, all <code>geo_*<\/code> globals renamed to <code>georankopt_*<\/code>.<\/p>\n\n<h4>Earlier versions<\/h4>\n\n<p>For releases 3.5.0 through 3.7.2, see CHANGELOG.md in the plugin directory.<\/p>","raw_excerpt":"Be found and cited by AI. Optimize your WordPress site for ChatGPT, Claude, Gemini, Perplexity, and other AI models.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/291603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=291603"}],"author":[{"embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alexbarbosa"}],"wp:attachment":[{"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=291603"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=291603"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=291603"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=291603"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=291603"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ido.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=291603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}