App Store Optimization is the SEO of the App Store and Google Play — the set of decisions you make on your listing that determine whether the right user finds and installs your app. Most ASO content treats it as a monolith: 50 variables you tune simultaneously. In practice, the inputs are unevenly weighted, and a small handful drive most of the result. This is the 80/20.
What ASO actually optimizes for
Two outcomes: visibility (do users see your app when they search or browse?) and conversion (do users who see it tap install?). Visibility is mostly a metadata problem — the right keywords in the right fields. Conversion is mostly a creative problem — the screenshots and the first three lines of description. Every ASO tactic ladders up to one of those two.
Step 1 — Title (30 characters, App Store and Play)
The single highest-weighted field on both stores. The first 30 characters of your title are indexed for search and shown in every list view. Most apps waste this space on branding. The pattern that works: brand + descriptor + primary keyword.
- Bad: MealPath
- Better: MealPath: Recipe Planner
- Best: MealPath — Weekly Recipe Planner
Every character that isn't your brand should be a keyword someone might type. If your title says 'MealPath' and nothing else, you are invisible to every user searching for a recipe planner.
Step 2 — Subtitle (App Store) / Short description (Play)
Both stores give you a second 30–80 character field that ranks almost as well as the title. Treat it as the second-most important search input and the second-most important conversion line.
- App Store subtitle: 30 chars — keyword-dense one-liner.
- Play short description: 80 chars — keyword-dense one-liner that also reads as a value prop.
- Avoid restating the title verbatim. The algorithm de-duplicates, you waste the slot.
Step 3 — Keywords field (App Store only)
Apple gives you 100 hidden characters for keywords. Apple's algorithm combines them — meaning 'recipe,planner,weekly' indexes you for 'weekly recipe planner' even though that phrase appears nowhere in your listing. Use that.
- Comma-separate, no spaces after commas (saves characters).
- Don't repeat words from the title or subtitle — Apple already indexes those.
- Don't include 'app', 'free', or your brand name — wasted characters.
- Skip stop words (the, and, for) and pluralizations Apple handles automatically.
Step 4 — Description (4,000 characters, both stores)
On Google Play, the description is fully indexed — keyword density matters, repetition helps within reason, the algorithm reads the whole 4,000 characters. On the App Store, the description is not indexed for search at all, only for conversion. Same field, two very different jobs.
Step 5 — Screenshots and previews
After the title, screenshots are the highest-leverage conversion tool you have. The first three are visible without scrolling and are seen by every user who taps your listing. Captions on those first three matter more than the actual UI shown.
- First screenshots: the value prop in 5 words.
- Second screenshots: the killer feature, in action.
- Third screenshots: social proof (rating, awards) or a second feature.
- Screenshots 4–10: feature tour, in descending order of importance.
Step 6 — Localization
An empty locale is a silent traffic leak. Even if you ship in English only, the App Store and Play default the listing to English for every locale you haven't filled. That means users searching in Japanese for a 'recipe planner' don't find your English listing — because the Japanese App Store doesn't index English keywords.
- Add localized title, subtitle, keywords, and description per market.
- Translation is not enough — local keywords differ from literal translations.
- Start with the 5 locales that drive the most installs in your category.
The 80/20 you can ship in an afternoon
If you only have a few hours, prioritize in this order: title, subtitle, first three screenshots, first 170 characters of the description. Everything else compounds — but those four inputs drive most of the visibility-to-install funnel. Fix them once, fix them well, then iterate on the rest one A/B test at a time.