Title: Geolys
Author: wordfredericpress
Published: <strong>September 21, 2026</strong>
Last modified: September 21, 2026

---

Search plugins

![](https://ps.w.org/geolys/assets/icon-256x256.png?rev=3705522)

# Geolys

 By [wordfredericpress](https://profiles.wordpress.org/wordfredericpress/)

[Download](https://downloads.wordpress.org/plugin/geolys.zip)

 * [Details](https://wordpress.org/plugins/geolys/#description)
 * [Reviews](https://wordpress.org/plugins/geolys/#reviews)
 *  [Installation](https://wordpress.org/plugins/geolys/#installation)
 * [Development](https://wordpress.org/plugins/geolys/#developers)

 [Support](https://wordpress.org/support/plugin/geolys/)

## Description

Geolys helps WordPress sites optimize their content for AI answer engines
 (ChatGPT,
Perplexity, Gemini, etc.), without relying on a paid third-party API and with no
usage limit.

Features, all free and unlimited:

 1. GEO Score /100 automatically calculated every time a post or page is saved,
     based
    on heading structure, the presence of a summary at the top of the article, the 
    use of lists/tables, paragraph length, and the presence of a meta description.
 2. Automatic generation of schema.org FAQPage or HowTo markup from existing content
    (
    detection of question/answer pairs and step lists), with manual validation by the
    user before publishing — no data is ever sent to an external service.
 3. One-click automatic fixes (duplicate H1, heading hierarchy jump, paragraph too
    
    long, enumerative passage turned into a list, question turned into an H2 heading
 4.  * answer, generation of a missing meta description): mechanical, 100% local, no
       
       generative AI, no account needed, no page limit.
 5. Prioritization dashboard: lists all content with its score, sorted by importance
    (
    cross-referenced with traffic data if Google Site Kit is active, otherwise by age
    and absence of schema).

Compatible with Yoast SEO and Rank Math without replacing them (the plugin reads

their existing meta description instead of duplicating it).

This plugin never makes any outbound network request: everything runs in local
 
PHP, no content data ever leaves your site.

### Pro extension (sold separately)

An optional, paid extension, **“Geolys — Advanced AI & GEO”**, distributed
 outside
WordPress.org (dedicated portal), adds features that don’t exist in this free plugin:
fix rewriting via generative AI, publishing of aligned sitewide JSON-LD entities(
Organization/LocalBusiness), automatic generation and updating of an llms.txt file,
an AI bot detection dashboard (GPTBot, ClaudeBot…), and URL submission to indexers
via the IndexNow protocol.

This free plugin remains 100% functional and unlimited without it; the extension

only hooks into it via documented extension points (`geolys_corrector_instance`,
geolys_faq_schema, `geolys_howto_schema` filters, `geolys_dashboard_upsell` action).

### Technical notes

 * No outbound network request: all analysis is done in local PHP (DOMDocument,
   
   regular expressions).
 * The generated schema.org markup is stored as post meta (`_geolys_validated_schema`)
   
   and injected into the `<head>` of the corresponding public page.
 * Question/answer detection relies on: H2/H3 headings ending with “?” or starting
   
   with French interrogative phrases (“Comment”, “Pourquoi”, “Qu’est-ce que”…).
 * Automatic fixes manipulate Gutenberg blocks directly via `parse_blocks()` /
    
   serialize_blocks() so the editor structure is never corrupted. As a precaution,
   they don’t touch nested blocks (columns, groups), and may simplify internal formatting(
   bold, links) on the affected passage — a confirmation is always requested before
   applying a fix.
 * Interchangeable fix engine architecture (`GEOLYS_Corrector_Interface`): the local
   
   mechanical engine (`GEOLYS_Rule_Based_Corrector`) is the default and only engine
   included in this plugin. The `geolys_corrector_instance` filter lets the optional
   Pro extension provide an AI engine instead, with no changes to this code.

## Installation

 1. Upload the `geolys` folder to `/wp-content/plugins/`.
 2. Activate the plugin from the WordPress “Plugins” menu.
 3. Open a post or page: the “GEO Score” box appears in the sidebar.
 4. Check the “Geolys” menu in the admin area for the overview.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Geolys” is open source software. The following people have contributed to this 
plugin.

Contributors

 *   [ wordfredericpress ](https://profiles.wordpress.org/wordfredericpress/)

[Translate “Geolys” into your language.](https://translate.wordpress.org/projects/wp-plugins/geolys)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/geolys/), check out
the [SVN repository](https://plugins.svn.wordpress.org/geolys/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/geolys/) by [RSS](https://plugins.trac.wordpress.org/log/geolys/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.1

 * Renamed the plugin from “GEO Local FR” to **Geolys** (display name, slug,
    text
   domain, PHP classes, hooks, CSS classes) following a WordPress.org plugin review
   requesting a more distinctive name, less likely to be confused with other GEO/
   AI-search optimization plugins in the directory.
 * Fixed: plugin activation no longer runs a synchronous, unbounded analysis
    of
   every published post/page (`posts_per_page => -1`), which could exhaust memory
   or time out on sites with a large amount of content. The initial analysis now
   runs in the background, in small batches of 20 items via WP-Cron, without blocking
   activation.
 * Security hardening: the JSON-LD schema output in `<head>` is now
    re-encoded 
   with `wp_json_encode()` right before output instead of relying on a case-sensitive
   string replacement, removing a theoretical case-based bypass (e.g. an uppercase`
   </SCRIPT>` sequence).
 * Security hardening: the annotated preview screen now runs the rendered
    content
   through `wp_kses_post()` as a final allowlist sanitization step right before 
   output, in addition to the existing `the_content` filtering.
 * Removed the bundled `languages/` translation files (`.po`/`.mo`/`.pot`):
    translations
   are now handled entirely through translate.wordpress.org, as recommended for 
   plugins hosted on WordPress.org.
 * Added the plugin author as a listed contributor in this readme.

#### 3.0.0

 * Brought into compliance with the WordPress.org Detailed Plugin Guidelines (§5,
   “
   Trialware is not permitted”): the 4-free-page quota and the licensing system 
   have been completely removed — automatic fixes, previously limited, are now fully
   free and unlimited for everyone, with no Free/Pro distinction.
 * Generative-AI fixing (Google Gemini), the “Advanced AI & GEO” module (JSON-LD
   
   entities, llms.txt, AI bot detection, IndexNow submission) and Freemius license
   management have been removed from this plugin and moved to a separate Pro extension,
   sold and distributed separately (outside WordPress.org) — see the “Pro extension”
   section above.
 * New extension points for this Pro extension: `geolys_corrector_instance` filter
   (
   replace the fix engine), `geolys_faq_schema` / `geolys_howto_schema` filters (
   align JSON-LD schemas with an external entity), `geolys_dashboard_upsell` action.
 * Removed the manual `load_plugin_textdomain()` call: WordPress automatically
    
   loads this plugin’s translations, no code needed.
 * Hardened output escaping and input sanitization (nonces, AJAX inputs) per the
   
   WordPress Plugin Check tool’s recommendations.

#### 2.0.0

 * New: full “Advanced AI & GEO” module (per-site/volume license, JSON-LD entities,
   
   llms.txt, AI bot detection, IndexNow submission) — removed in 3.0.0, see above.

#### 1.5.0

 * New: “managed AI service” mode in addition to a personal Gemini key — prepared
   
   for a +€2/month offer without the customer having to manage an API key. Requires
   an external proxy server (not provided by this plugin) that holds the real key
   server-side.
 * New: automatic daily analysis via WordPress cron, which recalculates the GEO
   
   score of all published content.
 * New: email alert if a page’s score drops by more than 10 points compared to the
   
   previous analysis. No fix is ever applied automatically — only the score and 
   the alert; the fix remains manual.
 * Added the missing deactivation hook to clean up the cron task if the plugin is
   
   deactivated (avoids an orphaned background task).

#### 1.4.0

 * New: integration of an AI-based fix engine (Google Gemini) — removed in 3.0.0,
   
   moved to the Pro extension.
 * Automatic, silent fallback to the mechanical engine if the AI call fails
    (invalid
   key, Gemini quota reached, network unavailable, unexpected response): the user
   always gets a result.
 * The duplicate-heading safeguard also applies to AI-generated headings.

#### 1.3.2

 * Important fix: the “bullet list” conversion could split an entire sentence into
   
   bullets as soon as it contained several commas, even when it wasn’t a genuine
   enumeration (loss of meaning). Detection now distinguishes an introductory sentence(
   typically before a “:”) from the list itself: only the true enumeration becomes
   bullets, and the introduction is kept in full in a separate paragraph right before
   it. A candidate item longer than 12 words now cancels the whole conversion, instead
   of fragmenting a complete sentence into fake bullets.

#### 1.3.1

 * Fix: the GEO score was only calculated when a page was saved — any content that
   
   existed before the plugin was installed (or was never re-saved since) stayed 
   stuck on “Not analyzed” indefinitely. Added an automatic analysis on plugin activation,
   and an “Analyze pages not yet scored” / “Re-analyze all pages” button in the 
   dashboard for sites where the plugin was already active before this update.

#### 1.3.0

 * Security: automatic fixes can no longer create a duplicate heading — before
    
   suggesting (and before applying) a “question  heading” conversion, the engine
   checks that no existing heading in the article (nor the page title itself) already
   has exactly that text.
 * Introduction (then removal in 3.0.0) of a 4-free-fix limit — see the 3.0.0
    changelog
   for the compliance update.
 * Architecture: the fix engine is now interchangeable (GEOLYS_Corrector_Interface).
   
   The current engine is renamed GEOLYS_Rule_Based_Corrector.

#### 1.2.0

 * Improvement: automatically splitting a long paragraph now avoids starting the
   
   second paragraph with an isolated pronoun (e.g. “It”, “This”) with no nearby 
   antecedent, for a more natural break when reading.
 * Improvement: automatically generated list items are now systematically cleaned
   
   up (multiple spaces, trailing punctuation) for a consistent presentation.
 * Fix: bullets in generated lists were invisible in the preview because of
    WordPress
   admin’s default styling — they are now explicitly restored, with consistent vertical
   rhythm between headings, paragraphs and lists.

#### 1.1.0

 * New: annotated preview page showing the passages to fix highlighted in color,
   
   with a concrete suggestion below each one.
 * New: one-click automatic fixes, with confirmation before applying and immediate
   
   score recalculation.
 * The dashboard now opens the annotated preview via the “Fix” button (a separate
   “
   Edit” button remains available to open the editor directly).

#### 1.0.0

 * Initial release: GEO score, FAQPage/HowTo schema generation, text suggestions,
   
   prioritization dashboard.

## Meta

 *  Version **3.0.1**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [aeo](https://wordpress.org/plugins/tags/aeo/)[AI](https://wordpress.org/plugins/tags/ai/)
   [geo](https://wordpress.org/plugins/tags/geo/)[schema](https://wordpress.org/plugins/tags/schema/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/geolys/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/geolys/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/geolys/reviews/)

## Contributors

 *   [ wordfredericpress ](https://profiles.wordpress.org/wordfredericpress/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/geolys/)