Supported SEO plugins ability reference
Reference for the GoBuildWP Pro 1.12.4 source. Installed schemas and policy remain authoritative.
This Supported SEO plugins ability reference covers bulk SEO meta updates that do not depend on which SEO plugin a site runs: one pair of calls reads and writes the same fields in whichever supported plugin is active, so an audit or a batch of metadata work looks the same everywhere.
Read-only, write and destructive groups describe the source annotations. They do not establish a minimum safety profile, human approval or undo support. Those controls are separate: check the installed ability, the connected user and the active site policy before calling it. A read can still return sensitive data. These pages are not evidence that every operation passed an end-to-end runtime test.
What SEO (any plugin) needs before these load
One of Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO or SmartCrawl must be active. With none, the calls return wppilot_seo_no_provider and list the supported plugins. With two active, they return wppilot_seo_provider_ambiguous and ask for provider, naming it as the plugin the front end actually uses, since a site mid-migration often has both installed.
- SEO (any plugin) editions
- free, pro
- Agent skills shipped
yoast-integration,rank-math-integration,aioseo-integration,seopress-integration
One shape for every plugin
The fields are SEO title, meta description, focus keyword, canonical, robots index and follow, and Open Graph title and description. Not every plugin stores all of them: Slim SEO keeps no focus keyword, robots follow or Open Graph text, and The SEO Framework keeps no focus keyword. A read returns an empty string for a field the plugin does not have; a write that includes one fails that post with wppilot_seo_field_unsupported instead of pretending it saved.
The read is paginated and filterable by post type and status, and by three audit filters: missing_description, missing_title (no title override set) and duplicate_titles (posts whose effective title is the same, compared before template variables are expanded). A filtered read inspects at most 1,000 posts and reports truncated=true when there were more.
Writes, confirmation and undo
A write covers up to 100 posts. Without dry_run or confirm it is refused with wppilot_confirmation_required and a message saying how many posts it would overwrite in which plugin. dry_run=true returns each post's before and after; confirm=true writes through the plugin's own per-post writer, and results come back per post as updated, unchanged or error, with one failure never stopping the others.
Each written post gets its own ledger row. Rows for Yoast SEO, Rank Math, SEOPress, The SEO Framework, Slim SEO and SmartCrawl restore with wppilot/rollback-change. All in One SEO rows written by this bulk call are marked irreversible because it keeps post SEO in its own aioseo_posts table (the free plugin's single-post AIOSEO edit keeps its own before-image, but this call does not); to undo them, run the write again with the before values from the batch. A very large batch can also use up its share of the ledger, in which case the affected posts say no before-image was kept and suggest sending fewer per call.
Representative call sequence
This sequence describes the documented calls and checks to perform. It is not a recorded result from an installed WordPress site. Inspect returned errors and partial results, then verify the saved values and affected output before proceeding.
Find posts that share a title and give each a distinct SEO title.
- 01
wppilot/seo-bulk-get-metaCalled with duplicate_titles=true for the post type, returning the groups of posts whose effective titles match. - 02
wppilot/seo-bulk-update-metaCalled with dry_run=true and an item per post carrying its own title, so each post's before and after can be read side by side. - 03
wppilot/seo-bulk-update-metaRepeated with confirm=true once approved. The per-post results show which were updated and which were unchanged.
SEO (any plugin) reads
| Ability | What it does |
|---|---|
wppilot/seo-bulk-get-metaRead SEO Meta in Bulk | Reads SEO title, meta description, focus keyword, canonical, robots and Open Graph title/description for many posts at once, from whichever SEO plugin is active (Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO or SmartCrawl), in one plugin-neutral shape. A field the plugin does not store reads as an empty string (Slim SEO keeps no focus keyword, robots follow or Open Graph text; The SEO Framework keeps no focus keyword). Paginated. Filters: post_type, status, missing_description, missing_title (no SEO title override), duplicate_titles (posts sharing an effective title - the override when set, otherwise the post title; template variables are compared unexpanded). Filtered reads inspect at most 1000 posts and report truncated=true when there were more. When more than one SEO plugin is active pass provider. |
SEO (any plugin) writes
| Ability | What it does |
|---|---|
wppilot/seo-bulk-update-metaUpdate SEO Meta in Bulk | Sets SEO title, meta description, focus keyword, canonical, robots index/follow and Open Graph title/description on up to 100 posts per call, through the active SEO plugin's own per-post writer (Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO or SmartCrawl). A field the plugin does not store fails that post with wppilot_seo_field_unsupported rather than being skipped silently. Pass post_ids with shared values, or items each with their own values (per-item values win key by key). dry_run=true returns each post's before -> after and writes nothing; a real write needs confirm=true. Results are per post (updated, unchanged or error) - one failing post never stops the rest. Every written post gets its own change-ledger row: Yoast, Rank Math, SEOPress, The SEO Framework, Slim SEO and SmartCrawl rows restore with wppilot/rollback-change; All in One SEO rows are marked irreversible because it stores SEO in its own table. |