Developer docs
WordPress plugin
The plugin brings the MonoRanks audit into WordPress: the site's scores and fixes on a MonoRanks screen, each page's scores in the Posts list, content in, approved fixes out, every write with Undo.
Install and connect
- In WordPress, go to Plugins → Add Plugin (called Add New in older WordPress versions), search for MonoRanks, click Install Now, then Activate. The plugin is on WordPress.org.
- In MonoRanks, open the website, go to Integrations, click Connect WordPress, then Connect to WordPress.
- WordPress asks you to approve MonoRanks. Click Yes, I approve of this connection. MonoRanks turns the plugin on if it is installed but inactive, hands it its connector key and asks for the first content sync. If the plugin is not installed yet, MonoRanks keeps your approval and shows Finish setup: install the plugin, then click it. No second approval is needed.
- The website’s Integrations page shows the WordPress connector as connected, with the plugin version and the last sync.
What you see in WordPress
The plugin adds a MonoRanks menu to the WordPress admin.
- Overview: the site’s health and AEO scores with their change since last week, search clicks over the last 28 days (from Google Search Console, when it is connected in MonoRanks), the pages that need attention most, the fixes you approved in MonoRanks ready to apply with one click (Apply, or Apply all), and the recent changes written into the site, each with Undo.
- Settings: the connection state, the connector key, the last sync, what is sent and read back, and the full change log.
- A MonoRanks column in Posts, Pages and other post types: each page’s health and AEO score rings. Hover a ring for the fixes waiting, the open issues and when the page was audited. An empty AEO ring means the page was not checked, not that it scored badly: AEO is read on the most important pages of each audit. The column sorts by health, and a “Needs attention” view lists published pages under 60.
Scores come from the weekly audit and are read back from MonoRanks with the connector key, then cached in WordPress; nothing is fetched on the public site. Opening a MonoRanks screen fetches them right there when the cache is older than an hour, so they also arrive on sites that have WP-Cron switched off, and the remaining pages follow in the background. Until the first audit has run, the screens say so.
What the plugin sends
Published content metadata only, over HTTPS: post type, URL, title, a 40-word excerpt, author name and avatar URL, categories, tags, dates, SEO title, meta description, canonical URL, noindex flag, and image URLs with alt text. Also plugin status (site name, plugin and WordPress version, active SEO plugin, counts per post type) and change alerts when a post is published, updated or unpublished.
Never sent: drafts, private or password-protected posts, comments, user emails or passwords, plugin or theme settings.
Read back from MonoRanks, with the same key: this website’s audit results only (site and per-page scores, open issues, the fixes you approved, search clicks), for the screens above. The list carries fixes you approved that were not written yet, so the plugin can apply them itself if a write from MonoRanks did not go through.
What it writes
Only what you approve in MonoRanks (or through the API and MCP apply): SEO titles, meta descriptions, image alt text, canonical URLs, noindex, redirects, an answer-first opening paragraph, robots.txt rules for AI crawlers and an llms.txt file. Every write is logged under MonoRanks → Settings in WordPress with Undo, and the affected pages are rechecked the same day.
- Page text edits (such as the opening paragraph) are checked after saving and undone if they break a block, with the reason shown.
- SEO plugins. Titles, descriptions, canonicals and noindex go into Yoast SEO, Rank Math or The SEO Framework fields, or through All in One SEO’s filters; with no SEO plugin, the plugin prints them itself. Under an SEO plugin MonoRanks cannot write into yet (SEOPress, Slim SEO, Squirrly SEO, SmartCrawl, WP Meta SEO, SEO SIMPLE PACK), those four fixes are refused and MonoRanks shows them as “cannot be written here” with the reason. On a static front page, The SEO Framework’s Homepage Settings win, so a write there is refused with the reason.
- Page caches. After every write and undo, the plugin asks the active page cache to drop the changed page: WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, SiteGround Optimizer, WP-Optimize, Nginx Helper, Breeze, Kinsta, WP Engine and Pantheon. The Cloudflare plugin and CDN caches outside WordPress are not cleared. If a change is written but not yet on the live page, MonoRanks shows “Written, not live” and says whether the page cache was cleared (plugin 0.1.18).
- llms.txt and AI crawler rules. An approved llms.txt is served by the plugin at
/llms.txt, marked so caches do not keep it. Approved allow or deny rules for AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and others) are added to robots.txt. After either write, the cached/llms.txtor/robots.txtis cleared and MonoRanks reads the file again. - Letter case. Some SEO plugins change the letter case of titles, for example Rank Math’s Capitalize Titles setting. A title that differs only in letter case still counts as live, with a note that says why.
Writes use the “MonoRanks” Application Password you approve in WordPress. Revoke it under Users → Profile → Application Passwords to stop all writes; reading and content sync keep working. A change is refused if the value in WordPress changed since you approved it. Undo is in MonoRanks for 30 days, and every change is listed under MonoRanks → Settings in WordPress. Fixes already written stay on your site after you disconnect.
Disconnect
Either side: in MonoRanks under Website → Integrations → WordPress → Disconnect, or in WordPress under MonoRanks → Settings → Disconnect. Both ways revoke this website’s connector key, remove the cached scores and stop everything being sent; a disconnect in WordPress tells MonoRanks straight away, so the website stops showing as connected there too. If nothing arrives from a site for a week, MonoRanks marks the connection as stale by itself.
Developers
The plugin is open source: github.com/monoranks/wordpress-plugin. It uses the REST API with a website key (scopes content:write, sites:read, pages:read), and reads audit results through the connector routes described in the repository’s docs/api.md. The admin screens are a React app (Vite, Tailwind, shadcn-style components); the Posts column is server-rendered PHP.
Common questions
Does it slow my site down?
No. It adds no scripts or styles to your pages. On the public site it only prints approved SEO tags when no SEO plugin does, serves an approved llms.txt and checks approved redirects early in the request. Content is sent in the background: when MonoRanks asks, when you publish, once a day, and when you open a MonoRanks screen whose stored scores are more than an hour old.
Which SEO plugins does it work with?
Yoast SEO, Rank Math and The SEO Framework (plugin 0.1.15 and later): approved titles, descriptions, canonicals and noindex go into their own fields. All in One SEO: they are passed to it through its filters. No SEO plugin: the plugin prints those tags itself. Under an SEO plugin MonoRanks cannot write into yet, such as SEOPress, Slim SEO or Squirrly SEO, those four fixes are refused with the reason, the MonoRanks settings screen in WordPress warns about it, and MonoRanks shows them as "cannot be written here". The other fixes still work.
Can I use it without the connector?
Yes. MonoRanks audits any public website. The plugin adds one-click fixes and same-day rechecks.