Free · GPL-2.0 · Yoast + Rank Math

Bulk-edit Yoast & Rank Math SEO meta from one REST API — built for AI agents.

WordPress doesn't expose SEO titles, meta descriptions, canonicals or OG tags over the REST API. This plugin does — so Claude, ChatGPT, n8n, Zapier and your own scripts can read and rewrite SEO meta on 100 posts (and 200 image alt tags) in a single authenticated call. Built by the team behind Melbourne SEO Consultant.

Yoast & Rank Math MCP server included CSV import / export No settings page App Password auth
claude code — rewrite 42 meta descriptions
# Claude, using the bundled MCP server:
> "Pull SEO meta for every post in /blog/, rewrite each title to
   ≤60 chars and meta description to ≤150, keyword-first."

✓ status      active SEO plugin: Yoast SEO · 11 field aliases
✓ export      42 rows pulled  (title_chars, desc_chars included)
→ bulk        sending 42 items in one POST /seo-meta-bridge/v1/bulk

   UPDATED   42      SKIPPED   0      REJECTED KEYS   0

# Same call by hand:
$ curl -u 'user:app pass' -X POST \
    https://site.com/wp-json/seo-meta-bridge/v1/bulk \
    -d '{"items":[{"id":123,"meta":{"title":"…","description":"…"}}]}'
{ "count": 42, "results": [ ... ] }
100
Posts per call
200
Alt tags per call
2
SEO plugins supported
$0
Free, GPL-2.0
What it does

The SEO meta endpoints WordPress left out.

One clean, authenticated REST surface for every Yoast and Rank Math field — readable and writable by AI agents, automation tools, and spreadsheets.

🔌

REST API for SEO meta

Read and write titles, meta descriptions, focus keyword, canonical, robots, OG and Twitter fields on any post, page or custom post type — over the standard /wp/v2/posts/{id} route or namespaced helpers.

📦

Bulk update, 100 at a time

One POST /bulk applies changes to up to 100 posts or terms. Partial-success reporting tells you exactly which keys were accepted and which were rejected — no re-sending the whole batch.

🤖

MCP server for Claude

Bundled Node.js companion (bulk-seo-meta-editor-mcp on npm). One command and Claude Desktop or Claude Code can read, edit, bulk-update and CSV round-trip SEO meta across all your sites.

🖼️

Bulk image alt text

Update _wp_attachment_image_alt on up to 200 media-library images per call by URL. Resolves CDN paths and -300x200 thumbnail suffixes back to the parent attachment automatically.

🧭

Auto-detects your plugin

Yoast SEO or Rank Math — the plugin picks whichever is active and exposes plugin-neutral aliases (title, description, focus_kw). No need to memorise raw meta keys.

📊

CSV import & export

Stream all SEO meta out as CSV (with live title_chars / desc_chars columns), edit in Excel or Google Sheets, and import the file straight back. UTF-8 BOM safe — no mojibake on round-trip.

🗂️

Term & archive SEO

Edit category, tag and custom-taxonomy archive meta — plus CPT archive pages and global scopes (author, date, search, 404, home). Not just posts: the whole indexable surface.

🛡️

Allowlisted & scoped

Only meta keys belonging to the active SEO plugin are accepted — arbitrary postmeta writes are rejected. It can't touch post content, users, or any other table.

🔑

Per-post permission checks

Every write runs an edit_post capability check, so Contributors and Authors can only edit their own posts via the API — exactly like the wp-admin UI. No privilege escalation.

⚙️

Zero configuration

No new admin screen, no settings page, nothing to misconfigure. Activate it, create an Application Password, and the API is live. Drop it in mu-plugins for agency fleets.

Download the plugin from GitHub

Free forever. GPL-2.0 licensed. MCP companion on npm, also installable via Composer.

Get it on GitHub
Three steps

From install to AI-driven SEO edits.

No API keys to buy, no third-party service. Authentication is WordPress's own Application Passwords.

Install & activate

Upload the zip in Plugins → Add New, pull it via Composer, or drop it into mu-plugins for agency fleets. No settings page appears — the REST API is live the moment it activates.

Create an App Password

In Users → Your Profile → Application Passwords, generate one (24 chars, shown once). That's your Basic Auth credential — HTTPS required in production. Nothing else to wire up.

Connect Claude or call it directly

Add the MCP server to Claude with one command, or hit the endpoints with curl, Python, n8n, Zapier — anything that speaks HTTP. Read, rewrite, bulk-update, CSV round-trip.

Why this, not the workaround

How bulk meta editing usually goes.

Editing Yoast or Rank Math meta at scale normally means one of these — clicking through wp-admin post by post, paying for a premium SEO tier, writing throwaway WP-CLI scripts, or trusting a generic AI connector with full site access. Here's how a focused REST surface compares.

Capability Bulk SEO Meta Editor wp-admin, post by post SEO plugin premium tier Generic AI / MCP connector
Edit 100 posts in one call Yes Manual, one at a time Some tiers Varies
Works with Yoast AND Rank Math Auto-detects both Yes Locked to one Varies
Price Free, GPL-2.0 Free Paid subscription Free / paid
Driven by AI agents (Claude, GPT) MCP + REST No No Yes
Writes scoped to SEO meta only Allowlisted N/A Yes Often full site access
CSV import / export round-trip Yes No Some tiers Rarely
Bulk image alt text 200 / call Manual Add-on Varies
Term, CPT-archive & global SEO Yes Per page only UI only Rarely
No extra service, runs on your site Yes Yes Some cloud External service

Comparison is descriptive only. Capabilities of premium SEO tiers and third-party connectors vary by vendor, version, and plan.

Built for

Who runs it, and why.

SEO agencies

Rewrite a whole client site's meta in minutes

Export every title and description to CSV, let Claude rewrite them keyword-first under the character limits, then push all of it back in one call. Pairs with our SEO audit service for the fix list that drives the edits.

AI & automation

Let Claude or ChatGPT own your meta layer

The MCP server gives Claude native tools to read, draft and apply SEO meta. Or wire the REST endpoints into n8n, Zapier or Make so new posts get optimised titles and descriptions on publish — no human in the loop.

Site migrations

Carry SEO meta across a replatform

Export from the old install, transform the CSV to match new URLs, import into the new one. Titles, descriptions, canonicals and OG tags survive the move instead of resetting to defaults that quietly tank rankings.

WooCommerce

Product & category meta at catalogue scale

Meta is registered on every public post type, so products are covered — and product_cat / product_tag archive pages are editable via the term endpoints. Fix thin, duplicated category descriptions across thousands of SKUs.

Accessibility & image SEO

Backfill alt text on the whole media library

Point the /bulk-alts endpoint at a list of image URLs and write descriptive alt text 200 at a time. Better accessibility, better image search — without opening each attachment in the editor.

Headless & dev teams

SEO meta in your deploy pipeline

A predictable, allowlisted REST contract means SEO meta can be managed from CI, a headless front-end, or a content-ops script — the same way you'd manage any other structured field. Feeds neatly into technical SEO workflows.

Get it running

Install, then connect Claude.

Pick whichever fits your stack. After install, create an Application Password in Users → Your Profile and you're authenticated — no API keys to buy.

🧩 WordPress admin
  1. Download the zip from GitHub Releases
  2. Plugins → Add New → Upload Plugin
  3. Activate — the REST API is live
📦 Composer
composer require \
  puneetindersingh/bulk-seo-meta-editor-for-ai-agents
🤖 Claude Code (MCP)
claude mcp add bulk-seo-meta-editor \
  --env WP_BASE_URL=https://your-site.com \
  --env WP_USER=your-username \
  --env WP_APP_PASS='xxxx xxxx xxxx xxxx' \
  -- npx -y bulk-seo-meta-editor-mcp

Using Claude Desktop instead? The MCP config snippet is in the README. Requires WordPress 5.6+ and PHP 7.4+.

Questions

Before you install.

Does it work with Yoast SEO and Rank Math?

Both. The plugin auto-detects whichever is active and reads and writes the exact postmeta keys that edition uses — Free or Premium, Yoast or Rank Math. You pass plugin-neutral aliases like title and description and it maps them to the right keys. If both plugins are active (not recommended), Yoast wins.

Is it safe to install on a production site?

Yes. There's no admin UI to misconfigure and nothing runs until a request hits the REST endpoints. Writes are allowlisted to SEO meta keys only — it cannot edit post content, users, or any other table — and every write runs a per-post capability check, so a Contributor can only edit their own posts via the API.

How does authentication work?

Standard WordPress Application Passwords, sent as Basic Auth. Generate one under Users → Your Profile → Application Passwords. HTTPS is required in production (WordPress disables App Passwords on non-HTTPS sites by default). No OAuth setup, no third-party tokens.

Can it edit category and tag archive meta too?

Yes. Beyond posts, pages and custom post types, you can edit SEO meta on category, tag and custom-taxonomy archives, CPT archive pages, and global scopes (author, date, search, 404 and home). Yoast and Rank Math storage differences are handled transparently.

Why does curl work but my Python or Node script gets 403?

The host's firewall (mod_security, Wordfence, Cloudflare WAF) is blocking the request by User-Agent before WordPress sees it — default UAs like python-requests are commonly blocklisted. Send a normal browser User-Agent header and the 403 disappears. The bundled MCP server already does this automatically.

Is the plugin really free?

Yes — GPL-2.0, free forever, source on GitHub. The MCP companion is free on npm. No accounts, no metering, no premium tier gating the bulk endpoints.

Open-source, free forever

Stop editing meta one post at a time. Let an API do it.

GPL-2.0 licensed, built in the open. Yoast and Rank Math, posts and terms, titles and alt text — all from one authenticated call.

No signup. No credit card. No premium tier.