본문으로 건너뛰기
cccskills
무료GitHub에 공개

seo-firecrawl

Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP. Returns raw HTML, parsed metadata (og:*, twitter:*, JSON-LD, canonical, robots), JS-rendered DOM, and screenshots that WebFetch cannot. Distinct from the SE Ranking skills (which give keyword/traffic/SERP data) and from WebFetch (which gives markdown prose only). Use when the user says "scrape this page", "crawl this site", "map this site", "find all pages on", "get the OG tags", "get the JSON-LD", "render this JS-heavy page", or any task where raw HTML head metadata, structured-data scripts, or post-JS DOM are the actual deliverable. Also invoked as a sub-step from other skills that need raw HTML.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills스타 188(GitHub 188 + cccskills 0)
연동 도구X (Twitter)

실행 점수 미검증

설치 방법 보기

포함된 파일(2)

  • SKILL.md9.2 KB
  • references/preflight.md6.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Example output: examples/seo-firecrawl-stripe-com-20260514/scrape/FIRECRAWL.md

Firecrawl Orchestrator

A direct interface to Firecrawl MCP for tasks that fall outside the data-driven SE Ranking skills. Use when:

  • You need raw HTML, <head> metadata, JSON-LD, or post-JS DOM that WebFetch's markdown conversion strips.
  • You need a list of all URLs on a domain without pulling each one.
  • You need to crawl a site and audit each page's metadata.
  • You need to search within a known domain.
  • A higher-level skill (seo-page, seo-schema, seo-content-audit, etc.) called you as a sub-step.

Prerequisites

  • Required: the firecrawl-mcp MCP server. If mcp__firecrawl-mcp__firecrawl_scrape is unavailable, abort with the install command — bash extensions/firecrawl/install.sh from this plugin repo, plus the firecrawl.dev signup URL (free tier 500 credits/month). Don't attempt fallbacks; this skill exists for the cases WebFetch can't cover.
  • User provides: a target URL or domain, plus optionally a mode (scrape / map / crawl / search). If mode unspecified, infer from input shape (single URL → scrape, single domain → map).

Process

  1. Preflight. Confirm firecrawl-mcp is connected. If not, surface the install command and stop.
  2. Mode selection. Resolve user intent into one of:
    • scrape — single URL, full data (default if user supplies one URL).
    • map — single domain, list of URLs only (cheap reconnaissance).
    • crawl — single domain, fetch each discovered page (expensive; require explicit confirm).
    • search — query within a domain.
  3. Cost estimation + confirmation.
    • scrape (1 credit), map (~0.5 credit per discovered URL — estimate using a map first if scope unclear), crawl (1 credit per page crawled), search (1 credit per result returned).
    • For crawl and for map of >50 expected URLs, surface the estimate and require explicit go-ahead before calling.
    • Always read remaining credits implicitly via Firecrawl's response metadata (creditsUsed / creditsRemaining in metadata).
  4. Execute. Call the matching mcp__firecrawl-mcp__firecrawl_* tool.
    • scrape: pass formats: ["markdown", "html"] by default (markdown for prose, html for <head> + JSON-LD). Add formats: ["screenshot"] only if the deliverable visibly uses one. SPAs: pass waitFor: 2000 (or a CSS selector) so the JS-rendered DOM is captured. Default onlyMainContent: true to drop nav/footer noise — override only on explicit request.
    • map: default limit: 500 (hard cap). Pass excludePaths: ["/admin/*", "/api/*", "/wp-admin/*", "/feed/*"] as a sane default.
    • crawl: default limit: 50 (default cap), hard cap limit: 200. Always pass excludePaths to prune. Poll firecrawl_check_crawl_status if the job returns asynchronously.
    • search: default limit: 20.
  5. Parse + structure output. Don't dump the raw API response. Per-mode:
    • scrape → RAW.md (markdown body), META.md (og / twitter / canonical / robots / headers + parsed JSON-LD @type list with hashes), links.csv, optional screenshot.png.
    • map → URLS.md with pattern-grouped list (e.g., /blog/* — 128 (37%), /products/* — 84 (24%)), plus urls.csv.
    • crawl → folder per page under pages/{slugified-url}/ with RAW.md + META.md, plus a top-level INDEX.md summarising every page (URL, status, key signals).
    • search → MATCHES.md with hit excerpts + URLs ranked by relevance.
  6. Synthesise FIRECRAWL.md at the root: target, mode, credits used, key findings (5 bullets max), open loops, recommended next skill.

Output format

Folder seo-firecrawl-{slug}-{YYYYMMDD}/:

Mode = scrape

seo-firecrawl-{slug}-{YYYYMMDD}/
├── RAW.md            (markdown body)
├── META.md           (og / twitter / canonical / robots / headers + parsed JSON-LD)
├── links.csv         (every <a href> on the page)
├── screenshot.png    (optional; only if requested)
└── FIRECRAWL.md      (synthesis + handoff payload)

Mode = map

seo-firecrawl-{slug}-{YYYYMMDD}/
├── URLS.md           (pattern-grouped URL list)
├── urls.csv          (every URL with discovery depth, if available)
└── FIRECRAWL.md

Mode = crawl

seo-firecrawl-{slug}-{YYYYMMDD}/
├── INDEX.md          (every page + status code + key signals)
├── pages/
│   ├── {slug-1}/RAW.md
│   ├── {slug-1}/META.md
│   ├── {slug-2}/RAW.md
│   └── ...
└── FIRECRAWL.md

Mode = search

seo-firecrawl-{slug}-{YYYYMMDD}/
├── MATCHES.md        (hit excerpts + URLs ranked by relevance)
└── FIRECRAWL.md

FIRECRAWL.md follows this shape:

# Firecrawl: {target}

> Run dated {YYYY-MM-DD} · Mode: {scrape | map | crawl | search} · Credits used: {n}

## Summary

{One-paragraph what-came-back. Example: "Scraped https://example.com/article. og:title and og:image present, JSON-LD Article schema with author + datePublished. 12 outbound links. Page is server-rendered (no JS-render divergence). Robots: index,follow."}

## Key findings

1. {Finding anchored in concrete data}
2. ...
5. ...

## Open loops

- {What this run did NOT answer}
- ...

## Recommended next step

{One of: `seo-page` (when a single URL was scraped and now wants performance analysis) | `seo-schema` (when JSON-LD audit needs follow-up generation) | `seo-technical-audit` (when crawl revealed broken pages) | `seo-content-audit` (when crawl produced a corpus to audit) | `seo-drift baseline` (when the user wants to track this URL over time) | "this completes the user's ask".}

## Handoff payload

- **Produced by:** seo-firecrawl
- **Target:** {url or domain}
- **Mode:** {scrape | map | crawl | search}
- **Credits used:** {n}
- **Key findings:** {5 bullets — e.g., "twitter:card present (summary_large_image)", "JSON-LD types: Article + Organization + BreadcrumbList", "robots: index,follow", "canonical self-referencing", "404s: 0 of 50 pages crawled"}
- **Open loops:** {what this didn't answer}
- **Recommended next skill:** {seo-page | seo-schema | seo-technical-audit | seo-content-audit | …} — {one-line why}

Tips

  • Free tier 500 cr/month. map is 0.5 cr/URL; scrape is 1 cr each; crawl 1 cr/page. Surface cost up front; warn when a single run will eat >100 credits.
  • Default onlyMainContent: true for scrape to drop nav/footer noise. Override only if the user explicitly asks for full-page DOM.
  • Use waitFor (CSS selector or ms) for SPAs that lazy-load content. 2000ms is a sensible default; selectors are more reliable than time waits.
  • firecrawl_map before firecrawl_crawl when crawl scope is unclear — discover first, decide what to crawl, then crawl. Saves credits.
  • includePaths / excludePaths dramatically cut crawl cost. Always pass excludePaths: ["/admin/*", "/api/*", "/wp-admin/*", "/feed/*"] as a default.
  • Don't request formats: ["screenshot"] unless the deliverable visibly uses it. It doubles per-page cost.
  • Don't use firecrawl_extract or firecrawl_deep_research. Both overlap with our own LLM analysis; firecrawl_extract has opaque pricing on the free tier; both are explicitly out of scope for seo-skills.
  • Cloudflare / anti-bot: some sites (especially e-commerce, banking) block Firecrawl's scraper. Surface the error cleanly; defeating WAFs is not a goal of this skill.
  • Sub-step usage. When invoked from another skill (seo-page, seo-schema, etc.), drop the FIRECRAWL.md synthesis — the caller wants the raw META.md / RAW.md. Skip mode-2's URLS.md summary too if the caller wants the raw urls.csv.
  • This is the entry point when you need raw HTML and don't have a more specific skill in mind. If you do — seo-page for keyword/traffic verdicts on one URL, seo-schema for JSON-LD work, seo-technical-audit for crawl-wide issues — use those instead. They orchestrate Firecrawl plus SE Ranking data automatically.

Works well with

  • Predecessors: none (entry point) or invoked as a sub-step from another skill.
  • Successors:
    • seo-page — when a single URL was scraped and now wants keyword/traffic verdicts.
    • seo-schema — when JSON-LD audit produced gaps that need generation.
    • seo-technical-audit — when a crawl revealed broken pages or noindex issues at scale.
    • seo-content-audit — when a crawl produced a corpus to E-E-A-T-audit.
    • seo-drift baseline — when the user wants to track this URL or domain over time.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Find the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking. Use this skill whenever the user wants to improve how their brand shows up in AI answers (ChatGPT, Perplexity, Gemini, Google AI Overview, AI Mode) through content, or says things like "what should we post to get cited by AI", "where are competitors winning in AI answers and we're not", "create content for the prompts we're missing", "improve our AI visibility with social", "AEO/GEO content plan", or "turn our AI search gaps into posts". Always activate when AI-search visibility is the goal and Planable is where the content will be made.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

Build a data-backed client onboarding proposal for an agency starting a new engagement, combining an SE Ranking SEO + AI-search audit with a Planable analysis of the client's current social performance. Use this skill whenever an agency wants to show a new (or about-to-sign) client where they stand and what the plan is, or says things like "build an onboarding proposal for [client]", "we're starting with [client], put together the SEO + social analysis", "create a client proposal with audit and social baseline", "scope a SEO + AI + social engagement", or "show the client their opportunities and our plan". Assumes the client's social accounts are already connected in Planable. Always activate for new-engagement proposals that pair SE Ranking analysis with Planable social data.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

Build and track local search visibility with SE Ranking city-level rank tracking and turn it into local social content in Planable, including Google Business Profile posts. Use this skill whenever the user wants to grow a business's presence in a specific city or cities and pair it with local social, or says things like "track our rankings in [city]", "set up local rank tracking", "we want to show up in local search", "create Google Business Profile posts", "local SEO plus social for our locations", or "how are we ranking city by city and what should we post locally". Always activate for local/multi-location visibility work that combines SE Ranking rankings with Planable local/GMB content.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

seo-ads

무료

Paid-search competitive landscape for a domain or keyword. Pulls SE Ranking's PPC data — domain ad keyword footprint, ad copy patterns, who else bids on the same keywords, SERP shopping/ad-pack visibility — and produces a competitive ads brief plus a recommended bid-keyword shortlist. Use when the user asks "paid search analysis", "competitor ads", "PPC competitive", "ad copy intelligence", "shopping pack", "who bids on this keyword", or "paid keyword footprint".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

Generate a demand-gen landing page for an SEO agency, complete with pain-point hook, proof, a free-audit lead magnet flow, and CTAs tuned for cold traffic. Pulls real competitive and AI-search data for the agency's target niche to make the copy specific and credible. Use when the user asks for an SEO agency landing page, lead-gen page for an SEO agency, demand-gen page, free-audit landing page, or wants to convert cold traffic into discovery calls.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

Measure AI Search share of voice for a target domain versus competitors across ChatGPT, Perplexity, Gemini, Google AI Overview, and AI Mode. Pulls the AIO leaderboard, then samples prompts where each domain appears as a source or brand mention, and analyses topic clusters each brand owns. Use when the user asks for AI Search share of voice, LLM visibility tracking, AEO/GEO analysis, AI Overview competitive analysis, or wants to know which brands LLMs cite in their category.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

seranking/seo-skills1882026년 6월 25일 업데이트

seranking의 스킬 모두 보기

이 스킬의 문제 신고