Markivo GEO & AEO Toolkit

Description

Markivo GEO & AEO Toolkit prepares your site for generative engine optimisation (GEO) and answer engine optimisation (AEO). AI assistants, AI search engines and AI agents get clean, structured content and simple tools, while human visitors keep seeing your normal pages.

Every feature has its own switch under Settings > Markivo GEO & AEO.

Content for AI

  • Markdown content negotiation – requests that send Accept: text/markdown receive the page as clean Markdown. Navigation, sidebars, forms, scripts and ads are removed. Works on posts, pages, products, archives and search results.
  • YAML front matter – title, URL, language, description, author, dates, image, categories, tags and WooCommerce price, SKU and stock.
  • Markdown REST API – /wp-json/markivo/v1/markdown?url= or ?id=, advertised on every post with <link rel="alternate" type="text/markdown">. Works behind any page cache.
  • /llms.txt – an index of your content in the llmstxt.org format, with an optional introduction you write.
  • /llms-full.txt – the full content of your posts in one Markdown file, paged with ?limit= and ?offset=.
  • WooCommerce – product price, stock, rating and attributes in Markdown and llms.txt.
  • Hide content – hide any post from llms.txt, llms-full.txt and agent search from its edit screen or by ID/URL. WooCommerce cart, checkout and account pages are always hidden.

Policy and discovery

  • /agents.txt – an access policy for AI agents with your own ALLOW / DISALLOW rules.
  • Content Signals – declare search, ai-input and ai-train preferences in robots.txt and response headers.
  • robots.txt – adds the Content-Signal line and references to llms.txt and agents.txt.
  • /.well-known/api-catalog (RFC 9727), an MCP server card and an agent skills index.
  • Discovery links – Link headers and <link> tags that point agents to all of the above.

Tools for AI agents (WebMCP and MCP)

  • WebMCP – registers tools with the browser WebMCP API (navigator.modelContext), so in-browser agents can search your site, read pages and, on WooCommerce stores, manage the visitor’s own cart.
  • Remote MCP server – a Streamable HTTP MCP endpoint at /wp-json/markivo/v1/mcp for MCP clients, with read-only tools. An optional API key can be required.
  • OpenAPI – /wp-json/markivo/v1/openapi describes the API for tools such as custom GPT actions.
  • Included tools: get_site_info, search_content, get_markdown_content, get_llms_txt, list_terms, get_menu, and with WooCommerce woo_search_products, woo_get_product, woo_list_categories, woo_add_to_cart, woo_get_cart, woo_remove_from_cart, woo_apply_coupon. Each tool can be turned off.
  • Cart tools only run from a page of your site in the visitor’s own browser session. They are never offered on the remote MCP server.

Safe by default

  • Only published, public, non-password-protected content of the post types you choose is exposed.
  • Browsers always receive the normal HTML page, and every response sends Vary: Accept.
  • Optional per-IP rate limit for all endpoints of the plugin.
  • No external requests, no tracking, no cookies.

Developer hooks

  • markivo_register_tools (action) – register your own tools: $tools->register( 'name', array( 'description' => '', 'inputSchema' => array(), 'callback' => 'fn' ) ).
  • markivo_post_types, markivo_should_convert, markivo_exclude_post, markivo_pre_convert_html, markivo_post_markdown, markivo_front_matter.
  • markivo_llms_txt, markivo_llms_full_txt, markivo_agents_txt, markivo_api_catalog, markivo_server_card, markivo_discovery_links, markivo_content_signal.
  • markivo_noise_classes, markivo_noise_ids – elements removed before conversion.
  • markivo_rate_limit, markivo_client_ip – rate limit and client IP (for sites behind a proxy).

Installation

  1. Upload the markivo-geo-aeo-toolkit folder to /wp-content/plugins/, or install it from the Plugins screen.
  2. Activate the plugin. All features are on by default except the MCP API key.
  3. Open Settings > Markivo GEO & AEO to switch features on or off and to write your llms.txt introduction.
  4. Test it: curl -si https://example.com/ -H "Accept: text/markdown" | head -5 should show Content-Type: text/markdown, and https://example.com/llms.txt should show your content index.

FAQ

Will my visitors see Markdown?

No. Only requests whose Accept header contains text/markdown receive Markdown. Browsers never send that header.

/llms.txt or /agents.txt shows my theme’s 404 page or an old file.

If a physical file with the same name exists in your site root, the web server serves it instead; the settings page warns you about this. Some server configurations do not pass .txt requests to WordPress; ask your host to route missing files to index.php. If another plugin also generates llms.txt, switch off one of them.

I use a page cache or CDN and still get HTML for Accept: text/markdown.

Caches that serve pages before WordPress runs (for example LiteSpeed, Varnish or Cloudflare) must vary on the Accept header or bypass the cache when it contains text/markdown. The Markdown REST API and llms.txt work regardless.

How do I connect an MCP client?

Use https://example.com/wp-json/markivo/v1/mcp as a remote (Streamable HTTP) MCP server. If you turned on the API key, send it as Authorization: Bearer <key>.

Does it change my content?

No. Nothing is written to your posts. The plugin only adds responses for clients that ask for them.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Markivo GEO & AEO Toolkit” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.0.1

  • Added: Rating review prompt on the plugin settings screen.

2.0.0

  • New name: Markivo GEO & AEO Toolkit.
  • Added: /llms.txt, /llms-full.txt and /agents.txt, each with its own switch.
  • Added: Markdown REST API with alternate links, YAML front matter and WooCommerce product data.
  • Added: Content Signals, robots.txt references, RFC 9727 API catalog, MCP server card and agent skills index.
  • Added: WebMCP browser tools, a remote MCP server, a tool manifest and an OpenAPI description, with per-tool switches.
  • Added: hide posts from llms.txt and agent search; optional per-IP rate limit.
  • Changed: page caches are bypassed through DONOTCACHEPAGE, no-cache headers and the LiteSpeed/NitroPack hooks.

1.6.0

  • Markdown content negotiation for posts, pages, archives and search results.