Android vitals and ASO: how crashes and ANRs hurt your Play Store visibility
Google Play uses technical quality to decide how visible your app is. The exact bad-behaviour thresholds, what happens when you cross them, how to read Android vitals, a fix-first workflow and how to connect releases to ranking drops.
Key takeaways
- Overall bad-behaviour thresholds: 1.09% user-perceived crash rate and 0.47% user-perceived ANR rate.
- Per-device threshold: 8% for either metric on a single device model.
- Above the overall thresholds, apps are likely to be less discoverable on all devices.
- Above a per-device threshold, visibility can drop on those devices and a warning may appear on your listing.
- Fix quality before polishing keywords — no listing change compensates for a crashing app.
ASO is usually discussed as text and visuals, but Google Play also measures how well your app actually works. Android vitals tracks technical quality, and Google’s documentation is explicit that apps with bad behaviour are likely to be less discoverable. If your rankings fall after a release while your listing hasn’t changed, quality is the first place to look.
The thresholds that matter
| Metric | Overall bad-behaviour threshold | Per-device threshold |
|---|---|---|
| User-perceived crash rate | 1.09% of daily active users | 8% on a single device model |
| User-perceived ANR rate | 0.47% of daily active users | 8% on a single device model |
- Above an overall threshold: your app is likely to be less discoverable on all devices.
- Above a per-device threshold: your app is likely to be less discoverable on those devices, and a warning may be shown on your store listing there.
How to read Android vitals
- Open Play Console → Android vitals → Overview weekly.
- Check the user-perceived crash rate and ANR rate against the thresholds.
- Open the device breakdown: one popular phone model can push you over the 8% line.
- Look at clusters: most crashes usually come from a few issues.
- Compare by app version to see whether a release made things worse.
A fix-first workflow
| Step | What to do |
|---|---|
| 1. Triage | Sort crash and ANR clusters by affected users; take the top three. |
| 2. Reproduce | Use the stack traces and device details from Play Console. |
| 3. Fix and test | Test on the affected device models or emulators. |
| 4. Staged rollout | Release to a small percentage first and watch vitals before going to 100%. |
| 5. Verify | Confirm the rates drop over the following days. |
| 6. Watch rankings | Rankings often recover after quality improves — track them to confirm. |
Connecting releases to ranking drops
The hardest part of ASO is attribution: why did rankings drop? If you annotate every release date on your keyword charts, a pattern is easy to spot — a release, a rise in crashes, and a slide in rankings a few days later across many keywords at once. That’s a quality problem, not a keyword problem.
- Check vitals every week and after every release.
- Use staged rollouts.
- Watch per-device breakdowns.
- Annotate releases on your ranking charts.
- Rewrite your listing when the real problem is crashes.
- Ship to 100% without watching early data.
- Ignore one problematic popular device.
+Does crash rate affect Google Play ranking?
Google says apps that exceed the bad-behaviour thresholds are likely to be less discoverable, so high crash or ANR rates can reduce visibility.
+What is a good crash rate?
Stay well below 1.09% user-perceived crash rate overall and 8% on any single device model. Lower is always better.
+How fast does visibility recover after a fix?
It depends on how quickly your new version reaches users and the rates fall. Track vitals and keyword positions over the following weeks.
Sources
- Android Developers — Android vitals
- Play Console Help — Monitor your app’s technical quality with Android vitals
Specifications and figures are as published by Google and the listed sources at the time of writing; check Play Console for the latest.
Practise this lesson on your app.
Track keywords, run the listing audit and see what your changes do — free.