From 9 to 211 Search Impressions a Day: An SEO Case Study With Claude Code
Swiftly Developed is our sister company: the software studio that builds our apps and this website. Between mid-June and late August its site appeared in Google search results about nine times a day. Not nine clicks. Nine appearances, anywhere on any page of results, for anything.
In the first eleven days of September it averaged 211 a day, at an average position of 7. Nobody bought ads, hired an agency or wrote a keyword strategy. We downloaded a free export from Google Search Console, handed it to Claude Code, Anthropic’s AI coding assistant, and fixed what the data pointed at.
This article is the worked example: the numbers, the changes and their dates, and the part most case studies leave out, which is what the data does not prove.
The chart
Every figure below comes from one Search Console export of the Swiftly Developed website covering 12 June to 11 September 2026. The numbered markers are the days each change went live. Switch between impressions and average position, and between the full export, the last 28 days (the default range Search Console itself opens on) and the first eleven days of September that the headline figures describe. For position, lower is better, so the line is drawn the way Google draws it, with first place at the top.
Line chart of daily Google search impressions for the Swiftly Developed website from 12 June to 11 September 2026. Impressions stay between 0 and 48 a day until 22 August, rise to between 35 and 161 a day from 23 to 31 August, and run between 94 and 506 a day from 1 to 11 September, peaking at 506 on 8 September. Average position varies widely between about 1 and 41 until the end of August, then holds between 6.4 and 8.5 every day from 1 September. Markers show four changes: lost articles restored and sitemap fixed on 11 and 12 August, a new article on 16 August, cross-site links and structured data on 30 August, and a six-part article series on 5 September. Across the full export the site received 3,617 impressions and 26 clicks at an average position of 10.8; in the last 28 days, 15 August to 11 September, it received 3,041 impressions and 21 clicks at an average position of 10.2. From 1 to 11 September alone it received 2,324 impressions and 15 clicks at an average position of 7.0.
12 Jun – 11 Sep: 3,617 impressions · 26 clicks · average position 10.815 Aug – 11 Sep: 3,041 impressions · 21 clicks · average position 10.21 – 11 Sep: 2,324 impressions · 15 clicks · average position 7.0
- 111–12 Aug: lost articles restored, sitemap and 404s fixed (before this range)
- 216 Aug: new translation article (before this range)
- 330 Aug: links and structured data between the sites (before this range)
- 45 Sep: six-part testing series
- 12 June to 22 August (72 days): 622 impressions, 8.6 a day, average position 14.9, 6 clicks.
- 23 to 31 August (9 days): 671 impressions, 74.6 a day, average position 20.3, 5 clicks.
- 1 to 11 September (11 days): 2,324 impressions, 211 a day, average position 7.0, 15 clicks.
Position here is weighted by impressions, which is how Search Console computes its own average. A page seen 400 times at position 6 counts for more than a page seen twice at position 40.
What the export actually said
A Search Console performance export is a zip of seven CSV files: daily totals, queries, pages, countries, devices, search appearance and the filters applied. Anyone with a verified site can download it in two clicks. Most people never do, because a spreadsheet of queries does not tell you what to do next.
That translation step is where Claude Code earned its keep. It read the CSVs and the website’s source code side by side, which is the combination that matters. The export says a URL gets impressions. The code says what that URL actually returns. Put them together and the problem stops being abstract.
The earlier 12-month export, taken in August, told an uncomfortable story. The site had earned 1,505 impressions in March and 78 in the first nine days of August. And 44% of all its impressions over the year were landing on blog URLs that returned a 404 error. The articles had been lost in an earlier rebuild. Google still ranked them. The pages were simply gone.
What we changed, and when
Each step below was one working session in Claude Code, reviewed and merged by a person before it went live.
- 11 and 12 August: rebuilt the blog and restored nine articles at their exact original web addresses, because the rankings are attached to the address. No redirects, no “improved” slugs. The same sessions found that the site’s /blog/ page was telling Google it was a copy of a different site’s blog, that the sitemap told Google every page had last changed in March, and that unknown pages answered with raw JSON instead of a proper 404.
- 16 August: published one new, genuinely technical article on Apple’s on-device translation framework.
- 30 August: tidied how the four Swiftly sites refer to each other. Links that bounced through a redirect now point at the right address, and the structured data that describes each company now names the group they belong to.
- 5 September: published a six-part series on UI testing SwiftUI apps, written from a year of running the tests on a real product.
None of this is clever. It is maintenance that nobody had done, because nobody had looked at the export with the code open in the other window.
Where the impressions came from
The page-level data shows which of those changes carried the result, and it is not an even split.
- One restored article, on tracking scroll offsets in SwiftUI, earned 1,588 impressions and 14 of the 26 clicks, at an average position of 7.3. That is 44% of everything the site received, from a page that had been a 404.
- The first part of the new testing series to be picked up, on SwiftUI accessibility identifiers, reached 404 impressions at position 6.3 within a week of publishing.
- A restored article on why mobile apps matter for small businesses ranks at position 3.7 for the question it answers.
- The new translation article reached 157 impressions at position 6.7.
Read the restored scroll-offset article on the Swiftly Developed blog
Just as useful is what did not work. The restored article on Apple’s logging API shows up for a dozen variations of “swift logging”, and for almost all of them it sits between positions 30 and 60, on page four or later. Restoring a page gets it back into the index. It does not make it the best answer, and in that case it is not.
What the data cannot tell you
It would be easy to put a screenshot of the September spike next to the words “AI fixed our SEO” and stop there. Here is why we are not doing that.
- The changes overlap. Impressions started climbing on 23 August, eleven days after the restored articles went live and a week before the 30 August change. Position settled at around 7 from 1 September, before the testing series was published. Google recrawls on its own schedule, so no single change can be credited with the curve, and anyone telling you otherwise from data like this is guessing.
- Impressions are not visitors. Clicks rose from 6 in the first 72 days to 15 in the last 11, which is real, but the overall click-through rate is 0.7%. 26 clicks in three months is a start, not a business result.
- The audience is not the one you might want. 2,454 of the 3,617 impressions came from the United States, with no clicks at all, and 95% were on desktop. That fits a developer blog read at work. It would be a problem for a local shop.
- This was a recovery, not growth from nothing. The site had ranked before. Restoring lost pages is the fastest SEO win there is precisely because the rankings already exist.
The export told us where the traffic had been. The code told us why it had gone. The work was connecting the two.
Doing this on your own site
You do not need to be a developer to run the first half of this. You need an hour and access to your own Search Console.
- In Google Search Console, open Performance, set the date range to the last 12 months and use Export, then Download CSV. Keep the zip.
- Open Pages. Sort by impressions and click through the top twenty addresses yourself. Anything that shows an error, redirects to your homepage or shows the wrong content is a page Google still values that you have lost.
- Open Queries and look for questions you answer well in real life that your site answers poorly, or not at all. Those are the articles worth writing.
- Check the dates. A sitemap that says every page last changed on the same day, years ago, tells Google there is nothing new to crawl.
- Take the list to whoever maintains your website. If that is an AI coding tool with access to the code, give it the CSVs as well; reading both at once is what it is good at.
Where we come in
Swiftly Marketing runs social media for small and mid-sized businesses, and this is the same principle we apply there: look at the numbers you already have before you spend on new ones. Search and social feed each other. An article people find in Google is also a week of posts, and a post that lands is a signal about what to write next.
If your website is the part that is broken, our sister studio Swiftly Developed builds and maintains sites and apps, and we can bring them in. Either way, a 15-minute intro call is free, and we will tell you plainly if what you need is not us.
Book your free 15-minute intro call
Follow this story
This experiment is not finished. We will keep exporting the Search Console data for Swiftly Developed and update this article as the numbers move, including if they move the wrong way. The quickest way to hear about each update is to follow Swiftly Marketing on the platform you already use.
Links to follow Swiftly Marketing on Facebook, LinkedIn, Instagram, TikTok, X, Bluesky and Mastodon for updates to this case study.
Further reading
Five recent pieces that go deeper on the parts of this story we could only touch on, all published in the last twelve months.
A step-by-step setup for connecting Claude Code to the Search Console API, so you can skip the CSV export entirely and ask for custom reports directly.
Why impressions can climb much faster than clicks. Seer tracked 2.43 billion organic impressions across 53 brands and measured what AI Overviews do to click-through rates, and what being cited in one is worth.
Seer Interactive: AIO Impact on Google CTR, 2026 Update (April 2026)
Google’s own announcement of the Search Console reports that show how your site performs inside generative AI features on Search, now available for every site.
For anyone whose marketing lives on social media: Search Console can now show how your posts on platforms such as Instagram, TikTok, X and YouTube perform in Google Search.
On the sitemap dates mentioned above: Google’s Gary Illyes says a sitemap with wrong last-modified dates is better off with none at all. The fix for a frozen date is an accurate one, not today’s date on every page.
Comments
Loading comments…