From metaflow-marketing-skills
Diagnoses site-crawl, index, rendering, and AI-bot accessibility issues via a 10-step technical SEO audit. Use when pages aren't ranking or appearing in AI answers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/metaflow-marketing-skills:technical-seo-ai-crawler-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **72% of websites fail at least one critical technical SEO factor** (third-party site-health benchmarks, 2025).
Always fix in this order — later work is wasted if earlier layers are broken:
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤ 2.5s | 2.5s – 4.0s | > 4.0s |
| INP (Interaction to Next Paint) | ≤ 200ms | 200ms – 500ms | > 500ms |
| CLS (Cumulative Layout Shift) | ≤ 0.10 | 0.10 – 0.25 | > 0.25 |
Thresholds apply to the 75th percentile of field data (real-user monitoring), not lab scores. Get field data from: GSC Core Web Vitals report (free, authoritative), CrUX dashboard, PageSpeed Insights (field tab, not lab), or your RUM tool.
INP replaced FID in March 2024. Do not use FID as a KPI.
| Check | What to verify | How |
|---|---|---|
| robots.txt | GPTBot, PerplexityBot, ClaudeBot, Google-Extended, Bytespider, CCBot not blocked | Fetch https://domain.com/robots.txt, grep for each user-agent |
| Cloudflare AI bot blocking | "Block AI Bots" toggle is OFF in Cloudflare dashboard (default: ON as of 2024) | Cloudflare dashboard → Security → Bots → "Block AI Bots" |
| Server logs | AI bot user agents are hitting the site (ChatGPT-User, PerplexityBot, ClaudeBot) | Grep last 30 days of access logs for each UA string |
| JavaScript rendering | Critical content visible in raw HTML | Right-click → View Source on key templates; search for visible text |
| llms.txt | File at site root providing AI-readable site structure | Fetch https://domain.com/llms.txt |
| Logged-in / paywall content | Gated content is not accessible to AI crawlers (by design) | Confirm this is intentional |
robots.txt example (permissive for AI):
User-agent: GPTBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Google-Extended
Allow: /
Note on robots.txt semantics: Absence of a Disallow for a user-agent means allowed. The explicit Allow: / block above is belt-and-suspenders — useful for clarity and for sites that have a global disallow earlier in the file.
| Issue | Fix |
|---|---|
| Duplicate content across URL variants | Canonical tags to preferred URL; 301 redirect when safe |
| Thin content (<300 words, no unique value) | Noindex, consolidate with related page, or rewrite |
| Redirect chains (3+ hops) | Collapse to single 301 hop |
| Mixed internal linking (http + https, www + non-www) | Standardize on one version; redirect the others |
| Orphan pages (no internal links pointing to them) | Add internal links from topically relevant pages |
| Infinite faceted navigation generating URLs | noindex + parameter handling; disallow crawler traps |
| Slow LCP on key templates | Preload hero image, remove render-blocking CSS/JS, optimize server response |
| Poor INP on interactive pages | Break up long tasks, defer non-critical JS, audit third-party scripts |
| CLS from dynamically-inserted content | Reserve space for ads/images with CSS aspect-ratio or fixed dimensions |
| Schema errors (GSC Enhancement reports) | Fix per Schema.org spec; validate with Rich Results Test |
| Content rendered client-side (invisible to AI) | Migrate to SSR/SSG; at minimum, server-render the critical above-fold content |
| Purpose | Free | Paid (if needed) |
|---|---|---|
| Crawl errors + indexation | Google Search Console (authoritative) | — |
| Full site crawl | Free desktop crawler (URL limits vary) | Commercial crawl suite |
| Field CWV data | GSC Core Web Vitals report, CrUX dashboard | — |
| Lab CWV / diagnosis | PageSpeed Insights, Chrome DevTools Lighthouse | — |
| Rendering check | Chrome DevTools, URL Inspection in GSC | Prerender.io, Rendertron |
| Schema validation | Rich Results Test, Schema.org validator | — |
| Log file analysis | awk/grep on access logs | Log analyzers, SIEM (e.g. Splunk) |
| Competitive technical comparison | — | Commercial SEO audit tools |
GSC is the only fully authoritative source — everything else is a proxy. Always ground findings in GSC when possible.
## Technical SEO Audit Report
**Site:** [URL]
**Audit Date:** [Date]
**Crawl Tool:** [Desktop crawler / cloud crawl suite / etc.]
**Pages Crawled:** [X]
**Data Sources:** GSC, CrUX, [other]
### Health Score: [X/100]
### 🔴 Critical — Blocks crawling/indexation/AI citation
1. **[Issue]** — [X pages affected]
- Evidence: [GSC report / crawl finding / log line]
- Fix: [Specific action]
- Effort: [Low/Medium/High]
- Priority: **Immediate**
### 🟡 High Priority — Impacts rankings or CWV
1. **[Issue]** — [X pages affected]
- Fix: [Specific action]
- Priority: **This sprint**
### 🟢 Medium / Low — Refinements
...
### AI Crawler Status
| Bot | Allowed in robots.txt | Cloudflare | Seen in logs (last 30d) | Notes |
|-----|----------------------|------------|-------------------------|-------|
| GPTBot | | | | |
| PerplexityBot | | | | |
| ClaudeBot | | | | |
| Google-Extended | | | | |
### JavaScript Rendering Check
| Template | Renders in raw HTML | AI-visible | Action |
|----------|---------------------|------------|--------|
| Homepage | | | |
| Article | | | |
| Product | | | |
| Category | | | |
### Core Web Vitals (Field Data, 75th percentile)
| Metric | Mobile | Desktop | Status |
|--------|--------|---------|--------|
| LCP | | | |
| INP | | | |
| CLS | | | |
### Schema Coverage
| Page type | Schema type | Implemented | Valid | Errors |
|-----------|-------------|-------------|-------|--------|
### Monitoring Plan
- **Weekly:** [metrics]
- **Monthly:** [checks]
- **Quarterly:** [full audit scope]
- **Next audit:** [date]
Site: example-saas.com (2,400 URLs, WordPress on Cloudflare) Baseline: 780 indexed, GSC Coverage shows 120 "Crawled — not indexed," CWV mobile all red
Key findings:
/tag/*, /author/*) indexed, cannibalizing real content. GSC shows "Duplicate without user-selected canonical" on 180 of them.Prioritized fixes:
Allow directives in robots.txt for GPTBot, PerplexityBot, ClaudeBot, Google-Extended. Verify with log sampling within 7 days.Monitoring: Weekly GSC Coverage + CWV check. Monthly log sample for AI bot hits. Quarterly deep audit.
<div id="root"> only, AI tools cannot see it.npx claudepluginhub narayan-metaflow/metaflow-marketing-skills --plugin metaflow-marketing-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.