I run a small industrial software company called Voltrus. We sell Modbus tools and lightweight SCADA software. We launched about two weeks ago. I had decent traffic from a Threads launch post — 593 pageviews, 378 visitors in 30 days — and even got 2 sales on day one for our Modbus Poll tool at $9.99 each.
Then I bumped the price to $29 (with a $9 coupon, so $20 effective). No more sales.
I wanted to understand what was going on. Was it the price? The traffic? The product page? So I did something most people would not think to do: I connected RevKlik CLI and Google Search Console directly to Claude Code (an AI coding assistant) and let it audit my entire site. This is the story of what happened.
Step 1: Pulling Analytics from the Terminal
I started with what I already had. RevKlik has a CLI tool that lets you query analytics without opening a browser. I ran:
$ revklik analytics overview -s voltrus.id -r 30d
Pageviews Visitors Sessions Bounce Rate Revenue Conversions
593 378 210 13% $19.98 12
$ revklik analytics revenue -s voltrus.id -r 30d
Revenue by Source:
direct $19.98 2 conversions
Revenue by Country:
NL $9.99 1
CZ $9.99 1
So: $19.98 total revenue, from 2 sales, both direct traffic, one from the Netherlands and one from Czech Republic. The other 10 conversions were free downloads or email signups.
The price bump did not kill my sales. The traffic drop did. After the launch spike, visitors fell from 82/day to 13/day. Nobody was seeing the product page anymore.
Step 2: Connecting Google Search Console via API
This is where it got interesting. I wanted to know: what are people actually searching for when they find my site? Google Search Console has that data, but the web interface is clunky for analysis. So I set up the searchconsole Python library with OAuth2 credentials.
The setup took about 10 minutes:
- Create a Google Cloud project
- Enable the Search Console API
- Create OAuth 2.0 credentials (desktop app)
- Install the Python library and authenticate
$ pip install searchconsole
# Authenticate (opens browser for OAuth)
account = searchconsole.authenticate(
client_config='credentials.json',
serialize='credentials.json'
)
# Query the data
webproperty = account['sc-domain:voltrus.id']
report = webproperty.query.range('today', days=-30).dimension('query').get()
The AI then pulled my search performance data and laid it out in a table.
Step 3: The Diagnosis
Here is what the AI found. My blog posts were getting impressions but zero clicks:
| Page | Impressions | Clicks | CTR | Avg Position |
|---|---|---|---|---|
| modbus-tcp-vs-opc-ua | 89 | 0 | 0% | 6–11 |
| deploy-scada-vps | 59 | 0 | 0% | 4–6 |
| scada-sso-active-directory | 106 | 2 | 1.9% | 5–6 |
| scada-under-1000-dollars | 54 | 1 | 1.9% | 15–65 |
Think about that. 308 impressions, 3 clicks total. That is a 0.97% CTR across pages that are ranking on page 1 of Google.
Why nobody was clicking
The AI cross-referenced the actual search queries with the page titles and found the problem immediately:
| Search Query | Page Title | Match? |
|---|---|---|
| "opc ua vs modbus tcp" | Modbus TCP vs OPC-UA: What System Integrators Actually Need to Know | No — wrong word order |
| "220 mb scada" | Deploying SCADA on a $4 VPS: A System Integrator's Guide | No — no mention of specs |
| "scada cost" | Is There Any SCADA Under $1,000? | No — doesn't match "cost" intent |
| "user identity provider" | SCADA SSO: Why Active Directory Integration Matters | No — too niche |
People were searching for something specific and my titles did not match. Google showed my pages because the content was relevant, but searchers skipped them because the titles did not look like what they asked for.
Step 4: The Fixes
The AI rewrote all five titles and meta descriptions to match actual search intent. Here are the before/after changes:
| Page | Before | After |
|---|---|---|
| modbus-tcp-vs-opc-ua | What System Integrators Actually Need to Know | OPC UA vs Modbus TCP: Which Protocol Should You Use? (2026) |
| deploy-scada-vps | Deploying SCADA on a $4 VPS | How to Deploy SCADA on a Cheap VPS — 220 MB RAM, No SQL Server |
| scada-sso | Why Active Directory Integration Matters | SCADA User Authentication: SSO with Active Directory, Azure AD, SAML & OIDC |
| scada-under-1000 | Is There Any SCADA Under $1,000? | SCADA Software Cost Comparison 2026: Pricing from Free to $50K+ |
| best-modbus-simulator | Best Modbus Simulator in 2026 | 7 Best Modbus Simulators (Free & Paid) — TCP/RTU Testing Tools |
The pattern is clear: match the title to the search query, add specificity (numbers, specs, protocols), and front-load the keywords people actually type.
The duplicate URL problem
The AI also found something I never would have caught. Google was indexing both /blog/deploy-scada-vps and /blog/deploy-scada-vps.html as separate pages. My impressions were being split across two URLs for the same content.
The fix was adding 301 redirects in my Cloudflare Pages _redirects file to consolidate all .html variants to clean URLs. 73 redirect rules, one for each blog post.
Lessons Learned
After going through this entire process, here are the things I wish I knew from the start.
1. Traffic drops after launch are normal — but fixable
My site went from 82 visitors on launch day to 13 visitors a few days later. That is not a problem with the product or the price. It is the natural decay after a social media spike. The fix is not to lower prices — it is to build sustainable traffic channels. SEO is one of them, and it takes weeks, not days.
2. Impressions without clicks mean your titles are broken
If Google shows your page on page 1 and nobody clicks it, the content is fine but the title is wrong. Your title is the ad for your content. It needs to match what people type into Google, not what you think sounds clever.
The biggest SEO win was not writing better content. It was matching the title to the search query. Content was already good — it ranked on page 1. The title just did not look clickable.
3. AI + real data > AI guessing
You can ask ChatGPT "improve my SEO" and get generic advice. Or you can connect actual analytics data and let the AI make decisions based on real numbers. The difference is night and day. When the AI could see that my "modbus-tcp-vs-opc-ua" page was getting impressions for "opc ua vs modbus" but the title had the words in the wrong order, the fix was obvious and specific.
4. Small sites can rank surprisingly fast
Voltrus.id is two weeks old with 593 pageviews. And we are already ranking on page 1 for terms like "scada under $1000", "modbus tcp vs opc ua", and "deploy scada vps". The niche is small enough that Google has very few good results. That is an advantage.
5. Revenue data tells a different story than traffic data
If I only looked at Google Analytics or Search Console, I would see 593 pageviews and think "not bad." But RevKlik told me the full story: 2 sales, both direct traffic, both on the first day, both at $9.99. The traffic was there. The conversion happened on day one because the launch post attracted the right audience. After that, the traffic was still coming but it was not the buying kind. That is a targeting problem, not a pricing problem.
6. Canonical URLs are not enough
I had <link rel="canonical"> tags on every page pointing to the clean URL. Google still indexed both versions. You need actual 301 redirects, not just canonical tags. Check your Search Console for duplicate URLs — you might be splitting your ranking signals across two versions of the same page.
How to Replicate This
If you want to do the same audit for your own site, here is the stack:
- RevKlik CLI —
revklik analytics overview -s yourdomain.com -r 30dgives you traffic, revenue, and conversion data from the terminal. Get it free → - Google Search Console API — Use the
searchconsolePython library to query impressions, clicks, CTR, and position data programmatically. - Claude Code (or any AI coding assistant) — Connect both data sources and ask it to find pages with high impressions but low CTR, then rewrite titles to match actual search queries.
The whole setup took about 30 minutes. The audit and fixes took another 20. That is 50 minutes of work that could meaningfully change how much traffic my site gets from Google over the next few weeks.
FAQ
Can AI really audit your SEO from Google Search Console data?
Yes. By connecting the Google Search Console API to an AI coding assistant like Claude Code, the AI can pull your actual search performance data — impressions, clicks, CTR, and average position — then identify which pages are ranking but not getting clicks, and rewrite titles and meta descriptions to fix the problem. The key is giving the AI real data instead of asking for generic SEO advice.
What is the RevKlik CLI?
RevKlik CLI is a command-line tool that lets you query your website analytics directly from the terminal. You can check pageviews, revenue, top pages, referrers, and conversion data without opening a browser dashboard. It works with any site that has the RevKlik analytics script installed.
How do you connect Google Search Console to AI?
You use the Python searchconsole library with OAuth2 credentials from Google Cloud Console. After a one-time authentication (which opens a browser window for you to authorize access), the AI can query your Search Console data programmatically and make recommendations based on real search performance numbers.
RevKlik gives you traffic, revenue, and conversion data from the terminal — the perfect input for an AI audit. Connect it to Search Console and let AI find your SEO blind spots. Start free →