agentsclimarketplace

Seo structural audit

Skill Muvon/octomind-tap/skills/seo-structural-audit

Octomind Agents Registry

Install
npx -y skills add Muvon/octomind-tap --skill seo-structural-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Operational playbook for diagnosing the structural and technical layer of a site or page: crawlability (robots.txt), indexability (meta robots, canonicals), sitemap.xml validity, redirect chains, JSON-LD schema validation, Core Web Vitals interpretation, hreflang, JS-render parity, URL architecture, and internal-link topology. Encodes the fetch protocol (parallel webfetch + shell curl), the per-surface check rubric, the severity matrix (Critical / Moderate / Minor), and the unverified-check escalation rule. Use when auditing the technical layer of a URL, sitemap, or site. Output: prioritized structural findings with evidence and fix direction.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

11.1 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it

Overview

Most "SEO problems" that look like content problems are actually structural — a missing canonical, a sitemap that 404s, a hero rendered only after JS hydration that Googlebot can't see, schema that fails validation, a redirect chain that drains link equity. This skill is the diagnostic playbook for that layer: a fetch protocol that gets the evidence in parallel, a per-surface check rubric that turns the evidence into a finding, and a severity matrix that says what to fix first. Output is a prioritized list with cited evidence — never inference where evidence could have been fetched.

Mental model

Structural SEO is a chain of pass-throughs:

  1. The crawler can reach the URL (robots.txt allows; no infinite redirect; status 200).
  2. The renderer can see the content (raw HTML carries primary content OR pre-rendered; JS hydration doesn't hide it).
  3. The indexer can understand the page (meta robots indexable; canonical self-referential or correctly assigned; schema validates).
  4. The ranking system can compare it (Core Web Vitals within thresholds; internal-link topology lets PageRank flow; hreflang resolves correctly per locale).

Break any link in the chain and rankings collapse downstream regardless of how good the content is. Audit walks the chain in order; the first broken link is the highest-priority finding.

Instructions

Fetch protocol (parallel, ONE block)

Before scoring anything, get the evidence:

  • webfetch the target URL — capture HTML, response headers, render the page if JS-heavy.
  • shell curl -sI <url> — capture raw HTTP response and follow redirect chain (-L with -w "%{redirect_url}\n%{http_code}\n").
  • shell curl -s <origin>/robots.txt — fetch robots, parse Allow / Disallow / Sitemap: directives.
  • shell curl -s <origin>/sitemap.xml — fetch sitemap; check for index file vs flat sitemap; spot-validate 5–10 URLs.
  • websearch site:<domain> — sanity-check indexed page count and freshness.
  • For JS-rendered sites: compare webfetch raw HTML vs a rendered fetch (skill references/render-parity-check.md if needed).

Run all six in one tool block. Don't serialize. If any fetch fails, the result becomes an "Unverified" finding — never inferred.

Check rubric (per surface)

#CheckHow to verifySeverity if failed
1Crawlabilityrobots.txt does not Disallow the URL; no soft-404Critical if blocked
2HTTP statuscurl returns 200 (or 301 → 200 within 1 hop)Critical if 4xx/5xx; Moderate if redirect chain >1 hop
3Indexabilitymeta robots is index, follow (or absent)Critical if noindex on a page meant to rank
4Canonicalcanonical tag present, points to self or correct alternateCritical if canonical points to a different page incorrectly
5Sitemap inclusionURL appears in sitemap.xml, last-modified validModerate if absent; Critical if sitemap itself 404s
6Redirect chainchain length ≤1 hop, no loops, terminal is 200Moderate at 2 hops; Critical at 3+ or any loop
7Schema validityJSON-LD parses; types match content (Article, FAQ, HowTo, Person, Organization, Product); required fields presentModerate per missing/invalid type on eligible page
8Core Web VitalsLCP <2.5s (target <2.0s); INP <200ms; CLS <0.1Critical if any metric in Google's "poor" band; Moderate if "needs improvement"
9hreflangeach variant points to the others bidirectionally; uses ISO codesModerate if asymmetric or broken; Critical if hreflang errors mean wrong region ranks
10JS-render parityprimary content (title, H1, body) visible in raw HTML view-sourceCritical if primary content only appears after hydration
11URL architecturedescriptive slug, no query-string for canonical content, consistent trailing-slash policyMinor unless duplicate content created
12Internal-link topologypillar links out to clusters in first section; cluster pages link back within first 100 words; ≤3 clicks from homepageModerate if orphan pages or broken pillar/cluster pattern
13Mobile paritymobile viewport, responsive content, no separate m. subdomain serving different contentCritical if content differs materially mobile-vs-desktop

Severity matrix

  • Critical — blocks indexing, blocks rendering, creates indexability conflict, or hits the "poor" CWV band. Fix before anything else.
  • Moderate — degrades signal (chain too long, schema missing on eligible page, "needs improvement" CWV). Fix in current cycle.
  • Minor — polish (slug aesthetics, alt-text on decorative images, sitemap last-modified timestamp accuracy). Fix when convenient.

A Critical finding stays Critical even when "it's just one tag." Severity is impact-weighted, not effort-weighted.

Unverified checks — escalation rule

If a check could not run:

  • 403 on robots.txt or sitemap → "Unverified: server blocks unauthenticated fetch; ask for crawler-allowed IP or share via GSC export."
  • JS-render parity untestable (no headless browser available) → "Unverified: render parity needs headless render; recommend a Lighthouse run or rendered-fetch sample."
  • GSC data needed (impressions, indexed-page count, crawl errors) → "Unverified: GSC access required; share read-only access or paste a coverage report."

Never infer a finding from absence of evidence. "Could not fetch" is its own finding type — it tells the user what to unblock, and it preserves trust in the rest of the report.

Schema validation notes

  • FAQ schema → check mainEntity array, each Question has acceptedAnswer.Answer.text. Highest single-impact schema for AI citation eligibility.
  • Article schema → headline, author (Person with name + optional sameAs/url), datePublished, dateModified, description. Missing author on a YMYL page is a Critical-tier finding (March 2026 amplified author-credential signal — 73% of post-update YMYL top results display detailed author credentials, up from 58%).
  • Person / Organization schema → required to anchor entity recognition for E-E-A-T. Missing sameAs outbound to LinkedIn / publication / org bio is Moderate.
  • HowTo schema → step array with name + text per step. Cited for procedural queries.
  • Review / AggregateRating → present only when genuine reviews back it; fake review-schema is a manual-action trigger.

Core Web Vitals — interpretation, not measurement

This skill interprets CWV; it does not measure them. Source measurements:

  • Field data: Google PageSpeed Insights, Search Console Core Web Vitals report, CrUX dataset.
  • Lab data: Lighthouse CLI (shell capability), WebPageTest, browser DevTools.

When only lab data is available, flag the field-vs-lab gap; lab overstates good performance in many cases. INP needs field data — lab-only INP estimates are unreliable.

Internal-link topology — what to look for

  • Pillar pages should link out to every cluster article in their opening section (first 200 words).
  • Cluster articles should link back to the pillar within the first 100 words.
  • Cluster siblings should cross-link 2–3 times where topically relevant.
  • Every indexable page should be reachable within 3 clicks from the homepage.
  • Orphan pages (no internal inbound links) are a Moderate finding — they signal abandoned content or template gaps.
  • The link graph should mirror the topic graph, not the navigation hierarchy.

Output

Use the canonical output structure from the agent that runs this skill. Every finding includes: severity, evidence (URL + line / header / schema field / metric), why it matters, fix direction. Save as seo-audit-[slug]-[YYYY-MM-DD].md in working directory.

Checklist

  • All six fetch operations ran in parallel
  • Every check in the rubric was evaluated or flagged as Unverified
  • Each finding cites concrete evidence (URL, line, header, schema field, metric)
  • Severity assigned by impact, not effort
  • Unverified findings name the specific blocker and the unblock path
  • Schema findings name the type and the missing/invalid field
  • CWV findings name the source (field / lab / PSI) and the band (good / needs improvement / poor)
  • Internal-link topology checked for pillar/cluster pattern and orphan pages
  • Report saved to disk with timestamped filename

Composition / References

Within-domain pairings:

  • Pairs with the sibling SEO skill that audits on-page content quality (titles, meta, headings, intent match, AI-citability, E-E-A-T).
  • Pairs with the sibling SEO skill that audits link profile (referring-domain quality, anchor distribution, toxic neighborhoods).

External authoritative sources:

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.