Skip to main content
Glama

royal-mcp__wp_audit_seo_bulk

Read-onlyIdempotent

[Royal MCP Pro] Generic on-page SEO audit across a post type — checks the basics (title/description length, noindex, H1 count, word count, images + alt-text, featured image). Uses the active SEO plugin as the source of title + meta description when one is detected (Yoast, Rank Math, SEOPress, AIOSEO, or SEObolt); falls back to WordPress-native fields (post_title, post_excerpt) otherwise. Does not surface plugin-native scores (e.g. SEObolt geo_score, Yoast readability). Returns per-page findings + optional aggregated rollup (issues by type, worst offenders). Publish-only by default; pass include_drafts=true for pre-publish workflow audits. No backup is taken (snapshot=true reports skipped); run sv_create_backup before a bulk fix if you need a restore point. Read-only — no writes. Requires manage_options. (site: demo.royalplugins.com) Through Royally: read-only, runs straight away.

Input Schema

NameRequiredDescriptionDefault
rollupNoInclude the aggregated rollup summary alongside per-page results. Default: true.
site_idNoSite to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com)
paginateNoPagination controls. Defaults: page 1, per_page 100 (max 500).
post_idsNoOptional. When provided, audit ONLY these post IDs (must be of post_type). Skips the pagination sweep of every post — useful for targeted re-audit after a fix, or for auditing a specific customer complaint.
snapshotNoAccepted for compatibility; no backup is taken. The audit only reads, so it needs none — sitevault_snapshot reports status "skipped". To back up before a bulk write, call sv_create_backup first.
post_typeNoPost type to audit (must be a registered CPT slug). Default: "post".
include_draftsNoInclude draft/pending/private/future posts alongside published ones. Default: false (publish-only). Agents auditing an SEO surface typically care about what customers actually see, so drafts are opt-in.
verify_rendered_h1NoWhen the theme renders the post title outside the content, load the served page to count its visible H1s (up to 10 pages per call) instead of reporting h1_unverifiable_theme_title. Adds h1_rendered_count. Default: true.
count_decorative_altsNoHow to treat alt="" (HTML5 decorative-image marker). Default: true — counts decorative images in images_missing_alt + flags "N_images_missing_alt" issue (strict SEO parity, matches agency-audit convention). Set false to only count images with NO alt attribute at all — separates decoration from missing metadata. images_no_alt + images_decorative_alt are always returned separately regardless of this setting.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: requires manage_options, no backup is taken (snapshot reports skipped), and it explicitly does not surface plugin-native scores like Yoast readability. These are real behavioral facts an agent needs that the readOnly/idempotent annotations don't convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and checks before the caveats, and nearly every sentence adds real information. It is on the dense/long side for a single paragraph, but the length is justified by the parameter count and behavioral nuances.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description compensates by describing the return shape (per-page findings plus optional aggregated rollup with issues by type and worst offenders). Permissions, backup behavior, scope, and defaults are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter (rollup, paginate, post_ids, snapshot, post_type, include_drafts, verify_rendered_h1, count_decorative_alts). The description adds high-level meaning: publish-only default, the snapshot no-op, and the SEO rationale for treating drafts as opt-in.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (on-page SEO audit across a post type) and enumerates exactly what is checked: title/description length, noindex, H1 count, word count, images + alt-text, featured image. It also draws a boundary by stating it does NOT surface plugin-native scores, distinguishing it from SEO-plugin-specific siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: publish-only by default, pass include_drafts=true for pre-publish audits, run sv_create_backup before a bulk fix. It lacks explicit 'if you instead want X, use tool Y' routing against named siblings, so it doesn't reach the top.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources