- Hypothesis
- Indexing and ranking of programmatic pages rise with the share of page content that is unique to that page, and there is a threshold below which pages are crawled but not indexed, regardless of sitemap inclusion or internal links.
- Method
- One template, one dataset, [N] variants with controlled unique-content ratios, randomly assigned across comparable entities; tracked on index status, impressions and rankings.
- Measure
- Indexed share per variant, median days to indexed, impressions per page, share of pages with any top-20 ranking for their target query.
- Duration
- 12 weeks post-publication.
Hypothesis
Pages built from a template where only the entity name and a few data fields change will mostly land in "Crawled, currently not indexed." As the proportion of page-specific text, data and structure rises, indexed share and rankings should rise with it. I expect the relationship to be a step, not a straight line: a threshold region where pages flip from ignored to indexed.
What would falsify it: if the thinnest variant indexes and ranks as well as the richest, then on this site the unique-content ratio is not the limiting factor and something else, probably demand or authority, is. If no variant indexes well, the test is inconclusive about the ratio and says more about the site.
Why I tested it
I say repeatedly that programmatic SEO is not a shortcut, and that every page has to solve a real search problem. But "enough unique content" is advice without a number, and clients reasonably ask what the number is. Rather than guess, I wanted to find where the line sits on a real template, with a real dataset, in a real Indian market with the mobile-first, mixed-language search behaviour that comes with it.
The cost of getting this wrong is asymmetric. Too thin and you publish thousands of pages that never index, which also drags on crawl efficiency for the rest of the site. Too rich and you spend on content that was not needed. The programmatic SEO framework needs an evidence-based floor.
Method
Fix the dataset and template
One entity type (for example, a product category by city), one base template, one internal linking pattern, one sitemap. Everything except the unique-content ratio is held constant.
Define the variants
Variant A: boilerplate plus entity name and a data table. Variant B: A plus a short page-specific summary generated from the data. Variant C: B plus a page-specific section of original commentary and a page-specific FAQ. Variant D: C plus unique media and comparison content. The unique share of each variant is measured by diffing against the template, not estimated.
Randomise entities to variants
Entities are stratified by estimated demand so that each variant gets a similar spread of high and low demand targets. No variant gets the easy entities.
Publish in one batch
Same deploy, same sitemap regeneration, same internal links from the relevant hub. No manual indexing requests.
Track
Index status via the URL Inspection API on a fixed cadence, impressions and position from the Search Console API, rankings for each page's primary query from a rank tracker set to the relevant Indian locale and mobile device.
Confounders I am watching: a core update inside the window, seasonal demand shifts in the category, and crawl competition from other publishing on the site. Because the variants are interleaved across entities and published together, a site-wide shift should move all four lines. If one variant alone moves against the others, that is the signal.
Implementation
The template is rendered server-side so that each variant's full content is in the initial HTML. The unique share is computed at build time by stripping the shared template text and measuring what remains as a fraction of visible words. That figure is stored per page and becomes a continuous variable in the analysis, so I can look at the relationship across the whole range, not just four buckets.
# per-page build metadata (pseudocode)
page.variant = "C"
page.words_total = count_visible_words(html)
page.words_shared = count_words_in_template_boilerplate(html)
page.unique_ratio = (words_total - words_shared) / words_total
page.target_query = "{entity} {modifier}"
All page-specific text in variants B through D is written or generated from the page's own data and reviewed for accuracy; I am not testing whether low-quality filler helps, because I already know how that ends. Internal links to each page are identical in count and source, which the internal linking experiment shows matters on its own.
How to read the results
The headline chart is indexed share against unique ratio, with each page as a point and the four variants as groups. If there is a threshold, it shows as a jump in the points rather than a gentle slope. The second chart is impressions per page by variant over time, which tells me whether the pages that indexed also earned visibility.
I will treat a difference between variants as real only if it is larger than the spread within a variant. If the richest variant indexes well but ranks for nothing, that is a demand problem, not a content-ratio problem, and I will say so rather than claim the ratio "worked."
Data
Per-variant indexation logs and search impression datasets are being tracked weekly.
Result
Measuring index retention and search impression thresholds across data density variants. Full findings will be detailed upon conclusion.
What I learned
Initial indexation signals strongly favour pages with unique structured data over thin templated shells; full analysis to follow.
Conclusion
Concrete minimum-attribute thresholds for programmatic deployment will be published upon test completion.
The threshold, if there is one, will be specific to this site, this template and this category. The method is what travels. If you are planning a build, the programmatic SEO guide explains why unique value per page is the whole game, and the programmatic build case study shows how the template decisions play out on a live project.