Toolkit SEO da riga di comando

Il comando seohead espone ogni strumento del core per script, CI e lavoro da terminale. I comandi mostrati nella documentazione sono verificati in CI.

Cosa fa

Scriptabile

L'output è JSON su stdout, quindi puoi mandarlo in pipe a jq, a uno script o a un passo di CI. Exit code 0 significa che il comando è completato e 1 che non ha potuto finire, con il motivo nel JSON. Gli input possono essere flag, un oggetto JSON con --input, oppure JSON su stdin. La maggior parte dei comandi che scrivono file richiede un percorso o un flag esplicito come --out o --apply.

  • Budget espliciti: crawl-site prende --max-urls, --max-depth e --max-urls-per-second
  • L'exit code 2 è usato solo da log-scan, per un run i cui numeri non tornano
  • I comandi mostrati nella documentazione sono eseguiti contro fixture in CI

Catalogo degli strumenti

tool-catalog cerca cosa fa ogni comando, se usa la rete, scrive file o può spendere denaro. Filtra prima di paginare, quindi una query come redirect restituisce una lista breve. Aggiungi --include-arguments quando ti servono le forme degli argomenti. Funziona offline e non scrive nulla.

  • Gli effetti sono marcati come offline, network, writes o paid
  • I comandi dei provider a pagamento mostrano una stima offline e richiedono conferma esplicita
  • seohead doctor verifica i prerequisiti di Python, browser, MCP e SQLite senza scrivere

Un handler, due facce

Ogni capacità pubblica è un solo handler. È esposta come comando seohead e come strumento MCP con lo stesso nome, quindi crawl-site diventa seo_crawl_site. Ciò che provi in un terminale è ciò che un agente chiama. Le forme raggruppate sono alias: scan list è scan-list.

  • seohead mcp avvia il server stdio locale
  • I comandi sf sono i punti d'ingresso per il flusso di audit Screaming Frog
  • Il CLI gira su macOS, Linux e Windows da un ambiente virtuale

Tre passaggi, una scansione salvata

  1. Scegli un comando

    Esegui seohead --help oppure cerca con tool-catalog. Ogni comando ha un solo compito e una sola voce nel catalogo.

  2. Leggi il JSON e l'exit code

    L'output è sempre JSON su stdout. Exit code 0 significa completato. Exit code 1 che non ha finito, con il motivo nel JSON.

  3. Gli stessi comandi per gli agenti AI

    seohead mcp avvia un server MCP locale. Ogni comando è anche uno strumento di nome seo_<comando>, per esempio seo_crawl_site.

Controlli di questa funzionalità

ControlloCosa significaGravitàEvidenza
BROKEN_PAGE_4XXLa pagina restituisce una risposta 4xx.CriticalCodice di risposta per URL da crawl-site
SERVER_ERROR_5XXLa pagina restituisce una risposta 5xx.CriticalCodice di risposta per URL da crawl-site
BLOCKED_BY_ROBOTSrobots.txt blocca la URL.ImportantRegola di robots.txt corrispondente per la URL da crawl-site
SITEMAP_URL_4XX_5XXIl sitemap elenca una URL che restituisce 4xx o 5xx.CriticalVoci del sitemap da sitemap-crawl
SITEMAP_DESYNCL'insieme di URL del sitemap e quello scansionato non corrispondono.ImportantSitemap da sitemap-crawl confrontata con crawl-site
URL_NOT_IN_SITEMAPUna pagina indicizzabile manca dal sitemap.TipRisultato della scansione confrontato con l'insieme di URL del sitemap

Un solo comando

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

Prima installa SpiderHead: guida all'installazione. Ogni comando funziona anche come strumento MCP per agenti AI.

Cosa ti serve

  • Python 3.10 o successivo e un ambiente virtuale con il toolkit installato
  • Una URL, un file di scansione salvato o una cartella di progetto, secondo il comando
  • Extra facoltativi per MCP, report, PDF e rendering
  • Chiavi dei provider solo per i comandi a pagamento o con account

Limiti

  • I comandi marcati network inviano richieste. Esegui tool-catalog per vedere quali
  • L'output è prima di tutto per le macchine. Non c'è un flusso di prompt interattivo, salvo l'osservatore da terminale
  • La scansione nativa non è alla pari con Screaming Frog. Alcuni controlli tornano skipped, mai falsamente puliti
  • Le sorgenti a pagamento o con account richiedono le tue chiavi, che il toolkit non fornisce

Domande

Il CLI richiede un account o un servizio ospitato?
No. Il CLI gira sul tuo computer. I comandi offline, come tool-catalog e i comandi su scansioni salvate, leggono solo dati locali. I comandi marcati network inviano richieste al sito o a un provider di dati.
Come faccio a sapere se un comando costa denaro?
Esegui tool-catalog. Ogni voce mostra se il comando usa la rete, scrive file o costa denaro. I comandi semantici a pagamento richiedono conferma esplicita, e la versione MCP rifiuta di girare senza confirm_paid=true.
Una scansione modifica il mio sito?
No. Le scansioni inviano richieste in sola lettura. I file sono scritti solo nel percorso che indichi, come --scan-out o --out-dir. Per impostazione predefinita una scansione salva il suo file sotto ./scans/.
Cosa significa un exit code non zero?
L'exit code 1 significa che il comando non ha potuto completare. Il suo JSON ha ok a false, oppure una riga di errore va su stderr se il processo è crashato. L'exit code 2 è usato solo da log-scan.
Posso passare input complesso senza tanti flag?
Sì. La maggior parte dei comandi accetta --input con un oggetto JSON che mappa sugli argomenti dell'handler, e alcuni leggono JSON da stdin.
Quali sistemi operativi sono supportati?
macOS, Linux e Windows usano lo stesso pacchetto Python. Su Windows usa esplicitamente l'interprete dentro l'ambiente virtuale. La CI esegue i controlli Windows per lock, progetti, scansioni e una sessione MCP reale.