Short notes.With context.

Observations, decisions, and lessons from work in progress.

Latest notes

14 notes

Note

A passing test only proves the present

Layered dark paper landscape with a pale path leading to a small flag in a circle of ochre light

I ran a real end-to-end check after a system stopped producing the outcome I expected. The entire path worked.

That proved the system was working at the moment I tested it. It did not explain the silent period before the test, and it did not make the earlier alarm irrational.

A passing test confirms the present. It does not clear the past.

Note

Staged Directory Rollouts: Preserving Full Semantic Reach Without the Soft-404 Trap

Abstract geometric diagram contrasting active verified nodes with unlinked pipeline placeholders in a staged rollout architecture

When launching an ambitious catalog or reference utility, teams rarely ship every single regional dataset on day one. A staged rollout is the natural engineering choice: ship a verified pilot batch, refine the pipeline, and expand progressively.

This introduces a subtle discovery dilemma.

If your directory only mentions the pilot nodes, search engines evaluate the site as a narrow, localized tool. You miss the opportunity to establish early topical footprint across your full intended catalog scope.

The intuitive shortcut is worse: scaffolding out empty “coming soon” pages for the remaining regions. Search engines quickly flag these unpopulated URLs as soft-404s or thin programmatic sprawl, degrading site-wide crawl quality right at launch.

The clean resolution lies in root-level interface transparency.

Expose the entire intended scope on the main directory index, but enforce a strict architectural boundary:

  1. Unlinked text placeholders: Render pending nodes as static text, completely devoid of anchor tags or route links. If there is no production payload, there must be no reachable URL on the wire.
  2. Explicit editorial state: Label each pending item with transparent progress markers (e.g., Awaiting verification or In production pipeline). This signals human editorial curation rather than abandoned automation.
  3. Crawl budget protection: Zero hollow URLs enter the sitemap or the link graph, keeping error budgets clean.

Search engines parse the text entities across the root index, recognizing the complete national or multi-region scope on day zero. Meanwhile, visitors encounter an honest roadmap rather than broken navigation.

Note

Measuring a Young Domain Against the Wrong Benchmark

Google Search Console performance chart showing steady early baseline impressions on a new site

When managing multiple projects in parallel, it is remarkably easy to misdiagnose a healthy new site as a failure simply because you compare it to the wrong benchmark.

Two months ago, we launched a specialized search utility targeting a narrow, high-friction validation query. Looking at the initial numbers this week, the contrast with our older flagship project felt disappointing. The flagship generates tens of thousands of search impressions and steady daily clicks, while the new site was logging only a couple thousand monthly impressions and sporadic traffic.

The initial feeling was that the new site had failed to gain traction.

When we stopped looking at raw totals and analyzed the underlying dynamics, that diagnosis completely fell apart:

First, total addressable search volume dictates the ceiling. Our primary project targets a broad informational category, a massive pool with over one hundred thousand monthly searches across the market. The new project targets a narrow pre-transaction verification check, which accounts for only two to three thousand monthly searches in the same segments. Comparing raw counts between two completely different intent pools is not benchmarking; it is arithmetic blindness.

Second, a young domain cannot be read like an established one. In the first sixty to ninety days, search engines test pages in different positions, measuring user engagement and verifying that the domain is not abandoned. An average position of 24 on a fresh domain is not a low ceiling. It is a normal starting baseline.

Third, alternative search engines provide an essential quality sanity check. While primary search algorithms subject new domains to extended machine-learning observation periods, secondary engines often rank content based on pure on-page relevance. When we queried the webmaster API for secondary engines, our new site was already ranking on page one, between positions three and seven, for major regional queries.

If an alternative search engine immediately places your pages on the first page, your site is not broken and your content is not low quality. The product is working as intended.

Before concluding that a young project is not working, write down its age and check the actual size of the keyword pool. Most early failures are just impatience disguised as analytics.

Note

A New Search Intent Doesn't Need a New Domain

Infographic comparing domain fragmentation across multiple sites versus consolidated thematic depth on a single domain

While analyzing search terms across our paid ad campaigns and organic queries this week, we uncovered a fascinating keyword cluster. A large group of users were repeatedly searching for a specialized pre-requisite validation check right before completing a primary transaction.

The conversion potential was unmistakable. These users were not idly browsing. They were standing at the final verification step immediately prior to making a high-intent commitment.

Our initial, excited instinct was immediate: buy an exact-match domain, spin up a clean repository, and launch a dedicated micro-site exclusively for that specific verification step.

It felt productive. But it was the classic multi-domain trap.

Whenever solo builders spot an adjacent search intent, the default reaction is to register another URL. You envision a portfolio of hyper-focused micro-sites, each dominating its own distinct keyword corner.

In reality, domain fragmentation actively weakens your position:

First, it divides your link equity. Getting ten high-quality inbound links to one domain gives every subfolder real ranking power. Scattering those same ten links across three separate domains leaves all three underpowered.

Second, it restarts the algorithmic sandbox. A search engine takes 90 to 120 days to observe user signals and establish baseline trust on a fresh domain. Launching a new site forces you to sit through that probation period from day one.

Third, it fragments your attention. You suddenly have three deployment pipelines, three analytics dashboards, three content roadmaps, and three sitemaps competing for limited daily crawl budgets.

The better decision is almost always consolidation.

Instead of launching a separate domain, we integrated that specific verification workflow directly into our primary existing asset. We added dedicated validation sections and regional compliance rules to our existing guides.

The primary site already had crawl trust. The new sections indexed within hours, inherited the domain’s existing authority, and immediately began ranking without starting from scratch.

A new search intent does not need a new domain. It needs dedicated depth on an asset that already has the search engine’s trust.

Note

The Risk of Early Commercial Signals on a Young Domain

Google Search Console graph showing search impressions peaking and suddenly collapsing on a newly launched utility site

When launching a new programmatic utility project, the natural temptation is to monetize as soon as the pages begin indexing. If a search engine is already testing your pages in search overviews and organic snippets, why not put your primary conversion funnels in place?

On a fresh domain with no external authority, that is a dangerous mistake.

In the first thirty days of our new utility site, impressions grew quickly from zero to over a thousand a day. Seeing early traction, we published another batch of regional lookup pages, launched a comprehensive walkthrough guide, and connected the primary header button across every single page directly to a commercial partner offer.

Within four days, our daily impressions fell off a cliff.

Search engines use automated quality classifiers that look closely at site structure and commercial intent. On an authoritative website that has existed for a decade, adding an affiliate link in the main navigation is routine. But on a four-week-old domain with no external links and no verified brand searches, that same link sends an entirely different signal.

The classifier sees dozens of regional pages with similar layouts all funneling visitors into a single commercial partner. Rather than recognizing a helpful free utility, the algorithm categorizes the site as a thin programmatic affiliate funnel. It immediately throttles impressions and removes the site from generative answers.

When this happens, many builders assume the domain is burned and move on to a new project. That is the wrong reaction. There is no manual penalty or index removal; it is simply an automated quality suppression.

To recover, you have to reverse the commercial signals. Remove sitewide commercial calls to action from the top navigation. Put the functional lookup tool at the very top of the page so the user immediately gets the utility they searched for. And instead of generic template text, ground each page with verified primary data, specific regulatory guidelines, and unique reference material.

Give the utility time to prove itself as a utility before demanding it act as an affiliate engine.

Note

Check the Timeline Before Blaming the Algorithm

Google Search Console graph showing generative AI impressions dropping to zero on August 15 ahead of the official August 18 update

When search traffic or AI overview visibility collapses overnight, webmasters almost universally look at the public search news calendar. It feels reassuring to find a neat external narrative. A major spam update or core update rolls out, and we tell ourselves our site was simply caught in the algorithmic crossfire.

We almost fell into that exact trap this month.

Across our search console reporting, our generative AI search impressions took a vertical nose dive. We went from 35 to 50 daily impressions in AI summaries down to 8, and then to a complete flatline of zero. The immediate assumption was obvious: Google had announced its August 2026 Spam Update, so our programmatic utility site had been hit by the rollout.

Then we looked closely at the dates.

The official spam update began on August 18 and concluded on August 21. But our impressions did not drop on August 18. They collapsed on August 15, hitting absolute zero on August 16.

An event that happened on August 18 cannot cause a collapse that took place on August 15. The timeline made the external excuse impossible.

We went back to our git deployment history to see what actually changed around August 10. Five days before the drop, on August 9, we had shipped a heavy commercial landing page and changed the primary sitewide navigation button across the entire site to point directly to an external conversion funnel. The next day, we published another batch of regional reference pages and submitted them to the search index.

Automated quality classifiers take about four to five days to crawl and process structural changes on a new domain. On August 15, the classifier finished its evaluation and flagged the site as a commercial-first destination disguised as a free utility. It stripped our AI overview eligibility instantly.

When the official spam update arrived three days later on August 18, it did not cause the drop. It merely froze the suppressed state in place, making an immediate bounce-back impossible.

Whenever search visibility drops, check your deployment log against the exact date of the telemetry cliff. If the drop started before the official update was announced, the algorithm did not randomly target you. Your own recent changes triggered the filter.

Note

Does Affiliate Marketing Still Work in 2026? $19k in 70 Days with Real Data

Awin affiliate network performance report showing 19,125 USD commission and 112 transactions over 73 days

A common debate in online business right now is whether affiliate marketing is dead. Between search algorithm shifts and AI summaries answering common queries directly on the results page, the traditional affiliate review site is having a difficult time.

Ten weeks ago, in early July 2026, we launched a single-purpose programmatic utility tool on a brand new domain. There was no pre-existing domain authority, no PR campaign, and no backlink outreach.

Here are the unvarnished numbers after 73 days of operation, based directly on our network reporting data.

The 70-Day Baseline: 83 Sales and $14,050 in Commissions

Across our entire publisher account on the affiliate network, 112 transactions generated $19,125 in gross commissions.

Awin affiliate network performance report showing 19,125 USD commission and 112 transactions over 73 days

On this specific new search tool alone, the tracking recorded 85 rows and 83 commissionable sales:

  • Approved and paid: 55 orders ($9,450.00)
  • Pending network review: 28 orders ($4,600.00)
  • Customer cancellations: 2 orders ($350.00)
  • Realized net commissions: $14,050.00

With only two cancellations out of 83 orders, the cancellation rate was 2.41%.

The sales volume grew steadily month over month:

  • July: 20 sales ($3,500.00), averaging 0.65 sales per day.
  • August: 44 sales ($7,350.00), averaging 1.42 sales per day, a 120% increase over July.
  • September (first 11 days): 19 sales ($3,200.00), averaging 1.73 sales per day.

Why Content Blogs Struggle While Utility Tools Convert

Most affiliate guides still recommend publishing 3,000-word comparison articles. The problem with those pages is that users skim past the text, and AI search engines extract the conclusions without sending referral traffic.

Instead of writing articles, we built a free verification and lookup tool. Visitors arrive with an immediate, high-friction question. The tool queries verified public data sources and gives them an answer in two seconds.

When the tool confirms that their query or record is clear, the visitor experiences immediate relief. Right inside that confirmation card, we place a single relevant partner link to help them take the next step.

That single confirmation slot generated 4,085 clicks, 80 sales, and $13,700 in commissions. It achieved a 1.96% conversion rate (one sale every 51 clicks) and an Earnings Per Click (EPC) of $3.35. Over 95% of our revenue came from that single primary market.

By contrast, informational guide pages on the same website received 256 clicks and generated zero sales. People reading informational guides are browsing; people using a functional lookup tool are ready to act.

The 12-Minute Window: Real User Behavior

Analyzing the transaction log revealed how fast utility visitors decide:

  • The median lapse time from click to purchase was 12 minutes.
  • 74.1% of all purchases occurred within 30 minutes of the click.
  • 88.2% occurred within 2 hours.
  • Only 7.1% took longer than 24 hours.

This is not a comparison-shopping audience that spends three days opening tabs. When a user runs a check and gets a clean result, they proceed to checkout immediately.

Device behavior also showed an important pattern. 28.2% of our sales started with a click on a mobile device (iPhone or Android), but 100% of final checkouts were completed on a desktop browser. Maintaining clean affiliate cookies that persist across the session was essential to capturing those conversions.

We ran a controlled paid search pilot on Google Ads for about six weeks to test paid acquisition.

It lost money. Commercial search keyword bids drove customer acquisition cost (CAC) to $222.50 per sale, while our affiliate commission was $175. We stopped the ads in late August.

Meanwhile, organic discovery carried 97.5% of the revenue at zero ad spend:

  • Google Organic: 26 sales ($4,375.00)
  • Bing Organic: 23 sales ($3,900.00)
  • Direct traffic: 7 sales ($1,225.00)
  • Privacy search engines (DuckDuckGo and Yahoo): 6 sales ($1,050.00)

AI assistants represented an unexpected new channel. Referrals from Copilot, Claude, and Gemini generated 8 sales ($1,400.00), about 10% of total revenue. Because large language models need to direct users to functional tools rather than static content, they naturally cite and link utility sites.

The Structural Risks to Keep in Mind

An honest report must also note the systemic vulnerabilities:

  1. Single merchant dependency: 100% of revenue comes from one service provider. If that partner changes terms or pauses tracking, revenue drops to zero overnight.
  2. Single slot fragility: 95% of revenue relies on the lookup success card. If the upstream data provider goes down or throttles requests, the site cannot monetize.
  3. Domain youth: A 70-day-old domain has not weathered multiple core algorithm updates. Early organic rankings can fluctuate.

Affiliate marketing in 2026 is still very viable, but the traditional playbook of long-form review blogs is losing ground. Building a lightweight tool that solves a specific piece of friction in two seconds produces better unit economics and far higher conversion rates than thousands of words of filler.

Note

Serving the answer, not just the tool

Architecture diagram comparing an empty interactive shell versus serving a crawlable semantic answer layer in initial HTML

When building a web utility, the biggest SEO mistake is serving search engines an empty tool shell.

If the output only appears after a visitor clicks a dropdown or drags a slider, the tool might help a human, but search engines see an empty form. The common agency reaction is generating dozens of programmatic landing pages to compensate. A simpler approach is keeping the single page and presenting the underlying structured data directly beneath the tool in semantic HTML. The page stays an interactive utility while serving as a primary answer source.

Relevance is not about keyword repetition or exact-match headings. It works as a direct sequence: clear question, immediate answer, verifiable detail. You do not need a bloated blog post wrapped around a calculator. A one-sentence hero answer, a brief note explaining what the number covers, and a clean comparison table satisfy search intent faster than competitor filler.

Data tables should be semantic structures rather than visual grids. Using descriptive captions, header scopes, distinct row groups, and functional anchor links helps both screen readers and search crawlers parse the dataset. When dynamic data is injected on the server during the initial render, the page stays fresh without triggering continuous rebuilds.

Volatile figures should never be baked into static graphics. Putting dates or current counts inside an image turns the asset obsolete within days and contradicts the live page. Live numbers belong in the HTML markup. If a data snapshot is missing, a plain “data unavailable” notice builds more trust than stale defaults.

For AI search overviews and model citations, you do not need dedicated markup tricks. Models cite concise, unambiguous statements with clear boundaries. Being explicit about what the data measures and what it excludes makes it safe to quote.

On the product side, utility is about reducing friction rather than adding features. One-click copy, clean print layouts, and objective side-by-side differences between options deliver real value. You rarely need accounts, saved histories, or heavy libraries. The ideal flow remains simple: pick an option, read the answer, compare differences, and copy the result.

Note

Technical SEO is a multiplier, not a reason to rank

Every time a Google core update hits, you see the same story: a site loses its search traffic, panics, and calls an agency.

The agency runs an automated audit and sells them on a full rebuild. They point at low PageSpeed scores, old templates, or weak internal links. It is an easy service to sell because code flaws are visible and billable, while fixing actual content relevance or authority is hard.

The problem is that technical SEO does not give Google a reason to rank your pages. It only helps an already useful site perform. Core updates do not penalize your CSS framework or a missing internal link. They penalize content that no longer satisfies search intent.

Technical SEO is a multiplier, not a starting value. If Google decides your content does not deserve to rank, multiplying zero by a 100 PageSpeed score still leaves you with zero.

Note

Starting with a single table before programmatic pages

Architecture comparison showing mass programmatic pages and schema bloat on the left versus a single interactive tool with a static crawlable dataset table on the right

When building a new multi-region search utility, the standard SEO playbook is predictable: generate hundreds of programmatic pages right away and cover every edge with dense schema markup.

We decided to do neither.

In an earlier project, we built out programmatic routes early on. The result was underwhelming. When a domain is brand new with zero authority, search engines tend to ignore large batches of automatically generated pages anyway. Rolling out hundreds of subpages before proving core relevance just adds bloat.

As for schema, modern search and language models already parse clean, semantic HTML without needing extensive JSON-LD scaffolding. In practice, heavy markup often just clutters the document.

Instead, we kept it down to one clear starting point: an interactive dropdown that gives visitors their answer in two clicks, paired with a clean, static summary table right beneath it. The user gets zero fluff, and the crawler gets a crawlable dataset on a single page.

If the core utility earns traction, we can always expand into dedicated pages later. Until then, simpler is better.

Each note has a permanent link.

Back to top

Search notes

↑ ↓ to move · Enter to open · Esc to close