Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add seranking/seo-skills --skill seo-firecrawlgit clone --depth 1 https://github.com/seranking/seo-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/seranking/seo-skills/seo-firecrawl)<a href="https://agentmods.dev/skills/seranking/seo-skills/seo-firecrawl"><img src="https://agentmods.dev/badge/skills/seranking/seo-skills/seo-firecrawl/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/seranking/seo-skills/seo-firecrawl"><img src="https://agentmods.dev/badge/skills/seranking/seo-skills/seo-firecrawl.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00168 | $0.02503 |
| Opus 5 | $0.00084 | $0.01252 |
| Sonnet 5 | $0.00034 | $0.00501 |
| Haiku 4.5 | $0.00017 | $0.00250 |
Grade A, and why
seo-firecrawl scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- seo-firecrawl — 95% identical, 6 lines differ
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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-mcpMCP server. Ifmcp__firecrawl-mcp__firecrawl_scrapeis unavailable, abort with the install command —bash extensions/firecrawl/install.shfrom 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
- Preflight. Confirm
firecrawl-mcpis connected. If not, surface the install command and stop. - 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.
- Cost estimation + confirmation.
scrape(1 credit),map(~0.5 credit per discovered URL — estimate using amapfirst if scope unclear),crawl(1 credit per page crawled),search(1 credit per result returned).- For
crawland formapof >50 expected URLs, surface the estimate and require explicit go-ahead before calling. - Always read remaining credits implicitly via Firecrawl's response metadata (
creditsUsed/creditsRemaininginmetadata).
- Execute. Call the matching
mcp__firecrawl-mcp__firecrawl_*tool.scrape: passformats: ["markdown", "html"]by default (markdown for prose, html for<head>+ JSON-LD). Addformats: ["screenshot"]only if the deliverable visibly uses one. SPAs: passwaitFor: 2000(or a CSS selector) so the JS-rendered DOM is captured. DefaultonlyMainContent: trueto drop nav/footer noise — override only on explicit request.map: defaultlimit: 500(hard cap). PassexcludePaths: ["/admin/*", "/api/*", "/wp-admin/*", "/feed/*"]as a sane default.crawl: defaultlimit: 50(default cap), hard caplimit: 200. Always passexcludePathsto prune. Pollfirecrawl_check_crawl_statusif the job returns asynchronously.search: defaultlimit: 20.
- 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@typelist with hashes),links.csv, optionalscreenshot.png.map→URLS.mdwith pattern-grouped list (e.g.,/blog/* — 128 (37%),/products/* — 84 (24%)), plusurls.csv.crawl→ folder per page underpages/{slugified-url}/withRAW.md+META.md, plus a top-levelINDEX.mdsummarising every page (URL, status, key signals).search→MATCHES.mdwith hit excerpts + URLs ranked by relevance.
- Synthesise
FIRECRAWL.mdat the root: target, mode, credits used, key findings (5 bullets max), open loops, recommended next skill.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 146 lines · 168 tokens per session scan A a59bdf93a808
seo-firecrawl is a skill published in the GitHub repository seranking/seo-skills (139 stars, last pushed 2mo ago), licensed MIT. It adds 168 tokens to every session and 2,503 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
agent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
ultimate-browsing
Reaches web pages a plain fetch cannot: renders JS, drives clicks and forms, captures screenshots, holds a login, and gets past WAF blocks through platform-native readers and stealth Chrome. Use for any page work beyond retrieving static text.
dev-browser
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website"…
app-docs
Generate complete user documentation for a web app with screenshots. Browses the app via browser automation, screenshots every screen, and produces a structured user guide with step-by-step instructions, annotated screenshots, workflow diagrams, and reference tables. Supports quick (key screens), standard (all pages)…
responsiveness-check
Test website responsiveness across viewport widths using browser automation. Resizes a single session through breakpoints, screenshots each width, and detects layout transitions (column changes, nav switches, overflow). Produces comparison reports showing exactly where layouts break. Trigger with 'responsiveness…
webapp-testing
Verify a web application works correctly in a real browser using Playwright. Covers page navigation, form submission, user interactions, console error detection, screenshot capture, and responsive layout checking. Use when you need to confirm a UI feature actually works end-to-end, catch regressions after a change…