← Binderdex dev log

2026-08-28

A controlled card indexation pilot goes live

dataproductgrowthsolo-founder

Starting a controlled indexation pilot, one card at a time

BinderDex has a pile of card pages that Google has crawled but not indexed. They sit in "Crawled, currently not indexed" limbo, which is Google's polite way of saying "I looked but I am not convinced." Today's commit kicks off a controlled experiment to figure out what actually moves the needle.

The setup

The commit adds a card indexation cohort: 20 card pages split into 10 interventions and 10 controls. The intervention group gets additional editorial context on each card page: a collector-oriented paragraph naming the card, its set, its rarity, and the variants BinderDex tracks in its price history. The control group gets nothing new. Both groups were captured against a Google Search Console baseline from August 20, and measurement dates are pinned for 14, 28, and 56 days out.

The intervention cards were chosen deliberately. Each one maps to a Pokémon species page on BinderDex, so the editorial context can link the card to its Pokédex entry. The control cards were chosen to be comparable in profile but without that species mapping. One Tag Team card names three species, so it has no single Pokémon destination and its pokemonSlug is null rather than guessed.

Why a controlled pilot instead of just shipping context everywhere

If you add editorial context to every card page at once and indexing improves, you cannot tell which part of the context mattered. Was it the rarity callout? The set link? The price history paragraph? The internal link to the Pokédex? A controlled pilot with 10 and 10 lets you compare two groups that differ by exactly one variable. The measurement dates are spread out so you can see whether the effect is immediate, delayed, or imaginary.

The rollout date is pinned to today. The context paragraph is generated from the card's own metadata: name, card number, set name, set code, rarity, and artist. Here is the shape of the generated paragraph, with the card values templated in:

// Context paragraph builder, simplified
const identity = [
  card.name,
  card.cardNumber ? `#${card.cardNumber}` : null,
  card.setName ? `from ${card.setName}` : null,
  card.setCode ? `(${card.setCode})` : null,
].filter(Boolean).join(" ");

// "Charizard #4 from Base Set (base1)."
// "Illustrated by Mitsuhiro Arita. Holo Rare."

The paragraph is one sentence of identity, one sentence of facts (rarity, illustrator), and one sentence about the price history variants tracked on the page. The editorial link picks a relevant collector guide based on the card's traits: full art cards link to the rarity guide, promos link to the set symbols guide, Team Rocket cards link to the set symbols guide too.

What happens next

The pilot is live as of today. The measurement dates are September 11, September 25, and October 23. If the intervention group shows better indexation than the control group at the 14-day mark, the context paragraph gets rolled out to all card pages. If there is no difference, the experiment told us something useful too: the editorial context was not the blocker, and the indexing problem lives somewhere else.

this is the build log of binderdex · www.binderdex.com · all entries · essays