Title: Agentimus – AI SEO, llms.txt &amp; MCP for AI Agents
Author: Sheikh Heera
Published: <strong>སྤྱི་ཟླ་དྲུག་པ། 22, 2026</strong>
Last modified: སྤྱི་ཟླ་བཅུ་པ། 27, 2026

---

Search plugins

![](https://ps.w.org/agentimus/assets/banner-772x250.png?rev=3609613)

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

# Agentimus – AI SEO, llms.txt & MCP for AI Agents

 By [Sheikh Heera](https://profiles.wordpress.org/heera/)

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

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

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

## Description

Agentimus is an all-in-one AI SEO plugin for the age of AI agents — AEO (Answer 
Engine Optimization) and GEO (Generative Engine Optimization) in one place. It does
two things.

**It makes your site legible and citable.** It helps AI assistants like ChatGPT,
Claude and Perplexity find your site, read it correctly and cite it in your own 
words — and shows you which AI bots are visiting. **You don’t need to understand
AI or web standards:** a setup wizard walks you through it in about a minute, then
it runs on its own.

**And it lets the AI tools you already use operate your site.** Turn on the built-
in Model Context Protocol (MCP) server and Claude Code, Claude Desktop, Cursor or
Codex can read your reports and — behind two more opt-in switches — **draft, edit
and publish posts**. All three are off by default. Prefer wp-admin? A built-in **
writing assistant** drafts and revises posts there.

By default it makes no outbound requests, collects no analytics and logs no IP addresses—
everything runs on your own site. Three optional features change that only when 
you switch them on: **Citation checks**, **Verify bot identities** and **Store IP
addresses**, each disclosed in full under _External services_.

**📖 Full documentation** — a plain-English manual and developer reference, step-
by-step guides for every feature: https://heera.github.io/agentimus/

**One screen that says what needs you**

 * **Findings** — everything open across your site in one ranked list: pages losing
   a click they already earn, and anything the setup checks caught — ordered by 
   what each costs you, every row carrying the button that lands on the fix. The
   nav count only measures work you can act on.
 * **Your Content** — one row per post, page or product: what it is found for, whether
   it answers that, and anything else it needs. Set aside anything never meant to
   be quoted and it stays listed, not silently dropped.

**With an SEO plugin — or instead of one**

 * **No SEO plugin? You don’t need one.** Agentimus covers the search basics: per-
   page SEO titles, social share cards (Open Graph), canonical links, meta descriptions,
   and an XML sitemap carrying the last-changed dates core’s own leaves out.
 * **Already running Yoast, Rank Math, SEOPress, AIOSEO or The SEO Framework?** 
   It detects them and steps aside on every overlapping surface — titles, cards,
   schema, sitemap. No duplicate tags: it adds only the AI layer your SEO plugin
   doesn’t cover.

**Operate your site from your AI agent (MCP) — opt-in**

 * **A Model Context Protocol server on your own site** — one switch runs an MCP
   server at `/wp-json/agentimus/v1/mcp`; the library ships with the plugin, nothing
   extra to install.
 * **Connect by approving, not by pasting keys** — an assistant asks _you_ for permission
   on a consent page on your own site; you choose **Read only** or **Read and write**,
   and each gets its own key and Disconnect. OAuth 2.1 with PKCE, nothing brokered
   by a third party; a revocable **shared token** covers clients that can’t ask.
 * **Read your site’s data** — connected agents run the read-only tools — score,
   AI traffic, request log, bot identification, page previews — and your llms.txt,
   discovery and agent-card documents are offered as readable **resources**.
 * **Draft, edit and publish posts — behind two more switches** — turn on **Let 
   connected agents write** and an agent can create and edit posts and pages fully
   dressed (categories, tags, featured image, AI topics and descriptions), apply
   Readiness fixes, and reuse pictures from your media library. A third switch lets
   it publish; otherwise it leaves drafts for review.
 * **Safe by construction** — every write runs as the signed-in WordPress user, 
   never exceeding their permissions, and is recorded under **More  Agent Access**.
   Nothing is public, and with the switch off the write tools do not exist.

**Write with AI in wp-admin — the built-in assistant (opt-in)**

 * **Idea  draft without leaving wp-admin** — a spark button opens the writing assistant:
   describe what you want, shape the outline it proposes, then preview the complete
   draft — real blocks, AI description, topics, categories, tags. A page is written
   as a page: no invented sections. Nothing is saved until you click **Create draft**,
   and it never publishes.
 * **Ask AI in the editor — one block, a selection, or the whole post** — rewrite
   or extend the block you’re in, change several with one instruction, or ask about
   the whole post and get a list of proposed edits, each with its reason, to accept
   or reject one at a time. Blocks the plan doesn’t name are never touched.
 * **Images where you write** — alt-filled placeholders in drafts, **Generate image
   from the alt text** on every image block, a **Featured image (AI)** panel — or
   pick from your library. Runs on WordPress’s built-in AI Client (7.0+); Agentimus
   never sees your key, and every AI button hides until a provider is set up.

**Tell your team — and announce what you publish**

 * **Reports where you already look (opt-in)** — send Agentimus’s reports to Telegram,
   Slack, Discord, a Google Sheet or any address of your own. Choose the moments
   that matter: a new finding, an unfamiliar bot, the weekly digest. Every service
   stays yours, and nothing is sent until you switch it on.
 * **Announce a new post (opt-in)** — Agentimus offers the words for X and LinkedIn;
   you approve them or edit them first. Each connection is an app you own, so the
   post comes from you, not from us. A ledger shows what went out, what is queued
   and what failed, with the reason.

**Control — who may use your content**

 * **robots.txt content-signals + AI-training blocklist** — declare your content-
   usage policy and block model-training crawlers (GPTBot, CCBot, ClaudeBot, Google-
   Extended, Bytespider, …) by name, while leaving read/cite bots free.
 * **Block scanners & scrapers (opt-in hard block)** — robots rules are a polite
   request; this enforces them, returning 403 to the user-agents on your denylist.
   Your **always-allowed** list is never blocked: pre-trust well-known assistants
   with one click, search engines are recognised automatically, and SSL renewals
   stay reachable.
 * **Exposure controls (opt-in, all OFF by default)** — switches that close what
   stock WordPress reveals to anonymous crawlers: username enumeration, author archives,
   the WordPress version, the auto-generated `<head>` discovery links, and XML-RPC.
   Signed-in admins and the block editor are never affected. Exposure hygiene, not
   a firewall.

**Visibility — who is reading you**

 * **Report** — what AI did on your site between any two dates: reads, visits from
   AI answers, and where you stand. Today, a week, or dates you pick; every block
   says how fresh its numbers are.
 * **Agent activity log** — which AI crawlers and agents actually fetch your content
   and endpoints (GPTBot, Claude, Perplexity, Googlebot, …), recorded first-party,
   with no IP logging by default.
 * **Activity to review** — a nav-bar queue surfaces clients worth a second look,
   with one-click **Block** or **Allow**. Nothing is blocked unless you say so.
 * **Request Log** — every recorded request, one row each — or grouped into visits,
   so an assistant answering a question stands apart from a crawl. Filter by client,
   endpoint, network, user-agent and date.
 * **Agent Access** — who _authenticates and acts_: assistants approved, keys created
   or revoked, abilities run, requests refused. A record, not a guard — it names
   the key, never the person.
 * **Traffic from AI** — the real visitors an AI assistant sent you, day by day,
   by assistant and landing page — aggregate counts only, never a row for one person,
   no IP. An opt-in **CDN mode** keeps counts accurate behind a cache.
 * **Edge traffic (Cloudflare, opt-in)** — what Cloudflare answered or blocked before
   your server saw the request: cache hits and edge blocks no server-side log can
   see. It warns when the edge disagrees with your policy.
 * **You decide how long it’s kept** — retention, nightly auto-delete and a hard
   size cap, so the log never outgrows your host.
 * **Citation checks (opt-in)** — track **each brand, product or person you choose**
   across ChatGPT, Perplexity, Gemini and Claude: whether it is **mentioned, linked,
   and how it ranks against rivals**. Off by default; **bring your own API key**(
   the one feature that makes an outbound request — see _External services_).

**Classic search, measured — Bing & Google (opt-in)**

 * **Search Performance & Opportunities** — connect Bing Webmaster Tools and/or 
   Google Search Console (a key held on your own server, no third-party proxy) and
   see what people searched, how often you appeared, and which pages sit one improvement
   from page one. Every number is the engine’s own, never estimated; probe traffic
   is named, not blended in.
 * **In the index — Google’s and Bing’s** — whether the indexes behind AI Overviews,
   Gemini, ChatGPT search and Copilot hold your pages: the whole site in rotation,
   every verdict in the engine’s own words, problems grouped with deep links to 
   the fix, any page re-checked live — plus week-on-week trend, Google Discover,
   and your registered sitemap’s health.

**Content — clean, machine-readable output**

 * **Markdown delivery** — request any page as clean markdown by appending `.md`
   to its URL. An `Accept: text/markdown` mode also exists for sites with no CDN
   or page cache in front; it is off by default.
 * **/llms.txt** & **/llms-full.txt** — an [llmstxt.org](https://llmstxt.org) index
   of your pages, topics and recent posts, plus a full-text edition an agent ingests
   in one request.
 * **JSON-LD** — WebSite + Person/Organization, plus BlogPosting and BreadcrumbList
   on posts. **Defers to Yoast, Rank Math, SEOPress, AIOSEO and The SEO Framework**,
   so never duplicate schema.
 * **Topics for AI** — say what each post is about in plain words; they become the
   JSON-LD `keywords` and a line in the page’s `.md`. Type your own or fill them
   from tags and categories. Nothing shows on the page.
 * **AI description** — a one-line summary per post; it becomes the JSON-LD `description`,
   the lead of its `.md`, and its `<meta name="description">` unless an SEO plugin
   owns it. Blank uses the excerpt; a sub-switch keeps it out of your `<head>`.
 * **XML sitemap** — with no SEO plugin, Agentimus serves your sitemap at `/wp-sitemap.
   xml` and advertises it in robots.txt and llms.txt; with one, it links theirs.
 * **Change feed** — `/agentimus-changes.json` lists added, updated and removed 
   pages (with `?since=`), so an assistant re-checks only what changed.

**Identity & contact**

 * **Author / site identity** — a profile sentence, expertise topics, linked profiles(`
   sameAs`) and the software you made feed llms.txt and JSON-LD — the highest-signal
   lines for agent retrieval.
 * **security.txt** — optionally publish an RFC 9116 disclosure contact at `/.well-
   known/security.txt`.

**Readiness report**

 * A one-screen score of how machine-readable your site is, with a plain-English
   checklist of what’s enabled and what’s still missing.
 * **Agent preview** — see the exact JSON-LD _and_ Markdown an AI agent receives
   for the whole site or any page, then copy it. It shows what would ship even when
   the feature is off, and a matching preview sits in the post editor.
 * **Readability tips** — as you write, a panel flags what makes a page hard to 
   read, section and quote: thin content, missing headings, no opening summary, 
   a nav-heavy page, images without alt text. Most of those serve search engines
   and screen readers just as much, and the panel says so. Editor-only — nothing
   shows to visitors.

**Machine discovery (forward-looking)**

Everything above is read by search engines and AI tools **today**. This part is 
forward-looking — the conventions the agent ecosystem is converging on, putting 
identity, capabilities and APIs in one predictable place:

 * **/.well-known/discovery.json** — an owner-curated document describing the site’s
   identity, capabilities, APIs and agent cards. Other plugins declare themselves
   through one hook.
 * **/.well-known/agent-card.json** and **/.well-known/mcp.json** — an A2A agent
   card and an MCP manifest, generated for you.
 * **Standards-aligned `.well-known` endpoints** — an RFC 9727 `api-catalog`, plus—
   _only when the capability exists_ — an MCP server card and an Agent Skills index.**
   Response signing** (RFC 9421 / Web Bot Auth) uses an Ed25519 key that never leaves
   your server.
 * **WordPress Abilities API** — the same read-only tools are registered as abilities,
   each gated by the capability of its screen, so WordPress’s built-in AI can read
   them. An off-by-default switch adds the write abilities.
 * **The plugins you run, described** — a WooCommerce store says it sells products;
   FluentCart, FluentCommunity and Fluent Support say what they hold. Plugins that
   keep everything behind a login are named as such. Switch off anything you would
   rather not announce.
 * **Zero-config auto-discovery** — reads your REST namespaces, public post types
   and the Abilities API, so a site is described even when no plugin declares itself.
   The **Discovery Hub** shows what an agent sees.

**Why it’s useful**

Most tools cover one slice — an llms.txt file, a bot blocker, or structured data.
Agentimus brings the whole job together in one lightweight package — and tells you
what’s still missing.

### External services

Agentimus makes no outbound requests by default: no remote scripts, fonts or analytics,
and the agent-activity log stays in your own database with no IP addresses. (IP 
storage is optional, off by default — see the FAQ.)

**Every outbound feature is opt-in and off by default.**

**Data sources & IndexNow:** connecting Cloudflare, Google Search Console or Bing
Webmaster Tools polls that service with your own key. The optional IndexNow switch
announces published and removed URLs to search engines via api.indexnow.org (https://
www.indexnow.org/) — only the changed URL list is sent.

**Verify bot identities** makes DNS lookups and, once a day, downloads the IP-range
files bot operators publish to verify their crawlers (Google, Microsoft, DuckDuckGo,
Apple, OpenAI, Perplexity — or a URL you add yourself). Only those files are fetched;
nothing about your site is sent.

The same setting verifies **Web Bot Auth** signatures — the standard where an AI
agent signs its request cryptographically. To check one, Agentimus fetches (and 
caches) the signing operator’s **public key directory** at `/.well-known/http-message-
signatures-directory`, only when a signed request arrives, and sends nothing about
your site with it. Operators publishing one today:

 * **OpenAI** — https://chatgpt.com/.well-known/http-message-signatures-directory·
   https://openai.com/policies/terms-of-use · https://openai.com/policies/privacy-
   policy
 * **Google** — https://agent.bot.goog/.well-known/http-message-signatures-directory·
   https://policies.google.com/terms · https://policies.google.com/privacy

**Citation checks:** when you enable them and add your own API key for a provider,
Agentimus sends the prompts you configured to that provider to check whether it 
mentions and cites your site — only for the engines you turn on, and only when a
check runs. Your keys are stored on your own site and used solely for these calls.
The providers, with their terms and privacy policies:

 * **OpenAI (ChatGPT)** — https://openai.com/policies/terms-of-use · https://openai.
   com/policies/privacy-policy
 * **Perplexity** — https://www.perplexity.ai/hub/legal/terms-of-service · https://
   www.perplexity.ai/hub/legal/privacy-policy
 * **Google (Gemini)** — https://ai.google.dev/gemini-api/terms · https://policies.
   google.com/privacy
 * **Anthropic (Claude)** — https://www.anthropic.com/legal/consumer-terms · https://
   www.anthropic.com/legal/privacy

URL-like strings in the plugin’s output are labels, not requests — the discovery
documents’ `$schema` value names the format (never fetched), and the `example.com`
URLs in `examples/` are documentation placeholders.

## Screenshots

[⌊Dashboard — it opens with today: what AI crawlers read, who arrived from an AI
answer, and what connected assistants did, each against yesterday, and one sentence
naming who did it. Then your AEO/GEO score across five plain rungs (Findable, Readable,
Trusted, Optimized, Cited) with the one next step worth taking, and what your site
runs: every system's standing in four panels — how AI assistants reach you, what
your site tells the engines, what search shows, what your writing holds — each led
by one number that links to its full screen. Beneath them, the two audiences counted
apart — the people who came to read, and the machines that fetched — then a first-
party log of which AI agents and crawlers reached each endpoint, who reads you most,
and the real visitors AI assistants sent. Every day bar opens that day's full report.⌉⌊
Dashboard — it opens with today: what AI crawlers read, who arrived from an AI answer,
and what connected assistants did, each against yesterday, and one sentence naming
who did it. Then your AEO/GEO score across five plain rungs (Findable, Readable,
Trusted, Optimized, Cited) with the one next step worth taking, and what your site
runs: every system's standing in four panels — how AI assistants reach you, what
your site tells the engines, what search shows, what your writing holds — each led
by one number that links to its full screen. Beneath them, the two audiences counted
apart — the people who came to read, and the machines that fetched — then a first-
party log of which AI agents and crawlers reached each endpoint, who reads you most,
and the real visitors AI assistants sent. Every day bar opens that day's full report
.⌉[

Dashboard — it opens with today: what AI crawlers read, who arrived from an AI answer,
and what connected assistants did, each against yesterday, and one sentence naming
who did it. Then your AEO/GEO score across five plain rungs (Findable, Readable,
Trusted, Optimized, Cited) with the one next step worth taking, and what your site
runs: every system’s standing in four panels — how AI assistants reach you, what
your site tells the engines, what search shows, what your writing holds — each led
by one number that links to its full screen. Beneath them, the two audiences counted
apart — the people who came to read, and the machines that fetched — then a first-
party log of which AI agents and crawlers reached each endpoint, who reads you most,
and the real visitors AI assistants sent. Every day bar opens that day’s full report.

[⌊Visibility → In the index — whether the engines' indexes actually hold your pages,
Bing's and Google's on one screen. Bing is the index ChatGPT search and Copilot 
read today: how much of your site it holds, how cleanly its crawler gets in, and
a live question you can ask about any single page. Google's is walked in rotation
and re-checked daily — healthy pages stay a count, while anything that needs a look
earns a row in Google's own words, each with a link straight to that URL in Search
Console.⌉⌊Visibility → In the index — whether the engines' indexes actually hold
your pages, Bing's and Google's on one screen. Bing is the index ChatGPT search 
and Copilot read today: how much of your site it holds, how cleanly its crawler 
gets in, and a live question you can ask about any single page. Google's is walked
in rotation and re-checked daily — healthy pages stay a count, while anything that
needs a look earns a row in Google's own words, each with a link straight to that
URL in Search Console.⌉[

Visibility  In the index — whether the engines’ indexes actually hold your pages,
Bing’s and Google’s on one screen. Bing is the index ChatGPT search and Copilot 
read today: how much of your site it holds, how cleanly its crawler gets in, and
a live question you can ask about any single page. Google’s is walked in rotation
and re-checked daily — healthy pages stay a count, while anything that needs a look
earns a row in Google’s own words, each with a link straight to that URL in Search
Console.

[⌊Visibility → Search — what people searched, how often you appeared, how often 
those results were clicked, and the pages that earned them; every number the engine's
own. Connect both Google and Bing and a switch appears, because the two count different
searchers and are never merged. Directly beneath it, Search Opportunities turns 
those same numbers into a worklist: pages sitting just off page one, and pages on
page one being scrolled past, each wired to the exact field that fixes it. It also
names the searches several of your pages are splitting between them — the clicks
divide, so each ranks lower than one page would — with the page that earns the click
stated, and one decision on every other.⌉⌊Visibility → Search — what people searched,
how often you appeared, how often those results were clicked, and the pages that
earned them; every number the engine's own. Connect both Google and Bing and a switch
appears, because the two count different searchers and are never merged. Directly
beneath it, Search Opportunities turns those same numbers into a worklist: pages
sitting just off page one, and pages on page one being scrolled past, each wired
to the exact field that fixes it. It also names the searches several of your pages
are splitting between them — the clicks divide, so each ranks lower than one page
would — with the page that earns the click stated, and one decision on every other
.⌉[

Visibility  Search — what people searched, how often you appeared, how often those
results were clicked, and the pages that earned them; every number the engine’s 
own. Connect both Google and Bing and a switch appears, because the two count different
searchers and are never merged. Directly beneath it, Search Opportunities turns 
those same numbers into a worklist: pages sitting just off page one, and pages on
page one being scrolled past, each wired to the exact field that fixes it. It also
names the searches several of your pages are splitting between them — the clicks
divide, so each ranks lower than one page would — with the page that earns the click
stated, and one decision on every other.

[⌊Readiness report — a plain-English pass/warn/fail checklist of what's enabled 
and what's still missing, grouped by rung, each row carrying its own fix in the 
site's own words. Buttons at the top preview your site the way an agent sees it,
re-run every check live, and scan for files that shouldn't be public. Beneath the
checklist your content is summarised rather than listed: how many pieces are graded,
how many carry something worth fixing, and which issue is the most common — with
a way in page by page, a way in by issue, and the set-aside list of everything you
have deliberately left out of the score.⌉⌊Readiness report — a plain-English pass/
warn/fail checklist of what's enabled and what's still missing, grouped by rung,
each row carrying its own fix in the site's own words. Buttons at the top preview
your site the way an agent sees it, re-run every check live, and scan for files 
that shouldn't be public. Beneath the checklist your content is summarised rather
than listed: how many pieces are graded, how many carry something worth fixing, 
and which issue is the most common — with a way in page by page, a way in by issue,
and the set-aside list of everything you have deliberately left out of the score
.⌉[

Readiness report — a plain-English pass/warn/fail checklist of what’s enabled and
what’s still missing, grouped by rung, each row carrying its own fix in the site’s
own words. Buttons at the top preview your site the way an agent sees it, re-run
every check live, and scan for files that shouldn’t be public. Beneath the checklist
your content is summarised rather than listed: how many pieces are graded, how many
carry something worth fixing, and which issue is the most common — with a way in
page by page, a way in by issue, and the set-aside list of everything you have deliberately
left out of the score.

[⌊Crawler policy & bot identity — declare your content-usage signals, block scanners
and scrapers by name, turn away spoofed traffic, and verify bots against what each
operator publishes: reverse DNS for the search engines, published IP ranges for 
GPTBot and PerplexityBot. The verified-bots registry is yours to edit.⌉⌊Crawler 
policy & bot identity — declare your content-usage signals, block scanners and scrapers
by name, turn away spoofed traffic, and verify bots against what each operator publishes:
reverse DNS for the search engines, published IP ranges for GPTBot and PerplexityBot.
The verified-bots registry is yours to edit.⌉[

Crawler policy & bot identity — declare your content-usage signals, block scanners
and scrapers by name, turn away spoofed traffic, and verify bots against what each
operator publishes: reverse DNS for the search engines, published IP ranges for 
GPTBot and PerplexityBot. The verified-bots registry is yours to edit.

[⌊Request Log — every visit a machine made to your site, in one filterable table:
which crawler or AI assistant it was, what it fetched — your own pages included,
not just the AI files — and whether it was served or turned away. Narrow by client,
address, verification verdict, signature, User-Agent or date. A Status column carries
one honest mark per request — verified, signed, spoofed, forged, refused or unchecked.
Your readers are never logged here.⌉⌊Request Log — every visit a machine made to
your site, in one filterable table: which crawler or AI assistant it was, what it
fetched — your own pages included, not just the AI files — and whether it was served
or turned away. Narrow by client, address, verification verdict, signature, User-
Agent or date. A Status column carries one honest mark per request — verified, signed,
spoofed, forged, refused or unchecked. Your readers are never logged here.⌉[

Request Log — every visit a machine made to your site, in one filterable table: 
which crawler or AI assistant it was, what it fetched — your own pages included,
not just the AI files — and whether it was served or turned away. Narrow by client,
address, verification verdict, signature, User-Agent or date. A Status column carries
one honest mark per request — verified, signed, spoofed, forged, refused or unchecked.
Your readers are never logged here.

[⌊MCP server — one switch runs a Model Context Protocol server on your own site.
Your server address leads: give it to an assistant and it asks you for approval —
no keys to paste — and every approved assistant is listed with its scope, its last
call and its own Disconnect. Above it, the trust ladder: a second switch lets agents
write, a third decides whether they may publish or only leave drafts.⌉⌊MCP server—
one switch runs a Model Context Protocol server on your own site. Your server address
leads: give it to an assistant and it asks you for approval — no keys to paste —
and every approved assistant is listed with its scope, its last call and its own
Disconnect. Above it, the trust ladder: a second switch lets agents write, a third
decides whether they may publish or only leave drafts.⌉[

MCP server — one switch runs a Model Context Protocol server on your own site. Your
server address leads: give it to an assistant and it asks you for approval — no 
keys to paste — and every approved assistant is listed with its scope, its last 
call and its own Disconnect. Above it, the trust ladder: a second switch lets agents
write, a third decides whether they may publish or only leave drafts.

[⌊Data sources — the outside services Agentimus reads from, all optional, each with
one key held on your own server and no third-party proxy: Cloudflare for what the
edge answered or blocked before your server saw it (and, with an optional extra 
permission, clearing its cache when you publish), Google Search Console for classic
search and index coverage — with Analytics alongside it, on that same key, if you
want visitor numbers too — and Bing Webmaster Tools, which can also announce every
change you publish through IndexNow. Numbers land in your own database, so your 
history outlives each service's own reporting window.⌉⌊Data sources — the outside
services Agentimus reads from, all optional, each with one key held on your own 
server and no third-party proxy: Cloudflare for what the edge answered or blocked
before your server saw it (and, with an optional extra permission, clearing its 
cache when you publish), Google Search Console for classic search and index coverage—
with Analytics alongside it, on that same key, if you want visitor numbers too —
and Bing Webmaster Tools, which can also announce every change you publish through
IndexNow. Numbers land in your own database, so your history outlives each service's
own reporting window.⌉[

Data sources — the outside services Agentimus reads from, all optional, each with
one key held on your own server and no third-party proxy: Cloudflare for what the
edge answered or blocked before your server saw it (and, with an optional extra 
permission, clearing its cache when you publish), Google Search Console for classic
search and index coverage — with Analytics alongside it, on that same key, if you
want visitor numbers too — and Bing Webmaster Tools, which can also announce every
change you publish through IndexNow. Numbers land in your own database, so your 
history outlives each service’s own reporting window.

[⌊Visibility → Citations, set up — the opt-in check that asks ChatGPT, Perplexity,
Gemini and Claude whether they mention and link each brand, product or person you
track. Name the thing, say what kind of thing it is, name the rivals it competes
with, and write the questions a real person would type — or have them suggested.
Then switch on the assistants that should answer them: each runs on your own API
key, kept on your own server and used for nothing but your checks, because a citation
check is graded on the sources an assistant actually cited and WordPress's shared
connector hands back the answer text without them. Choose how often the checks run
and how long the history is kept. Results land on the tab beside this one: seen-
in-answers and linked-your-site rates, rank against each item's own rivals, and 
question-by-question answers with the sources each engine cited.⌉⌊Visibility → Citations,
set up — the opt-in check that asks ChatGPT, Perplexity, Gemini and Claude whether
they mention and link each brand, product or person you track. Name the thing, say
what kind of thing it is, name the rivals it competes with, and write the questions
a real person would type — or have them suggested. Then switch on the assistants
that should answer them: each runs on your own API key, kept on your own server 
and used for nothing but your checks, because a citation check is graded on the 
sources an assistant actually cited and WordPress's shared connector hands back 
the answer text without them. Choose how often the checks run and how long the history
is kept. Results land on the tab beside this one: seen-in-answers and linked-your-
site rates, rank against each item's own rivals, and question-by-question answers
with the sources each engine cited.⌉[

Visibility  Citations, set up — the opt-in check that asks ChatGPT, Perplexity, 
Gemini and Claude whether they mention and link each brand, product or person you
track. Name the thing, say what kind of thing it is, name the rivals it competes
with, and write the questions a real person would type — or have them suggested.
Then switch on the assistants that should answer them: each runs on your own API
key, kept on your own server and used for nothing but your checks, because a citation
check is graded on the sources an assistant actually cited and WordPress’s shared
connector hands back the answer text without them. Choose how often the checks run
and how long the history is kept. Results land on the tab beside this one: seen-
in-answers and linked-your-site rates, rank against each item’s own rivals, and 
question-by-question answers with the sources each engine cited.

[⌊Discovery — everything your site offers AI assistants, in one place and in plain
words: the things assistants can read, the things they can do, and what each of 
those rows actually allows. Beneath them the MCP connection, and every well-known
document your site serves with its live status and one line saying what it is for—
so none of it is a filename you have to go and look up. Any registration problem
is listed with a plain-English fix.⌉⌊Discovery — everything your site offers AI 
assistants, in one place and in plain words: the things assistants can read, the
things they can do, and what each of those rows actually allows. Beneath them the
MCP connection, and every well-known document your site serves with its live status
and one line saying what it is for — so none of it is a filename you have to go 
and look up. Any registration problem is listed with a plain-English fix.⌉[

Discovery — everything your site offers AI assistants, in one place and in plain
words: the things assistants can read, the things they can do, and what each of 
those rows actually allows. Beneath them the MCP connection, and every well-known
document your site serves with its live status and one line saying what it is for—
so none of it is a filename you have to go and look up. Any registration problem
is listed with a plain-English fix.

[⌊The writing assistant — a spark button on every Agentimus screen opens the drawer:
choose what you are writing (a post, a page, or one of your own content types — 
a page gets no invented sections and no tags), describe it in your own words, then
draft it straight away or shape the outline first. Preview the fully dressed draft,
create it as a draft and land straight in the editor. Nothing is saved until you
say so, and it never publishes.⌉⌊The writing assistant — a spark button on every
Agentimus screen opens the drawer: choose what you are writing (a post, a page, 
or one of your own content types — a page gets no invented sections and no tags),
describe it in your own words, then draft it straight away or shape the outline 
first. Preview the fully dressed draft, create it as a draft and land straight in
the editor. Nothing is saved until you say so, and it never publishes.⌉[

The writing assistant — a spark button on every Agentimus screen opens the drawer:
choose what you are writing (a post, a page, or one of your own content types — 
a page gets no invented sections and no tags), describe it in your own words, then
draft it straight away or shape the outline first. Preview the fully dressed draft,
create it as a draft and land straight in the editor. Nothing is saved until you
say so, and it never publishes.

[⌊In the post editor — the "Agentimus" box, Readability tab: a per-page pass/warn
check of what makes the page hard to read, section and quote — for AI assistants,
for search engines and for people alike — enough substance, an opening summary, 
specifics and cited sources, section headings and their order, quotable passages,
reading ease, prose vs links, image alt text, video and audio, the featured image
and whether it is described, and freshness. The rows an AI can draft a fix for —
a thin page, a missing opening summary, an over-long block — carry a "Fix with AI"
button once you have set a provider up in WordPress. Two more tabs sit alongside
it: JSON-LD and Share.⌉⌊In the post editor — the "Agentimus" box, Readability tab:
a per-page pass/warn check of what makes the page hard to read, section and quote—
for AI assistants, for search engines and for people alike — enough substance, an
opening summary, specifics and cited sources, section headings and their order, 
quotable passages, reading ease, prose vs links, image alt text, video and audio,
the featured image and whether it is described, and freshness. The rows an AI can
draft a fix for — a thin page, a missing opening summary, an over-long block — carry
a "Fix with AI" button once you have set a provider up in WordPress. Two more tabs
sit alongside it: JSON-LD and Share.⌉[

In the post editor — the “Agentimus” box, Readability tab: a per-page pass/warn 
check of what makes the page hard to read, section and quote — for AI assistants,
for search engines and for people alike — enough substance, an opening summary, 
specifics and cited sources, section headings and their order, quotable passages,
reading ease, prose vs links, image alt text, video and audio, the featured image
and whether it is described, and freshness. The rows an AI can draft a fix for —
a thin page, a missing opening summary, an over-long block — carry a “Fix with AI”
button once you have set a provider up in WordPress. Two more tabs sit alongside
it: JSON-LD and Share.

[⌊Findings — one front door for everything open across your site, ranked by what
each one costs: pages losing a click they already earn, and anything the setup checks
caught. Every row says what to do and carries the button that lands on the fix. 
Beneath it, your content one row at a time — what each page is found for, whether
it answers that, and anything else it needs. It covers every kind of content you
publish, and the line above the list says which kinds are being checked.⌉⌊Findings—
one front door for everything open across your site, ranked by what each one costs:
pages losing a click they already earn, and anything the setup checks caught. Every
row says what to do and carries the button that lands on the fix. Beneath it, your
content one row at a time — what each page is found for, whether it answers that,
and anything else it needs. It covers every kind of content you publish, and the
line above the list says which kinds are being checked.⌉[

Findings — one front door for everything open across your site, ranked by what each
one costs: pages losing a click they already earn, and anything the setup checks
caught. Every row says what to do and carries the button that lands on the fix. 
Beneath it, your content one row at a time — what each page is found for, whether
it answers that, and anything else it needs. It covers every kind of content you
publish, and the line above the list says which kinds are being checked.

[⌊Integrations → Services — where Agentimus sends its reports. A new finding, a 
caught impostor, the weekly digest and three more moments can go to Telegram, Slack,
Discord, a Google Sheet, or any address of your own as signed JSON. Each service
is one you own — your bot, your channel, your sheet — and every connection is tested
before it is saved, so a card never claims to be connected when nothing would arrive.
All of it is off until you switch it on.⌉⌊Integrations → Services — where Agentimus
sends its reports. A new finding, a caught impostor, the weekly digest and three
more moments can go to Telegram, Slack, Discord, a Google Sheet, or any address 
of your own as signed JSON. Each service is one you own — your bot, your channel,
your sheet — and every connection is tested before it is saved, so a card never 
claims to be connected when nothing would arrive. All of it is off until you switch
it on.⌉[

Integrations  Services — where Agentimus sends its reports. A new finding, a caught
impostor, the weekly digest and three more moments can go to Telegram, Slack, Discord,
a Google Sheet, or any address of your own as signed JSON. Each service is one you
own — your bot, your channel, your sheet — and every connection is tested before
it is saved, so a card never claims to be connected when nothing would arrive. All
of it is off until you switch it on.

[⌊Integrations → Plugins — what your other plugins tell AI assistants about your
site, on your behalf. A WooCommerce store says it sells products; FluentCart says
it has store and checkout pages; FluentCommunity says it holds community spaces.
Plugins that keep everything behind a login are listed too, saying exactly that —
a plugin with nothing public has nothing to pass on, and naming it is more use than
leaving it out. Any plugin can describe itself the same way through one hook, with
no dependency on Agentimus.⌉⌊Integrations → Plugins — what your other plugins tell
AI assistants about your site, on your behalf. A WooCommerce store says it sells
products; FluentCart says it has store and checkout pages; FluentCommunity says 
it holds community spaces. Plugins that keep everything behind a login are listed
too, saying exactly that — a plugin with nothing public has nothing to pass on, 
and naming it is more use than leaving it out. Any plugin can describe itself the
same way through one hook, with no dependency on Agentimus.⌉[

Integrations  Plugins — what your other plugins tell AI assistants about your site,
on your behalf. A WooCommerce store says it sells products; FluentCart says it has
store and checkout pages; FluentCommunity says it holds community spaces. Plugins
that keep everything behind a login are listed too, saying exactly that — a plugin
with nothing public has nothing to pass on, and naming it is more use than leaving
it out. Any plugin can describe itself the same way through one hook, with no dependency
on Agentimus.

[⌊Report — what AI did on your site between any two dates. How many AI crawlers 
read you and which ones, how many people arrived from an AI answer and from where,
what assistants did here, where you stand in search, your score, and the one thing
worth doing. Today, yesterday, seven days, thirty, or two dates from a calendar.
Every block says how fresh it can be: your own log answers any window to the minute,
while Google and Bing publish days behind and name the newest day they have rather
than printing a zero that would read as "nobody searched". Your dashboard opens 
with the same reading for today.⌉⌊Report — what AI did on your site between any 
two dates. How many AI crawlers read you and which ones, how many people arrived
from an AI answer and from where, what assistants did here, where you stand in search,
your score, and the one thing worth doing. Today, yesterday, seven days, thirty,
or two dates from a calendar. Every block says how fresh it can be: your own log
answers any window to the minute, while Google and Bing publish days behind and 
name the newest day they have rather than printing a zero that would read as "nobody
searched". Your dashboard opens with the same reading for today.⌉[

Report — what AI did on your site between any two dates. How many AI crawlers read
you and which ones, how many people arrived from an AI answer and from where, what
assistants did here, where you stand in search, your score, and the one thing worth
doing. Today, yesterday, seven days, thirty, or two dates from a calendar. Every
block says how fresh it can be: your own log answers any window to the minute, while
Google and Bing publish days behind and name the newest day they have rather than
printing a zero that would read as “nobody searched”. Your dashboard opens with 
the same reading for today.

## Installation

 1. Upload the `agentimus` folder to `/wp-content/plugins/`, or install via Plugins
    Add New.
 2. Activate the plugin.
 3. A setup wizard opens automatically on your first visit to the admin and walks you
    through your identity and content choices in about a minute. After that everything
    runs on its own — open **Agentimus** any time to review the readiness report or
    adjust settings.

## FAQ

### Where is the documentation?

The full documentation — a plain-English user manual and a developer reference —
is at https://heera.github.io/agentimus/. It has step-by-step guides for every feature,
plus the hooks, filters and endpoints for developers.

### Do I need to be technical to use this?

No. A setup wizard opens automatically the first time you visit the admin and walks
you through everything in about a minute — you write a sentence about who you are
and tick what AI assistants may read. Everything else runs on its own, and you can
change any of it later.

### What does Agentimus change on my site? Will my visitors notice?

Nothing your visitors see changes — there’s no new front-end script, style or layout.
Behind the scenes it publishes machine-readable files and signals (like llms.txt
and a discovery document) that only AI assistants and crawlers read. It also stands
down automatically next to SEO plugins, so it won’t duplicate or fight your existing
setup.

### What’s the quickest way to set this up for my site?

Activate Agentimus and run the one-minute setup wizard — that covers most sites.
Then, depending on what you do:

 * **Consultant, freelancer or personal brand:** fill in your Identity — your name,
   a one-sentence bio, your expertise topics, and links to your other profiles. 
   That’s the highest-signal information an AI assistant uses to describe and cite
   you correctly.
 * **Business or agency:** set the entity type to Organization, list the services
   you offer, and add a contact email so an agent can point enquiries the right 
   way.
 * **Blog or publisher:** the defaults are already right — your posts and pages 
   flow into llms.txt automatically. Just add a profile sentence so an assistant
   knows whose site it is.

Whatever your case, the Readiness report always tells you the single next thing 
worth improving.

### Does Agentimus make external requests or send my data anywhere?

By default, no — Agentimus makes no outbound HTTP requests out of the box, sends
nothing to any external service, collects no analytics or telemetry, and stores 
the agent-activity log in your own database with no IP addresses. (One opt-in setting,
_Store IP addresses for flagged clients_, can store IPs locally for flagged crawlers
only — off by default; see _External services_.) Two opt-in features go outbound.**
Verify bot identities** makes DNS lookups and downloads, once a day, the crawler-
IP lists that bot operators publish (Google, OpenAI, Perplexity, …) so impostors
can be caught; when a request arrives carrying a Web Bot Auth signature, it also
fetches that operator’s public key file so the signature can be checked on your 
own server. Only those public files are fetched, and nothing about your site is 
sent. **The other is the optional citation checks feature:** if you enable it and
add your own API key, Agentimus queries the AI provider(s) you chose (OpenAI, Perplexity,
Gemini and/or Anthropic) to check whether they mention and cite you — only for the
engines you turn on, and only when a check runs (on demand or on your schedule).
Your keys stay on your server and nothing else is sent anywhere. See _External services_
for the full disclosure. The discovery document includes a `$schema` value that 
_identifies_ the document format (the same way a schema.org URL identifies a vocabulary);
it is a label in the output, never fetched. The one place a request is made is the
optional “Verify live” self-check on the readiness report — and that runs in _your
browser_, fetching your own public URLs only when you click it; the server itself
still makes no request.

### Do I need an SEO plugin alongside Agentimus?

No. With no SEO plugin installed, Agentimus covers the search essentials itself:
per-page SEO titles (an “SEO title” field in the editor), Open Graph/X share cards,
canonical links, meta descriptions, and an XML sitemap with last-changed dates. 
Each has its own switch under Settings  Discovery  Search basics. If you install
an SEO plugin later, Agentimus notices on the next page load and steps aside on 
everything the plugin owns — your per-page values are kept, and everything returns
if that plugin leaves.

### Does this conflict with my SEO plugin?

No. When Yoast, Rank Math, SEOPress, AIOSEO or The SEO Framework is active, Agentimus
stands down on every overlapping surface — JSON-LD, SEO titles, share cards, canonicals,
meta descriptions and the sitemap — automatically, so nothing is ever emitted twice.
A card on the dashboard names the division of labour. The AI-facing endpoints (llms.
txt, markdown twins, the discovery documents) don’t overlap with SEO plugins and
keep working the same either way.

### My robots.txt rules aren’t showing.

If a static `robots.txt` file exists at your site root, or your CDN serves its own,
it overrides WordPress’s virtual robots.txt. The readiness report flags this. Remove
the static file to let Agentimus manage the rules.

### An SEO audit tool says my robots.txt is invalid.

Some audit tools flag the `Content-Signal:` line Agentimus adds. The line is valid:
the robots.txt standard (RFC 9309) tells parsers to ignore any field they don’t 
recognise, so every crawler still reads the rest of your file exactly as written.
The tool is behind the standard, not your site. Nothing to fix.

### I turned something on but nothing seems to happen — is it broken?

Almost always it’s working — here’s how to confirm. The generated AI files are cached
for up to an hour, so a change may not show instantly: open the file directly (for
example `yoursite.com/llms.txt`) and refresh. The Readiness report’s **Verify live**
button fetches your real URLs from your browser and shows exactly what an agent 
receives — including anything your CDN is caching. If a file still isn’t appearing,
check that a static file or your CDN isn’t overriding it (the report flags a static
robots.txt, for instance).

### How do I tell AI not to train on my content?

Set **Allow AI training** to off under Settings  Crawler policy. That one switch
publishes your choice in three places at once, so a crawler that ignores one still
sees the others:

 1. **robots.txt** — a `Content-Signal: … ai-train=no` line (advisory).
 2. **A response header** on your pages — `tdm-reservation: 1` (the W3C TDM Reservation
    Protocol), which reaches bots that never read robots.txt.
 3. **An opt-out file** at `/.well-known/tdmrep.json` — the recognized, machine-readable
    reservation, relevant under EU text-and-data-mining rules.

The header and file are on by default and can be toggled per channel under “Published
beyond robots.txt”. You can optionally also send the non-standard `X-Robots-Tag:
noai, noimageai` (off by default, honored by some platforms) and link an AI-usage
policy URL.

**Important — these are signals, not a wall.** robots.txt, the header and tdmrep.
json are standardized _requests_ that compliant crawlers honor; they do not forcibly
stop a bot. To actually refuse a crawler with a `403`, add it to the crawler list
or use scanner blocking (Crawler policy  Block specific crawlers / Block scanners),
which Agentimus enforces at its generated endpoints.

### Can I block only specific AI bots?

Yes — list them under **Block specific crawlers**. That writes a per-name `Disallow:/`
to robots.txt for each. The `/.well-known/tdmrep.json` opt-out file and the `tdm-
reservation` header are **site-wide** — the standard has no per-bot dial — so per-
bot blocking lives in robots.txt (and in scanner blocking for a hard 403), while
the file and header carry your overall site-wide choice. (Those site-wide signals
are published only when you block AI training; an open site publishes none.)

### Which AI agents are allowed by default?

Out of the box Agentimus blocks nothing — it’s a discovery layer, so every agent
is served until you turn on the optional scanner blocking. Even then, an **always-
allowed** list keeps trusted clients flowing: the major search engines (Googlebot,
Bingbot, DuckDuckBot, Applebot, Yandex) are recognised automatically and never blocked
or flagged, and the _AI access_ tab shows them read-only so you know exactly what’s
trusted. You can add well-known AI assistants and answer engines (ChatGPT, Claude,
Perplexity, …) with one click, or mark any client **Allow** from the activity review
queue. Training crawlers (GPTBot, ClaudeBot, …) are deliberately not on the trust
list — those belong to your separate AI-training choice, so trusting them here wouldn’t
quietly undo an opt-out you may have set.

### Can I see if AI is sending me visitors?

Yes — the dashboard’s “Traffic from AI” card counts real people who landed on your
site from an AI assistant (ChatGPT, Perplexity, Gemini, …), detected from the visit’s
referrer and the `utm_source` tag some AI tools add to their links. It’s the mirror
of the activity log: that shows bots _reading_ your content; this shows AI _bringing
you readers_, with a by-source and top-landing-pages breakdown. Like the rest of
the log it’s first-party and aggregate-only — no IP, no per-visitor records, nothing
sent anywhere. Some readers from AI can’t be detected (stripped referrers, Google’s
AI Overviews, cached pages), so read the figure as a floor: at least this many.

### Will Agentimus get my site mentioned by ChatGPT or improve my AI rankings?

Honestly: it helps with one half of that, not the other. Agentimus makes your site**
discoverable and correctly understood** — when an AI assistant looks at your site,
it can find your content, read a clean version, and describe you accurately. That
is what the plugin controls, and it does it well. But whether an AI **spontaneously
mentions you** when someone asks a broad question (“best resources for X”) is a 
matter of **authority and reputation** — earned over time through genuinely notable
content that others reference. No plugin, llms.txt, or schema can manufacture that,
and any tool promising “instant AI visibility” is overselling. Agentimus makes sure
that when authority does bring an agent to your door, nothing is lost in translation.

### Will it slow my site down?

No. The text endpoints are cached and CDN-friendly; there is no front-end JavaScript
or CSS for your visitors (the optional, off-by-default WebMCP bridge adds a tiny
script only when you enable it, and it stays inert in browsers without the API).
The admin app loads only on the plugin’s own screen.

### Does it expose anything private, or let agents change my site?

No. Agentimus only describes what your site already makes public; it grants no new
access. Removing or suppressing an item changes what is _advertised_, not what is
reachable — the underlying endpoints behave exactly as before, behind their own 
authentication.

### Does Agentimus run an MCP server?

Yes — as an opt-in, on WordPress 6.9 or newer. Turn on **Settings  Discovery  MCP
server** and the AI assistants you already use can talk to your site over the Model
Context Protocol and run the same permission-checked tools your admin AI gets — 
twenty-five read-only ones (the ranked findings list, readiness, the pages worth
fixing and what each is flagged for, a page’s stored body, the categories and tags
your site already uses, the people-vs-machines audience, AI traffic, the request
log, edge traffic, search performance and opportunities, Google index answers, bot
identification, per-page readability, internal-link suggestions, media search and
previews), plus the write tools if you separately allow those (see the next question).
It also offers your site’s own documents to be _read_ rather than run — llms.txt,
llms-full.txt, discovery.json and your agent card are listed as MCP resources, so
an assistant attaches them the way it attaches a file, and one you have switched
off is never offered. Connecting is usually one approval: give the assistant your
server address and it asks you for permission on a page served by your own site,
where you choose read-only or read-and-write. Claude, ChatGPT and Cursor work this
way today (ChatGPT behind its Developer-mode switch); Codex cannot ask, so it takes
a shared token you create on the card and send as a Bearer header. A WordPress application
password still works too, for one key per tool tied to a specific user. Nothing 
becomes public — every request signs in, each tool keeps the same permission checks
as the admin screens, and every call is recorded under **More  Agent Access**. Off
by default, and everything needed ships with the plugin.

### Can an AI agent write to my site?

Only if you say so, twice. The MCP server starts read-only; a second switch — **
Let connected agents write** — adds the write tools: draft and edit posts and pages
complete with categories, tags and a featured image (searched from your media library
by title or alt text, or imported from a URL), change one passage of a page rather
than replacing it, describe an image for screen readers and image search — the one
in your library, or one sitting inside a page, which is a different fix because 
the page keeps its own copy of the words — set their AI topics and descriptions,
and apply Readiness fixes (a fixed list of safe switches that can only turn documented
features on, never loosen a protection). Even then, agents can’t publish: they leave
drafts and pending posts for your review, unless you flip a third switch that allows
going live. Writes are held to the site’s own quality bar too: the write tools show
agents the same readability rules the in-admin assistant drafts to, and every create
or update returns the post’s AI-readability grade. Every write runs as the signed-
in user — an agent can never do more than that user could in the editor: filing 
under existing categories, creating new ones, and uploading images each follow that
user’s own permissions — and every call is recorded under **More  Agent Access**,
attributed to the key that made it.

### Can AI help me write the description, topics and fixes?

Yes, if you’re on WordPress 7.0 and have set up an AI provider under Settings  AI.
Then **Draft with AI** appears on the AI description field, **Suggest with AI** 
on the Topics field, and **Fix with AI** on any Readability row that needs work.
Agentimus asks _your_ AI through WordPress’s shared connectors — it never sees or
stores your API key, and nothing is sent anywhere if you haven’t set a provider 
up (the buttons simply don’t appear). Every suggestion arrives as ordinary editable
text in the field: you read it, change it, and save the post yourself. Nothing is
written for you.

### Can AI write a whole post for me?

Yes — the writing assistant (the spark button on Agentimus’s own screens) turns 
a described idea into a complete draft. It proposes an outline you can edit first,
then writes the title, body, AI description and topics with suggested categories
and tags, and shows you everything before a single thing is saved. **Create draft**
opens the post in the editor, where image placeholders arrive with their alt text
ready — fill them from your library, or generate them with AI. Revising an existing
post happens in the editor instead, where **Ask AI** works at three scopes: the 
block you are in, several blocks you select, or the whole post — the last returning
a list of proposed edits, each with its reason, that you accept or reject one at
a time. It needs the **Let connected agents write** switch on and an AI provider
under Settings  AI, and it never publishes: drafts and pending review only.

### Do citation checks use the AI provider I set up in WordPress?

No — it needs its own API keys, and that’s on purpose. A visibility check is graded
on the **sources each engine cited**, and WordPress’s shared connectors hand back
only the answer text; the list of cited sources is dropped before Agentimus could
read it. Reading those sources means talking to each engine’s own API, so citation
checks keep their own keys (Visibility  Citations). They stay on your server and
are used for nothing else.

### How do I make my plugin appear in the discovery document?

Add a single optional action — no dependency, no library. If Agentimus isn’t installed
the hook simply never fires:

    ```
    add_action( 'wpdiscovery_register', function ( $registry ) {
        $registry->register( array( 'id' => 'acme', 'title' => 'Acme', 'type' => 'commerce' ) );
    } );
    ```

Agentimus also fires the product-aliased `agentimus_register`; you may hook either.
See `examples/integrate-your-plugin.php` for the full resource schema (capabilities,
endpoints, auth, agent cards, MCP tools).

### Which hooks can my plugin use?

Registration is a single action, but Agentimus exposes more for deeper integrations,
grouped by stability:

 * **Stable** — frozen at WP_Discovery spec 1.0; build on these: the `wpdiscovery_register`
   action with its `$registry->register()` / `add_well_known()` API, plus `agentimus_entity_types`
   and the `agentimus_cache_flushed` action.
 * **Extension** — supported output-shaping filters (signatures may evolve between
   releases): tune the discovery document, MCP/agent surfaces, llms.txt, schema.
   org, sitemap, REST discovery and security.txt — e.g. `agentimus_envelope`, `agentimus_documents`,`
   agentimus_mcp`, `agentimus_agent_skills`, `agentimus_well_known_routed`, `agentimus_post_types`,`
   agentimus_security_txt`.
 * **Internal** — advanced site-owner tuning (Guard, Classifier, Activity, Settings);
   not a third-party integration surface.

Every hook, with its signature and tier, is catalogued in `examples/all-hooks-reference.
php`.

### Is the discovery format an open standard I can read?

Yes. The discovery document implements the **WP_Discovery Protocol**, an openly-
licensed (CC BY 4.0) specification — not a format private to this plugin. Read the
spec, the 1.0 JSON Schema and worked examples at https://heera.github.io/wp-discovery-
protocol/ (source and conformance tests: https://github.com/heera/wp-discovery-protocol).
Agentimus is its reference implementation.

### Does Agentimus store IP addresses?

Not by default. The agent-activity log records who fetched your endpoints with no
IP addresses at all. One opt-in setting — _Store IP addresses for flagged clients_—
records the IP only of clients flagged as impersonating or spoofed crawlers (never
ordinary traffic), so you can block them at your host or CDN. When on, those IPs
are personal data: stored on your own site only, kept for a short retention period,
cleared when you clear the activity log, and deleted if you turn the setting back
off. Nothing is ever sent off your server. If you enable it, disclose it in your
privacy policy (Agentimus adds suggested text at Settings  Privacy).

### Is the admin interface built from source I can inspect?

Yes — there is no minified-only code. Everything in `assets/` is built from source
shipped beside it in `resources/`: the admin interface from Vue 3 source with Vite,
and the three small front-end scripts from `resources/public/` with esbuild. `vite.
config.js` and `package.json` ship too, and all of it also lives in the public repository
at https://github.com/heera/agentimus . Run `npm install && npm run build` to regenerate
the whole of `assets/` from source.

## Reviews

![](https://secure.gravatar.com/avatar/9e15861cd43d1f525af324de68530293dfa4969dd1d562c39d8c80e084544956?
s=60&d=retro&r=g)

### 󠀁[A Useful WordPress Plugin for AI SEO and GEO Monitoring](https://wordpress.org/support/topic/a-useful-wordpress-plugin-for-ai-seo-and-geo-monitoring/)󠁿

 [jaher5881](https://profiles.wordpress.org/jaher5881/) སྤྱི་ཟླ་བཅུ་པ། 15, 2026

Agentimus is a really useful plugin for understanding how AI crawlers interact with
your WordPress website. I especially like the insights into bot activity, page crawling,
AI referral traffic, and indexing status. The MCP integration is another great addition.
Still exploring it, but it looks promising for anyone interested in AI SEO and GEO.

![](https://secure.gravatar.com/avatar/311f300b9608c73aa33b04e7f98469dd73c611eec39a44a8762806679733f9e7?
s=60&d=retro&r=g)

### 󠀁[A complete AI-readiness plugin that actually delivers](https://wordpress.org/support/topic/a-complete-ai-readiness-plugin-that-actually-delivers/)󠁿

 [Nowshad Jawad](https://profiles.wordpress.org/jawad0501/) སྤྱི་ཟླ་བདུན་པ། 4, 2026

As a WordPress developer, I like adopting tools that solve real problems rather 
than chasing trends, and Agentimus genuinely impressed me. It goes far beyond generating
an llms.txt file by providing a complete AI discovery layer, clean machine-readable
content, crawler visibility, and a readiness report that helped me identify gaps
in my site's AI accessibility. I especially appreciate its developer-friendly architecture,
privacy-first approach, and the fact that it makes no unrealistic SEO claims—it 
simply helps AI systems understand your site better. It's now part of my default
toolkit for every new WordPress project. Highly recommended.

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/agentimus/reviews/)

## Contributors & Developers

“Agentimus – AI SEO, llms.txt & MCP for AI Agents” is open source software. The 
following people have contributed to this plugin.

Contributors

 *   [ Sheikh Heera ](https://profiles.wordpress.org/heera/)

[Translate “Agentimus – AI SEO, llms.txt & MCP for AI Agents” into your language.](https://translate.wordpress.org/projects/wp-plugins/agentimus)

### Interested in development?

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

## Changelog

#### 1.53.5

 * Fixed: Recent Requests counted its 50 before grouping, so one busy crawler could
   fill the card — 47 of the 50 on one site — and push every other client off it.
   Repeat hits are grouped first now: up to 50 rows, each with its count.
 * Fixed: the At Cloudflare panel showed every blocked request as Cloudflare blocking
   the crawler. Requests for files no reader asks for, such as a .env or a .git 
   folder, are scanners using a crawler’s name. The panel counts them apart, marks
   a crawler red only when Cloudflare turned away one you allow, and “still knocking?”
   counts a blocked crawler’s own requests.
 * Changed: a client in the review queue only because it was busy in the last hour
   reads “High volume · this hour”, and leaves once it slows down.
 * Fixed: Bun, Deno and undici are named Script/tool, like curl. A crawler whose
   user-agent carries a “+https://” contact link is named by the name it gives, 
   not “Browser”, and connected assistants see the same names as the review queue.
 * Fixed: the Audience card said “agent files only” while it also counted page reads.
 * Fixed: the Google Index card could read “105 checked of 104” when a tag page 
   was on its watchlist.
 * Fixed: the Optimized note said “all” of your published pages while the ones you
   set aside were left out.
 * Changed: more space between each screen’s title and its description.

#### 1.53.4

 * Changed: the Report screen is laid out by what it has to show. AI reads takes
   the full width, with the crawlers that read you in two columns. Visits from AI,
   What acted here, Citations and In search share one panel, one line each, so a
   quiet day no longer leaves tall empty cards; a busy line names its top three.
   The Readiness score card has left the Report: it reads the same whatever days
   you pick, and the card beside the screen already shows it.
 * Changed: “What acted here” names the latest action and what it came in with, 
   not only how many there were.
 * Security: a connection key, or an approved assistant’s access token, was honoured
   on WordPress addresses outside the REST API — admin-ajax.php, admin-post.php,
   wp-login.php — whenever the address named the MCP endpoint. No REST request was
   made there, so the check that holds a key to the MCP endpoint never ran, and 
   the key acted with its owner’s full rights, a read-only key included. Found in
   an internal review. A key now counts only on a request WordPress can route to
   its REST API, and a path counts only under the REST prefix. Exploiting it needed
   the MCP server switched on and a valid key or approved grant in hand.
 * Fixed: on a site behind a proxy or load balancer other than Cloudflare, real 
   search and AI crawlers could be recorded as impostors — flagged for review, alerted
   on, and refused if you block impostors. An address that can only belong to the
   proxy is now “not checked”, never “fake”. An IPv4 address written in IPv6 form
   is also read as IPv4, so Cloudflare’s and the crawlers’ address lists match it
   again.
 * Fixed: an announcement queued or cancelled while another one was being sent could
   be lost, or go out after you cancelled it. Alerts raised during a delivery could
   be dropped the same way.
 * Fixed: unpublishing a post, making it private, trashing it or changing its address
   left the old page and its .md copy in Cloudflare’s cache until they expired. 
   The old address is purged now.
 * Fixed: when another plugin’s error broke your site’s replies, screens showed 
   the browser’s own words, such as “Unexpected end of JSON input”. They now say
   what happened in plain words. A setting whose save could not be confirmed is 
   no longer switched back as if it had failed; the screen asks you to reload instead.
 * Fixed: Google Analytics stopped refreshing whenever Search Console could not 
   be read, with no error shown. Each one refreshes on its own now.
 * Fixed: the flood limit on the referral beacon never reset under steady traffic,
   and dropped real visits from AI answers.
 * Fixed: share drafts for X, Facebook and LinkedIn could carry HTML codes such 
   as “&” and ” “.
 * Fixed: with the Identity name left blank, llms.txt was headed with the site’s
   address and discovery.json gave no name. Both use the site’s name now.
 * Fixed: six PHP 8.4 deprecation notices, and a warning logged on every check of
   the addresses your site advertises.

#### 1.53.3

 * Fixed: a word and its plural are now always read as the same word. “Perfumes”
   was read as “perfum” while “perfume” stayed “perfume”, so a page that said “perfume”
   was listed as not answering a search for “perfumes”. The same was true of “theme”
   and “themes”, “image” and “images”, and “category” and “categories”. “Themes”
   was also read as “them”, so a page could count as answering a search it does 
   not.
 * Fixed: a word ending in “-ing” or “-ed” now matches the same word ending in “
   e”, in either direction: “changing” and “change”, “updating” and “update”, “writing”
   and “write”.
 * Fixed: a shortcode the page did not render, such as “[woocommerce_my_account]”,
   was read as words, so a page holding only that tag could count as answering “
   my account”. Shortcode tags are no longer read as text.
 * Changed: the Visitors screen’s “Everyone Who Visited” card says what its numbers
   mean. It now explains that “people” is who came and “visits” is how many times
   they came, shows visits per person under the visits, and says that Google Analytics
   counts each browser as a person. It also says “new” and “had visited before” 
   instead of “first-timers” and “came back”, and “stayed 10+ seconds or opened 
   another page” instead of “stayed to read”, which is what Google actually measures.
 * Fixed: when Google Analytics stopped updating, the Visitors cards kept their “
   Last 30 days” tag and only said the numbers were “over two days old”. They now
   show the dates the numbers really cover and when they were last updated.
 * Fixed: a page waiting on Google showed “since” a date, which read as the day 
   its work was finished. The date is when the page joined the list, and it now 
   says so.
 * Note: your site reads its pages again once after updating.

#### 1.53.2

 * Fixed: words written with a hyphen or an underscore, such as “AI-discovery” or“
   the_excerpt”, now count as the words inside them, and a version such as “5.5.0”
   or “5.5.x” counts as “5.5”. Pages that answered their search in plain words were
   listed in Your Content as not answering it. A search still needs its whole word:
   a page that only says “json” does not answer “json-ld”.
 * Changed: “pages are one push from page one” now says what each page still lacks:
   a paragraph that answers the search, the searched words in its title, or a link
   from another of your posts. It used to give the same two tips every time, even
   to pages that had done both.
 * Fixed: the same finding counted only the three searches listed for each page,
   so its searches, impressions and visits were too low. It now counts every search
   the pages are found for.
 * Note: your site reads its pages again once after updating, so pages that were
   wrongly listed leave Your Content by themselves.

#### 1.53.1

 * Fixed: posts written in the classic editor were marked as not answering searches
   they plainly answer. WordPress adds a classic post’s paragraphs only when it 
   shows the page, and the search check read the post as stored, so it found no 
   text to look in. It now reads the post the way your visitors see it.
 * Note: your site reads its pages again once after updating, so classic posts that
   were wrongly listed in Your Content leave the list by themselves.

#### 1.53.0

 * New: traffic for each post and page, in Your Content. Each row shows its bot 
   reads, readers from AI and search clicks, and a new menu orders the list by any
   of them, so a busy page that needs work comes to the top. Open a row to see who
   came: a day-by-day chart of bot reads and readers from AI, each bot with its 
   count, when it last read the page and whether it was verified, each AI assistant
   that sent readers, and the searches that brought people from your search engine.
   Proven fake bots, refused requests, scripts and command-line tools, and requests
   from WordPress sites (your own included) are not counted as bot reads; the page
   says how many were left out. Traffic logged before this update is matched to 
   its pages in the background, and the screen says so until that is done.
 * New: the Request Log’s views are now named for what they show — **Every request**,**
   By visitor** and a new **By page** — with a line under them saying what each 
   one is. By page lists one line per post or page, busiest first, with its bot 
   reads, readers from AI, the bots that read it and its last bot read, over the
   dates you pick. Click a page to see each of its reads with its time. Bot reads
   of archives, tag pages and the blog index belong to no single page, so the view
   says how many there were instead of listing them.
 * New: “See every read, with its time” opens the Request Log narrowed to that one
   page.
 * New: WordPress’s own Posts and Pages lists get a sortable “Readers From AI” column,
   which says under its heading while older traffic is still being matched.
 * Changed: people an AI assistant sent to your site are now called “readers from
   AI” everywhere, instead of “AI visits”. On the Request Log a visit is a bot’s,
   so the same word used to mean machines on one screen and people on the next. 
   Places that meant the bots now say “requests”.
 * New: read-post-traffic gives a connected AI agent the same detail for one post,
   and read-request-log takes a `post` to list that page’s reads, and `group: "pages"`
   for the By page view.

#### 1.52.1

 * Changed: discovery.json now declares wire-format 1.1 of the WP_Discovery Protocol.
   Version 1.1 adds the optional identity fields Agentimus already sends: what your
   site is not, its audience, and your projects. Nothing else in the document changes.
 * Fixed: discovery.json could fail the protocol’s own schema in two places. A part
   of your site with no agent card was sent with an empty list where the schema 
   allows only an object, so it is now left out. A tool that takes no input, such
   as one offered by another plugin, had its empty settings sent as lists too, and
   they are now sent as empty objects. Tools that check the file against the schema
   now pass.

#### 1.52.0

 * New: a Projects list under Settings  Identity, for software you made, such as
   a plugin, an app or an open-source library. Each project takes a name, a one-
   line description, a version, and links to its home page, source code and download.
   Agentimus publishes it three ways: as Schema.org `SoftwareApplication` data on
   your home page, naming you as the author; as a “Projects” section in llms.txt
   and llms-full.txt; and under `identity.projects` in discovery.json. AI assistants
   can then answer “who made this?” and link the right download. Projects are optional:
   until you add one, nothing changes.
 * New: the Request Log can show visits instead of rows. Switch to **Visits** and
   each client’s requests are grouped while no more than two minutes pass between
   them, such as “Orbbot · 5 requests in 40 s” with the pages it read. A burst of
   pages in seconds is an AI assistant answering a question; one page at a time 
   is a crawl. The log keeps no IP addresses, so two people using the same assistant
   at the same moment from the same network show as one visit. Your choice of view
   is remembered.
 * Changed: read-request-log takes `group: "visits"` and then returns `visits` instead
   of `rows`.
 * Changed: the Services and Projects cards under Settings  Identity are one line
   until you add something to them.

#### 1.51.9

 * Fixed: the Cloudflare warning “Cloudflare is blocking [company], but your policy
   says allow” could fire when Cloudflare was only stopping a scanner that used 
   an AI crawler’s name to look for secret files such as “.env”. A blocked request
   for a file no reader asks for is now counted as a probe and no longer counts 
   toward that warning. The edge numbers still show every blocked request, and the
   first update re-checks the last three days, so a warning a scanner raised in 
   that time clears the next time the numbers update.

#### 1.51.8

 * Fixed: on a site with plain permalinks (addresses like “/?p=123”), the Request
   Log called every tag and category page “Homepage”, because such a page lives 
   at the site root. It now shows the tag or category name, such as “Tag: PHP”. 
   The same fix names these pages correctly in your search results.

#### 1.51.7

 * New: the Request Log now names which page a crawler or AI assistant read. A “
   Page (HTML)” row shows the page’s title, such as a post’s name, “Home” or “Tag:
   PHP”, as a link that opens the page. Hover it for the full title and address.
   Rows recorded before this update did not keep the page, so they still read “Page(
   HTML)”.
 * Changed: only the address WordPress resolved is kept, so a link’s query string,
   which can carry a token or a campaign tag, is never stored.
 * Changed: read-request-log returns `path` and `title` for each page row.

#### 1.51.6

 * Fixed: a tag or category page in your search results was listed by its address,
   such as “/tag/navigator-locks”, with no button and advice written for a post.
   It now carries its name, such as “Tag: navigator.locks”, everywhere a page is
   listed, and its card links to the tag’s edit screen.
 * Fixed: when a tag or category page split a search with a post it lists, the split
   row said the tag page “Earns the click” and suggested pointing the post at it.
   A tag page only lists posts. Its row now always offers Set this aside, and when
   one post is up against tag pages, that post is marked as the answer. Setting 
   the tag page aside gives the search back to the post.
 * Changed: read-search-opportunities marks each page in a split search with `archive`,
   and names tag and category pages the way the screen does.

#### 1.51.5

 * Fixed: the notice that Cloudflare is letting training crawlers through counted
   every request carrying a training crawler’s name that Cloudflare did not block.
   That included crawlers reading your robots.txt, which is where your ai-train=
   no line lives, and requests your server turned away with an error. On a site 
   where Cloudflare already stops the training crawlers, it could report hundreds
   of requests and ask you to block them, when not one page had been served. It 
   now counts only requests that received a page, and dates the notice from the 
   first day one did. Right after updating, the count can read low for a few days
   while new hours are collected; it never reads high.
 * Fixed: the training notice also counted pages served to a training crawler you
   had allowed in your review queue, so letting one in on purpose kept the notice
   up. A crawler you allowed no longer counts, unless you also block it as a training
   crawler: then the block is what you asked for, and it still counts.
 * Changed: read-edge-traffic reports a `served` count for each crawler: the requests
   that received a page, not counting robots.txt.
 * Fixed: asked about a single day, the Cloudflare warnings read “in the last 1 
   days” and then repeated the day’s count. They now say “in the last day”, once.

#### 1.51.4

 * Fixed: the Request Log could warn that Cloudflare was blocking an AI company 
   your policy allows when it was really stopping impostors using that company’s
   name. The warning checks the blocked requests against the company’s own published
   addresses and steps down to a note when they all come from somewhere else, but
   it needed at least ten fakes from the last day, so as an impersonation campaign
   faded, the warning came back on its last few requests. Once every request blocked
   that day is proven fake, the warning now steps down however few there were.
 * Fixed: a crawler you block on purpose (on your own block list, or a training 
   crawler while your robots.txt says ai-train=no) could still shape a Cloudflare
   warning about its company. Its blocks set the day the warning said it started,
   and its requests were counted in the impostor check. Both now leave it out, as
   the warning itself always did.
 * Changed: Cloudflare warnings and the training notice say how many requests fell
   in the last day, instead of “some”.
 * Fixed: the impostor note wore a “Not enforced” badge, although Cloudflare is 
   stopping those requests. It is now badged “Impostors”, on the Request Log and
   in Settings, and its Findings row counts “requests proven fake” instead of “confirmed
   impostors”.

#### 1.51.3

 * Fixed: a real search crawler could be flagged as a fake on every visit. The identity
   check asked for an address name that not every operator publishes, and a crawler
   run from cloud addresses has none, so its operator’s own published address list
   was never read. An address the operator’s own list names now counts as genuine,
   even when the name lookup says no, and a crawler whose operator publishes only
   a list is checked against that list alone. A list that is out of date, missing
   or silent never clears a failed check. If a crawler is still flagged in your 
   review queue, re-check it to clear the old flag.
 * Fixed: in the review queue, a fake crawler using a real crawler’s exact name 
   borrowed the real one’s traffic. Two failed requests beside hundreds of genuine
   visits were marked “High volume” and sorted above a much larger impersonation,
   and ignoring such a row did not stick while the real crawler kept visiting. A
   row caught faking is now weighed on its own failed requests only: for the badge,
   for its place in the list, and for when an ignored row comes back.

#### 1.51.2

 * Fixed: a page your own site redirects — a retired page folded into the homepage,
   say — was filed by the Google Index card under “Google chose a different address”,
   the harshest heading, with a line that blamed Google for an address your site
   picked. Google’s own wording for it is “Page with redirect”, and it now has its
   own group, “Sent elsewhere by this site”, whose row names where the page goes.
   It still counts, the way a page you block on purpose does; nothing is hidden.
 * Fixed: asking the Google Index tool about a page the daily check had not reached
   yet answered with an error instead of “not checked yet” — the tool’s own output
   rules did not allow an empty row. An assistant asking about a brand-new page 
   now gets the honest answer.
 * New: the share card names your X account. X already builds a link preview from
   the Open Graph tags, image included, whether or not you have connected X to Agentimus.
   When you have, the card also carries a twitter:site tag with the connected account,
   so the preview is attributed to you. Nothing is guessed when X is not connected.

#### 1.51.1

 * Security: a connection key, or an approved assistant’s access token, was accepted
   on two neighbouring admin routes and not only at the MCP endpoint it was issued
   for — the check matched the route by prefix, and the route that creates keys 
   starts with the same letters. In WordPress’s plain ?rest_route= form that seated
   the key as the administrator who created it, and one request could mint a write
   key from a read-only one whenever agent writes were on. Reported by Ananda Dhakal
   of Patchstack. The route is now matched exactly in every form WordPress accepts,
   and a second check holds every plugin credential to the route WordPress actually
   dispatched, refusing it anywhere else. If you are not sure who holds a read-only
   key, create a new one; that retires the old one.

#### 1.51.0

 * New: every long list turns the same way now — the Request Log, Agent Access, 
   the content worklist and the Google Index card all carry one numbered pager, 
   with a constant seven slots so the strip never changes width and a button never
   shifts under your pointer between clicks. The Request Log’s Network column joins
   the sortable ones, and its refresh button no longer quietly resets you to page
   one.
 * Improved: one language for links across the plugin. A link inside a sentence 
   wears a quiet underline, because colour cannot be the only thing that says “clickable”
   when a status word can paint the identical colour beside it. A jump to another
   screen ends in a small drawn chevron; a button that acts in place — Refresh, 
   Purge edge cache, Re-check — answers your pointer with a soft highlight instead
   of an underline promising a destination it does not have; and every link that
   leaves your site keeps its small outward arrow. The Search Console and Bing Webmaster
   links on the Visibility screens also stop wearing a blue no other part of the
   plugin uses.
 * Fixed: a description derived from a post’s opening paragraph was cut wherever
   the word budget ran out — mid-clause, and at the length cap sometimes mid-word—
   and that line is served: the meta description, the structured data and the page’s
   markdown twin all carry it. It now ends at a sentence boundary when whole sentences
   fit, and marks a genuine mid-cut honestly with an ellipsis when they cannot.
 * Fixed: editing a category or tag description never cleared that archive page 
   at your CDN. A publish purges the pages it changes, but a term edit saves no 
   post, so nothing fired and the edge kept serving the old archive for the rest
   of its cache life. The term’s archive page is purged now, on edit and on delete.
 * Fixed: acting on a review-bell card — Ignore, Allow, Block or Re-check — made
   the Dashboard’s “Who Reached Your Site” and “What Your Site Runs” cards flash
   back to their first-load loading state. The refreshed numbers an action returns
   now carry everything those cards read, the same payload the Dashboard itself 
   is served.
 * Fixed: one refusal path recorded nothing — a proven impostor turned away at a.
   well-known document vanished from the Request Log while the same refusal at llms.
   txt was written down. Every refusal leaves its line now.

#### 1.50.1

 * Fixed: the “Put this away” link is gone from the Findings screen. Putting a suggestion
   away only moved it into a fold at the foot of the same list — a collapsible in
   disguise — and only one kind of row ever carried the control, so part of the 
   list arrived offering to be dismissed while the rest did not. Every finding now
   simply stays in its list, anything you had put away comes back on its own, and
   a connected assistant no longer sees a put-away ledger either.
 * Improved: the Dashboard opens with its four small tiles, and the Today card now
   sits directly above the full-width cards it belongs with. The tile row used to
   sit between Today and everything else, cutting the run of cards in two.

#### 1.50.0

 * New: you can write your own robots.txt rules from the Crawler Policy card. A 
   plain text box is appended to the end of the generated file, exactly as written—
   appended, never replacing, so an edit cannot break the Content-Signal line or
   the crawler blocks the plugin writes, and clearing the box is the whole reset.
   The live robots.txt is shown right above the box, fetched from your site exactly
   as a crawler receives it — which also honestly shows when a robots.txt file on
   disk or an SEO plugin owns the job instead (then the extra rules do not apply,
   and the box says so), and warns when your server wraps the file in an error code,
   which a strict crawler may ignore. Write your own Sitemap line and the plugin
   stops adding its own rather than printing two.
 * New: the review bell’s cards now say why a visitor is unchecked, instead of one
   blank “not verified” covering every case. Each card names its own cause — identity
   checking is turned off, this bot cannot be checked because its operator publishes
   nothing to check against, its visits gave no clear answer yet, or it carries 
   a real cryptographic signature from an operator this site does not know. Each
   cause reads differently on the card, so you can tell at a glance which unchecked
   rows are waiting for an answer and which will never have one — and the small 
   info icon carries the full reason.
 * New: each recommendation on a review card is now a small labelled chip that names
   the kind of action it asks for — nothing left to do, one plugin setting, or a
   rule at your host or CDN — with the full advice shown on hover. Three cards used
   to read as three similar sentences; now you can see before reading a word that
   one asks nothing of you, one is a click in Settings, and one needs your hosting
   panel. The cards are several lines shorter, and on a proven impostor the genuine
   engine’s verified traffic is counted right in the stats line so the fake never
   wears the real crawler’s numbers.
 * New: the Client Decisions dialog opens each list with a plain notice saying what
   your decision actually reaches. A block is enforced at this plugin’s machine 
   files — llms.txt, the markdown pages, discovery — not across your whole site,
   and it is separate from robots.txt, which is only a request a bot may ignore.
   Trusting a client sends nothing to the bot and changes nothing in robots.txt.
   When blocking is switched off in Settings, the Blocked list says so instead of
   quietly presenting rules that are not being enforced. And a trusted client whose
   name is also on the robots.txt block list now says so on its row — trusted at
   the door but publicly asked to stay away can be exactly what you meant, but the
   two may only disagree out loud.
 * Fixed: the review panel could advise turning on “Verify bot identities” when 
   it was already on — the nudge showed for any unchecked row that claimed a checkable
   bot, whether or not the setting was enabled. It now knows the setting’s live 
   state and only suggests what would actually change something. The same fault 
   was in the forged-signature card, which could recommend “turn on blocking” while
   blocking was already on; it now says the next attempt will be refused automatically.
 * Fixed: a valid signature from an operator this plugin does not recognise displayed
   as “Passed” in a card’s details, indistinguishable from a recognised operator’s.
   Proof of identity is not a reason to trust someone: it now reads “Not confirmed”,
   names the signer, and says the site cannot vouch for them.
 * Fixed: an entire explanation paragraph on review cards showed the “help” cursor
   as if it were hoverable — a style collision, and the question-mark cursor now
   appears only on the icons that actually carry a bubble.
 * Fixed: the readiness card said “Everything looks good” when its advisor simply
   had no setup step left to suggest — a verdict it could not make, since the Cited
   figure above it can sit at 38% with every setup box ticked. It now says what 
   it measured: “Nothing left to set up.”
 * Fixed: the Report’s Citations card said “checks run on a schedule” to owners 
   whose schedule is switched off. It now reads the schedule’s real state: off means“
   a check runs only when you start one.” And its “Open Citations” link landed on
   the Search tab; it now opens the Citations results it names.
 * Improved: the Client Decisions rows read cleanly — a known crawler’s name is 
   no longer printed twice, the decision verb no longer repeats the tab’s own name
   on every row, columns line up, long names shorten instead of pushing the date
   out of line, and on a phone each client folds to two tidy lines with a proper
   thumb-sized button.
 * Improved: plain words on the undo buttons — “Stop trusting” and “Stop ignoring”
   replace the made-up “Un-trust” and “Un-ignore” — and the buttons look like buttons
   before you hover them, without turning red for what is a routine, reversible 
   act.

The most recent releases are listed here, back to 1.50.0. Every earlier one, back
to 1.22.0, is kept in the full history in the same detail: https://github.com/heera/
agentimus/blob/main/CHANGELOG.md

## Meta

 *  Version **1.53.5**
 *  Last updated **ཆུ་ཚོད 21། ago**
 *  Active installations **20+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/agentimus/)
 * Tags
 * [agent-readiness](https://dzo.wordpress.org/plugins/tags/agent-readiness/)[ai agents](https://dzo.wordpress.org/plugins/tags/ai-agents/)
   [ai seo](https://dzo.wordpress.org/plugins/tags/ai-seo/)[llms.txt](https://dzo.wordpress.org/plugins/tags/llms-txt/)
   [mcp](https://dzo.wordpress.org/plugins/tags/mcp/)
 *  [Advanced View](https://dzo.wordpress.org/plugins/agentimus/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  2 5-star reviews     ](https://wordpress.org/support/plugin/agentimus/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/agentimus/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/agentimus/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/agentimus/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/agentimus/reviews/?filter=1)

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

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

## Contributors

 *   [ Sheikh Heera ](https://profiles.wordpress.org/heera/)

## Support

Got something to say? Need help?

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