extensions/firecrawl/skills/seo-firecrawl/SKILL.md
Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl", "find all pages", "broken links", "site structure", "discover pages", "JS rendering", or needs site-wide analysis.
npx skillsauth add AgriciDaniel/claude-seo seo-firecrawlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill requires the Firecrawl extension to be installed:
./extensions/firecrawl/install.sh
Check availability: Before using any Firecrawl tool, verify the MCP server
is connected by checking if firecrawl_scrape or any Firecrawl tool
is available. If tools are not available, inform the user the extension is not
installed and provide install instructions.
| Command | Purpose |
|---------|---------|
| /seo firecrawl crawl <url> | Full-site crawl with content extraction |
| /seo firecrawl map <url> | Discover site structure (URLs only, fast) |
| /seo firecrawl scrape <url> | Single-page scrape with JS rendering |
| /seo firecrawl search <query> <url> | Search within a crawled site |
Crawl an entire website starting from the given URL. Returns page content, metadata, and links for all discovered pages.
MCP Tool: firecrawl_crawl
Parameters:
url (required): Starting URL to crawllimit: Max pages to crawl (default: 100, max: 500)maxDepth: Max link depth from start URL (default: 3)includePaths: Array of glob patterns to include (e.g., ["/blog/*"])excludePaths: Array of glob patterns to exclude (e.g., ["/admin/*", "/api/*"])scrapeOptions.formats: Output formats -- ["markdown", "html", "links"]SEO Usage Patterns:
includePaths to audit only /blog/* or /products/*["links"] format, check all hrefs for 404sExample orchestration for /seo audit:
1. firecrawl_map(url) -> get all URLs (fast, no content)
2. Filter to top 50 most important pages (homepage, key sections)
3. firecrawl_crawl(url, limit=50) -> get full content
4. Feed content to seo-technical, seo-content, seo-schema agents
Cost awareness:
Discover all URLs on a website without fetching content. Fast and credit-efficient.
MCP Tool: firecrawl_map
Parameters:
url (required): Website URL to maplimit: Max URLs to discover (default: 5000)search: Optional search term to filter URLsSEO Usage Patterns:
Output: Array of URLs. Present as:
Site: example.com
Pages discovered: 342
URL Pattern Breakdown:
/blog/* - 128 pages (37%)
/products/* - 89 pages (26%)
/category/* - 45 pages (13%)
/pages/* - 32 pages (9%)
/ (root pages) - 48 pages (14%)
Scrape a single page with full JavaScript rendering. More thorough than
fetch_page.py because it executes JS and waits for dynamic content.
MCP Tool: firecrawl_scrape
Parameters:
url (required): Page URL to scrapeformats: Output formats -- ["markdown", "html", "links", "screenshot"]onlyMainContent: Strip nav/footer/sidebar (default: true)waitFor: CSS selector or milliseconds to wait for contenttimeout: Request timeout in ms (default: 30000)actions: Browser actions before scraping (click, scroll, wait)SEO Usage Patterns:
onlyMainContent for clean E-E-A-T analysisscreenshot format for visual analysisWhen to use scrape vs fetch_page.py:
| Scenario | Use |
|----------|-----|
| Static HTML page | fetch_page.py (no API cost) |
| JS-rendered SPA | firecrawl_scrape (renders JS) |
| Need response headers | fetch_page.py (returns headers) |
| Need clean markdown | firecrawl_scrape (better extraction) |
| Rate-limited/blocked | firecrawl_scrape (handles anti-bot) |
Search within a website for specific content. Useful for finding pages related to a topic without crawling everything.
MCP Tool: firecrawl_search
Parameters:
query (required): Search queryurl (required): Website to search withinlimit: Max results (default: 10)scrapeOptions.formats: Output format for matched pagesSEO Usage Patterns:
When Firecrawl is available during /seo audit:
firecrawl_map to discover all site URLs| Error | Cause | Resolution |
|-------|-------|-----------|
| FIRECRAWL_API_KEY not set | MCP not configured | Run ./extensions/firecrawl/install.sh |
| 402 Payment Required | Credits exhausted | Check usage at firecrawl.dev/app, upgrade plan |
| 429 Too Many Requests | Rate limited | Wait 60s, reduce crawl concurrency |
| 408 Timeout | Page too slow to render | Increase timeout, try without JS rendering |
| 403 Forbidden | Site blocks crawling | Check robots.txt, may need to skip this site |
Graceful fallback: If Firecrawl is unavailable, inform the user and suggest:
fetch_page.py for single-page analysis (no API cost)WebFetch tool for basic HTML retrieval./extensions/firecrawl/install.shtools
Multi-page Lighthouse audit via the MIT-licensed Unlighthouse CLI. Free-tier alternative to running PageSpeed against every URL on a site — no API quota burn, runs locally.
tools
SE Ranking AI visibility analyst (extension). Tracks AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, and AI Mode in a single query. Highest-impact new extension per the v2 gap analysis — no other vendor covers all 5 AI platforms in one API.
tools
Profound LLM citation tracker (extension). Time-series brand citation rates across ChatGPT, Perplexity, and other LLMs. Pairs with seo-seranking for triangulated AI visibility coverage.
tools
Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing visibility, link data, and IndexNow URL submission first-class.