Publirank GEO Ready

Description

Publirank GEO Ready is an essential tool for GEO (Generative Engine Optimization). It helps your WordPress site to be better understood and cited by Artificial Intelligences such as ChatGPT, Claude, Gemini and Perplexity.

As search evolves toward AI-generated answers, it is crucial to provide crawlers with a simplified and structured version of your content. This plugin automates the creation of a “bridge” between your complex HTML and text-hungry LLMs.

Why install GEO Ready?

Modern HTML is often too heavy and polluted by scripts or complex layouts for AI bots. GEO Ready extracts the core essence of your articles to deliver them in a universal, lightweight and perfectly structured Markdown (.md) format.

Key Features:

  • Static Markdown Generation (.md): Automatically creates a physical .md version of your articles for blazing fast performance and maximum compatibility with Gemini and GPTBot.
  • Dedicated LLM Sitemap: An exclusive sitemap-llm.xml file to guide AI robots directly to your Markdown versions.
  • llms.txt Standard Support: Implementation of the llms.txt (or publirank-llms.txt) file to help AI assistants index your priority content.
  • AI Training Scraper Protection: Option to block access to bots that scrape your data for training while allowing real-time search agents.
  • AI Crawl Statistics: A precise dashboard to see which AI (GPTBot, ClaudeBot, GoogleOther, etc.) visits your site and which pages they are interested in.
  • AI SEO Metadata: Automatic inclusion of author, publication date, and canonical URL in Markdown headers.

100% Free & Independent

This plugin is completely standalone. No API key, no third-party account, no data sent outside. It is a tool offered by the Publirank.io community to support the web ecosystem.

Privacy

This plugin keeps all data on your WordPress site. It does not send your content, settings, or crawl logs to Publirank.io or any other external service as part of its normal operation.

What is stored

  • Settings — Stored in the WordPress options table (publgeo_settings): feature toggles, llms.txt preferences, category filters, and similar configuration.
  • AI crawl statistics — When an identified AI-related bot requests Markdown, the LLM sitemap, or the llms-style list file, the plugin may log a row in a custom database table ({prefix}publgeo_geo_crawls) containing the requested URL (truncated), the HTTP User-Agent (truncated), a derived bot label, the date/time of the request, and a classification flag. These rows are used only for the in-admin statistics dashboard.
  • Short-lived cache — A transient (publgeo_geo_llms_txt_cache) may cache generated llms.txt output for performance. It is cleared on uninstall and can be cleared from the settings screen.
  • Static cache files — Markdown (.md) and related files under your uploads directory (wp-content/uploads/.../publgeo-cache/). They mirror public content and are regenerated from your posts.

Retention

  • Crawl log rows older than 90 days are deleted automatically by a daily scheduled task.
  • You can uninstall the plugin at any time. By default, settings and the crawl statistics table are kept so you can reinstall without losing configuration or history; generated .md cache files and the internal transient are removed on uninstall. A site administrator remains responsible for any wider data-protection obligations (for example, if URLs in logs are considered personal data in your jurisdiction).

Upgrading from earlier releases

  • Sites that used a previous development build may have data under the legacy option names (pgr_geo_settings) or table ({prefix}pgr_geo_crawls). On upgrade, the plugin copies or renames these automatically to the current names. Public URLs (*.md, sitemap-llm.xml, llms.txt, publirank-llms.txt) are unchanged.

Optional checks in the admin

  • The “Verify llms.txt” tool uses wp_remote_get() against your own site’s public URL to compare the HTTP response. No third-party analytics service is involved.

Screenshots

  • AI crawl statistics dashboard: breakdown by bot and by page.
  • Simple, intuitive settings screen.
  • Example of a .md file generated from a WordPress post.

Installation

  1. Upload the plugin folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Go to the ‘GEO Ready’ menu to see your statistics.
  4. Under GEO Ready Settings, enable GEO Ready if needed, then in the static cache section click “Regenerate all .md files” and “Rebuild Sitemap & List” to generate the Markdown files, LLM sitemap, and list file on disk.

FAQ

Does this create duplicate content on Google?

No. All .md files generated by the plugin send an X-Robots-Tag: noindex HTTP header. Googlebot can still fetch these URLs, but it will not index them, so your classic HTML pages keep full SEO priority.

What is the difference between llms.txt and the sitemap?

llms.txt is a recent standard aimed at AI assistants (such as ChatGPT): it gives a quick, high-level view of your site. The XML sitemap is more exhaustive and supports systematic crawling of all your content. GEO Ready provides both.

Can I block some AI bots but not others?

Yes. In the settings, you can turn on protection against “Training” bots (scrapers) while still allowing “Live Search” bots that reference your links.

Why doesn’t Gemini show up in my statistics?

Gemini traffic is usually attributed to Google’s regular crawler (Googlebot), so it cannot be isolated in these statistics. The separate Google-Extended user agent is only used to train Google’s AI models; if you have enabled blocking of training and scraper bots in the settings, it may be blocked. This is not a bug: Gemini can still read your content through Googlebot—you just cannot see a dedicated “Gemini” count in the dashboard.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Publirank GEO Ready” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Publirank GEO Ready” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.1.3

  • Removed automatic deactivation when the full Publirank plugin is detected. The GEO Ready module has been removed from the full plugin, so both can coexist (and you can use this free plugin alongside or instead of the paid version).

1.1.2

  • Security/standards: removed set_time_limit() in bulk regen (no global PHP limit override).
  • Security/standards: settings POST array is now sanitized on input via map_deep( wp_unslash(), ‘sanitize_textarea_field’ ); each field is then re-validated downstream.
  • Security/standards: JSON-LD output now goes exclusively through wp_print_inline_script_tag() (no unescaped echo fallback).
  • Security/standards: hard-coded “Access denied” string for blocked training bots is now wrapped in esc_html__() (escape + i18n).
  • Security/standards: Markdown / sitemap-llm.xml / llms.txt streams are now served via readfile() from the on-disk cache instead of echoing variables (removes WordPress.Security.EscapeOutput.OutputNotEscaped suppressions for these endpoints).
  • Performance: sitemap-llm.xml and llms.txt now warm the on-disk cache on first live render, so subsequent requests are served directly from cache.

1.1.1

  • New setting: optional Article/BlogPosting JSON-LD in HTML (off by default to avoid duplicate schema with SEO plugins). JSON-LD in .md files is unchanged.
  • Security and coding standards: sanitization on settings registration and form input, safe JSON-LD output in HTML.
  • Internal prefix renamed from pgr to publgeo (options, database table, admin hooks) with automatic migration on upgrade. No change to public SEO URLs.
  • llms.txt: up to 100 most recent posts, grouped by category (## Category), plain-text excerpts without HTML entities or […].
  • Admin: live progress while .md cache regenerates in the background.