Descrição
Most plugins in this space write an llms.txt and stop there. GEO Suite starts from the opposite end: it measures the site, tells you in plain words what is holding it back, and only then writes the files — and afterwards it goes and checks from the outside that what it wrote is actually being served.
That measure-then-verify loop is what the plugin is built around:
- A GEO Score you can argue with. Six pillars, every check named, every recommendation carrying the points it is worth and a link to exactly where you fix it. No black box and no external service: the score is computed on your own site, from data WordPress already has.
- The files and the structured data.
llms.txtandllms-full.txtkept up to date on their own, a Markdown copy of every page at<permalink>.md, JSON-LD (Organization, WebSite, Article, Breadcrumb, FAQPage, Person) written only where your SEO plugin has not already written it. - The outside check. The plugin asks its own addresses the way a crawler would and reports what really comes back — a redirect, a firewall, a cache serving something else. A file that exists is not the same as a file that is reachable, and this is the part that usually explains why nothing was working.
- The trend. Your score is recorded from the day you install, along with the “before” picture of the site, so you can see whether the work is paying off month after month. It is recorded and shown, in the free plugin.
Everything above is in this plugin, free, with no account, no license key, no time limit and no quota.
Also included:
- Content the plugin cannot read is not silently scored as empty — pages built with Elementor, Oxygen, Bricks, Breakdance, Beaver, Divi, WPBakery or Avada keep their text where the builder put it. GEO Suite reads it there, without ever executing third-party shortcodes while it builds the files.
- AI crawler management — decide which AI bots may read the site, written into robots.txt with labels a human can understand: the ones that answer people’s questions are separated from the ones that harvest content to train models.
- You decide what AI can see — a column and two bulk actions on pages, posts and products: take anything out of the AI files without hiding it from your site or from Google.
- Setup wizard — four steps, a couple of minutes, no jargon.
- In-app documentation — every recommendation the dashboard can give you has a card explaining exactly what to do about it.
- Multilingual (WPML and Polylang) — one set of files and structured data per active language, each at its own address, with headings resolved in that file’s language.
- A diagnostic report you can copy — for when you need to write to somebody. Nothing is ever sent anywhere.
GEO Suite works alongside Yoast, Rank Math and SEOPress without conflicts and reuses their data where it can. No dependency on WooCommerce. No external calls, no tracking, no phoning home.
There is a separate, optional add-on (GEO Suite Pro) that adds per-page analysis, bulk editing, advanced schema and detailed AI crawler monitoring. It is a different plugin: none of its code is in here, and nothing in this plugin is switched off waiting for it.
Capturas de tela







Instalação
- Upload the
octoplug-geo-suitefolder to/wp-content/plugins/, or install the plugin from the WordPress Plugins screen. - Activate the plugin from the Plugins menu.
- Open the GEO menu item and follow the setup wizard (about 2 minutes).
- Recommended: use “pretty” permalinks (Settings Permalinks) to serve the files through the
/llms.txtand/llms-full.txtURLs.
Perguntas frequentes
-
Does granting access to AI crawlers hurt my Google ranking?
-
No. AI crawler access and traditional Google ranking are separate things: letting AI bots read the site does not affect organic ranking.
-
Does GEO Suite conflict with my SEO plugin?
-
No. GEO Suite detects Yoast, Rank Math or SEOPress and works alongside them, avoiding duplication of the structured data the SEO plugin already generates.
-
Does the plugin store visitors’ personal data?
-
No, and it makes no external calls at all. The plugin counts how many times known AI bots passed by, as a daily total: no IP addresses, no visitor data, nothing that identifies anybody. The score history it keeps is a number and a date, stored in your own database.
-
The llms.txt files don’t show at their URL. What should I do?
-
Make sure “pretty” permalinks are active (Settings Permalinks). If pretty permalinks are not available, the
?opgs_file=llmsfallback is provided, and it is also reported in the settings. -
Does it work with multilingual sites?
-
Yes, with both WPML and Polylang: files and structured data are generated for every active language, each at its own address (/llms.txt for the main language, /en/llms.txt for English, and so on).
-
Is anything in this plugin locked, limited or time-based?
-
No. There is no license key, no trial, no quota and no expiry. Every feature described above works from the moment you activate it. A separate add-on exists for per-page analysis, bulk editing, advanced schema and detailed crawler monitoring, but that is a different plugin with its own code: nothing here is disabled waiting for it.
-
Where does my score history end up?
-
In a table in your own database, on your own site. One reading a day plus one every time you regenerate or recalculate, each a number, a date and what triggered it. You can see the whole thing under GEO Suite Trend, change how long it is kept, or switch the recording off entirely, in Settings.
Avaliações
Colaboradores e desenvolvedores
“GEO Suite – AI SEO, llms.txt & Schema – Octoplug” é um programa de código aberto. As seguintes pessoas contribuíram para este plugin.
ColaboradoresGEO Suite – AI SEO, llms.txt & Schema – Octoplug” foi traduzido para 2 localidades. Agradecemos aos tradutores por suas contribuições.
Traduzir o “GEO Suite – AI SEO, llms.txt & Schema – Octoplug” para seu idioma.
Interessado no desenvolvimento?
Navegue pelo código, consulte o repositório SVN ou assine o registro de desenvolvimento por RSS.
Registro de alterações
1.30.3
- Fix: AI crawler rules were missing from robots.txt on sites where an SEO plugin (Yoast, Rank Math, All in One SEO, The SEO Framework) rebuilds it. GEO Suite now writes its block after them, and does not repeat a bot the SEO plugin already declares. The self-check hint for a missing block was rewritten accordingly.
1.30.2
- Fix: the “last updated” date in the files AI read came out with an English month name even on sites in another language — “28 July 2026” sitting under a translated label.
get_post_modified_time(), when given a format, goes through PHP’sdate(), which does not localise month names. It now useswp_date(), which applies the site’s timezone and language. Affectsllms.txt,llms-full.txtand the per-page.mdversions. - Found on a live site, not in testing: these files are written by the site, so the wrong month never shows up until the plugin is actually running somewhere.
1.30.1
- The plugin now mentions, in two places and two only, that a Pro add-on exists: one line under the AI bot counter on the dashboard, and a
Pro ↗entry at the bottom of the GEO menu that opens the product page on our own site. Neither appears if you already have the add-on. There is no sales screen inside your dashboard, and there never will be again. - Fix: the help bubbles on the left-hand column still ran under the WordPress menu. They now open towards the right, where there is room. The previous attempt measured the bubble while it was still fading in and got an intermediate position, so the correction it applied was never enough.
1.30.0
- New: a site summary per language. The one-sentence description is the first thing an AI reads at the top of
llms.txt, and until now there was only one of it: on a multilingual site the same sentence appeared, in the same language, at the top of every translation. Settings now shows one field per active language, and leaving one empty falls back to the general sentence. Only appears on multilingual sites. - Fix: section headings came out in the language of whoever opened the admin. On a five-language site every file said
## Articoli— including/llms.txt, the English one. Two separate causes: the main language never triggered a locale switch at all, and for the other languages the switch failed silently when the matching WordPress language pack was not installed on the site. Now the main language resolves its own locale, and when a language pack is missing the file falls back to English — a predictable language for a technical file, rather than whichever language the dashboard happens to be in. - Fix (WPML): the file for a language linked to the pages of another one. On a WPML site the English
llms.txtlisted translated titles with 13 links out of 14 pointing at the Italian pages — which exist in English and answer fine. Switching WPML’s language context tells it which content to serve, but permalinks are still built with the rules of the language the request runs in. The links are now translated for the language of the file, home page included (WPML handles the front page separately and its own filter leaves it untouched). Polylang was never affected. - On WPML sites, a site summary translated through WPML’s own string registry is now honoured.
1.29.1
- Fix: the help bubbles on the left-hand cards were cut off. The bubble always opened towards the left, so on the first column — with the WordPress menu taking another 160px — it ran off the edge of the screen and could only be read halfway. It now opens on whichever side has room, measured when it opens rather than guessed in the stylesheet.
- Fix: buttons had two different corner radii in the same screen. Some were pill-shaped and some were not, depending on which of three separate rules in the stylesheet happened to win. The radius is now defined once and reused, so it cannot drift apart again — it had already done so twice, in opposite directions.
1.29.0
- Fix: a promotional banner shaped like a question is no longer published as an FAQ. FAQs are recognised from the structure of a page – a heading ending in “?” followed by text – and a closing call-to-action (“Do you want to book a visit?”) has exactly that shape. On a real site nine pages out of twenty-five were publishing FAQ structured data whose only entry was that banner. Those openings are now recognised and left out, in all five languages of the plugin, and only when the answer is short: a long answer is an explanation and stays. FAQs you wrote by hand are never touched.
- Fix: your score is no longer penalised for a robots.txt the plugin never read. If a real robots.txt file exists in the site root, the check used to fail on its mere presence – even with all the AI crawler rules already inside it. The “AI crawler access” pillar sat at 50/100 while the external self-check, which actually reads the file, reported everything fine. The file is now read: it only fails when the rules really are missing.
- Fix: “paste these rules by hand” no longer shows up after you have pasted them. Same cause as above, in the notice and in the Technical files screen. Telling someone to do what they have just done convinces them they got it wrong, and they do it twice.
1.28.2
- The setup wizard now opens by itself, once, right after you activate the plugin. Until now it waited behind a notice at the top of the admin, among everybody else’s notices, and a plugin you have just installed is exactly the one you do not yet know how to configure. It opens only for the person who activated it, only if the setup has never been completed, and never when you activate several plugins at once or across a network – in those cases the welcome notice is still there. “Skip for now” is on every step, and nothing is set behind your back.
1.28.1
- Fix: the plugin now records what it does. Pressing “Regenerate now” rebuilt the files but the screen kept saying they needed regenerating; “Recalculate” returned a new GEO Score that was never stored; and the starting point of your Trend was never saved at all. The cause was one and the same: anything the plugin tried to record from an admin screen was silently discarded. A background job two minutes later usually put things right, which is why this was easy to miss – but not on sites with WP-Cron disabled, and never for the score or the starting point. Everything is now written when you ask for it.
- Fix: switching off the extended file now really switches it off. Until now, turning off llms-full.txt stopped the plugin from updating it but left the address answering, serving whatever had been generated the day you switched it off – roughly 300 KB of your content, still readable by crawlers. The address now returns a 404, and the panel stops showing a link, a size and a preview for a file the site no longer serves. The status also reads “turned off” instead of asking, forever, for a rebuild that was never going to happen.
- Fix: long labels no longer get cut off. On narrow screens a long check name could push the recommended-actions column past the edge of the screen, where it could not be scrolled back into view. Three layout rules now keep every label inside its box – the one that mattered most is on the column itself, which would not shrink below the width of its widest card. Also affects English: the “change” pill in the Trend table was wrapping onto two lines between 783 and 1100 pixels.
- Wording: a handful of check names and buttons were shortened so they fit on one line in every language.
- Note: saving a setting that really changes something now correctly marks the files as needing regeneration for a couple of minutes, until the scheduled rebuild runs. That step used to be lost.
1.28.0
- New: the Trend screen — and your score history is now yours. The plugin has always recorded your GEO Score from the day you installed it, and captured the “before” picture of the site at that moment. Until now there was no screen for it. There is one: GEO Suite Trend shows where you started, where you are, the curve over 30 days / 90 days / 12 months / everything, and a table of every reading with what caused it — a scheduled reading, a recalculation you asked for, or a plugin update that changed how the score is worked out.
- Removed: the “Pro” page in the admin. The comparison table, the prices and the greyed-out tiles on the dashboard are gone. If you want to know about the separate add-on there is one link, on the plugin’s row in the Plugins list, and nothing anywhere else.
- Fixed: structured data is now printed through the WordPress core helper, with JSON encoded so that a title or an author name can never break out of the script tag.
- Fixed: post type headings in
llms.txtno longer borrow WordPress’ own translation domain; they come from the public core API instead, and still follow the language of each file. - Housekeeping for the directory: the runtime brand image moved out of the folder reserved for the WordPress.org listing graphics, and the stylesheet no longer carries the rules of the removed page.
1.27.3
- New
opgs_contenuto_sorgentefilter: a theme or plugin can now hand over the real text of a page the plugin cannot read on its own — an archive, a product list, a portfolio, anything whose content is a shortcode that fills in at render time. The plugin still never executes third-party shortcodes while building the files, which is exactly why the filter exists. - Fixed: filled buttons were picking up the outline button’s corner radius and padding, so the primary action looked subtly different from the buttons next to it.
- Fixed: on multilingual sites (Polylang/WPML) the section headings in the per-language
llms.txtnow follow the language of the file. The English/llms.txtno longer printed the site-language post-type labels (e.g. “## Articoli” instead of “## Articles”); each file’s headings are resolved in that file’s locale. No change on single-language sites.
1.27.2
- Changed: the admin top-level menu now reads “GEO Suite” instead of “GEO”, for clearer branding — consistent across all bundled languages.
1.27.1
- Fixed: hardened input sanitization on the author “Official profiles (sameAs)” field so it clears WordPress.org’s static analysis. No functional change — every address is still validated as an http(s) profile URL before it is saved.
1.27.0
- Fixed: on multilingual sites (Polylang) the per-page Markdown endpoint (
<permalink>.md) could serve the same content for every language when translations shared the same slug. The resolved content is now constrained to the language requested in the URL. No change on single-language sites or with WPML. - New: structured data (WebSite, Article/WebPage) now declares
inLanguagewith the real content language. - New: the BreadcrumbList now builds a real hierarchy on its own — parent chain for hierarchical pages, and the primary category (with its ancestors) for posts and custom post types — instead of just Home › Content. A primary term elected in Yoast or Rank Math is honoured; names and URLs come out in the content language on Polylang/WPML sites. Falls back to the previous Home › Content chain when no hierarchy can be determined.
- New: filter
opgs_breadcrumb_itemslets a site (or add-on) supply its own breadcrumb chain — useful when navigation follows a taxonomy silo that WordPress’ own hierarchy doesn’t reflect. Positions are renumbered automatically.
1.26.0
- New: full German, French and Spanish translations for the European launch. The whole interface, setup wizard and in-app manual are now available in de/fr/es alongside Italian, with native-quality wording. (Free translations are served through translate.wordpress.org.)
1.25.0
- New: two filters —
opgs_llms_site_introandopgs_llms_item_description— let an add-on supply the site intro line and a per-item description for the llms.txt file. Used by the Pro’s AI summaries; additive and invisible on a standalone Free install, where the generated files are unchanged. - Fixed: raised the contrast of the hero gradient on the dashboard so its text meets the AA readability standard.
Earlier versions
- Only recent releases are listed here. WordPress.org trims changelogs past 5,000 characters, so older entries have been dropped from this file.
