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/markdownreceive 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-inputandai-trainpreferences 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 –
Linkheaders 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/mcpfor MCP clients, with read-only tools. An optional API key can be required. - OpenAPI –
/wp-json/markivo/v1/openapidescribes 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 WooCommercewoo_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
- Upload the
markivo-geo-aeo-toolkitfolder to/wp-content/plugins/, or install it from the Plugins screen. - Activate the plugin. All features are on by default except the MCP API key.
- Open Settings > Markivo GEO & AEO to switch features on or off and to write your llms.txt introduction.
- Test it:
curl -si https://example.com/ -H "Accept: text/markdown" | head -5should showContent-Type: text/markdown, andhttps://example.com/llms.txtshould show your content index.
FAQ
-
Will my visitors see Markdown?
-
No. Only requests whose Accept header contains
text/markdownreceive 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
.txtrequests to WordPress; ask your host to route missing files toindex.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
Acceptheader or bypass the cache when it containstext/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/mcpas a remote (Streamable HTTP) MCP server. If you turned on the API key, send it asAuthorization: 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.
ContributorsTranslate “Markivo GEO & AEO Toolkit” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
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.
