How to run SEO checks from the terminal

By

Tagged: Blogging · All topics

Run seobot from the terminal to check a site, then hand the report to Cursor or Codex with the pages and the edits ready.

You can run a site’s SEO checks from the terminal, then hand one report to Cursor or Codex with the pages and the edits already written out.

The command is seobot. It ships with SEO Bot, the Mac app I use for the SEO on my own sites, including this one. The command reads the same sites, reports, tasks and credentials as the app. It does not call an AI model. The writing, if you want any, happens in the coding agent you already use, and you review the diff.

Sitemap Health and Internal Links work as soon as you add a site. Search Console, Plausible and DataForSEO are optional, and they use accounts you provide. Search Console does not add a charge from SEO Bot. Your Plausible plan is separate, and DataForSEO bills the requests you make.

Install the command

SEO Bot needs macOS 14 or later. It runs on Apple silicon and on Intel Macs. The $20 purchase includes the app, the CLI, the agent skill and the full MIT-licensed Swift source. Tax is included. After you pay through Polar, connect GitHub and accept the invitation to the private repository. A GitHub account is required for delivery. Download the app from Releases, unzip it, and move SEO Bot.app to Applications. The download is signed and notarized.

In the app menu, choose SEO Bot → Install Command Line Tool. That links seobot into ~/.local/bin. Choose Install Agent Skill if you want Cursor, Codex or another supported agent to know the commands.

The app stores sites, reports, tasks, rank history and credentials in ~/Library/Application Support/SEO Bot. Credentials sit in that folder unencrypted, so the app and the CLI can share them. Quit the app and stop any running seobot command before you copy the folder, and keep the copy private. There is no cloud sync.

The SEO Bot docs cover building the app from source if you want to read the Swift. The ready-to-run app is enough for the commands below.

Add a site and run a check

The docs use a demo hostname and a local folder. Swap in your own site and the folder where its source lives.

seobot add seobot-demo.test --source ~/Sites/seobot-demo
seobot run sitemap-health --site seobot-demo.test
seobot reports --site seobot-demo.test
seobot report latest --site seobot-demo.test --tool sitemap-health
seobot todo --site seobot-demo.test
seobot done --site seobot-demo.test

seobot add saves the site. --source is the local project, which the handoff needs later. seobot run runs one check. The example is Sitemap Health, which fetches every URL in the sitemaps and looks for loading, indexing and redirect problems. It needs no connected account. Internal Links is the other check that works with nothing connected: it finds weak pages and suggests a source page, anchor text and paragraph for each link it can place.

seobot reports lists the reports for that site. seobot report latest prints the newest report for one tool, here Sitemap Health. seobot todo lists what is waiting, including checks that have never run. seobot done lists fixes already logged.

seobot help prints every command and option, including how to print JSON for a script. seobot capabilities prints the command manifest an agent can read.

From a terminal check to a reviewed diffAdd the site, run one check, read the report, send the handoff to Cursor or Codex, then review the diff before you publish.Add the siteRun one checkRead the reportSend the handoffReview the diff

The same pattern works for the other checks. The app is sold as 16 tools. Two of them crawl the site directly. With Search Console you also get quick wins, titles with a low click rate, content decay, cannibalisation, translation opportunities, AI-ready answers and Google penalty checks. Plausible adds the last 90 days of visits, split into Search, AI, Direct and Referral, compared with the previous 90 days. DataForSEO adds the rank tracker, content gaps, keyword clustering and programmatic SEO ideas, and each of those reports shows the API cost DataForSEO returned.

Hand the report to Cursor or Codex

Set the site’s source folder in Site Settings, or pass it with --source when you add the site. A report can then map page URLs to files in that folder and prepare a task for Cursor or Codex.

The handoff includes the report path, the exact edits, the text to find, and the command that marks the work fixed after you have verified it, committed it and pushed it. The prompt waits for you to send it. The app can also open Cursor or Codex in that folder with the pages, files and tasks ready. Your agent does the writing, on your account.

CommandWhat you use it for
seobot addSave the site, and the source folder with --source
seobot runRun one named check, such as sitemap-health
seobot reportsList the reports stored for the site
seobot report latestPrint the newest report for one tool
seobot todoSee checks and follow-ups that are waiting
seobot doneSee fixes already logged
seobot helpEvery command and option, including JSON output
seobot capabilitiesThe command manifest for an agent

Marking a report fixed schedules the next check for when there is new data to look at. Crawls wait 1 week. Titles and cannibalisation wait 4 weeks. Content decay waits 8 weeks. While the app is open, it reruns the free checks when they are due, adds anything new to To Do, and the Dock icon counts what is waiting. A follow-up shows how many of the fixed findings the new check no longer flags.

What I did with it on this site

I added flaviocopes.com on October 5, 2026. The sitemaps held about 4,700 pages. For each report I picked the findings worth fixing, sent them to a coding agent working in the site’s source folder, then reviewed the changes and published them.

Here is what that added up to in the first four weeks:

The Done list keeps a note on each fix, newest first. The first follow-ups come due in November.

The screenshots on the SEO Bot page are a fictional demo site. The counts above are the flaviocopes.com results written on that page.

GSC CLI is the separate command for raw Search Console numbers. seobot is the check, the task list and the handoff.

Want me to talk about your product? You can sponsor this site.

Related posts about blogging: