agentsclimarketplace

Seo crawl render

Skill Hainrixz/claude-seo-ai/skills/seo-crawl-render

Fetch a page (or local files) and build the shared PageSnapshot every audit module reads — raw HTML, rendered DOM when a render MCP is available, response headers, status/redirect chain, and site artifacts (robots.txt, sitemaps, llms.txt). Decides whether JavaScript rendering is needed and records the data tier.From its SKILL.md

Install
npx -y skills add Hainrixz/claude-seo-ai --skill seo-crawl-render

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

  • fetches URLsInstructs the agent to fetch 3 URLs, including robots.txt and 2 more.

SKILL.md

2.6 KB, 574 tokens by cl100k_base, as published. Nobody here has run it

seo-crawl-render

Produces ONE PageSnapshot consumed by all other skills. Building it once is what makes the offline (Tier 0) audit possible.

PageSnapshot shape

{
  target: { kind: "url"|"path", value },
  status_chain: [ {url, status, location?} ],   // redirects, final status
  headers: { ... },                              // final response headers (incl. X-Robots-Tag, content-type, hreflang Link)
  raw_html: "...",                               // pre-JS HTML the crawler/AI sees first
  rendered_dom: "..."|null,                      // post-JS DOM (null if no render available)
  render: { needed: bool, used: "webfetch"|"playwright"|"firecrawl"|"none", confidence: "high"|"reduced" },
  artifacts: { robots_txt: "..."|null, sitemaps: [...], llms_txt: "..."|null },
  tier: 0|1|2
}

Acquisition

  1. Local path: read files directly (Read/Glob); treat built HTML as raw_html. For framework source (Next/Nuxt/etc.), note the framework and that rendered output may differ from source.
  2. URL: fetch with WebFetch (HTTPS-upgrade; if it returns a cross-host redirect, re-fetch the target). Capture status chain and headers. Fetch robots.txt, referenced sitemap(s), and /llms.txt.

Render decision

  • --render static → never render. --render js → always try to render.
  • --render auto (default): flag CSR when the raw HTML body is near-empty, has hydration markers (__NEXT_DATA__, window.__NUXT__, data-reactroot, a single root <div id="app">), or primary content/headings/links/JSON-LD are absent from raw_html.
  • If rendering is needed AND a render MCP is available (Playwright/Firecrawl — discover via tool search), get the rendered_dom; set render.confidence = high.
  • If needed but no render MCP: keep rendered_dom = null, set render.confidence = reduced, and emit an M4 finding: "CSR-only; audited from raw HTML; install a Playwright/Firecrawl MCP for full coverage." Never pretend you saw rendered content you didn't.

Tier

Set tier = 0 (WebFetch only), 1 (render MCP and/or PageSpeed available), 2 (Search Console / Merchant available). Downstream skills annotate findings needs_api when they require a higher tier than reached.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most marketing audience skills give in 574 tokens

Counted across 690 of the 894 authors here whose files we hold, read 2026-08-07

  • Apply Poppins font to headingsin 41 of 690, across 6 files
  • Apply Lora font to body textin 41 of 690, across 6 files
  • Use Arial fallback for headingsin 39 of 690, across 4 files
  • Use Georgia fallback for body textin 39 of 690, across 4 files
  • Maintain text hierarchy and formattingin 39 of 690, across 4 files
  • Use accent colors for non-text shapesin 38 of 690, across 3 files
  • Use RGB values for precise color matchingin 38 of 690, across 3 files
  • Use brand colors for primary text and backgroundsin 36 of 690, across 1 file
  • Read product marketing context file before asking questions, starting, or auditingin 35 of 690, across 23 files
  • Use active voice instead of passive voicein 26 of 690, across 10 files
  • Implement or generate appropriate JSON-LD structured datain 24 of 690, across 17 files
  • Prioritize clarity over clevernessin 22 of 690, across 8 files

Said here and by no other author read

  • Build exactly one PageSnapshot object
  • Fetch URLs using WebFetch with HTTPS upgrade
  • Re-fetch after cross-host redirects
  • Never render when render is set to static
  • Always render when render is set to js
  • Flag CSR for near-empty raw HTML or hydration markers

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. 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.