← Launch playbook

ASO

August 2, 2026 · 3 min read

CPP A/B testing on the same keyword index: a cannibalization playbook

A/B-testing custom product pages on the same keyword index as the default page can cannibalize organic ranking — here is the mitigation list solo founders ship before the test starts.

Custom product pages are powerful because they let you swap the visual and the copy a user lands on without changing the keywords the store indexes you for. That second clause is also the trap. A custom product page shares the keyword index with your default product page — every keyword the CPP targets is a keyword the default page is already ranking for, for better or worse.

If you have not read the test-design rules yet, start at the CPP A/B testing playbook. Everything below assumes you already pick one variable per test, run for a fixed fourteen-day window, and read cost-per-install over raw install-rate lift to absorb traffic asymmetry.

The cannibalization risk is structural. App Store and Play Console both index a custom product page against every keyword in the page's metadata — title field, subtitle, short description, and the keyword field you ship alongside the listing. A CPP that wins paid traffic on one of those terms can outrank the default page on the same term in organic search, because the store sees the CPP as a second listing competing for the same keyword and assigns relevance based on whichever page's metadata most closely matches the query.

1. Distinct keyword angle per CPP. Each custom product page you run should target a keyword angle that does not overlap the default page's primary index — pick the angle first, design the CPP second, then ship it. Use the sixty-minute keyword research pass to enumerate the angles you can actually rank for; the keyword set you ship the CPP against is the subtraction of the default page's primary index from that list, not a copy of it.

2. Isolated ad-set traffic splitting. The test traffic must move through a dedicated ad set whose keywords do not collide with the default page's organic ranking positions — otherwise the paid impressions bleed into the indexed page's relevance signal and the test result stops being a test result. The read is install-rate within the ad set, not store-wide install-rate; the wider read belongs to the cost-per-install normalisation the prior playbook already covers.

3. Post-test CPP retirement. When a test resolves, do not leave the losing variant live for users to find through search. Ship a thirty-day sunset for the loser — archive the metadata, redirect the store URL, and surface the winner in the default page's metadata the same week. Leaving both pages indexed against overlapping keywords erodes the default page's ranking faster than the test ever earned it back.

The four steps — recap the A/B testing playbook, isolate the keyword angle, silo the ad set, retire the loser — take most of an afternoon and are the difference between a CPP test that earns its spend and a CPP test that cannibalises the listing you spent a week building. The keyword research post covers step two; the A/B testing playbook covers everything else.

Loading the next step…

More from the playbook

Keep reading.