Get the FREE Ultimate OpenClaw Setup Guide →

seo-audit

npx machina-cli add skill jezweb/claude-skills/seo-audit --openclaw
Files (1)
SKILL.md
4.8 KB

SEO Audit

Run a comprehensive technical SEO audit on a website using Whispering Wombat crawler and Jezweb Brain for client context.

Required MCP Tools

  • Whispering Wombat: whispering_crawls, whispering_pages, whispering_issues, whispering_links, whispering_content
  • Brain (optional): brain_site_get, brain_issues

If Whispering Wombat MCP is not connected, inform the user and stop.

Input

$ARGUMENTS should be a domain name or URL (e.g., abpsychology.au or https://www.greenplanetplumbing.com.au).

If no argument provided, ask the user which site to audit.

Workflow

Step 1: Resolve Domain and Get Context

Extract the domain from the input URL. Then:

  1. Brain lookup (if available): brain_site_get { domain } — get client name, platform, previous issues, hosting
  2. Note if it's a WordPress site (affects later steps)

Step 2: Check for Recent Crawl

whispering_crawls list — look for a completed crawl of this domain within the last 24 hours.

  • If recent crawl exists: reuse it (note the crawl_id)
  • If no recent crawl: proceed to Step 3

Step 3: Start New Crawl

whispering_crawls start {
  url: "https://{domain}",
  max_pages: 500,
  respect_robots: true
}

Then poll for completion:

whispering_crawls get { crawl_id: "..." }

Poll every 15 seconds. Typical times: 50 pages ~30s, 200 pages ~2min, 500 pages ~5min.

While waiting, inform the user: "Crawling {domain}... {pages_crawled}/{pages_found} pages"

Step 4: Gather Analysis Data

Once crawl is complete, gather data in parallel where possible:

  1. whispering_issues overview — SEO scores, status codes, security, response times
  2. whispering_issues summary — all issue types with counts
  3. whispering_links stats — follow/nofollow/broken/empty
  4. whispering_content sitemaps — sitemap validation
  5. whispering_content structure — URL tree and depth distribution

Step 5: Deep Dive on Issues

Based on issues found, gather additional detail:

  • If broken links > 0: whispering_links domains for external link analysis
  • If duplicate content detected: whispering_content duplicates
  • If WordPress: whispering_content wordpress
  • If security issues: whispering_content security
  • For top-traffic pages: whispering_content pagespeed { url } (max 3 pages)

Step 6: Compare with Previous Crawl

whispering_crawls history { crawl_id } — get previous crawls.

If a previous completed crawl exists:

whispering_crawls compare {
  crawl_id: current_id,
  other_id: previous_id
}

Highlight: new issues, resolved issues, pages added/removed.

Step 7: Generate Report

Output the report in this structure:

# SEO Audit: {domain}
**Date**: {date} | **Pages crawled**: {count} | **Client**: {client_name or "N/A"}

## Site Health Summary
- SEO Score: {avg} (Good: {count}, OK: {count}, Poor: {count})
- Response Time: {avg}ms average
- Indexable Pages: {count}/{total}
- Broken Links: {count}
- Security: HSTS {yes/no}, CSP {yes/no}

## Critical Issues
{For each critical issue: description, affected URLs (max 5), how to fix}

## Warnings
{Same format, medium priority}

## Improvements
{Suggestions ranked by impact}

## Changes Since Last Crawl
{If comparison data available: new issues, resolved, pages added/removed}

## WordPress Status
{If WP site: plugin info, WP-specific issues}

Step 8: Log to Brain (Optional)

If Brain is connected and critical issues were found, offer to log them:

brain_issues create {
  site_id: "...",
  subject: "SEO: {issue description}",
  description: "Found during SEO audit on {date}...",
  priority: "high",
  category: "seo"
}

SEO Analysis Priorities

Critical (always report)

  • Broken pages (4xx/5xx responses)
  • Missing/wrong canonical tags
  • Noindex on important pages
  • Missing H1 tags
  • HTTPS mixed content
  • Missing sitemap

High

  • Keyword cannibalisation (duplicate titles/H1s)
  • Duplicate URL variants (/, /home, /index.html)
  • Slow pages (>3s response)
  • Missing meta descriptions on key pages
  • Internal nofollow links

Medium

  • Title length issues
  • Missing image alt text
  • Missing JSON-LD schema
  • Heading hierarchy issues
  • Orphan pages (zero inlinks)

Low

  • Missing OG tags
  • Long URLs
  • Minor meta issues

Notes

  • Use Australian English (EN-AU)
  • Be specific: "Fix missing H1 on /services" not "Add headings to pages"
  • Focus on technical correctness, not keyword density or vanity scores
  • For WordPress sites, cross-reference JezPress data if available

Source

git clone https://github.com/jezweb/claude-skills/blob/main/plugins/seo/skills/seo-audit/SKILL.mdView on GitHub

Overview

Runs a comprehensive technical SEO audit on a website using Whispering Wombat crawler and Jezweb Brain for client context. It crawls the site, analyzes technical SEO issues, compares with previous crawls, and outputs an actionable report to guide fixes.

How This Skill Works

The workflow begins by resolving the domain and optionally fetching client context from Brain. It then checks for a recent crawl; if none is found, it starts a new crawl with max_pages and robots.txt respect, polls for completion, and then gathers data from whispering_issues, whispering_links, and content modules to compose a structured SEO audit report. If the Whispering Wombat MCP is not connected, the agent informs the user and halts.

When to Use It

  • Before launching a new site to ensure crawlability and fix critical issues
  • Periodic health checks to monitor SEO health and track trends over time
  • After site changes, migrations, or redesigns to validate redirects and structure
  • Before an SEO campaign to establish a baseline of issues and opportunities
  • Client reporting to show progress, new vs. resolved issues, and improvements

Quick Start

  1. Step 1: Provide the domain or URL to audit (e.g., https://example.com)
  2. Step 2: If a recent crawl exists, reuse it; otherwise start a new crawl with whispering_crawls start { url: \"https://{domain}\", max_pages: 500, respect_robots: true } and poll for completion
  3. Step 3: Review the generated SEO Audit report, including Site Health, Critical Issues, Warnings, Improvements, and Changes Since Last Crawl

Best Practices

  • Ensure the Whispering Wombat MCP is connected before starting an audit
  • Reuse a recent crawl within the last 24 hours to save time and provide a fair baseline
  • Prioritize critical issues (broken links, security, and indexing) in the initial report
  • Validate fixes by re-running a crawl and comparing changes with the previous crawl
  • Review top-traffic pages with pagespeed checks (up to 3 URLs) for quick wins

Example Use Cases

  • Audit a mid-size ecommerce site to fix broken links, improve indexing, and optimize crawl depth
  • Crawl a WordPress-based site to surface WP-specific issues and plugin-related risks
  • After migrating from HTTP to HTTPS, verify redirects, canonicalization, and security headers
  • Validate sitemap and URL structure for a large content portal to improve indexability
  • Assess a client site’s security and performance on high-traffic landing pages

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers