GUIDES

SEO automation: what we run, cap and drop

SEO automation means handing a repeatable search task to a script or an API instead of doing it by hand. Eighteen named commands cover our own audit work. Some run unattended, some only inside a limit we set or a supplier imposes, and four recurring routines were stopped in August, each on a measurement.

The pages ranking on this query list tools; this one sorts thirteen recurring tasks by what happened when we ran them, with the figure that decided each case. Four routines were stopped in August, the first because three of its four weekly readings ended with no decision to make. The readings we publish as proof sit on our figures page.

What SEO automation means here

Here, SEO automation covers collection, checking and submission: console pulls, performance sweeps, link and markup checks, ranking checks, report assembly. Each is a repeatable search task handed to a script or an API instead of done by hand. It does not cover judgement, the part that decides what a reading means.

The scripts behind it are our Zero-Dependency Audit Scripts, with no third-party package to install and secrets kept in files rather than in the shell. Those eighteen commands do not map one to one onto the thirteen recurring tasks below: some tasks call more than one command, and some commands run only when something breaks. On 23 September we read three of the pages ranking on this query. None of those three published a cost paid, a hit rate, or a task it had automated and then abandoned. That absence is the reason this page exists.

Run, cap, drop: three verdicts for any task

Every task we consider automating ends in one of three verdicts. Run means it goes unattended, because nothing meters it. Cap means it runs only inside a limit: money, a supplier quota, a credential we renew, or the attention we give it. Drop means it ran, we measured it, and the output did not justify the slot.

The verdict is not a property of the task alone. It depends on the task, the supplier, and what you do with the output. The same ranking check is a Run where nothing meters it, a Cap on a metered API, and a Drop if nobody acts on it. Naming which kind of limit applies is the part that makes the sorting usable, so the table says it in each row.

Recurring taskVerdictWhat decided it
Page performance sweepRunFree, no limit met at our volume. 8 of 13 addresses scored 100 out of 100 on 31 August
Internal link graphRunLocal, no API, output compared against the previous run
Submission of new pagesRunFree, one call per published page, no limit met at our volume
Link and build checksRunLocal, and they fail loudly
Search data pullsCap, money$0.41 against a written $1.00 cap for a 54-topic plan
Behaviour analytics pullCap, supplier quotaTen requests per project per day, three days of lookback, read on 31 August
Search console pullCap, our own credentialOur test-mode application, so its token expires every seven days
AI citation checksCap, our attentionFive checks from 2 to 22 August, 0 citations each time, so it moved to monthly as a baseline
Journalist request triageCap, our attention49 cards, 6 worth reading and 0 usable leads on the first test; 54, 25 and 2 five days later, so it stayed in our daily press routine
Weekly site reviewDropFour readings; three ended with no new decision to make
Weekly affiliate network readingDropSeven readings, zero clicks and zero conversions
Backlink watchDropDropped as a standalone routine: the same API call already ran monthly
Third-party search engine checkDropIt answered wrongly, so nothing it returned could be used

Every line above is work we have run on our own accounts, and the last four we no longer run. The right-hand column holds three kinds of entry: readings we measured ourselves, one ceiling we read in a supplier’s documentation, and, for the Run rows, the reason nothing meters them. The readings are dated in the sections below.

What runs unattended

Anything free, unmetered and checkable runs without supervision: performance sweeps, the internal link graph, the link health check, the build checks, page submission. They cost nothing per run, they fail loudly, and their output is a file we compare with the last one. In our own work, most of the automation worth having sits in this unglamorous class.

Our performance sweep reads 13 addresses on mobile in a single pass. On 31 August, 8 of them scored 100 out of 100 and the other 5 landed between 90 and 99. The test for this class is simple: if a second run tomorrow costs nothing, and today’s output can be compared with yesterday’s, the task belongs here. We wrote none of these scripts with an agent.

What runs only inside a limit

Metered work runs, but never without a limit written first. Search data is billed by the call, so every campaign gets its own cap before the first request. The keyword research behind our 54-topic editorial plan cost $0.41 against a written cap of $1.00. The search check behind this page cost $0.033 against its own cap of the same size.

Our first calibration of a search data API, described in our guide to that API, spent $2.35 in one half-hour session against a written cap of $8; the MCP session behind that figure shows what each API cost. Limits that are not about money belong in this class too, and they are the part the three pages we read left out. One of ours is a supplier ceiling: our behaviour analytics supplier allows ten requests per project per day, shared across every way of asking, and looks back three days at most, as its documentation stated when we read it on 31 August.

The other is ours, not the supplier’s. Our search console pull runs under a test application that Google has not verified, so its access token expires every seven days and we have re-authorised it weekly since 25 August. A service account or a verified application would remove that step. We have not done that work, which is why the pull that looks unattended is in fact a weekly manual act of our own making.

Write the cap in the same file as the campaign, and reconcile the spend afterwards against the supplier’s own ledger. A cap you merely remember is not a cap.

What we stopped running, and the readings that decided it

Four routines stopped in August, each on a measurement: two seldom or never led to a decision, one duplicated another check, one answered wrongly. The weekly site review ran four times between 2 and 22 August; three of the four found no new decision to make. Seven readings of an affiliate network found zero clicks and zero conversions.

The third was a backlink watch that turned out to be the same API call as an existing monthly check, so the standalone routine went and the monthly one stayed. The fourth was a check we dropped because it answered wrongly: a search API returned results for the first word of our keyword alone, which we reproduced four times across two access routes before opening a ticket. For this check, a confident wrong answer was more dangerous than an empty one, because it could have sent us after the wrong query.

Two tasks survived a reading at zero, which is a different thing. Our AI citation checks asked Perplexity and Google the same six questions each time and found our site in none of the answers, five checks in a row. On the Google side of the same checks, an AI Overview appeared for all six questions, citing other sites every time. The first automated triage of journalist requests turned 49 cards into 6 worth reading and 0 usable leads; the second, five days later, turned 54 cards into 25 and 2. Those zero results are measurements once the tool itself has been checked against a known result, so both tasks stayed: the citation checks moved to a monthly cadence, and the triage stayed in our daily press routine. A zero nobody reads is waste. How those zeros sit next to thousands of Copilot citations, and next to the money, is on our AI visibility readings, and which page features went with a citation is on our LLM SEO lever test.

The traps that cost us the most

Four failures caused the most rework, and all four were ours rather than a supplier’s. In two of them, the thing reporting success was not the thing doing the work. The other two were quieter: one left a page out of date after a change, and one tied a script to a single site.

How each one happened stays with the products it cost, as our house rules say for our own mistakes. The rule we kept from them is public: each of our automations now carries one check that reads the actual output rather than the status of the process that produced it.

Can an agent just write the script?

Yes, and that stopped being the hard part. An assistant can draft scripts of this size, and the ones we run are small enough that their value is rarely in the typing. What it cannot hand you is the limit, and the limit is one of the things that decides whether the automation keeps working.

Some of those limits are documented, as the ten calls a day and the three-day window were. What no document told us was which one would bite first, which supplier would answer on only the first word we sent it, or that our own credential choice would turn an unattended pull into a weekly manual act. That arrived from running the thing on a real account. If you are leaving a search suite behind, the scripts are the easy half of what you are replacing, and the register of what breaks is the other half.

Who should not read this

If you want a dashboard, none of this helps. These commands print and write files for somebody to read. If a missed report would be a contractual problem, you may need support and accountability that a folder of scripts cannot give. This page is for someone who runs a site alone and has already decided to leave their SEO suite.

The subscription you are tired of may still be worth its price when other people depend on your reporting. Nothing here argues otherwise. If you are weighing that renewal now, the tools we use instead of a suite, and what they cost sets out both.

What we did not verify

We never timed a task before and after automating it, so we publish no time saved. We never costed the manual equivalent, so we claim no saving. We cannot isolate the effect of any of this on rankings, and our own site is too young for that question to be answerable.

Every reading we publish as proof was taken on our own accounts, on the sites we manage; the one supplier ceiling here is quoted from documentation and is not our measurement. What the same automation returns on your accounts is outside our experience. Our method for what gets published as proof explains where we draw that line.

The next question worth asking is probably not which SEO automation tool to buy. It is which of your recurring readings changed a decision last month, and what the others are costing you in quota, bill and attention.

Questions

What is automation in SEO?

Automation in SEO is the handing of a repeatable search task to a script or an API: pulling console data, sweeping page performance, checking links, watching rankings, assembling a report. It does not cover judgement, which is the part that decides what any of those readings mean, nor does it remove the supplier quotas that meter the collection.

How to automate SEO tasks?

Start from the reading you need, not from the tool. A task is worth automating when it is repeatable, when its output is checkable, and when someone would act differently depending on the result. Write the spending cap before the first billable call, then pick a review window, write it down, and judge the task against it.

What type of tasks can be automated?

In our own work, collection and checking automate well: console pulls, performance sweeps, link and markup checks, submission of new pages. We keep the judgement of what a reading means with a person. The harder question is not whether a task can run without you, but whether its output is worth the quota, the bill and the attention it takes to read.

Can ChatGPT do SEO?

Partly. An assistant can draft scripts of this size, and for us that was never the difficult part. What it could not tell us was which limit would bite first, or that one supplier would return results for the first word of our keyword alone. That came from running the thing on a real account and reading what came back.

The Domain-Only Website KitOne payment · 12 months of dated updates Get the Kit · $129