DEV Community

Aimiten
Aimiten

Posted on

Seven Pages Improved. All Seven Invisible in GSC.

The automation ran every night this week. Seven commits. Seven calculator pages with benchmarks rewritten, worked examples added, internal links wired in. I checked GSC this morning to see which of them had moved.

None of them are in the 28-day data. Not in the top 50 pages by impressions. Not with a single visible query in the query-level breakdowns. The pages exist — I curled them, they load, they have proper titles and meta descriptions. Google just isn't showing them to anyone.

Meanwhile, the one page that actually gained ground this week is one the automation never touched.

The setup

The automation queue has been running for 42 commits now — one calculator page per night, improving content with verified benchmarks, worked examples, and internal links. This week the queue pulled seven pages from the real estate and investment cluster:

  • Cap Rate Calculator (July 20)
  • EPS Calculator (July 19 — earnings per share, not technically real estate, but adjacent)
  • Rental Yield Calculator (July 21)
  • NOI Calculator (July 22)
  • DSCR Calculator (July 23)
  • Cash-on-Cash Return Calculator (July 24)
  • Compound Interest Calculator (July 25)

Seven nights. Seven commits, each one adding 300-500 words of specific, non-generic content to a page that previously had boilerplate. The automation is working exactly as designed. I just hadn't asked whether it was working on the right pages.

What I expected vs what the data showed

I expected at least some of these pages to be visible in GSC — even one visible query per page would tell me Google had seen the content and filed it somewhere. Here's what the 28-day query breakdown returned for each:

Page Visible queries (28d) Impressions
/tools/cap-rate-calculator/ 0 0
/tools/compound-interest-calculator/ 0 0
/tools/dscr-calculator/ 0 0
/tools/noi-calculator/ 0 0
/tools/rental-yield-calculator/ 0 0
/tools/cash-on-cash-calculator/ 0 0
/tools/eps-calculator/ 0 0

Zero across the board. Not "below threshold" — literally no rows returned from the API.

Finding #1: The pages are live, but Google isn't showing them

This took me a moment to parse. My first instinct was an indexing problem. So I curled the cap rate page as Googlebot:

<title>Cap Rate Calculator: Compare Investment Properties | Valuefy</title>
<meta name="description" content="Free cap rate calculator for real estate investors. 
Calculate NOI yield, compare properties side-by-side, and benchmark market rates by 
property type." data-rh="true">
<h1>Cap Rate Calculator for Real Estate Investors</h1>
Enter fullscreen mode Exit fullscreen mode

The page is live. Proper title, specific description, correct H1. Same story for compound interest:

<title>Compound Interest Calculator — Daily to Annual | Valuefy</title>
<meta name="description" content="Free compound interest calculator. Compare daily, 
monthly, and annual compounding, add regular contributions, and see year-by-year 
growth with the Rule of 72." data-rh="true">
Enter fullscreen mode Exit fullscreen mode

These aren't broken pages. They're well-structured pages that Google simply isn't surfacing at all. Not at position 50. Not at position 100. Not anywhere visible in the data.

The most likely explanation is authority — a new domain competing in "cap rate calculator" against calculators on real estate platforms with actual domain authority. The content improvements the automation made this week are probably fine. They just don't matter yet, because the authority gap is so large that Google won't surface the page for anyone to even notice the content.

The automation has no way to know this. It has a list of pages and a prompt. It improves them. It has no feedback loop into GSC to notice that some pages are visible and some are dark.

Finding #2: The page that moved is one we never scheduled

The impression calculator — /tools/impression-calculator/ — is the best-performing tool page by clicks right now. It wasn't in the automation queue this week. It wasn't scheduled for any improvement. It just quietly moved on its own.

28-day average: 9 clicks, 1,508 impressions, position 31.3.

Last 7 days: 4 clicks, 381 impressions, position 25.9.

Running those numbers: in the 20 days before this week, the page averaged 0.25 clicks per day. This week, 0.5 clicks per day. Click rate doubled. Position improved by 5 slots. Nothing changed in the codebase — the last automation commit to that page was weeks ago.

I pulled the query breakdown:

Query Impressions Position
impression calculator 52 28.9
ad impression calculator 17 39.4
any free ones 1 1.0

Only 70 visible impressions against 1,508 total. The usual distribution: hundreds of long-tail queries each generating one or two impressions below GSC's privacy threshold, all averaged into a position number that looks like "31" but is really dozens of different ranks across dozens of different intents.

But the trend is real. Position 31 to position 26, click rate up. Something is moving, and I didn't cause it by adding content this week.

Finding #3: The SaaS valuation blog ranks at position 7 for a firm's research

The SaaS Valuation Multiples 2026 blog post has 182 impressions over 28 days at an average position of 7.3. Zero clicks. I pulled the query breakdown expecting to see "saas valuation multiples 2026" or similar. Here's what was visible:

Query Impressions Position
aventis advisors saas valuation multiples 2026 2 9
aventis advisors saas valuation multiples 2026 ev revenue 1 7
aventis advisors saas valuation multiples 2026 median ev revenue 2 7.5
aventis advisors saas valuation multiples 2026 median revenue multiple 1 8

Every visible query is a navigational search for a specific M&A advisory firm's research. The blog content cited Aventis Advisors' data, and now our page shows up when people search for that firm's actual report — which they then immediately don't click, because they want the primary source.

We're a librarian who mentions the book. People searching for the author don't stop at the librarian.

The other 176 impressions are invisible, which means the page might have some real "saas valuation" traffic hiding below the privacy threshold. But the only window I have shows four navigational queries with no click intent. Position 7 with zero clicks isn't a CTR problem — it's a query mismatch problem.

Finding #4: The og:title bug is still there

While curling pages for findings #1 and #2, I noticed the duplicate og:title pattern again. Every page still has two of them:

<meta property="og:title" content="Valuefy - Free Business Calculators & Financial Tools">
...
<meta property="og:title" content="Cap Rate Calculator: Compare Investment Properties | Valuefy" data-rh="true">
Enter fullscreen mode Exit fullscreen mode

The first one is the static fallback in index.html, lines 23-24. The second is React Helmet's hydrated version. The fix — strip lines 23-24 from index.html — was on the action list from the first audit. Seven weeks later, both tags are still there on every page.

Some social sharing platforms take the first tag. Some take the last. The result is unpredictable — which social preview shows up depends on which platform scraped the page and when. This isn't catastrophic, but it's also a 15-minute fix I've now described twice in these posts without doing it.

What I'm going to do about it

  1. Fix the og:title duplicate — tonight. This one is genuinely overdue.
  2. Add a GSC visibility check to the automation queue — before scheduling a page for improvement, check whether it has any impressions in the last 28 days. If zero, skip it. The automation's time is better spent on pages Google is already showing to someone.
  3. Identify which of the 42 improved pages have any GSC visibility — run the same check retroactively. If the impression calculator can drift from position 31 to 26 without intervention, some of the pages we've already improved might be showing early movement worth tracking.
  4. Don't touch the impression calculator — let it keep moving on its own. Check back in two weeks.

The uncomfortable lesson

We've been running the automation as if every page were equally worth improving. Pick a page, write better content, commit, move to the next one. Forty-two commits of work, all applied to a list that was never sorted by "does Google actually show this to anyone?"

Content improvement on a page with zero impressions is not SEO. It's maintenance on a building nobody walks past.

The pages that matter right now — the ones with positions between 20 and 40, the ones getting impressions even at low click rates — those are the pages where better content might convert some impressions to clicks. The cap rate calculator, the DSCR calculator, the rental yield calculator: they might be excellent pages. I don't know, because Google hasn't told me anyone is looking for them.

I'll check back in two weeks on the impression calculator. If position 26 becomes position 20, something is working. If it reverts to 31, then this week's data was noise. Either way, I'll report it accurately.


I'm running these experiments on valuefy.app and writing the findings as I go. If you're building programmatic SEO, debugging React SEO issues, or fighting the same "automation running, nothing moving" wall, drop a comment — I'd like to compare notes.

I also run AImiten, where we build AI tooling for companies. This side project is where I stress-test ideas before they touch client work.

Top comments (0)