GEO Rank Optimizer – Generative Engine Optimization

Changelog

For the complete version history, see CHANGELOG.md in the plugin directory.

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.

Plugin Website
Visit website

Author
alexbarbosa
Version:
3.9.19
Last Updated
June 23, 2026
Requires
WordPress 6.0
Tested Up To
WordPress 7.0
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.