SEO
New in v3.5.0. EMCP reads and writes the SEO metadata your SEO plugin stores, the SEO title, meta description, canonical URL, robots (noindex/nofollow), focus keyword, and Open Graph / Twitter social fields, for posts and terms, through the same two-dispatcher pattern as the Forms and ACF domains.
This is distinct from the Pro SEO & Accessibility toolkit (audit-page-seo, generate-meta-tags, …), which analyses and generates from the live page structure. These tools read and set what the SEO plugin actually stores, and the generate tools write through to whichever SEO integration below is active.
Slim SEO is free; the other six are Pro:
| Plugin | Tools | Tier |
|---|---|---|
| Slim SEO | slimseo-read / slimseo-write | Free |
| Yoast SEO | yoast-read / yoast-write | Pro |
| Rank Math | rankmath-read / rankmath-write | Pro |
| All in One SEO | aioseo-read / aioseo-write | Pro |
| SEOPress | seopress-read / seopress-write | Pro |
| The SEO Framework | seoframework-read / seoframework-write | Pro |
| SureRank | surerank-read / surerank-write | Pro |
Each pair registers only when its plugin is active: most sites run one SEO plugin and see exactly its two tools.
One unified field set
Section titled “One unified field set”Every plugin stores SEO differently (individual meta keys, options, custom tables, different robots encodings). EMCP hides all of that behind one unified field vocabulary: you read and write the same fields regardless of plugin:
| Field | Meaning |
|---|---|
title | SEO title |
description | Meta description |
canonical | Canonical URL |
noindex / nofollow | Robots directives (booleans) |
focus_keyword | Target keyword (where supported) |
og_title / og_description / og_image | Open Graph / Facebook |
twitter_title / twitter_description / twitter_image | Twitter/X card |
The adapter translates these to each plugin’s own encoding, Yoast’s '1', SEOPress’s 'yes', Rank Math’s robots array, and so on. You never deal with those.
Discover, then act
Section titled “Discover, then act”// discoverrankmath-read({})// → { mode: "read", operations: [ { operation: "get-post-seo", … }, { operation: "get-schema", … }, … ] }
// read a post's SEOrankmath-read({ operation: "get-post-seo", arguments: { post_id: 42 } })
// set title + meta description, un-noindex itrankmath-write({ operation: "update-post-seo", arguments: { post_id: 42, title: "Best Widgets (2026)", description: "…", noindex: false } })update-*-seo changes only the fields you pass; everything else is left as-is.
Operations
Section titled “Operations”| Operation | Support |
|---|---|
get-post-seo / update-post-seo | All 7 plugins |
get-term-seo / update-term-seo | All except All in One SEO (post-only in 4.9) |
get-schema | Rank Math, All in One SEO, SEOPress |
get-settings | Slim SEO, Yoast, Rank Math, AIOSEO, SEOPress, SureRank |
Fields a plugin doesn’t store are simply absent, e.g. Slim SEO has no focus_keyword. Read first; don’t assume a field exists.
Safety by design
Section titled “Safety by design”- Opt in to SEO tools. SEO read/write dispatchers ship disabled by default. Enable the needed pair under EMCP Tools → Tools → Plugins → SEO; an existing site’s saved toggles are preserved.
- Standard capabilities. Post/term SEO writes require
edit_posts; settings requiremanage_options. - Only when active. A plugin’s pair doesn’t register unless that plugin is installed and active.
In the admin
Section titled “In the admin”The dispatchers appear under EMCP Tools → Tools → Plugins → SEO, grouped as one section with separate read and write toggles for each plugin.
For native WooCommerce brand archives, pass the term_id returned by the brand operations. Read back metadata after updating it, then inspect the public response with get-page-html. Server-rendered tags can differ from stored values because of plugin defaults such as noindex on empty taxonomies. With Rank Math, complete setup or select its supported skip-account-connection option before expecting frontend SEO tags.
Agent skill
Section titled “Agent skill”Pro bundles an emcp-plugins/seo Agent Skill that teaches a connected agent the unified field vocabulary and per-plugin operation support (term SEO, schema, focus keyword). Check the site’s actual tool toggles before use.