Google Play Store optimization: Listing, keywords and vitals (2026)

Contents
Google Play has no keyword field: the store listing text does that job, and app stability decides how far that text can take you. The rules are stricter than most guides suggest: a 30-character title, a metadata policy that rules out keyword stuffing, and Android vitals thresholds that can cancel a metadata win.
Google publishes no ranking-factor weights, so how much of this matters for your app depends on traffic volume, install base and release hygiene.
Google Play Store optimization quick wins: What to fix first
Google Play Store optimization is the work of tuning the indexed store listing fields (title, short description, full description), the assets that convert, and the Android vitals that limit reach.
A keyword-perfect listing still stalls when Android vitals in Google Play Console show crash or ANR rates above Google's bad behavior thresholds, which can reduce discoverability.
If vitals are already flagging problems, our guide to Android app performance optimization covers the startup, memory and data-usage fixes that bring crash and ANR rates back under the thresholds.
Netguru builds Android and cross-platform mobile apps, including release pipelines, stability work and Play Console integrations for product teams. We recommend checking Android vitals before editing copy, because a metadata gain does not survive a stability problem. A new app with no vitals data yet can start at step 2.
Fix these in order, from least to most effort:
- Check Android vitals (minutes). Compare your user-perceived crash rate and user-perceived ANR rate with the bad behavior thresholds. If either is over, the fix is Android app development work on root causes, and it comes before any copy change.
- Rewrite the title and short description (an hour). Per Google's store listing guidance, the title allows 30 characters, the short description 80 and the full description 4,000. Put the primary term in the title and use the short description for the second-strongest term plus the core benefit.
- Rewrite the opening of the full description (half a day). State what the app does in natural sentences. Repeated keyword blocks risk a Google Play metadata policy violation.
- Review the feature graphic and first screenshots (a day). Both should show the core function without needing the title for context.
- Run one store listing experiment (weeks). Change one asset at a time, so overlapping changes do not muddy the result.
- Move the In-App Review API prompt (one sprint). Trigger it after a completed task, never after a crash or on a button tap.
How does Google Play search rank apps?
Google Play search ranks apps mainly on how well the store listing text matches the query, filtered by quality signals such as Android vitals. Google publishes no ranking weights, so anything beyond that is inference. You can check the documented signals in Google Play Console.
The table separates what Google's own pages state from what ASO practitioners infer:
| Signal | Status | What the evidence supports | Engineering or listing action |
|---|---|---|---|
| Title, short description, full description | Documented | Google's metadata policy governs these fields and prohibits excessive or repetitive keywords | Write for the query, in natural sentences |
| Android vitals | Documented | Apps above the bad behavior thresholds for crashes and user-perceived ANR rate can lose discoverability | Gate releases on vitals in staged rollouts |
| Ratings and reviews | Stated as a quality signal, weight unpublished | Google does not give a rating cutoff or a formula | Prompt with the In-App Review API at success moments |
| Retention and engagement | Vendor-inferred | No Google page names a retention metric as a ranking input | Track it, but don't plan listing work around it |
| Update recency | Vendor-inferred | No documented freshness boost | Ship when the product needs it |
| Install velocity | Vendor-inferred | No documented velocity factor | Treat spikes as unproven |
Two common claims fail against Google's own limits. The 50-character title advice is outdated: the Play Console title limit is 30 characters, reduced from 50 in 2021, and the short description allows 80 characters and the full description 4,000.
The second claim is a target keyword density. Google gives no density figure, and the metadata policy treats repetitive keywords as a violation that can get an update rejected or an app suspended. Mention a term where a sentence needs it, then stop.
Android vitals is the one signal you control in code.
A reasonable starting point (our recommendation, not a Google rule) is to pause a staged rollout when the user-perceived crash or ANR rate approaches your last release's level, and to treat the thresholds as a release criterion.
Because vitals depend on code quality, it helps to follow established Android development best practices for architecture, testing and crash handling before each release.
How to rank higher on Google Play Store: The order of work
Rank higher on Google Play by working in this order: Android vitals, store listing text, conversion assets, then ratings. A keyword gain does not hold once vitals exceed Google's thresholds, so the order is a gate sequence. Google publishes no ranking weights, so the sequence is our recommendation.
- Clear the vitals gate. Android vitals documentation sets overall bad behavior thresholds at a 1.09% user-perceived crash rate and a 0.47% user-perceived ANR rate. Exceeding them can reduce discoverability. Check both in Google Play Console, then wire them into release gating: halt a staged rollout when either rate regresses. This is product-side work, and our Android app development team usually starts here.
- Rewrite the indexed text. Edit the title, short description, and full description inside the Google Play metadata policy. Put the primary query in the title and the strongest supporting phrases in natural sentences.
- Raise conversion. Update the icon, feature graphic, and screenshots. Test changes with store listing experiments, and use custom store listings for audiences that arrive from specific keywords or campaigns.
- Ask for ratings last. Trigger the In-App Review API after a completed task, behind a feature flag so you can tune the moment without a release. The API enforces quotas, so a prompt may not display every time you call it.
Measure each step in the Play Console acquisition reports. Compare store listing visitors and installs before and after a change, and change one layer at a time so the movement has a clear cause.
How do keywords work on Google Play with no keyword field?
Google Play has no keyword field. Search draws on the text in three store listing fields: the title (30 characters), the short description (80), and the full description (4,000).
You place terms by writing those fields, and Google publishes no list of weights per field.
| Field | Limit | What to place | Trade-off |
|---|---|---|---|
| Title | 30 characters | Brand name plus one descriptor term that matches your highest-intent query | Every character spent on a second term is taken from the brand name and from readability in the result card |
| Short description | 80 characters | One sentence naming the core function and the primary term, written as a reason to install | It is the first body text on the listing, so keyword-only fragments cost conversion |
| Full description | 4,000 characters | Secondary terms and synonyms inside real feature explanations, with the primary term early | Length tempts repetition, which is where policy problems start |
The title is the scarcest field. Assume a brand name of 8 characters (illustrative): that leaves about 20 characters, enough for one descriptor of two or three words. We recommend spending them on the single term whose searchers you most want to convert, and putting every other term in the descriptions.
The metadata policy prohibits keyword stuffing: lists of keywords and repetitive use of the same term. It also bars emoji, ALL CAPS and performance claims such as "top" or "#1" in titles.
A 3-5% keyword density target is widely repeated, and Google publishes no such figure. By our arithmetic, a full description of roughly 600 words (about 4,000 characters) at that density repeats one term 18-30 times. That is a pattern the policy names as a violation, and a listing that reads as a keyword list also converts worse.
A safer working rule is to use the primary term once in the title, once in the short description, and a few times in the full description, each time in a sentence a user would read.
Synonyms and related phrases carry the rest of the coverage. Policy review is a manual and automated check on your whole listing, so a rejected update delays every other change you shipped with it.
Google Play ASO keyword research without a keyword field
Google Play keyword research without third-party tools runs from a seed list through competitor listings and Play search suggestions, and ends with validation in the Play Console acquisition reports. Each step below uses data you already own or can see on a device.

- Build a seed list. Write 15-20 terms from the jobs users hire the app for, using their wording from reviews and support tickets, not your feature names.
- Read competitor listings. Search each seed term on Google Play and open the top results. Record which terms recur in their titles, short descriptions, and the opening lines of their full descriptions, and note the gaps.
- Collect search suggestions. Type each seed into the Play search bar and log the autocomplete suggestions. Append letters to surface more. Suggestions can differ by country and device language, so repeat the pass per target locale.
- Map terms to store listing fields. Put the one descriptor term you most need to rank for in the title, next to the brand name. Place the next two or three in a readable short description. Let the full description carry the remainder in natural sentences, since the Google Play metadata policy prohibits keyword stuffing.
- Validate in Google Play Console. After release, open the Play Console acquisition reports, select the Google Play search channel, and review the search terms that brought visitors to your store listing. Compare visitors and installs per term against the four weeks before the change.
The validation step is the only one that reflects your own app's traffic. Terms with high visitors but weak install conversion point to a mismatch between the query and your listing. Terms you targeted that never appear are candidates for a rewrite.
Two caveats apply. A new app may see few terms in the report, so the first two steps carry more weight at launch. And if the title, short description, and full description all change in one release, you can't tell which edit moved which term.
We recommend changing one field per release window and logging the date in the release notes, so engineering and marketing read the same before-and-after.
What does the Google Play metadata policy allow?
The Google Play metadata policy rejects listings whose title, icon, descriptions, or graphics are misleading, irrelevant, or poorly formatted, and it names keyword stuffing explicitly.
Per the metadata policy, keyword stuffing means repetitive or irrelevant keyword lists in the description. The title also cannot carry emoji, repeated special characters, or wording that implies store ranking such as "Best" or "#1".
Icon rules tightened in 2021: no emojis, no calls to action such as "Install now", and no wording about store performance. The feature graphic and screenshots fall under the same misleading-content test, so they should show the app as it ships today.
We suggest auditing before every submission, including listing changes made by marketing:
- Check lengths against the field limits: 30 characters for the title, 80 for the short description, 4,000 for the full description.
- Search every text field for ranking words, price or promotion claims, Google Play program names, emojis, and ALL CAPS that isn't part of the brand.
- Read the full description for keyword lists, the same phrase repeated in clusters, and testimonials with no named source.
- Open the icon and the feature graphic and look for text, badges, or calls to action.
- Compare screenshots with the release build. Any screen that no longer exists is a misleading-content risk.
- Run the same checks on each custom store listing and store listing experiment variant, since each is separate metadata.
This checklist covers the patterns the policy spells out. Google's reviewers apply judgment on top of them, so passing it does not guarantee approval.
Which graphic assets move conversion on Google Play?
Four assets shape the store listing visitors to installers conversion rate in Google Play Console: the icon, the feature graphic, screenshots, and the promo video. The specs below follow Google's Play Console Help as we read it; recheck them before a release.
| Asset | Spec | Watch for |
|---|---|---|
| Icon | 512 x 512 px, 32-bit PNG, up to 1024 KB | Upload a full square. Play applies the mask and shadow. |
| Feature graphic | 1024 x 500 px, JPEG or 24-bit PNG, no alpha | Crops differ by surface. Keep the subject centered. |
| Screenshots | JPEG or 24-bit PNG, 320-3,840 px per side, 2-8 per device type | Long side can't exceed twice the short side. |
| Promo video | YouTube URL pasted into the Promo video field | Public or unlisted, not age-restricted, ads off. |
A checklist to run before each upload:
- Export the icon without baked-in rounded corners or drop shadows.
- Keep text and the main subject of the feature graphic in the middle. When a promo video is set, expect a play button over that area.
- Order screenshots by user benefit, and upload separate sets for tablets and other device types you support.
- Open the video in YouTube first and confirm its visibility and monetization settings. Editing the video there changes the listing without a new release.
Play differs from iOS here. It has a feature graphic that iOS lacks, and its video is a YouTube link where the App Store takes direct uploads. The cross-store ASO guide covers the contrast in full.
Change one asset at a time in a store listing experiment. That way, any movement in the conversion rate can be traced to a single asset.
How do store listing experiments work, and how long should they run?
Store listing experiments in Google Play Console split visitors between your live listing and variants, and should run at least seven days, until the confidence interval excludes zero. Per Google's Help page, you can run one default graphics experiment or up to five localized experiments at the same time.
The metric each variant is judged on is the store listing visitors to installers conversion rate. Play Console shows the result as an interval around the change in installers against the current listing, at a 90% confidence level as we read the Help page.
Read the interval, not the point estimate. A variant showing +4% with an interval from -1% to +9% has not won; the data fits a small loss as well as a gain. Apply a variant only when the whole interval sits above zero, and keep the test running while it still spans zero.
An illustrative example, using assumed numbers: the baseline converts at 4.0%, and after seven days the variant reads +4% with an interval of -1% to +9%. After fourteen days it reads +5% with +1% to +9%. The second reading justifies applying the variant, and the first does not.
Three failure modes make an experiment inconclusive:
| Failure mode | Early sign | Fix |
|---|---|---|
| Too little traffic | The interval is still wide after two weeks | Test a bigger change, or run in your highest-traffic language |
| Overlapping changes | You edited the icon, text, or ran a campaign mid-test | Change one asset per variant and freeze other listing edits |
| Seasonality | The result flips between week one and week two | Run whole weeks and avoid holidays and sales |
Run in whole weeks, because weekday and weekend visitors behave differently, and don't stop on the first day the result looks positive. Early intervals are wide and swing, so stopping on a good day applies noise.
For what to test first, we recommend the feature graphic or the first two screenshots. Visitors see them before they scroll, so a change there reaches the most of the audience. Test the icon next, then the short description, which only runs as a localized experiment.
If your listing gets little traffic, experiments may never conclude in a reasonable time. Then compare periods in the acquisition reports instead, accepting that a before-and-after comparison cannot rule out seasonality.
How do custom store listings work, and when do they beat the default?
Custom store listings beat the default listing when a traffic source arrives with a distinct intent and enough volume to measure. They lose when they dilute a message the default already matches.
Google Play Console allows up to 50 custom store listings per app (Google Play Console (Official)). Each gets its own URL and can be targeted by country, pre-registration status, install state, or Play search keywords. A Google App campaign ad group can also point at one.
Recheck Play Console Help for the current targeting options and editable fields before you plan. If you haven't yet launched, our guide on how to publish your Android app walks through account setup and the first listing.
A custom store listing earns its place when one audience arrives with a different question than the default listing answers. Examples are a Google App campaign promoting a single feature, a pre-registration audience waiting for launch, or a search term that names a use case. Below that bar, it adds maintenance without adding conversion.
The decision by source:
| Traffic source | Custom listing? | Reasoning |
|---|---|---|
| Google App campaign ad group built around one feature | Yes | Screenshots and short description can repeat the ad's promise |
| Pre-registration audience at launch | Yes, if the list is large | These users already know the app, so lead with what they signed up for |
| Country with a different main use case | Yes | Localizing text alone won't change which feature leads |
| Broad, generic search keyword | No | The default listing is already written for it |
| Segment too small to read a result | No | You pay the upkeep and can't tell whether it worked |
We see three ways a custom listing loses to the default, and each is a judgment call you can check against your own data:
- Message drift. A keyword-targeted variant that promises something the default doesn't can raise clicks and then lose installs, because the user lands in an app that doesn't match.
- Upkeep across releases. Every UI change makes screenshots stale on every listing, so ten variants mean ten asset updates per release.
- Policy exposure. Each listing falls under the Google Play metadata policy, so a misleading claim in a variant is as reviewable as one in the default.
Compare each listing's installer conversion against the default in the Play Console acquisition reports. Retire any variant that doesn't clearly beat it.
Teams with one dominant audience and modest traffic should usually stay on the default and spend the effort on store listing experiments.
How to ask for reviews with the Google Play In-App Review API
Ratings and reviews shape Google Play ranking and conversion, and the Google Play In-App Review API is the code-level lever for collecting them. Google does not publish ranking weights for ratings, so treat any threshold quoted elsewhere as unverified.
The star average and review count do appear in search results and on the store listing, which makes them a conversion input you can track in Play Console acquisition reports.
The API takes two calls: requestReviewFlow() returns a ReviewInfo object, and launchReviewFlow() shows the in-app rating card. Google applies a time-bound quota per user, so the second call may display nothing.
The API also reports neither whether the card appeared nor whether the user rated, per the In-App Review guidelines. A "Rate us" button wired to it will look broken whenever the quota blocks the card.
We recommend gating the prompt in code and in the release flow:
- Trigger on a success moment. Use a completed order, a finished workout, or an exported file. Never fire on launch, mid-task, or from a menu item. Google's guidelines also advise against asking "Do you like the app?" before the card.
- Suppress after failure. Skip the prompt if the previous session ended in a crash or ANR, or if the user hit an error recently. Read this from your crash reporter's local state.
- Cap on your side. An illustrative rule, not a Google requirement: once per app version and no more than every 90 days, so your own calls don't use up the quota.
- Put it behind a remote flag. Keep the flag off during staged rollout. Turn it on only when Android vitals for that release show no regression in crash rate or user-perceived ANR rate.
- Test before release. Use FakeReviewManager in unit tests, and check the real flow from the internal test track.
The flag and the crash suppression are small Android app development tasks. They belong on the release checklist so they ship with the build that needs them. Pair them with regular Android app performance testing so slow starts and crashes surface before a release reaches Play users.
Replies are the second half of the loop. Answer reviews in Google Play Console, or through the Google Play Developer API reviews.reply method if you automate triage. A reply notifies the reviewer, who can then edit the rating.
Start with low-star reviews that name a specific bug, filter them by app version and device, and hand them to engineering with that context. Reply publicly with what changed and in which version.
What do Android vitals mean for visibility?
Android vitals can reduce your visibility on Google Play when your user-perceived crash rate or user-perceived ANR rate crosses a bad behavior threshold. Google says such apps may be less discoverable in search and recommendations, and it does not publish how much weight vitals carry against other signals.
The thresholds below come from the Android vitals documentation and are measured over a 28-day rolling window:
| Metric | Overall threshold | Per-device threshold |
|---|---|---|
| User-perceived crash rate | 1.09% of daily active users | 8% of daily active users on a single phone model |
| User-perceived ANR rate | 0.47% of daily active users | 8% of daily active users on a single phone model |
Crossing the per-device line can reduce visibility on that model and attach a warning to your store listing for its users. Play Console also shows peer group benchmarks, which place your rates against similar apps.
We treat a bottom-quartile position as a backlog signal even when you are under the thresholds. Check how Play Console defines your peer group before you quote the comparison to marketing.
Fix-first order
Our recommended order, built around the two thresholds:
- Per-device breaches. A model above 8% carries its own penalty even when the overall rate is healthy. Filter vitals by device, find the cause (often an OEM WebView or a vendor-specific API behavior), and fix it. Excluding the model in the device catalog is a last resort because it removes those installs.
- Crash clusters by affected users. Sort the crashes report by users affected, not by event count, and fix the top clusters first.
- ANR sources. Start with main-thread disk and network I/O, lock contention, and heavy work in broadcast receivers or service start.
- Version regressions. Compare rates by version code to catch what the last release introduced.
This is the product-side work that Android app development teams own, because marketing cannot move these numbers.
Release gate on staged rollout
A staged rollout lets vitals act as a gate. An illustrative setup is 5%-20%-50%, then 100%, with a halt in Play Console if the new version's crash or ANR rate exceeds the current production version's by a margin you set, or if any device nears 8%. Treat these steps and margins as starting points to tune.
You can automate the check by polling the Play Developer Reporting API crash and ANR rate metric sets, filtered by version code. Vitals data lags, and a 5% cohort is a small sample, so pair the gate with Firebase Crashlytics for a faster early signal.
Google Play Store SEO vs App Store SEO
Google Play SEO differs from App Store SEO mainly because Google Play indexes the full description and has no keyword field, while the App Store gives you a separate 100-character keyword field.
The differences that change your Google Play Console work:
| Google Play | App Store | |
|---|---|---|
| Keyword field | None | 100 characters |
| Indexed text | Title (30 characters), short description (80), full description (4,000) | App name (30), subtitle (30), keyword field |
| Description in search | Yes, so wording and keyword placement matter | Not a search field |
| Event surfaces | Promotional content (previously LiveOps) | In-app events |
| Pre-launch | Pre-registration | Pre-orders |
| Localization unit | Translated store listing per language, plus custom store listings by country | Metadata per locale in App Store Connect |
On Google Play, the full description is both a ranking input and conversion copy. Write it for the reader first and place target phrases where they read naturally, since the metadata policy penalizes keyword stuffing.
Promotional content and pre-registration are separate surfaces from search. Promotional content, available to apps that meet Google's eligibility criteria, puts events, offers, and major updates in front of users who never typed a query, so plan it with the release calendar.
Localize the title and short description first, because they carry the most weight and the most visible text. Our cross-store ASO strategy guide covers how to split that work between both platforms.
FAQ
Do keywords in the developer name count for Google Play rankings?
How long until store listing changes show up?
Do Android vitals affect Google Play rankings?
How many custom store listings can an app have?
Next step: Audit your Play listing and vitals
Start the audit in Google Play Console with two checks: your store listing against the metadata policy, and Android vitals against the bad behavior thresholds.
Fix vitals first if your user-perceived ANR or crash rate sits near a threshold, because exceeding it can reduce your visibility on Play. Then run one custom store listing or store listing experiment, and read the result in the acquisition reports. For channels beyond the store, see our ideas for promoting a mobile app for free.
If you want a second opinion on the vitals work or the listing setup, talk to our team.
