Linux 软件免费装
Banner图

Bulk SEO Meta Editor for AI Agents

开发者 puneetindersingh
更新时间 2026年9月2日 13:50
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

yoast meta-description bulk-edit rank-math mcp

下载

1.8.1 1.8.2

详情介绍:

Bulk edit Yoast SEO or Rank Math meta from outside wp-admin. WordPress does not expose those fields over the REST API, so editing a meta title programmatically normally means WP-CLI, a custom plugin, or a premium SEO tier. This plugin adds a clean, authenticated REST surface instead, so AI agents (Claude, ChatGPT, Perplexity), automation tools (n8n, Zapier, Make) and headless workflows can read and rewrite SEO titles, meta descriptions, canonical URLs, robots directives, Open Graph and Twitter fields on up to 100 posts in 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 All endpoints live under /wp-json/seo-meta-bridge/v1/ (or ?rest_route=/seo-meta-bridge/v1/... on plain-permalink installs): 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 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.

安装:

  1. Install from the WordPress.org plugin directory: Plugins → Add New, search for Bulk SEO Meta Editor for AI Agents. Or with WP-CLI: wp plugin install bulk-seo-meta-editor-for-ai-agents --activate. Or upload bulk-seo-meta-editor-for-ai-agents.zip via Plugins → Add New → Upload Plugin
  2. Activate. There is no settings page: the REST API is live as soon as the plugin is active
  3. Set up an Application Password: Users → Your Profile → Application Passwords → Add New
  4. Test: curl -u 'username:app pass' https://yoursite.com/wp-json/seo-meta-bridge/v1/status
For the optional MCP server, install via npm: npm install -g bulk-seo-meta-editor-mcp and configure Claude Desktop / Claude Code with WP_BASE_URL, WP_USER, and WP_APP_PASS environment variables.

升级注意事项:

1.8.2 Security fix. Closes a stored XSS in the JSON-LD schema field on Rank Math sites. Updating is recommended for anyone using the schema feature. 1.8.1 Permission fix: GET /export now filters its rows by capability, so terms need edit_term, CPT archive settings need manage_options, and posts are checked with edit_post per post. Automation that exported terms or archive settings on a low-privilege account will get fewer rows. 1.8.0 Permission hardening: per-object capability checks on every bulk write, and CPT archive updates now require an administrator (manage_options). Update automation credentials if they relied on editor-level access to archive settings. 1.7.0 GET /export now returns JSON with a csv field instead of raw CSV bytes. Update any script that saved the raw response body; the bundled MCP server 1.7.0 handles both shapes. 1.5.1 Internal cleanup per WordPress.org review feedback. No public API changes; safe to upgrade. 1.5.0 New endpoint to bulk-update image alt text on media-library attachments. No breaking changes. 1.2.0 Initial release.

常见问题:

How do I bulk edit meta descriptions in WordPress?

Activate the plugin, create an Application Password under Users → Your Profile, then send one POST to /wp-json/seo-meta-bridge/v1/bulk with up to 100 items. Each item is a post ID plus the fields to change, for example {"id":123,"meta":{"description":"..."}}. If you would rather work in a spreadsheet, GET /export returns every row as CSV (with live character counts) and POST /import writes the edited file back.

Can I bulk edit Yoast SEO titles without Yoast Premium?

Yes. The plugin writes the same postmeta keys Yoast Free reads from, so bulk title and description edits work on the free edition. Rank Math Free works the same way.

Does it work with Rank Math as well as Yoast?

Both. It detects whichever plugin is active and maps plugin-neutral aliases (title, description, focus_kw) onto the right meta keys for that plugin, so the same request body works on either site.

Can Claude or ChatGPT edit my WordPress SEO meta?

Yes, that is what it was built for. The bundled MCP server (bulk-seo-meta-editor-mcp on npm) gives Claude Code and Claude Desktop ten tools: status, read, write, bulk update, list posts, list terms, CSV export, CSV import, and schema get and set. Any other agent or automation tool can call the REST endpoints directly over HTTP Basic Auth.

How do I bulk update image alt text?

POST /bulk-alts accepts up to 200 { image_url, new_alt } pairs per call and writes _wp_attachment_image_alt on the matching media-library attachment. CDN paths and -WIDTHxHEIGHT thumbnail suffixes resolve back to the parent attachment automatically.

Can I add custom JSON-LD schema to a post?

Yes, since 1.6.0. Schema is stored per post and injected through Yoast's wpseo_schema_graph filter or Rank Math's rank_math/json_ld filter, so your nodes merge into the graph those plugins already output rather than appearing as a duplicate second block. Add mode appends, replace mode swaps the graph.

Does this work with a headless or decoupled WordPress setup?

Yes. Every field is readable and writable over REST, so a headless front end, a CI job or a content-ops script can manage SEO meta the same way it manages any other structured field.

Does this work with Yoast SEO Free / Premium / Rank Math Free / PRO?

Yes. The plugin uses the postmeta keys that all editions read from, so it works regardless of which tier is installed.

Can I run both Yoast and Rank Math at the same time?

You shouldn't. They conflict with each other in the front-end (duplicate meta tags). This plugin auto-detects whichever is active; if both are active, Yoast wins.

Is it safe to install on production?

Yes. The plugin is read-only until something hits the REST endpoints, and writes are scoped to SEO meta keys only, it cannot edit post content, users, or any other table. Per-post permission checks prevent privilege escalation.

Does it work with WooCommerce products?

Yes. Meta is registered on every public post type, so products, custom post types, etc. are all covered. Product category and product tag archives (and any other custom taxonomy) are also editable via the term endpoints (v1.3.0+).

Can I edit category / tag archive SEO meta in bulk?

Yes (v1.3.0+). Pass ?include_terms=1 to /export to pull category, tag, and any custom-taxonomy archive rows alongside posts. Post /bulk items with kind: "term" and the taxonomy slug to update them. Yoast term meta is stored in the wpseo_taxonomy_meta option; Rank Math uses standard term meta. Both are handled transparently, you pass plugin-neutral aliases (title, description, og_title, etc.) and the plugin writes to the right place.

Why am I getting 401 Unauthorized on localhost?

WordPress disables Application Passwords on non-HTTPS sites by default. For local development only, drop a small mu-plugin into wp-content/mu-plugins/ with add_filter('wp_is_application_passwords_available', '__return_true');.

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

The host's web-application firewall (Apache mod_security, Wordfence, Solid Security, Cloudflare WAF) is rejecting the request based on User-Agent before WordPress sees it. Default UAs like python-requests/2.x and Node's bare node-fetch are on most WAF blocklists. Send a regular browser User-Agent header on every REST call (e.g. Mozilla/5.0 ... Chrome/124.0 Safari/537.36) and the 403 disappears. The bundled MCP server (v1.4.2+) already does this automatically, override with MCP_USER_AGENT if your host has a stricter rule. Symptom signature: curl -u 'user:pass' https://site/wp-json/seo-meta-bridge/v1/status returns 200, but the same call from Python/Node with the same credentials returns 403 with an Apache HTML error page (not a WP JSON error).

Can the plugin be used to write arbitrary postmeta?

No. Only meta keys belonging to the active SEO plugin (Yoast or Rank Math) are accepted. Other keys are rejected with unknown_or_disallowed_key.

更新日志:

1.8.2 1.8.1 1.8.0 1.7.0 1.6.1 1.6.0 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.0 1.2.6 1.2.5 1.2.4 1.2.3 1.2.2 1.2.1 1.2.0