Echo/Docs

CLI command

seo repairs

The SEO repair queue: a crawl's findings as repairs of the site, ordered by the visits of the pages they are on, and confirmed fixed by the next crawl.

Invocation#

Shell
echo-cli seo repairs queue --crawl <crawl-id> --app <web source> --days <n> | list --origin <https origin> | dismiss --repair <repair-id> --by <who>

Inputs and output#

queue and list write { repairs } of the site, open ones first by visits: id, origin, url, kind (broken, canonical, hreflang or schema), detail, visits (the web source's stored events on the page's path over the --days days), first_crawl_id, last_seen_crawl_id, and state — open, fixed or dismissed — with state_by and state_at. dismiss writes the dismissed repair.

State effect#

Every verb calls Echo Web's authenticated /api/seo/repairs with ECHO_INTERNAL_BEARER at ECHO_WEB_BASE_URL; the SEO repair queue section of the GEO screen and of Echo Desktop's GEO screen call the same operations, and echo-mcp runs them as echo_seo_repairs_queue, echo_seo_repairs and echo_seo_repair_dismiss. queue reads the crawl's links, canonicals, hreflang and structured-data reports, as seo crawl and seo schema answer them, and keeps each finding once per site, kind, page and detail in seo_repairs: a new finding opens a repair, a known one updates its visits and the crawl that last saw it, a fixed one found again is reopened, and every open repair the crawl no longer finds is marked fixed by that crawl. A dismissed repair stays dismissed.

Refusals#

  • A wrong invocation is refused before anything is sent: "seo repairs takes <every verb's usage, separated by semicolons>; got <word>", "seo repairs <verb> does not take <flag>; it takes …", "<flag> needs a value" and "seo repairs <verb> needs <flag>".
  • Echo Web answers a bad request with "crawl_id is required: the crawl whose findings to queue, as echo-cli seo crawl list prints it", "app_id is required: the web source whose visits weigh the repairs", "days must be a positive whole number: how many days of visits weigh the repairs; got <value>", "origin is required: the site whose repairs to list; got <value>", "repair_id is required: the repair to dismiss, as the repairs list prints it" or "dismissed_by is required: who dismisses the repair"; not found with "no crawl has id <id>; echo-cli seo crawl list lists them" or "no repair has id <id>; echo-cli seo repairs list lists them"; and fails naming the cause with "the repair of <url> (<detail>) could not be stored: <cause>" or "the <n> repairs crawl <id> no longer finds could not be marked fixed: <cause>". The command prints Echo Web's sentence and exits 1.