WordPress doesn’t expose Yoast SEO or Rank Math meta fields via the REST API by default. This plugin adds a clean, authenticated REST surface so AI agents (Claude, ChatGPT, Perplexity), automation tools (n8n, Zapier, Make), and headless CMS workflows can read and update SEO titles, descriptions, canonical URLs, robots directives, OG and Twitter fields with a single HTTP call.
Auto-detects which SEO plugin is active and exposes plugin-neutral field aliases (title, description, focus_kw, …) so you don’t need to memorise Yoast vs Rank Math meta keys.
What’s included
- REST endpoints — read and write SEO meta on any post, page or custom post type via the standard
/wp/v2/posts/{id}route or the namespaced helpers - Taxonomy term archives — edit SEO meta on category/tag/custom-taxonomy archive pages too, not just posts (Yoast and Rank Math both supported)
- Bulk update — apply changes to up to 100 posts or terms in a single call
- Bulk image alt text — update
_wp_attachment_image_alton up to 200 media-library attachments per call by image URL. Resolves CDN paths and-WIDTHxHEIGHTthumbnail suffixes back to the parent attachment automatically (v1.5.0+) - CSV import / export — round-trip your SEO meta through Excel or Google Sheets, posts and terms in one file
- MCP server — bundled Node.js companion (
bulk-seo-meta-editor-mcpon npm) so Claude Desktop and Claude Code can drive the plugin natively - Auto-detection — works with Yoast SEO or Rank Math, picks the active one automatically
- Per-object permission checks — Contributors and Authors can only edit posts, media and terms they could edit in wp-admin; site-wide archive and global settings require an administrator
- Allowlist enforcement — only meta keys belonging to the active SEO plugin are accepted; arbitrary postmeta writes are rejected
- Custom JSON-LD schema (v1.6.0+): store structured data (FAQPage, HowTo, Service, or any type) per post; it is injected into Yoast’s or Rank Math’s existing schema graph rather than as a duplicate block
REST endpoints
All endpoints live under /wp-json/seo-meta-bridge/v1/ (or ?rest_route=/seo-meta-bridge/v1/... on plain-permalink installs):
GET /status— detect the active SEO plugin and list available fieldsPOST /bulk— update SEO meta on up to 100 posts/terms in one callPOST /bulk-alts— update image alt text on up to 200 media-library attachments by URLGET /export— export all posts’ SEO meta as CSV, returned in the JSON response bodyPOST /import— apply updates from a CSV upload or JSON rows arrayGET /schema(v1.6.0+): read back the custom JSON-LD schema stored on a post
The standard WordPress REST route also works: POST /wp/v2/posts/{id} with a meta payload containing Yoast or Rank Math keys.
Field aliases
Alias Yoast meta key Rank Math meta key
title _yoast_wpseo_title rank_math_title
description _yoast_wpseo_metadesc rank_math_description
focus_kw _yoast_wpseo_focuskw rank_math_focus_keyword
canonical _yoast_wpseo_canonical rank_math_canonical_url
og_title _yoast_wpseo_opengraph-title rank_math_facebook_title
og_image _yoast_wpseo_opengraph-image rank_math_facebook_image
tw_title _yoast_wpseo_twitter-title rank_math_twitter_title
Plus robots, OG/Twitter description fields, and Rank Math primary-taxonomy keys.
MCP server (Claude / Claude Code)
A Node.js MCP server is bundled at https://github.com/puneetindersingh/bulk-seo-meta-editor-for-ai-agents/tree/main/mcp-server and published to npm as bulk-seo-meta-editor-mcp. Add to Claude Desktop / Claude Code with one command and Claude can read, edit, bulk-update, and CSV-roundtrip SEO meta on any of your sites.
Security
- Application Passwords (Basic Auth) — HTTPS required in production
- Per-post
edit_postcapability check on every write - Meta keys are allowlisted to the active plugin’s known fields
- URL-shaped fields (canonical, og_image, twitter_image) sanitised through
esc_url_raw - No new admin UI, no settings page, nothing to misconfigure
Trademarks
Yoast SEO is a trademark of Yoast BV. Rank Math is a trademark of RankMath. Claude is a trademark of Anthropic PBC. ChatGPT is a trademark of OpenAI OpCo. WordPress is a trademark of the WordPress Foundation. All other product names, logos, and brands are property of their respective owners. This plugin is an independent integration and is not affiliated with, endorsed by, or sponsored by any of them. Trademarks are referenced only to describe interoperability with the listed products.
