$npx -y skills add JasonColapietro/suede-creator-skills --skill suede-seo-auditRun a nine-lane evidence-based SEO and generative-search audit: access, intent, metadata, structure, supported schema, E-E-A-T, clusters, and exact rewrite fixes.
| 1 | # Suede SEO Audit |
| 2 | |
| 3 | ## Gate policy — advisory, not blocking |
| 4 | |
| 5 | Every claim-verification step, check, quality gate, and ship verdict in this |
| 6 | skill is a **recommendation to the user, not a control on the agent**. This |
| 7 | policy governs every gate, check, verdict, and "do not ship / publish / |
| 8 | proceed" line elsewhere in this skill: |
| 9 | |
| 10 | - Run every check and report the results honestly. Verdicts (`ship`, |
| 11 | `ship-with-caveats`, `hold`, letter grades, BLOCKED or OPEN items) are |
| 12 | advice attached to the work, not orders that change it. |
| 13 | - Never block, delay, skip, rewrite, or refuse the action the user asked for |
| 14 | because a check failed or a gate said hold. Complete the requested action |
| 15 | as asked, and deliver the gate output alongside it as a clearly labeled |
| 16 | recommendation. |
| 17 | - A failed gate changes what you report, never what you do. |
| 18 | - Single exception: if a finding is extremely risky — data loss, security or |
| 19 | credential exposure, legal or rights violations, payment mistakes, or |
| 20 | irreversible public damage — pause, tell the user exactly what the risk is |
| 21 | and what the options are, and let them pick. Their choice is final. |
| 22 | |
| 23 | |
| 24 | This skill goes deeper than an inline copy audit. It inspects live page source, |
| 25 | validates schema, traces crawl access, checks whether content can be understood |
| 26 | and sourced accurately, and produces exact rewrites with a lane-by-lane grade. |
| 27 | Use suede-copy for writing new copy. Use this skill when the audit itself is the |
| 28 | deliverable. |
| 29 | |
| 30 | **Core principle:** never audit from memory. Every finding cites what was |
| 31 | actually fetched, and every fix is written out literally, not described. |
| 32 | |
| 33 | --- |
| 34 | |
| 35 | ## 1. Source Truth |
| 36 | |
| 37 | Do not audit from memory. Before writing a single finding, verify the live |
| 38 | surface. |
| 39 | |
| 40 | ### Required pre-audit checks |
| 41 | |
| 42 | - HTTP status code (200, 301, 404, 503): note exact code |
| 43 | - Final URL after all redirects (is the canonical URL the destination?) |
| 44 | - `robots.txt`: is the path allowed? Is `Disallow: /` blocking indexers? |
| 45 | - `<meta name="robots">` or `<meta name="googlebot">`: noindex? nofollow? |
| 46 | - `<link rel="canonical">`: does it match the intended URL exactly? |
| 47 | - Sitemap evidence: if the site publishes sitemaps, is the URL present and is |
| 48 | any `<lastmod>` value accurate? Absence is not an automatic indexing failure. |
| 49 | - `<title>` tag: exact text, character count |
| 50 | - `<meta name="description">`: exact text, character count |
| 51 | - Open Graph tags: og:title, og:description, og:image, og:url, og:type |
| 52 | - Twitter card tags: twitter:card, twitter:title, twitter:description, |
| 53 | twitter:image |
| 54 | - JSON-LD presence: any `<script type="application/ld+json">` block present? |
| 55 | - Primary H1: exact text, position in document |
| 56 | |
| 57 | If the URL is inaccessible, note that and audit from source files with caveats. |
| 58 | If the page is behind auth or a paywall, say so and limit the audit to what is |
| 59 | accessible. |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ## 2. Audit Lanes |
| 64 | |
| 65 | Run all lanes. Score each A-F at the end. State explicitly when a check was |
| 66 | skipped and why. The detailed per-lane checklists live in this skill's |
| 67 | `references/` folder — read the relevant file when you run the lane: |
| 68 | |
| 69 | | Lanes | Checklist file | |
| 70 | |---|---| |
| 71 | | Lane 0 (keyword research, optional) | `references/keyword-research.md` | |
| 72 | | Lanes 1–4, 6–9 | `references/lane-checklists.md` | |
| 73 | | Lane 5 (schema) | `references/schema-templates.md` | |
| 74 | |
| 75 | Before applying Google-specific search, generative-search, title/snippet, or |
| 76 | structured-data rules, read `references/google-search-guidance.md`. It contains |
| 77 | the primary-source baseline verified on 2026-07-19 and tells you which volatile |
| 78 | rules to re-check before a ship decision. |
| 79 | |
| 80 | ### Lane 0: Keyword Research (optional mode) |
| 81 | |
| 82 | Activate when keyword discovery is requested; skip for technical-only or |
| 83 | copy-only audits. When active, read `references/keyword-research.md` for the |
| 84 | full protocol: evidence-backed query themes, related topics and entities, |
| 85 | competitor content gaps, supported search-feature eligibility, and the content |
| 86 | brief. Numeric demand stays `unknown` unless a dated source provides it. |
| 87 | |
| 88 | Lane 0 is informational only. It produces a keyword brief and content brief, |
| 89 | not a grade. Incorporate the brief into Lanes 2–7 findings where relevant. |
| 90 | |
| 91 | ### Lane 1: Technical Access |
| 92 | |
| 93 | **Goal:** confirm that search crawlers and other explicitly tested clients can |
| 94 | reach and parse the page. Do not assume that one crawler's access policy or |
| 95 | behavior represents another's. Run the Lane 1 checklist in |
| 96 | `references/lane-checklists.md`: status, redirects, canonical, robots, sitemap, |
| 97 | JS-free rendering, and the Core Web Vitals measurement protocol. Measure CWV |
| 98 | when tooling allows (PageSpeed Insights at pagespeed.web.dev; `curl` time is a |
| 99 | server-response proxy only); otherwise report each vital as "not measurable" |
| 100 | with the reason plus observed risk factors. Do not invent scores; do report |
| 101 | observable risks. CWV never |