TL;DR. Keyword cannibalization in ASO is when your App Store title, subtitle, and 100-character keyword field repeat the same words. Apple does not stack ranking signal from repetition — it just wastes your character budget. The fix is to treat the three fields as one continuous keyword pool and never repeat a word across them. UK English spelling: cannibalisation. Same problem, same fix.
What “keyword cannibalization” means on the App Store
In SEO (Google), keyword cannibalization usually means two pages on the same site competing for the same query. On the App Store, you only have one product page per app — so “cannibalization” means something different. It refers to your own metadata fields competing with each other for ranking weight on the same keyword.
The three indexed text fields Apple uses for App Store search are:
- App name (title) — 30 characters, heavy ranking weight
- Subtitle — 30 characters, heavy ranking weight
- Keyword field — 100 characters, invisible to users, ranking weight
Cannibalization happens when the same word appears in two or more of those three fields. Apple’s algorithm does not give you more ranking weight for repeating a word. It indexes each word once and ignores the duplicates. So every duplicated word is character budget you spent for zero additional return.
A concrete example
Suppose your title is “FitTracker — Workout & Gym Log” (30 chars).
A common mistake is to write the subtitle as “Workout Log for the Gym” (24 chars). That subtitle is cannibalizing because every meaningful word — Workout, Log, Gym — already appears in the title.
The fix: use the subtitle for terms the title does not cover. Something like “Cardio, Strength & HIIT Plans” (29 chars) gives you four additional keyword tokens that compound with the title.
In the keyword field, applying the same rule: do not repeat FitTracker, Workout, Gym, Log, Cardio, Strength, HIIT, or Plans. Apple already has all of them indexed from your title and subtitle. Use the 100 characters for net-new terms: running,yoga,abs,pilates,trainer,routine,muscle,fitness,exercise,calisthenics.
The same words across all three fields would have wasted ~50 of your 160 total characters. Spread across distinct terms, you cover roughly twice as many keywords for the same character budget.
How to detect cannibalization in your own metadata
A quick audit:
- Copy your title, subtitle, and keyword field into one text document
- Lowercase everything
- Split on whitespace and commas
- Look for duplicate tokens
If you find duplicates, those duplicates are wasting characters. Drop them from the keyword field first (it’s the most flexible field), then reconsider whether the subtitle is pulling its weight.
Common cannibalization patterns to watch for:
- Brand name in keyword field. Your app name is already indexed. Never repeat it in the keyword field.
- Category words in both title and subtitle. “Workout” in both. “Tracker” in both. “App” in both. Each is a wasted slot.
- Plurals and singulars of the same root. Apple stems most plurals automatically. Workout and workouts count as the same token in the algorithm; use only one.
- The word “app”. Almost never worth a slot — nobody searches for “fitness app” expecting an app store result.
Localized cannibalization (the one most teams miss)
If you ship metadata in multiple languages, each storefront has its own 30+30+100 budget. A word that is identical across two languages (most brand names, plus English-origin terms like gym or yoga that appear in many languages) does not need to be repeated in the second locale’s keyword field if it already appears in the first locale’s title and you use cross-localization.
This is the cross-localization trick. Apple indexes keywords from any active locale your app supports. So if your English title contains gym, your German subtitle contains fitness, and your German keyword field contains net-new German terms — your app can rank for the union of all of them in both storefronts.
Most indie apps cannibalize across locales because they translate metadata 1:1 instead of treating the locales as a combined keyword pool. The fix is to map your keyword strategy at the portfolio level (across all locales), not per-locale.
Quick checklist
Before publishing a metadata update, run through this:
- No word appears in both title and subtitle
- No word from the title or subtitle appears in the keyword field
- Plurals are used only once (drop the singular OR drop the plural)
- Brand name appears only in the title
- The word “app” is not in the keyword field
- If localized: no word is repeated identically across two active locales’ keyword fields
What Marteso does about it
The AI Metadata Optimizer in Marteso flags cannibalization automatically. When you edit your title, subtitle, or keyword field, the optimizer:
- Highlights every word that appears in more than one field
- Shows the wasted character count from the duplication
- Suggests net-new replacement terms drawn from your keyword research, sorted by volume and difficulty
For multi-locale setups, the cannibalization check runs across all your active storefronts so you see the portfolio-level conflicts, not just per-locale ones.
Try the Metadata Optimizer in Marteso →