Organic clicks went from 1.25K to 9.04K. Impressions went from 153K to 651K. Sitewide CTR nearly doubled, from 0.8% to 1.4%, and average position improved from 7.8 to 7.5.
That was two 28-day windows, back to back. In that entire stretch we published four blog posts.
Four.
Almost none of the growth came from new content. It came from pages that were already ranking and quietly getting ignored, and we only found them because an agent read our Search Console data every morning and told us where the gap was.

This is what we mean by agentic SEO, and it is much less exciting than it sounds. There is no clever growth hack in here. There is a boring report nobody wants to read, and an agent that reads it every day without complaining.
Agentic SEO is not AI writing your content
The phrase is starting to get used for anything where a language model touches a marketing workflow, so it is worth being specific about what we actually did.
We did not have an agent write blog posts. We did not have it publish anything, and it never touched the live site.
What it does is read. Every weekday morning it pulls the last seven days of Google Search Console data, looks for one specific pattern, and posts the three highest value fixes to Slack. A human reads that message and ships the change.
That distinction matters because the bottleneck in SEO was never writing. We could always write. The bottleneck was that the data telling us what to fix was sitting in a free tool, in a format nobody wants to read, in volumes that make it a chore you do once and then abandon.
An agent is very good at chores you abandon.
Ranking is not the same as getting clicked
Here is the pattern that made all of this worth doing.
We had over 100 pages indexed. A good number of them were sitting at position 4 or 5 on page one, appearing in front of thousands of people a week, and pulling almost nothing.
That is not a ranking problem. Google was already putting us in front of the right audience. The titles just did not match what those people typed, so they scrolled past us and clicked something else.
Our Claude Cowork troubleshooting guide was the clearest case. It was at position 5.48 with a 1.74% CTR, which on a page with that much traffic is a lot of wasted attention. When we pulled its query data, the top seven queries were all variations of one error string, people pasting "missing HCS services: hns, vmcompute, vfpext" straight into Google after Windows threw it at them.
That string appeared nowhere in our title. The title was generic and reasonable and completely wrong for the audience finding it.
We rewrote it to lead with the error message. One week later the page was at 800 clicks and 2.32% CTR, up from 569 clicks, and its position had improved a full point to 4.67.
That was a five minute change. No new content, no backlinks, no outreach. We just stopped guessing what people typed and read it off the report.
The same thing was true across our Hermes Agent error pages, our DGX Spark alternative comparison, and our Qwen 3.7 on Ollama review. Pages that ranked, for queries we could see, with titles written before we knew what the queries were.
The setup took five minutes
One agent, two connectors, one scheduled task.
We connected Google Search Console and Slack, then set a task to run every weekday morning. No code, no pipeline, no dashboard to maintain.

Then one scheduled task, set to every weekday at 9:00 AM, with the prompt pasted into the instructions box.

The exact prompt
This is the part worth copying. It has been through several revisions, and every constraint in it exists because something broke without it.
Pull Google Search Console data for the last 7 days.
For every page with 1000+ impressions and CTR below 1%:
- List the top 5 queries bringing people to that page
- Compare those queries to the current title tag
- If they don't match, write a new title under 60 chars
using the exact wording from the top query
- Write a new meta description under 160 chars
For every query ranking position 1-10 with zero clicks:
- Flag it. That's a title mismatch, not a ranking problem.
- Include the country and device breakdown for that query.
Post the top 3 fixes to Slack with: page URL, current title,
suggested title, top queries, current clicks, and projected
clicks at 1.5% CTR.
Only flag each page once. Track what you've already sent.
Why each piece is in there:
The 1000 impression floor. Below that you are optimising pages with nothing to gain. This keeps attention on pages already earning impressions.
Under 60 characters. Longer titles get truncated in the results page, and a truncated title defeats the point of rewriting it.
"Using the exact wording from the top query." This is the whole trick. Not a synonym, not a tidier phrasing, the literal words people typed. If they are pasting an error message, the error message goes in the title.
Position 1 to 10 with zero clicks. The highest signal line in the prompt. If you rank on page one and nobody clicks, the ranking is not your problem.
Country and device breakdown. We added this after the agent led us badly wrong twice. More on that below, because it is the most useful thing in this post.
"Only flag each page once." Matters more than it sounds. Without it the agent resends the same three pages every morning and you mute the channel by day four.
How it runs day to day
Every morning there is a short Slack message waiting. Page URL, current title, suggested title, the queries driving it, and projected clicks at a realistic CTR.
Title and meta swaps ship in about five minutes each. Anything that needs real content work, a new section or a page that should be split in two, gets flagged and goes into the writing queue instead.

Roughly 70% of what the agent found was a five minute title change. That 70% drove nearly all the growth.
The other 30% split three ways. Some pages had genuine content gaps, where we ranked for a question the page did not answer. A few had technical problems no copy would fix. A handful needed splitting, because one page was serving two different searchers and diluting itself for both. Our agents.md guide and our OpenClaw skills pages both fell into that last group.
The thing we did not expect was that the cheap fixes were not the small wins. They were most of the win. We had assumed growth required volume, and volume was exactly what we had been spending all our time on.
What the agent got wrong
The prompt tells the agent to treat high impressions with near zero CTR as a title mismatch. Twice it was confidently wrong, and both times for the same reason. The traffic was not human.
Two of our pages had thousands of impressions at position 2 to 5 and almost no clicks. The agent flagged them as our biggest available opportunities, week after week. We nearly assigned a writer to both.
Then we pulled the country and device breakdown, and it fell apart:
- 6,596 impressions from the United States, zero clicks, average position 4.6
- 93% desktop, almost no mobile traffic
- 681 of 683 queries had zero clicks
The queries were combinatorial permutations of the same terms with "official" and "documentation" appended. Forty near identical variants, each with 50 to 370 impressions.
People do not search like that. Query generators do. Search Console counts an impression whenever your URL appears on a results page, and it does not know or care whether a human was looking at it. Those impressions cannot convert no matter what the title says.
So we added a filter, and it is now the first thing we check on anything the agent flags:
High impressions, near zero clicks, strong position, heavy desktop skew, and formulaic query permutations. Discount it.
A real opportunity looks imperfect, not impossible. One of our genuine wins had 2,415 impressions converting at 2.03%. Bad, fixable, real. Position 2 with zero clicks across thousands of impressions is a different animal, and chasing it costs writer hours you never get back.
If you copy the prompt above, keep the country and device line in. That version already learned this lesson.
If you copy this
Let the agent draft your briefs too. It just read the queries, so it already knows what a page needs to cover. We started having it outline the pages that needed real writing.
Make it dedupe. Otherwise the same three pages arrive every morning and you stop reading.
Trust the query list over your gut, with the caveat above. It flagged pages we were certain were fine and it was right most of the time. When it was wrong, it was wrong about whether the audience was real, not about whether the title matched.
Keep a human on the last step. We would not automate the ship even if we could. The agent recommends, a person decides.
Fix before you write. Pages that already rank are free traffic you are not collecting. A new post starts at zero and takes months to mature. A title change on a page at position 4 pays out the same week.
That last one is the actual lesson, and it has nothing to do with agents. We spent a year believing growth meant publishing more. The report had been telling us otherwise the whole time, in a tab we never opened.
Try it on your own site
Connect Google Search Console and Slack, set one scheduled task, and read the first report tomorrow morning. You will probably find three pages you forgot you owned.
This ran on the BetterClaw free plan the whole time. One agent, scheduled tasks, connectors, BYOK with zero markup, and no credit card. It was enough.
Point an agent at your own Search Console
One agent, two connectors, one scheduled task. Read the first report tomorrow morning. Start free → No credit card · 1 agent with 500 credits/mo on the free plan · 25+ integrations · Deploy in ~60 seconds




