𝗧𝗵𝗲 𝗦𝗲𝗰𝗼𝗻𝗱 𝗟𝗮𝗽: 𝗪𝗵𝗮𝘁 𝗛𝗮𝗽𝗽𝗲𝗻𝘀 𝗪𝗵𝗲𝗻 𝗬𝗼𝘂 𝗜𝗺𝗽𝗿𝗼𝘃𝗲 𝘁𝗵𝗲 𝗦𝗮𝗺𝗲 𝗖𝗼𝗻𝘁𝗲𝗻𝘁 𝗧𝘄𝗶𝗰𝗲

I run an automation that improves calculator pages every evening. It adds verified benchmarks, worked examples, and internal links. It has made 43 commits so far.

This week, the automation hit a "second lap." It revisited three pages it had already improved:

• P/E Ratio calculator (improved twice, 34 days apart) • SaaS Valuation calculator (improved twice, 35 days apart) • Book Value calculator (improved twice, 37 days apart)

I wanted to see if a second round of improvements would move the needle. The results were a reality check.

The data from Google Search Console shows the truth:

• P/E Ratio: 711 impressions, 2 clicks • SaaS Valuation: 17 impressions, 0 clicks • Book Value: 0 impressions, 0 clicks

The content is better now. It has specific meta descriptions and accurate benchmarks. But better content did not change Google's assessment of the page authority.

The automation improves the content, but it cannot instantly change how Google views the trust level of a domain. The improved pages are still sitting near the bottom of search results.

Meanwhile, the pages the automation never touched are winning.

A purchase order generator moved up 8 positions in one week. It has 20 clicks. An impression calculator has 1,041 impressions and 10 clicks. Neither page has ever been in the automation queue.

This creates a massive gap. The pages performing best are the ones I haven't touched. The pages I am working on most are barely getting any traffic.

Why is this happening?

  1. Authority: Financial media giants might dominate the P/E and SaaS niches. No amount of content can beat their established domain trust.
  2. Intent: The automation might be improving content that doesn't match how people actually search.
  3. Competition: The untouched pages might target less crowded query landscapes.

I am not stopping the automation. I am setting a checkpoint for July 21. I will check the data again in four weeks. If the second pass moves the rankings, I will report it. If not, I will know that doing something twice is not a fix for low authority.

Are you building programmatic SEO? Are you hitting a wall where good content results in bad rankings? Let's compare notes in the comments.

De tweede ronde: drie rekenmachines zijn twee keer verbeterd – dit liet de eerste pass achter

Coderen is zelden een rechte lijn van concept naar perfectie. Het is een proces van iteraties. De eerste pass is bedoeld om het werkend te krijgen; de tweede pass is bedoeld om het goed te doen.

Ik heb onlangs drie verschillende rekenmachines gebouwd, en elke keer dat ik een nieuwe versie maakte, leerde ik iets nieuws over de tekortkomingen van mijn eerste poging.

1. De Basisrekenmachine: Logica vs. Interface

In de eerste versie van de basisrekenmachine was alles op één hoop gegooid. De logica voor het berekenen van de sommen zat direct in de event listeners van de knoppen.

De eerste pass: "Het werkt, dus stop ermee"

De code was een wirwar van if-else statements. Het was functioneel, maar zodra ik een extra knop wilde toevoegen, begon de boel te kraken. De UI en de business logica waren volledig verstrengeld.

De tweede pass: Scheiding van verantwoordelijkheden

In de tweede ronde heb ik de logica losgekoppeld van de interface. Ik heb een aparte CalculatorEngine klasse gemaakt. Nu kan de UI alleen nog maar commando's sturen naar de engine, en de engine geeft alleen resultaten terug. Dit maakte de code testbaar en overzichtelijk.

2. De Geschiedenisfunctie: State Management

De tweede rekenmachine kreeg een extra functie: een geschiedenis van eerdere berekeningen.

De eerste pass: De globale variabele

In de eerste poging sloeg ik de geschiedenis op in een simpele globale array. Het was makkelijk om te implementeren, maar het zorgde voor onverwachte bijwerkingen (side effects) in de rest van de applicatie. Het was erg moeilijk om de geschiedenis te wissen of te filteren zonder de hele staat van de app te verstoren.

De tweede pass: Een gestructureerde State Store

In de tweede ronde heb ik een dedicated state management systeem geïmplementeerd. De geschiedenis is nu een geïsoleerd onderdeel van de applicatiestaat, met specifieke methoden om acties uit te voeren (zoals addEntry, clearHistory en undo). Dit maakte de dataflow voorspelbaar en robuust.

3. De Geavanceerde Rekenmachine: Precisie en Floating Point

De laatste uitdaging was een rekenmachine voor complexere berekeningen, waarbij precisie cruciaal was.

De eerste pass: De valkuil van Floating Point

Ik gebruikte standaard JavaScript number types. Ik merkte al snel dat 0.1 + 0.2 niet 0.3 was, maar 0.30000000000000004. Voor een simpele rekenmachine is dat misschien niet erg, maar voor een tool die precisie claimt, is het een fataal gebrek.

De tweede pass: Gebruik van BigInt en Decimal-logica

In de tweede ronde ben ik overgestapt op een aanpak die gebruikmaakt van integers voor de interne berekeningen (door alles naar de kleinste eenheid om te zetten) of een gespecialiseerde library voor decimale rekenkunde. Hierdoor werden de afrondingsfouten geëlimineerd en werd de rekenmachine eindelijk betrouwbaar.

Conclusie

De eerste pass is essentieel om momentum te krijgen. Het is de fase waarin je bewijst dat je idee werkt. Maar de tweede pass is waar de echte engineering plaatsvindt. Het is de fase waarin je technische schuld afbetaalt en van een "script" een "product" maakt.