Skip to content
Content
Skill

/respira-site-audit

Use when asked to audit, score, or health-check a WordPress site or page. Runs SEO, AEO, readability, accessibility, performance, RankMath, and Core Web Vitals analyzers and presents a unified report with prioritised fixes.

From plugin
respira-wordpress-skills
4351 skills
Install
$ npx -y skills add respira-press/agent-skills-wordpress --skill respira-site-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/respira-site-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when asked to audit, score, or health-check a WordPress site or page. Runs SEO, AEO, readability, accessibility, performance, RankMath, and Core Web Vitals analyzers and presents a unified report with prioritised fixes.

SKILL.md

respira-site-audit.SKILL.md
name: respira-site-audit
description: Use when asked to audit, score, or health-check a WordPress site or page. Runs SEO, AEO, readability, accessibility, performance, RankMath, and Core Web Vitals analyzers and presents a unified report with prioritised fixes.
license: MIT
metadata:
  short-description: Full site health check across SEO, AEO, accessibility, readability, and performance
  version: 1.2.0
  updated_at: 2026-09-13
  respira_min_version: 8.9.0

Respira Site Audit

Common Mistakes

| Mistake | Correct approach | |---|---| | Running analyzers without knowing which page to audit | Always confirm the target. Site-wide (all public pages) or a specific page URL or ID. | | Reporting raw analyzer output without prioritising | Group findings by severity (CRITICAL, WARNING, SUGGESTION) and surface quick wins first. | | Running all analyzers in sequence when only one is needed | Match the analyzer to the question. If the user asks about SEO only, run `respira_analyze_seo` and skip the rest. | | Skipping `respira_get_builder_info` before reporting element-level issues | Builder type affects which fixes are possible. Elementor, Divi 4, Divi 5, Bricks, Beaver, and Oxygen all have different fix paths. | | Treating AEO and SEO as interchangeable | SEO targets search rankings. AEO targets AI-generated answers. Both analyzers cover different signals and you usually want both. | | Not checking whether the page is published before auditing | Drafts and private pages may produce incomplete results. Confirm `status: publish` first. | | Using `extract_builder_content` when you only need structure | Use `respira_get_page_outline` for the "what is on this page" read. It is lighter and includes the primary heading per row. | | Calling a site secure because a security plugin is installed | Run `respira_run_security_audit` and report what it checked and what it could not. A partial scan or an unavailable vulnerability check is never "clean". | | Quoting `respira_get_core_web_vitals` as real-user data | It is a heuristic estimate from static analysis. Use `respira_run_pagespeed_audit` for Lighthouse lab data and CrUX field data. |

Inputs

  • Target: a specific page URL, page ID, or "the whole site".
  • Scope: which analyzers to run. Default is all eight, plus the security audit on site-wide runs.
  • Output format: a summary for the user, or JSON for a CI / CD pipeline.

Workflow

Single-page audit

1. `respira_get_site_context`. Confirm site URL, active SEO plugin (RankMath, Yoast, AIOSEO, SEOPress), active builder, WooCommerce presence. 2. `respira_get_builder_info`. Note builder type for element-level fix recommendations. 3. `respira_get_page_outline` if the structure needs to be discussed. 4. Run analyzers in parallel where possible:

  • `respira_analyze_seo`. Title, meta description, headings, internal links, canonical.
  • `respira_analyze_aeo`. Structured content, FAQ schema, answer-box signals.
  • `respira_analyze_readability`. Flesch score, sentence length, passive voice.
  • `respira_analyze_performance`. Load time, image sizes, render-blocking resources.
  • `respira_scan_page_accessibility`. WCAG 2.1 AA violations, alt text, contrast.
  • `respira_analyze_images`. Per-image weight, format, oversize-by-X factor.
  • `respira_check_structured_data`. Schema.org presence per page.
  • `respira_run_pagespeed_audit`. PageSpeed Insights: Lighthouse lab metrics plus CrUX field data (LCP, INP, CLS at p75) when Google publishes it for the URL.

5. Aggregate findings by severity: CRITICAL → WARNING → SUGGESTION. 6. Build a prioritised fix list: quick wins first (alt text, missing meta) before structural changes. 7. Report: headline score per area plus top 3 fixes per area.

Site-wide audit

1. `respira_list_pages` with `status: publish`. Collect all published page IDs. 2. For each page, or a representative sample, run the single-page workflow above. 3. Aggregate into a site-level summary: worst-performing pages, most common issue types, overall score bands.

Security (site-wide audits, or whenever security comes up)

1. `respira_run_security_audit` once per site, not per page. Pass `deep_scan: true` on plugin 9.0 and later, where it only reads. On older plugins the deep scan also writes and deletes one inert probe file in uploads, so ask first there or leave it off. Never set `probe_uploads_execution` here; the WordPress Security Review skill asks for it with consent. 2. Read `indicators` (every entry, with its `summary` and the `note` in its evidence), `coverage` (what was not checked) and `known_vulnerabilities` (plugin 9.0 and later: `status: ok` means the match ran and each match carries the version that fixes it; `unavailable` or `not_run` means it did not). 3. Severity: a known vulnerability or a high-severity indicator is CRITICAL; a medium indicator is a WARNING; a coverage gap (`executable_file_scan` partial or not run, the host-level items marked false) is listed plainly as not checked. 4. Never write "secure", "clean" or "no known vulnerabilities" when coverage is partial, when `known_vulnerabilities` is missing or its `status` is not `ok`, or when a high-severity indicator is present. Write "no problems found in what was checked" and name what was not checked. 5. Fixes belong to the WordPress Security Review skill: updates are approval-gated and run one at a time, and nothing is deleted or revoked without the owner's yes.

RankMath / Yoast integration

If RankMath, Yoast, AIOSEO, or SEOPress is active (visible in `respira_get_site_context`):

  • `respira_analyze_rankmath` reads RankMath's own focus keyword scores and suggestions.
  • Use these scores alongside `respira_analyze_seo` for a richer picture. Don't run them as alternatives.
  • `respira_check_seo_issues` returns the active SEO plugin's own issue feed.

Rules

  • Always run `respira_get_site_context` first. Plugin presence (RankMath, Yoast, WooCommerce, ACF, WPML) changes which tools are releva
Read more
Ships withrespira-wordpress-skills

The community hub for WordPress AI workflows. Skills that run inside Claude Code, Codex, Antigravity, Cursor, and any AI agent that supports Skills + MCP to analyze, audit, optimize, and fix WordPress sites. Built by the community. Curated by Respira.

Get the whole plugin
Stats
43
Stars
8
Forks
Active
Maintenance
JavaScript
Language
MIT
License
5d ago
Last commit
6mo ago
Created

Repo: respira-press/agent-skills-wordpress

Other skills on respira-wordpress-skills.