Install
$ agentstack add skill-hainrixz-claude-seo-ai-seo-crawl-render ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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
- Local path: read files directly (
Read/Glob); treat built HTML asraw_html. For framework source (Next/Nuxt/etc.), note the framework and that rendered output may differ from source. - URL: fetch with
WebFetch(HTTPS-upgrade; if it returns a cross-host redirect, re-fetch the target). Capture status chain and headers. Fetchrobots.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 `), or primary content/headings/links/JSON-LD are absent fromraw_html`.- If rendering is needed AND a render MCP is available (Playwright/Firecrawl — discover via tool search), get the
rendered_dom; setrender.confidence = high. - If needed but no render MCP: keep
rendered_dom = null, setrender.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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Hainrixz
- Source: Hainrixz/claude-seo-ai
- License: MIT
- Homepage: https://tododeia.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.