
Keyword Optimizer
- 3 installs
- 591 repo stars
- Updated July 24, 2026
- rshankras/claude-code-apple-skills
Optimizes App Store app title, subtitle, and keyword field for discoverability, including new-app launches, new markets, and safe optimization for apps with existing traffic.
About
Optimizes an app's title, subtitle, and keyword field for App Store search discoverability, with safe modes for apps that already have traffic. A developer uses it when launching, improving rankings, or entering new markets/languages.
- Safe optimization mode for apps with existing traffic
- Supports new-market and new-language keyword expansion
Keyword Optimizer by the numbers
- 3 all-time installs (skills.sh)
- +1 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #1,624 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill keyword-optimizerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3 |
|---|---|
| repo stars | ★ 591 |
| Last updated | July 24, 2026 |
| Repository | rshankras/claude-code-apple-skills ↗ |
What it does
Optimizes App Store app title, subtitle, and keyword field for discoverability, including new-app launches, new markets, and safe optimization for apps with existing traffic.
Files
Keyword Optimizer
Optimize app title, subtitle, and keywords for maximum App Store discoverability.
When This Skill Activates
- User is launching a new app
- User wants to improve search rankings
- User asks about ASO (App Store Optimization)
- User is entering new markets/languages
- User wants to analyze keyword opportunities
- User needs safe optimization for existing apps
Reference Files
Before optimizing, load these reference materials:
| File | Purpose |
|---|---|
| keyword-criteria.md | Popularity/Difficulty sweet spots, opportunity scoring |
| advanced-tactics.md | Cross-localization, screenshot indexing, velocity boost |
| existing-app-strategy.md | Safe optimization for apps with existing traffic |
Information Gathering
Before optimizing, ask about:
1. App Identity
- What does the app do in one sentence?
- What category is it in?
- What's the current app name (if exists)?
2. Target Keywords
- What would users search to find this app?
- What problem words would they use?
- Any branded terms to include?
3. Competition
- Main competitors?
- What keywords do they target?
- Where can you realistically compete?
4. Goals
- Brand awareness vs. category traffic?
- Specific markets to prioritize?
Keyword Strategy
Where Keywords Count
| Field | Limit | Weight | Notes |
|---|---|---|---|
| App Name | 30 chars | Highest | Most valuable real estate |
| Subtitle | 30 chars | High | Visible in search, below name |
| Keywords | 100 chars | Medium | Not visible to users |
| Description | 4000 chars | Low* | *Apple says indexed, debated |
Keyword Types
1. Branded - Your app name, company name 2. Category - Generic terms (e.g., "todo app", "weather") 3. Feature - Specific functionality (e.g., "offline maps") 4. Problem - User pain points (e.g., "forget tasks") 5. Long-tail - Specific phrases (e.g., "minimalist habit tracker")
Optimization Process
Step 1: Keyword Research
Generate Initial List:
1. Brainstorm 50+ keywords
2. What would YOU search for this app?
3. Check competitor names/subtitles
4. Use autocomplete suggestions
5. Consider misspellings users makeResearch Tools:
- App Store Search Autocomplete
- AppFollow, Sensor Tower, AppTweak (paid)
- Google Keyword Planner (related terms)
- Competitor subtitle/keyword analysis
Step 2: Prioritize Keywords
Rate each keyword on:
| Factor | Question |
|---|---|
| Relevance | Does it accurately describe your app? |
| Volume | Do people actually search this? |
| Difficulty | Can you realistically rank? |
| Intent | Will searchers want your app? |
Priority Matrix:
High Volume + Low Difficulty = 🎯 Target First
High Volume + High Difficulty = 💪 Long-term Goal
Low Volume + Low Difficulty = ✅ Easy Wins
Low Volume + High Difficulty = ❌ SkipStep 3: Allocate Keywords
App Name (30 characters):
[Brand Name] - [Top Keyword Phrase]
or
[Brand Name]: [Value Proposition]
Examples:
"Notion - Notes & Docs"
"Calm: Sleep & Meditation"
"Fantastical - Calendar & Tasks"Subtitle (30 characters):
[Second Priority Keywords] / [Unique Value]
Examples:
"Focus Timer & Daily Planner"
"Simple Habit Building"
"Weather Radar & Forecasts"Keywords Field (100 characters):
Rules:
- Comma-separated, NO spaces after commas
- No plurals (Apple handles it)
- No duplicates from name/subtitle
- No category name (already indexed)
- Single words perform better than phrases
Example:
"timer,pomodoro,focus,concentration,study,productivity,work,session,break,technique"Character Optimization
Maximize 100 Characters
Bad (wastes characters):
task manager, todo list, productivity app, reminder app, checklistGood (efficient):
task,todo,productivity,reminder,checklist,planner,organize,gtd,schedule,dailySavings:
- Remove spaces after commas
- Don't repeat words in different forms
- Skip obvious words (app, free, best)
Word Combinations
Apple combines words from all fields:
Name: "Focus Timer"
Subtitle: "Pomodoro Technique"
Keywords: "study,productivity,work,session"
Searchable combinations:
- "focus timer"
- "pomodoro timer"
- "focus productivity"
- "study timer"
- "work focus"
(and more...)Cross-Field Deduplication
Apple indexes words from all three fields for the same locale. A word only needs to appear once — putting it in multiple fields wastes characters and provides zero ranking benefit.
Priority Cascade
Title (30 chars) → Highest search weight
↓ words flow down
Subtitle (30 chars) → High search weight
↓ words flow down
Keywords (100 chars) → Medium search weightThe rule: If a word appears in your Title, do not repeat it in Subtitle or Keywords. If a word appears in your Subtitle, do not repeat it in Keywords. Apple already indexes it from the higher-weight field.
Why This Matters
Every duplicated word steals characters from the Keywords field where you could fit new discoverable terms. With only 100 characters, even one wasted word costs you reach.
Validation Process
For each locale, extract every word from all three fields and check for overlaps:
Step 1: List all words in Title
Step 2: List all words in Subtitle → flag any that appear in Title
Step 3: List all words in Keywords → flag any that appear in Title OR Subtitle
Step 4: Remove flagged words from lower fields
Step 5: Replace removed words with new keyword opportunitiesBefore & After Example
❌ BEFORE (duplicated words waste 23 characters):
Title: "Focus Timer - Stay Productive"
Subtitle: "Pomodoro Timer & Focus Sessions"
Keywords: "timer,focus,pomodoro,productive,study,work,session,break"
Duplicates:
"timer" — in Title AND Subtitle AND Keywords
"focus" — in Title AND Subtitle AND Keywords
"pomodoro" — in Subtitle AND Keywords
"productive" — in Title ("Productive") AND Keywords
"session" — in Subtitle ("Sessions") AND Keywords
Wasted: 5 keyword slots = ~38 characters lost
✅ AFTER (zero duplication, 5 new keywords gained):
Title: "Focus Timer - Stay Productive"
Subtitle: "Pomodoro Technique & Deep Work"
Keywords: "study,concentration,interval,tomato,distraction,block,exam,revision,flowstate,desk"
New searchable combinations gained:
"focus concentration" "timer interval"
"study timer" "deep focus"
"exam study" "pomodoro technique"Quick Dedup Check
When generating keyword recommendations, always verify:
| Check | Rule |
|---|---|
| Title word in Subtitle? | Remove from Subtitle |
| Title word in Keywords? | Remove from Keywords |
| Subtitle word in Keywords? | Remove from Keywords |
| Plural/singular variant across fields? | Keep only in highest field |
| Stop words (a, the, and, for)? | Don't include anywhere — auto-indexed |
Common Mistakes
❌ Don't Do This:
- Using spaces after commas in keywords
- Duplicating words across fields
- Including your category name
- Using competitor brand names
- Adding "app" or "application"
- Including "free" (filterable separately)
- Using special characters or emoji
- Repeating singular/plural forms
✅ Do This:
- Research before guessing
- Prioritize relevance over volume
- Update keywords quarterly
- Track ranking changes
- Localize keywords per market
Keyword Template
APP NAME STRATEGY
━━━━━━━━━━━━━━━━━
Current: [existing name or blank]
Proposed: [Brand] - [Keywords]
Characters: [X/30]
Primary keywords: [list]
SUBTITLE STRATEGY
━━━━━━━━━━━━━━━━━
Current: [existing subtitle or blank]
Proposed: [keyword-rich subtitle]
Characters: [X/30]
Secondary keywords: [list]
KEYWORDS FIELD (100 chars)
━━━━━━━━━━━━━━━━━━━━━━━━━
Proposed: keyword1,keyword2,keyword3,...
Characters: [X/100]
EXPECTED COMBINATIONS
━━━━━━━━━━━━━━━━━━━━━
• [combination 1]
• [combination 2]
• [combination 3]
...Localization Strategy
Priority Markets by Revenue
1. 🇺🇸 United States (English) 2. 🇨🇳 China (Simplified Chinese) 3. 🇯🇵 Japan (Japanese) 4. 🇬🇧 UK (British English - can differ!) 5. 🇩🇪 Germany (German) 6. 🇫🇷 France (French) 7. 🇰🇷 South Korea (Korean) 8. 🇪🇸 Spain (Spanish) 9. 🇮🇹 Italy (Italian) 10. 🇧🇷 Brazil (Portuguese)
Localization Tips
- Don't just translate—research local search terms
- Some markets search in English even for local apps
- Character limits may be tighter in some languages
- Hire native speakers to verify keywords make sense
- Consider cultural differences in app usage
Tracking & Iteration
What to Track
- Keyword rankings (use ASO tools)
- Impressions (App Store Connect)
- Conversion rate
- Download sources
When to Update
- Weekly: Check ranking changes
- Monthly: Assess underperforming keywords
- Quarterly: Major keyword refresh
- Seasonally: Add seasonal keywords
A/B Testing
App Store Connect allows testing:
- App icons
- Screenshots
- App previews
Use Product Page Optimization to test different approaches.
Quick Reference
Prohibited Terms
- "Free" (use pricing filter instead)
- "#1" or "best" without verification
- Competitor names
- "App" or "application"
- Pricing information
Always Include
- Core functionality words
- Problem/solution words
- Category-relevant terms
- Action verbs users would search
Character Limits
App Name: 30 characters
Subtitle: 30 characters
Keywords: 100 characters
Description: 4000 characters (low SEO value)Indie Developer Strategy
For building apps that generate $200-2,000/month:
The Sweet Spot Formula
Target keywords where:
- Popularity > 20 (enough traffic)
- Difficulty < 60 (beatable competition)
Ideal: Popularity 25-50, Difficulty < 45Process
1. Find underserved keywords using ASO tools (Astro, AppTweak) 2. Build simple, single-feature apps around those keywords 3. Double down on winners, abandon losers 4. Portfolio effect compounds (30 apps × $500 = $15k/month)
See keyword-criteria.md for detailed scoring and evaluation.
Advanced Tactics Summary
Cross-Localization (Double Keywords)
Add Spanish (Mexico) locale with English keywords for US market. See advanced-tactics.md for all locales.
Screenshot Text Indexing (June 2025)
Apple OCR reads screenshot captions for keyword ranking. Put keywords in top/bottom of screenshots.
Existing App Optimization
Never change what's working. Use phased rollout. See existing-app-strategy.md for safe optimization.
Advanced ASO Tactics
Hidden strategies that most developers don't know. These can significantly boost discoverability.
1. Cross-Localization (10x Your Keywords)
Apple indexes keywords from multiple locales per storefront. Each additional locale gives you up to 160 extra indexable characters (30 title + 30 subtitle + 100 keywords). For the US alone, that's up to 1,440 bonus characters.
US App Store — 10 Indexed Locales
| # | Locale | Code | Notes |
|---|---|---|---|
| 1 | English (US) | en-US | Primary |
| 2 | Spanish (Mexico) | es-MX | Most commonly used secondary |
| 3 | Arabic | ar | |
| 4 | Chinese (Simplified) | zh-Hans | |
| 5 | Chinese (Traditional) | zh-Hant | |
| 6 | French | fr | |
| 7 | Korean | ko | |
| 8 | Portuguese (Brazil) | pt-BR | |
| 9 | Russian | ru | |
| 10 | Vietnamese | vi |
How to Use
In App Store Connect, add secondary localizations with English keywords (you don't need to translate — English words index for the US market regardless of which locale they're in):
English (US) Keywords:
roommate,group,cost,trip,tab,owe,money,tracker,pay,debt
Spanish (MX) Keywords (English!):
apartment,utilities,travel,vacation,dinner,friends,shared,divide,fair,easy
Portuguese (BR) Keywords (English!):
budget,household,groceries,restaurant,rent,settle,balance,fair,receipt,reimburse
Arabic Keywords (English!):
colleague,lunch,cab,uber,airbnb,weekend,event,party,wedding,gift
... repeat for remaining locales with NEW unique keywords each timeRules
- No duplicate words across ANY locale — each word is counted only once even across locales, so repetition provides zero ranking boost
- Words from different locales DON'T combine into phrases (only words within the same locale combine)
- You CAN use English in any locale if targeting an English-speaking market
- Apply the same Title → Subtitle → Keywords dedup cascade within each locale
- Prioritize your highest-value keywords in en-US (highest weight), use secondary locales for long-tail and supplementary terms
Cross-Localization for All Major Markets
| Market | Primary Locale | Secondary Locales Indexed |
|---|---|---|
| United States | English (US) | Spanish (MX), Arabic, Chinese (Simplified), Chinese (Traditional), French, Korean, Portuguese (BR), Russian, Vietnamese |
| Canada | English (Canada) | French (Canada) |
| United Kingdom | English (UK) | — (single locale) |
| Australia | English (Australia) | — (single locale) |
| Mexico | Spanish (Mexico) | English (US) |
| Brazil | Portuguese (Brazil) | English (US) |
| Japan | Japanese | English (US) |
| South Korea | Korean | English (US) |
| China (Mainland) | Chinese (Simplified) | English (US) |
| Taiwan | Chinese (Traditional) | English (US) |
| Germany | German | English (UK) |
| France | French | English (UK) |
| Spain | Spanish (Spain) | English (UK), Catalan |
| Italy | Italian | English (UK) |
| Netherlands | Dutch | English (UK) |
| Portugal | Portuguese (Portugal) | English (UK) |
| Russia | Russian | English (UK) |
| India | English (India) | Hindi |
| Switzerland | German (Switzerland) | French, Italian, English (UK) |
| Belgium | Dutch (Belgium) | French (Belgium) |
| Sweden | Swedish | English (UK) |
| Norway | Norwegian | English (UK) |
| Denmark | Danish | English (UK) |
| Finland | Finnish | English (UK) |
Key pattern: English (UK) is the fallback for most European markets. English (US) is the fallback for most Asian and Latin American markets.
Implementation Priority
For an English-language app targeting the US market:
Phase 1 (Day 1): Set up en-US with your best keywords
Phase 2 (Day 1): Add es-MX with next-best English keywords
Phase 3 (Week 1): Add pt-BR, fr, ko with more English keywords
Phase 4 (Week 2): Add zh-Hans, zh-Hant, ar, ru, vi to fill remaining slots
Phase 5 (Week 3): If targeting EU/Asia, add en-UK keywords for European reachCharacter Budget Calculator
US Market Total Indexable Characters:
10 locales × (30 title + 30 subtitle + 100 keywords) = 1,600 characters
Minus primary en-US: = 1,440 bonus characters
Minus realistic dedup overhead (~15%): ≈ 1,220 usable bonus characters
That's 12x your single-locale keyword capacity.2. Screenshot Text Indexing (June 2025)
Apple now uses OCR to read screenshot captions and indexes them for search.
What Changed
Before: Screenshots = conversion only
Now: Screenshots = conversion + keyword rankingWhere Apple Scans
Apple OCR focuses on top and bottom of screenshots:
┌─────────────────────┐
│ "SPLIT BILLS FAST" │ ← TOP: Keywords here
│ │
│ [App UI] │
│ │
│ "With roommates" │ ← BOTTOM: Keywords here
└─────────────────────┘Caption Strategy
| Old Caption (Bad) | New Caption (Keyword-Rich) |
|---|---|
| "Easy to use!" | "Split Bills Instantly" |
| "Track everything" | "Track Shared Expenses" |
| "Simple & fast" | "Settle Up with Friends" |
Important Notes
- Keywords in screenshots DON'T compete with metadata keywords
- Apple EXPECTS keyword repetition in screenshots (unlike metadata)
- Use your most important keywords in first 2 screenshots
- Reported 22% boost in search visibility within 30 days
3. In-App Events (Free Featuring)
Apple allows 5 live events that appear in search results. Most developers ignore this.
Benefits
- Events get separate search indexing
- Can appear in "Events" tab = extra visibility
- Apple sometimes features interesting events
- Re-engages existing users
Event Ideas by Category
| Category | Event Idea |
|---|---|
| Finance | "New Year Budget Challenge" |
| Health | "30-Day Fitness Challenge" |
| Productivity | "Productivity Week" |
| Education | "Back to School Special" |
| Games | "Weekend Tournament" |
Event Metadata = More Keywords
Event title and description are indexed separately from your app's main keywords.
4. First 48 Hours Velocity Boost
Apple gives new apps/updates a temporary ranking boost. Maximize it:
Launch Strategy
1. Have friends/family download on Day 1 2. Share on social media immediately 3. Email your list on launch day 4. Coordinate with any press/coverage
Update Strategy
- Don't waste updates on bug fixes alone
- Bundle bug fixes with keyword changes
- Time updates for when you can promote them
5. Manipulate "Most Helpful" Reviews
Hidden feature: Long-press any review → Mark as "Helpful"
Strategy
1. Find your best 5-star reviews 2. Long-press each one 3. Mark as "Helpful" 4. They'll rise to "Most Helpful" section
Your top 3 "most helpful" reviews show first to potential users.
6. UK English for Extra Keywords
Add English (UK) localization with different keywords. These index for:
- United Kingdom
- Partially for other EU countries
US vs UK Variations
| US Term | UK Term |
|---|---|
| roommate | flatmate |
| apartment | flat |
| vacation | holiday |
| check | cheque |
| color | colour |
| organization | organisation |
7. Left-to-Right Keyword Weight
Apple's algorithm reads title/subtitle left to right and gives more weight to words that appear first.
Examples
Weaker: Bills Split - Expense App
Stronger: Expense Split - Settle Up
↑ Most important word firstApplication
- Put your primary keyword FIRST in title
- Put secondary keyword FIRST in subtitle
- Front-load your keyword field too
8. Singular vs Plural (Don't Waste Space)
Apple treats these as equivalent:
bill = bills
expense = expenses
tracker = trackersNever include both forms — it wastes precious characters.
9. Stop Words Are Auto-Indexed
Don't waste keyword space on:
a, an, the, and, for, with, of, to, by, app, applicationApple indexes these automatically.
10. Review Keywords = Ranking Boost
When users mention keywords in reviews, it can boost ranking.
Prompt Strategy
"If you love splitting bills with roommates,
please leave a review!"Natural keyword inclusion in reviews = organic boost.
11. Conversion Rate Affects Ranking
Apple tracks impressions → downloads ratio. Higher conversion = higher ranking.
Improve Conversion
- Better icon (A/B test with Product Page Optimization)
- First screenshot is most important (70% decide from it alone)
- First 3 words of subtitle are visible in search results
Quick Reference Checklist
Zero-Risk Additions
- [ ] Add all 9 secondary US locales (es-MX, ar, zh-Hans, zh-Hant, fr, ko, pt-BR, ru, vi) with unique English keywords
- [ ] Add en-UK locale with extra keywords (for European market reach)
- [ ] Update screenshot captions with keywords
- [ ] Create In-App Events
- [ ] Mark best reviews as "Helpful"
Optimization Rules
- [ ] No duplicate words across fields (Title → Subtitle → Keywords cascade)
- [ ] No duplicate words across locales (each word counted once globally)
- [ ] No spaces after commas in keywords
- [ ] No stop words wasting space
- [ ] No singular AND plural forms
- [ ] Primary keywords at START of title/subtitle
- [ ] Most important keywords in first 2 screenshots
Tracking
- [ ] Note baseline metrics before changes
- [ ] Check rankings weekly
- [ ] Update keywords every 4-6 weeks
- [ ] Swap underperforming keywords (rank >100)
Sources
Existing App Optimization Strategy
How to improve ASO for apps that already have downloads without risking existing traffic.
The Risk
When optimizing an existing app:
- You can see rankings but not which keywords drive actual downloads
- Changing keywords that are working can kill traffic
- Recovery can take weeks if you make mistakes
Identify Traffic Sources
Method 1: Math-Based Estimation
Traffic from a keyword ≈ Popularity × Position Factor
| Position | Approx. Click Share |
|---|---|
| #1-3 | 40-60% of searches |
| #4-10 | 10-25% of searches |
| #11-30 | 2-8% of searches |
| #30+ | <1% of searches |
Method 2: Opportunity Score
Score = (Popularity × 2) - Difficulty
High Score + Good Rank = Likely driving traffic
Low Score + Any Rank = Probably not driving trafficAnalysis Template
| Keyword | Pop | Rank | Est. Traffic | Protect? |
|---|---|---|---|---|
| [keyword] | [X] | #[Y] | High/Med/Low | Yes/No |
Example:
| Keyword | Pop | Rank | Est. Traffic | Protect? |
|---|---|---|---|---|
| settle up | 29 | #4 | HIGH | YES |
| expense split | 5 | #6 | Low | No |
| settle | 21 | #18 | Medium | YES |
| split bill | 21 | #211 | None | No |
The Golden Rule
Never touch what's working.
KEEP (don't change):
- Keywords where you rank Top 10 + Popularity >15
- Your app title if ranking well for branded terms
SAFE TO CHANGE:
- Subtitle (if current keywords not ranking well)
- Keyword field (low-ranking keywords only)
- Add new locales (purely additive)
- Screenshot captions (purely additive)Phased Rollout Plan
Phase 1: Additive Only (Week 1-2)
Zero Risk Actions:
- [ ] Add Spanish (Mexico) locale with new keywords
- [ ] Add English (UK) locale with new keywords
- [ ] Update screenshot captions with keywords
- [ ] Create 1-2 In-App Events
These don't affect existing rankings — they only ADD opportunities.
Phase 2: Monitor & Measure (Week 3-4)
Track in your ASO tool:
- [ ] Did new keywords start ranking?
- [ ] Did downloads increase?
- [ ] Did existing rankings stay stable?
Baseline Tracking Template:
Date: ___________
Daily downloads: ___
Keyword 1: ___ rank #___
Keyword 2: ___ rank #___
Keyword 3: ___ rank #___Phase 3: Careful Optimization (Week 5-6)
Only if Phase 2 shows stable/improved metrics:
- [ ] Update subtitle only (keep title same)
- [ ] Replace lowest-performing keywords in keyword field
- [ ] Keep all top-ranking keywords untouched
Phase 4: Evaluate Full Changes (Week 7+)
Only if downloads stable/increased:
- Consider title adjustments (if needed)
- Continue keyword field optimization
- Always protect your best-ranking keywords
Safe Change Examples
Subtitle Change
Before: "Simple expense sharing"
After: "Split bills & rent easily"
Why Safe:
- Keeps core meaning
- Adds target keywords (bills, rent)
- Doesn't remove existing ranking keywordsKeyword Field Change
Before: task,todo,list,note,reminder,productivity,organize,manage,plan
After: todo,reminder,productivity,organize,roommate,trip,dinner,vacation
Why Safe:
- Removed low-value keywords (task, list, note - rank >100)
- Kept high-value keywords (todo, reminder, productivity)
- Added new opportunity keywordsWhat NOT to Change
Protect These Keywords
1. Top 10 Rankings — Don't touch if Pop >15 2. Branded Terms — Your app name/company 3. Core Category Terms — If you're a "timer app", keep "timer"
Red Flags
Don't change if:
- Keyword ranks Top 5 with Pop >20
- Keyword drives measurable traffic (from Apple Search Ads data)
- It's your app's core identity term
Apple Search Ads for Data
If possible, run a small Apple Search Ads campaign ($20-50):
What You Learn
- Exact keywords driving installs
- Conversion rates per keyword
- Cost per install (indicates competition)
Campaign Strategy
1. Create "Exact Match" ad groups 2. Add your suspected traffic-driving keywords 3. Run for 1-2 weeks 4. Analyze which keywords convert
This data is gold for deciding what to protect vs. change.
Recovery Plan
If rankings drop after changes:
Immediate (Day 1-3)
- Document what changed
- Check if rankings are actually down or just fluctuating
- Don't panic — rankings fluctuate naturally
Short-Term (Week 1)
- If significant drop, consider reverting changes
- Reversion takes ~1 week to re-index
Long-Term (Week 2+)
- If still down, revert to previous metadata
- Wait for full re-indexing (2-4 weeks)
- Try smaller changes next time
Checklist: Before Making Changes
- [ ] Documented current rankings for all tracked keywords
- [ ] Identified which keywords are likely driving traffic
- [ ] Listed keywords that are PROTECTED (won't change)
- [ ] Planned additive changes first (new locales, screenshots)
- [ ] Have a rollback plan if things go wrong
- [ ] Set calendar reminder to check metrics in 1 week
Example: Safe Optimization Flow
App: Expense Split (7 downloads/day)
Current Rankings:
- "settle up" — #4, Pop 29 → PROTECT
- "settle" — #18, Pop 21 → PROTECT
- "split bill" — #211, Pop 21 → SAFE TO TARGET
Phase 1 Plan: 1. Add Spanish (MX) with: roommate,apartment,utilities,dinner,trip,vacation 2. Add screenshot caption: "Split Bills with Roommates" 3. DON'T change title (has "Settle Up")
Phase 2 Monitor:
- Check if new keywords start ranking
- Verify "settle up" stays at #4
- Track daily downloads
Phase 3 (if stable):
- Update subtitle to include "split bills"
- Replace low-value keywords in keyword field
Keyword Selection Criteria
How to evaluate and select keywords for maximum impact with achievable rankings.
The Indie Developer Strategy
From successful indie devs building $200-2,000/month apps:
Find keywords with:
- Popularity > 20 (enough traffic)
- Difficulty < 60 (beatable competition)Build simple, single-feature apps around those keywords.
Understanding Scores
Popularity Score (0-100)
From Apple Search Ads. Represents search volume.
| Score | Traffic Level | Notes |
|---|---|---|
| 5-15 | Very Low | Only target if very niche |
| 16-25 | Low | Good for long-tail, low competition |
| 26-40 | Medium | Sweet spot for indie apps |
| 41-60 | Good | Worthwhile if difficulty allows |
| 61-80 | High | Usually high competition |
| 81-100 | Very High | Dominated by brands |
Important: Popularity is exponential, not linear.
- Score 50 is NOT 2x traffic of Score 25
- Score 80 could be 10x traffic of Score 40
Difficulty Score (0-100)
Estimated from competitor strength and count.
| Score | Competition | Your Chances |
|---|---|---|
| 0-25 | Very Low | Easy ranking |
| 26-40 | Low | Good opportunity |
| 41-55 | Medium | Achievable with good ASO |
| 56-70 | High | Hard, need excellent app + ASO |
| 71-100 | Very High | Dominated by established apps |
The Sweet Spot Matrix
│ Difficulty
│ Low (<40) │ Med (40-55) │ High (>55)
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
High │ GOLD │ WORTH IT │ LONG-TERM
(40+) │ Target Now │ Target Now │ GOAL
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
Med │ GREAT │ GOOD │ SKIP
(25-40) │ Target Now │ Consider │ Too Hard
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
Low │ MAYBE │ SKIP │ SKIP
(15-25) │ Easy Win │ Not Worth │ Not Worth
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
V.Low │ SKIP │ SKIP │ SKIP
(<15) │ No Traffic │ No Traffic │ No TrafficOpportunity Score Formula
Calculate opportunity score for comparison:
Opportunity Score = (Popularity × 2) - Difficulty
Bonus: +20 if Pop 20-50 AND Diff <40 (sweet spot)
Bonus: +10 if Pop 20-50 AND Diff <50 (good range)
Penalty: -30 if Diff >70 (very competitive)Grading Scale
| Score | Grade | Action |
|---|---|---|
| 80+ | A+ | HIGH PRIORITY - Target immediately |
| 60-79 | A | Good opportunity |
| 40-59 | B | Worth pursuing |
| 20-39 | C | Consider if relevant |
| 0-19 | D | Low priority |
| <0 | F | Skip |
Example Calculations
"brown noise" - Pop 25, Diff 30
Score = (25 × 2) - 30 + 20 (bonus) = 40 → Grade B
"meditation timer" - Pop 35, Diff 45
Score = (35 × 2) - 45 + 10 (bonus) = 35 → Grade C
"podcast app" - Pop 70, Diff 85
Score = (70 × 2) - 85 - 30 (penalty) = 25 → Grade C (despite high pop!)Keyword Categories by Opportunity
Tier 1: Target Immediately
- Pop 25-50, Diff <40
- Pop 40-60, Diff <50
- Score 60+
Tier 2: Good Opportunities
- Pop 20-40, Diff 40-55
- Pop 50-70, Diff 50-60
- Score 40-59
Tier 3: Long-term Goals
- Pop 60+, Diff 60-75
- Build app strength first, then target
Tier 4: Skip
- Pop <15 (not enough traffic)
- Diff >75 (too competitive)
- Score <20
Finding Keywords to Analyze
Tool: Astro (Recommended for Indies)
1. Search a seed keyword 2. Note Popularity and Difficulty 3. Check "Related Keywords" suggestions 4. Look for sweet spot matches
Seed Keyword Strategy
Start with generic terms, find specific variants:
Seed: "timer"
├── pomodoro timer (Pop 35, Diff 42) ✅
├── study timer (Pop 28, Diff 38) ✅
├── focus timer (Pop 40, Diff 55) ⚠️
├── interval timer (Pop 32, Diff 35) ✅
└── countdown timer (Pop 45, Diff 62) ⚠️
Best: "interval timer", "pomodoro timer", "study timer"Category-Specific Opportunities
Based on Nov 2025 App Store data:
| Category | High-Opportunity Keywords |
|---|---|
| Health | "ai coach", "brown noise", "pink noise" |
| Business | "invoice", "fax", "side hustle" |
| Utilities | "storage cleaner", "free up space" |
| Lifestyle | "mood tracker", "gratitude journal" |
| Music | "metronome", "tuner" |
| Productivity | "pomodoro timer", "habit tracker" |
Competitor Keyword Analysis
Finding Keyword Gaps
1. In Astro, tap on competitor apps 2. See what keywords they rank for 3. Find keywords where:
- They rank #20-50 (not optimized)
- You don't rank at all
- Pop >20, Diff <50
Steal Strategy
Target keywords competitors rank for weakly:
- Their rank: #30-100
- Your potential: Top 10 with good ASO
Trademark Considerations
Check Before Targeting
Some keywords are trademarked:
- "Divvy" — Bill.com trademark
- "Splitwise" — Brand name
- "Venmo" — Brand name
Safe vs Risky Keywords
| Safe (Generic) | Risky (Trademarked) |
|---|---|
| split bill | splitwise |
| expense tracker | divvy |
| payment | venmo |
| settle up | paypal |
Rule
If a keyword shows high popularity but is a brand name:
- Traffic is people looking for THAT app
- Even if you rank, conversion will be poor
- May get trademark complaint
Quick Evaluation Checklist
For each keyword:
- [ ] Popularity >20? (enough traffic)
- [ ] Difficulty <60? (beatable)
- [ ] Not a trademark/brand?
- [ ] Relevant to your app?
- [ ] Makes sense in title/subtitle/keywords?
If all yes → Target it If any no → Skip or deprioritize
Keyword Tracking Template
keyword,popularity,difficulty,opportunity_score,grade,current_rank,action
pomodoro timer,35,42,48,B,-,Target in subtitle
study timer,28,38,38,C,-,Add to keywords
interval timer,32,35,49,B,-,Target in title
meditation,65,78,-31,F,-,Skip - too competitiveWhen to Re-evaluate
- Weekly: Check ranking changes
- Monthly: Re-run opportunity analysis
- Quarterly: Major keyword strategy review
- Seasonally: Add seasonal keywords (holiday, summer, etc.)