13 clicks. The top-performing tool on the site this month. The automation never touched it.
Not once in 30 days of daily commits does a "SEO: improve Purchase Order Generator content" message appear. The page runs on whatever it shipped with — no verified benchmarks added, no worked examples, no internal linking pass. And yet purchase-order-generator leads every other page on valuefy.app by clicks in the last 28 days: 13 clicks, 1,538 impressions, and one real page-1 ranking for "po maker" at position 7.2.
Meanwhile, seven financial calculators were improved this week — ROI, CAPM, Dividend Yield, Debt-to-Equity, Gross Margin, EPS, Retention Rate. Combined clicks across those seven in 28 days: zero.
There's a lot going on this week. The purchase order generator irony is just the opening act.
The setup
The daily automation has now run for well over a month. The commit history for this week:
- May 31 — ROI calculator (a second pass — this page was also the first one improved at the start of the routine)
- Jun 1 — CAPM calculator
- Jun 2 — Dividend Yield calculator
- Jun 3 — Debt-to-Equity calculator
- Jun 4 — Gross Margin calculator
- Jun 5 — EPS calculator
- Jun 6 — Retention Rate calculator
Each commit adds verified benchmarks, worked examples, and internal links. Each tool page gets a meaningful content pass. And per GSC, none of them have crossed the impression threshold in 28 days — Google has not served any of them to anyone at a visible volume.
The ROI calculator is the most striking case. It was the very first calculator the routine improved, weeks ago. Then the routine came back to it again this week for a second pass. In 28 days: 0 clicks. Query breakdown spans 20 queries, every position between 40 and 96. Nothing moved.
Finding #1: The top page by clicks was never on the automation's list
I pulled the 28-day leaderboard across all pages on the site:
| Page | Clicks | Impressions | Position |
|---|---|---|---|
| /tools/purchase-order-generator/ | 13 | 1,538 | 40.8 |
| / (homepage) | 8 | 747 | 7.9 |
| /tools/impression-calculator/ | 5 | 776 | 47.5 |
| /tools/balance-sheet-generator/ | 4 | 19 | 13.4 |
| /tools/conversion-rate-calculator/ | 2 | 62 | 10.8 |
The purchase-order-generator leads by 5 clicks. Second place is the homepage. Third is the impression calculator. None of these three pages were part of the automation's current sequence.
The query breakdown for the purchase-order-generator explains why it outperforms. It has a real, dominant query: "purchase order generator" at position 20 with 211 impressions and 2 clicks, plus "po maker" at position 7.2 with 42 impressions and 1 click. That's page one. There's a definite user intent — somebody wants to make a PO document — and the page is the answer Google sometimes picks.
The ROI calculator has no equivalent. Its query spread covers everything from "3 year roi" to "accounts receivable roi calculator" to "annualised roi calculator" — dozens of overlapping phrasings of a head term that every financial site in the world targets. No single query dominates. No query is above position 40.
The difference isn't content quality. It's intent clarity and competition density. "Po maker" is a real long-tail with lower competition. "Roi calculator" is a head term with a thousand incumbents.
Finding #2: The code left a note explaining the bug. Then left the bug in place.
In the first post in this series, I found that every page on valuefy.app had two competing og:title meta tags — one static in index.html, one injected by React Helmet during prerender. I said I'd fix it that night.
Seven weeks later, I curled the homepage:
curl -sSL -A "Mozilla/5.0 (compatible; Googlebot/2.1)" "https://valuefy.app/" | \
grep -cE '<meta property="og:title"'
Result: 2.
Two tags. Still. I curled the purchase-order-generator page to double-check:
<meta property="og:title" content="Valuefy - Free Business Calculators & Financial Tools">
<meta property="og:title" content="Free Purchase Order Generator & PO Maker | Valuefy" data-rh="true">
Also two. Every page on the site is shipping two og:title tags. Which one wins in a social share depends on the platform — most crawlers take the last tag, some take the first. For any individual tool page, some previews show the page-specific title, others show the generic site-wide one.
Then I opened client/index.html to understand what happened with the fix. Here's what's in the file:
<!-- Open Graph defaults (overridden by SEOHelmet per page) -->
<meta property="og:title" content="Valuefy - Free Business Calculators & Financial Tools" />
<meta property="og:description" content="150+ free business calculators and AI generators..." />
<!-- Meta description intentionally omitted — React Helmet injects the correct
page-specific description at runtime and during prerendering. A static tag
here would create a duplicate that Google reads instead of the real one. -->
The comment is accurate and well-written. A static <meta name="description"> was removed because someone understood that a duplicate description tag means Google reads the wrong one. The comment explains exactly why.
That comment is two lines below a <meta property="og:title"> tag with the same problem — also static, also getting duplicated by React Helmet, also causing Google and social crawlers to see two competing values.
The explanation for why the bug matters is sitting inside the file that still has the bug.
The og:title and og:description tags in index.html have a comment above them: "Open Graph defaults (overridden by SEOHelmet per page)." The word "overridden" is the misunderstanding. Having two tags isn't an override — it's a conflict. The second tag doesn't cancel the first; they coexist in the HTML, and each crawler resolves the conflict on its own terms.
This is a one-line fix repeated twice: delete the static og:title and the static og:description from index.html. The regular <title> tag can stay as a fallback — that's fine, there's only one of those. It's the og: duplicates that are the problem.
Finding #3: The homepage is partly ranking for the wrong Valuefy
While reviewing homepage performance, I pulled the query-level breakdown for the "/" path in GSC to understand what's behind 747 impressions at position 7.9. The expected answer was brand queries for "valuefy." Here's what was there:
| Query | Clicks | Impressions | Position |
|---|---|---|---|
| valuefy | 5 | 251 | 7.4 |
| valuefy app | 1 | 8 | 2.5 |
| valuefy official website | 0 | 12 | 5.7 |
| valuefy dfsa reporting | 0 | 7 | 9.0 |
| valuefy 50+ custodian integrations | 0 | 1 | 9.0 |
| valuefy technologies private limited | 0 | 1 | 37.0 |
"DFSA reporting" and "50+ custodian integrations" are product features of a wealth management platform — Valuefy Technologies Private Limited, an Indian fintech company with a similar name. Their searches are showing up in our GSC data as impressions for the homepage.
Our homepage appears in their brand searches — near page one, in some cases — because we share a name. None of those impressions will ever click. The user is looking for enterprise wealth management software.
This is a small volume effect (maybe 20-25 of the 747 impressions). But it does mean the "7.9 average position" for the homepage is partly pulled from searches that have nothing to do with our product, which makes the headline metric mildly misleading.
What I'm going to do about it
Finish the og:title fix. Delete
<meta property="og:title">and<meta property="og:description">fromclient/index.html. Same logic as the description fix that already happened. Same file. Two lines removed.Audit the automation queue against the click leaderboard. The purchase-order-generator, balance-sheet-generator, and impression-calculator are generating real clicks without automation. The ROI, CAPM, and EPS calculators have been improved multiple times with zero return. Check whether the queue can be reordered toward pages that already have some query demand.
Add Organization schema to the homepage. A proper
@type: Organizationblock withsameAslinks to any social or directory listings that exist. It won't erase the naming overlap with Valuefy Technologies, but it gives Google a cleaner signal about what this site is and who operates it.
The uncomfortable lesson
The og:title bug has been live for seven weeks because fixing it never broke anything. No error, no alert, no test failure — the site works fine with two og:title tags. The duplicate just silently corrupts social previews for every page on the site.
This is what technical debt actually looks like most of the time. Not a visible failure. A quiet mismatch between what the code says it's doing ("Open Graph defaults, overridden by SEOHelmet") and what it's actually doing (shipping two competing tags to every crawler that visits).
The automation ran every night this week. The bug ran alongside it. Every CAPM calculator improvement that ships to Google also ships with a duplicated og:title, which means any social share of that page has a coin-flip chance of showing the wrong title. They've been running in parallel for over a month.
I'll fix it this week. I'll check the og: tags again in the next post. If fixing them shows up in any measurable metric — social shares, referral traffic, anything — I'll report that too. If the data says it made no difference, I'll say that instead.
I'm running these experiments on valuefy.app and writing the findings here as I go. If you're building programmatic SEO, debugging React meta tag issues, or watching automation run alongside unfixed technical debt — drop a comment, I'd be glad 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)