Boîte à outils SEO en ligne de commande

La commande seohead expose chaque outil principal pour les scripts, la CI et le travail en terminal. Les commandes présentées dans la documentation sont testées en CI.

Ce qu'elle fait

Utilisable dans des scripts

La sortie est en JSON sur stdout : vous pouvez la transmettre à jq, à un script ou à une étape de CI. Le code de sortie 0 signifie que la commande s'est terminée, 1 qu'elle n'a pas pu aboutir, avec la raison dans le JSON. Les entrées peuvent être des options, un objet JSON passé avec --input, ou du JSON sur stdin. La plupart des commandes qui écrivent des fichiers demandent un chemin ou une option explicite, comme --out ou --apply.

  • Budgets explicites : crawl-site accepte --max-urls, --max-depth et --max-urls-per-second
  • Le code de sortie 2 n'est utilisé que par log-scan, pour une exécution dont ses propres chiffres se contredisent
  • Les commandes présentées dans la documentation sont exécutées en CI sur des jeux de données de test

Catalogue des outils

tool-catalog indique ce que fait chaque commande, si elle utilise le réseau, si elle écrit des fichiers ou si elle peut engager une dépense. Le filtrage se fait avant la pagination : une requête comme redirect renvoie donc une liste courte. Ajoutez --include-arguments pour voir la forme des arguments. La commande fonctionne hors ligne et n'écrit rien.

  • Les effets sont marqués offline, network, writes ou paid
  • Les commandes de fournisseurs payants affichent une estimation hors ligne et demandent une confirmation explicite
  • seohead doctor vérifie les prérequis Python, navigateur, MCP et SQLite sans rien écrire

Une seule implémentation, deux interfaces

Chaque capacité publique est un seul gestionnaire. Elle est exposée comme commande seohead et comme outil MCP du même nom : crawl-site devient seo_crawl_site. Ce que vous testez dans le terminal est exactement ce qu'appelle un agent. Les formes groupées sont des alias : scan list équivaut à scan-list.

  • seohead mcp lance le serveur MCP local en stdio
  • Les commandes sf sont les points d'entrée du workflow d'audit Screaming Frog
  • La CLI fonctionne sous macOS, Linux et Windows depuis un environnement virtuel

Trois étapes, un seul scan enregistré

  1. Choisir une commande

    Lancez seohead --help ou cherchez avec tool-catalog. Chaque commande a un rôle précis et une seule entrée dans le catalogue.

  2. Lire le JSON et le code de sortie

    La sortie est toujours du JSON sur stdout. Le code 0 signifie que la commande s'est terminée. Le code 1 signifie qu'elle n'a pas pu aboutir, et la raison figure dans le JSON.

  3. Mêmes commandes pour les agents IA

    seohead mcp lance un serveur MCP local. Chaque commande est aussi un outil nommé seo_<commande>, par exemple seo_crawl_site.

Contrôles de cette fonctionnalité

ContrôleSignificationGravitéPreuve
BROKEN_PAGE_4XXLa page renvoie une réponse 4xx.CriticalCode de réponse par URL issu de crawl-site
SERVER_ERROR_5XXLa page renvoie une réponse 5xx.CriticalCode de réponse par URL issu de crawl-site
BLOCKED_BY_ROBOTSrobots.txt bloque l'URL.ImportantRègle robots.txt correspondant à l'URL, issue de crawl-site
SITEMAP_URL_4XX_5XXLe sitemap liste une URL qui renvoie 4xx ou 5xx.CriticalEntrées du sitemap issues de sitemap-crawl
SITEMAP_DESYNCL'ensemble des URL du sitemap et celui des URL crawlées ne correspondent pas.ImportantSitemap issu de sitemap-crawl, comparé à crawl-site
URL_NOT_IN_SITEMAPUne page indexable est absente du sitemap.TipRésultat du crawl comparé à l'ensemble des URL du sitemap

Une seule commande

bash
seohead tool-catalog --query redirect --limit 5

Commencez par installer : guide d'installation. Chaque commande fonctionne aussi comme outil MCP pour les agents IA.

Ce qu'il vous faut

  • Python 3.10 ou plus récent et un environnement virtuel avec la boîte à outils installée
  • Une URL, un fichier de scan enregistré ou un dossier de projet, selon la commande
  • Extras facultatifs pour MCP, les rapports, le PDF et le rendu
  • Des clés de fournisseur uniquement pour les commandes payantes ou liées à un compte

Limites

  • Les commandes marquées network envoient des requêtes. Lancez tool-catalog pour voir lesquelles
  • La sortie est d'abord destinée aux machines. Il n'y a pas de dialogue interactif, à part l'observateur du terminal
  • Le crawl natif n'a pas la parité complète avec Screaming Frog. Certains contrôles sont signalés comme ignorés (skipped), jamais comme faussement propres
  • Les sources payantes et liées à un compte demandent vos propres clés, que la boîte à outils ne fournit pas

Questions

La CLI a-t-elle besoin d'un compte ou d'un service hébergé ?
Non. La CLI tourne sur votre machine. Les commandes hors ligne, comme tool-catalog et les commandes de scans enregistrés, lisent uniquement des données locales. Les commandes marquées network envoient des requêtes au site ou à un fournisseur de données.
Comment savoir si une commande coûte de l'argent ?
Lancez tool-catalog. Chaque entrée indique si la commande utilise le réseau, écrit des fichiers ou coûte de l'argent. Les commandes sémantiques payantes demandent une confirmation explicite, et la version MCP refuse de s'exécuter sans confirm_paid=true.
Un crawl modifie-t-il mon site ?
Non. Les crawls envoient des requêtes en lecture seule. Les fichiers ne sont écrits qu'au chemin que vous indiquez, comme --scan-out ou --out-dir. Par défaut, un crawl enregistre son scan dans ./scans/.
Que signifie un code de sortie non nul ?
Le code 1 signifie que la commande n'a pas pu se terminer. Son JSON contient ok à false, ou une ligne d'erreur part sur stderr si le processus a planté. Le code 2 n'est utilisé que par log-scan.
Puis-je passer une entrée complexe sans beaucoup d'options ?
Oui. La plupart des commandes acceptent --input avec un objet JSON qui correspond aux arguments du gestionnaire, et certaines lisent le JSON sur stdin.
Quels systèmes d'exploitation sont pris en charge ?
macOS, Linux et Windows utilisent le même paquet Python. Sous Windows, utilisez explicitement l'interpréteur de l'environnement virtuel. La CI exécute les contrôles Windows sur les verrous, les projets, les scans et une vraie session MCP.