Extension Firecrawl pour Claude SEO
Cette compétence nécessite l'extension Firecrawl d'être installée :
./extensions/firecrawl/install.sh
Vérification de disponibilité : Avant d'utiliser un outil Firecrawl, vérifiez que le serveur MCP est connecté en contrôlant si firecrawl_scrape ou tout autre outil Firecrawl est disponible. Si les outils ne sont pas disponibles, informez l'utilisateur que l'extension n'est pas installée et fournissez les instructions d'installation.
Référence rapide
| Commande | Objectif |
|---|---|
/seo firecrawl crawl <url> | Crawl complet du site avec extraction de contenu |
/seo firecrawl map <url> | Découvrir la structure du site (URL uniquement, rapide) |
/seo firecrawl scrape <url> | Scraper une seule page avec rendu JS |
/seo firecrawl search <query> <url> | Rechercher dans un site crawlé |
Commandes
crawl -- Crawl complet du site
Crawl un site web entier à partir de l'URL donnée. Retourne le contenu de la page, les métadonnées et les liens pour toutes les pages découvertes.
Outil MCP : firecrawl_crawl
Paramètres :
url(obligatoire) : URL de départ pour le crawllimit: Nombre maximum de pages à crawler (défaut : 100, max : 500)maxDepth: Profondeur maximale des liens depuis l'URL de départ (défaut : 3)includePaths: Tableau de motifs glob à inclure (ex. :["/blog/*"])excludePaths: Tableau de motifs glob à exclure (ex. :["/admin/*", "/api/*"])scrapeOptions.formats: Formats de sortie --["markdown", "html", "links"]
Cas d'usage SEO :
- Audit de crawl complet : Crawler l'ensemble du site, extraire toutes les pages pour analyse par sous-agent
- Crawl ciblé sur une section : Utiliser
includePathspour auditer uniquement/blog/*ou/produits/* - Détection de liens brisés : Crawler avec le format
["links"], vérifier tous les href pour des 404 - Inventaire de contenu : Extraire tous les titres de pages, méta-descriptions, H1 à grande échelle
- Sites SPA/JS : Firecrawl exécute JavaScript, résolvant le problème #11
Exemple d'orchestration pour /seo audit :
1. firecrawl_map(url) -> obtenir toutes les URLs (rapide, sans contenu)
2. Filtrer pour les 50 pages les plus importantes (page d'accueil, sections clés)
3. firecrawl_crawl(url, limit=50) -> obtenir le contenu complet
4. Envoyer le contenu aux agents seo-technique, seo-contenu, seo-schema
Conscience des coûts :
- Niveau gratuit : 500 crédits/mois
- 1 crédit = 1 page crawlée ou scrapée
- Les opérations map sont moins chères (0,5 crédit par URL découverte)
- Toujours informer l'utilisateur de l'utilisation estimée des crédits avant les gros crawls
map -- Découverte de la structure du site
Découvre toutes les URLs d'un site web sans récupérer le contenu. Rapide et économe en crédits.
Outil MCP : firecrawl_map
Paramètres :
url(obligatoire) : URL du site à mapperlimit: Nombre maximum d'URLs à découvrir (défaut : 5000)search: Terme de recherche optionnel pour filtrer les URLs
Cas d'usage SEO :
- Comparaison de sitemap : Mapper le site, comparer les URLs découvertes avec le sitemap XML
- Détection de pages orphelines : URLs dans le sitemap mais non liées depuis aucune page
- Analyse du budget de crawl : Total des pages indexables vs pages liées depuis la page d'accueil
- Analyse de motifs d'URLs : Identifier les structures d'URL, les doublons, le gonflement des paramètres
- Découverte avant audit : D'abord exécuter un map, puis un crawl ciblé sur les sections clés
Sortie : Tableau d'URLs. Présenter comme :
Site : example.com
Pages découvertes : 342
Répartition par motif d'URL :
/blog/* - 128 pages (37%)
/products/* - 89 pages (26%)
/category/* - 45 pages (13%)
/pages/* - 32 pages (9%)
/ (pages racine) - 48 pages (14%)
scrape -- Scraping approfondi d'une seule page
Scrape une seule page avec rendu JavaScript complet. Plus approfondi que fetch_page.py car il exécute JS et attend le contenu dynamique.
Outil MCP : firecrawl_scrape
Paramètres :
url(obligatoire) : URL de la page à scraperformats: Formats de sortie --["markdown", "html", "links", "screenshot"]onlyMainContent: Supprimer nav/footer/barre latérale (défaut : true)waitFor: Sélecteur CSS ou millisecondes pour attendre le contenutimeout: Délai d'attente de la requête en ms (défaut : 30000)actions: Actions du navigateur avant le scraping (clic, défilement, attente)
Cas d'usage SEO :
- Extraction de contenu SPA : Scraper des pages JS rendues (React, Vue, Angular)
- Audit de contenu dynamique : Pages avec contenu chargé de manière paresseuse sous la ligne de flottaison
- Détection de paywall/connexion : Identifier le contenu derrière des murs d'authentification
- Extraction du contenu principal : Utiliser
onlyMainContentpour une analyse E-E-A-T propre - Capture d'écran : Utiliser le format
screenshotpour l'analyse visuelle
Quand utiliser scrape vs fetch_page.py :
| Scénario | Utiliser |
|---|---|
| Page HTML statique | fetch_page.py (pas de coût API) |
| SPA rendue JS | firecrawl_scrape (rendu JS) |
| Besoin des en-têtes de réponse | fetch_page.py (retourne les en-têtes) |
| Besoin de Markdown propre | firecrawl_scrape (meilleure extraction) |
| Limitation de débit / bloqué | firecrawl_scrape (gère l'anti-bot) |
search -- Recherche dans un site
Rechercher dans un site web un contenu spécifique. Utile pour trouver des pages liées à un sujet sans tout crawler.
Outil MCP : firecrawl_search
Paramètres :
query(obligatoire) : Requête de rechercheurl(obligatoire) : Site web dans lequel rechercherlimit: Nombre maximum de résultats (défaut : 10)scrapeOptions.formats: Format de sortie pour les pages correspondantes
Cas d'usage SEO :
- Validation des lacunes de contenu : Rechercher un mot-clé sur le site pour vérifier si le contenu existe
- Opportunités de maillage interne : Trouver des pages mentionnant un sujet qui pourraient se lier entre elles
- Détection de contenu dupliqué : Rechercher des phrases clés pour trouver des quasi-doublons
- Recherche de contenu concurrent : Rechercher le site d'un concurrent pour des sujets spécifiques
Intégration entre compétences
Avec seo-audit (audit complet)
Lorsque Firecrawl est disponible pendant /seo audit :
- Utiliser
firecrawl_mappour découvrir toutes les URLs du site - Comparer avec le sitemap XML (seo-sitemap) pour trouver les pages orphelines/manquantes
- Sélectionner les pages principales pour une analyse approfondie
- Envoyer le contenu crawlé à tous les sous-agents (technique, contenu, schema, geo)
- Rapporter le nombre total de pages crawlables, les motifs d'URL et la profondeur de crawl
Avec seo-technical
- Détection de liens brisés : crawler tous les liens internes, vérifier les 404
- Cartographie des chaînes de redirection : suivre toutes les redirections, signaler les chaînes > 2 sauts
- Détection de contenu mixte : vérifier les ressources HTTP sur les pages HTTPS
- Vérification des canoniques : comparer les URLs canoniques avec les URLs réelles
Avec seo-sitemap
- Couverture du sitemap : % de pages crawlées présentes dans le sitemap
- Pages orphelines : pages trouvées par le crawl mais absentes du sitemap
- Entrées de sitemap obsolètes : URLs dans le sitemap qui retournent une erreur 404/410
Avec seo-content
- Extraction de contenu : envoyer le Markdown propre à l'analyse E-E-A-T
- Détection de contenu mince : identifier les pages avec moins de 300 mots à grande échelle
- Contenu dupliqué : comparer le contenu entre les pages pour trouver des quasi-doublons
Avec seo-schema
- Extraction de schémas : extraire JSON-LD de toutes les pages crawlées
- Couverture des schémas : % de pages avec données structurées
- Validation des schémas : valider par lot les schémas extraits
Gestion des erreurs
| Erreur | Cause | Résolution |
|---|---|---|
FIRECRAWL_API_KEY not set | MCP non configuré | Exécuter ./extensions/firecrawl/install.sh |
402 Payment Required | Crédits épuisés | Vérifier l'utilisation sur firecrawl.dev/app, mettre à niveau le plan |
429 Too Many Requests | Limitation de débit | Attendre 60s, réduire la concurrence du crawl |
408 Timeout | Page trop lente à rendre | Augmenter le timeout, essayer sans rendu JS |
403 Forbidden | Le site bloque le crawling | Vérifier robots.txt, peut-être nécessaire d'ignorer ce site |
Solution de repli élégante : Si Firecrawl est indisponible, informer l'utilisateur et suggérer :
- Utiliser
fetch_page.pypour l'analyse d'une seule page (pas de coût API) - Utiliser l'outil
WebFetchpour la récupération HTML de base - Installer Firecrawl :
./extensions/firecrawl/install.sh