Skip to content
LocalASO

Guide

App Store keyword search volume and difficulty, explained

Every ASO tool shows a volume number for App Store keywords. None of them comes from Apple. Here is where these numbers come from, the exact formula LocalASO uses, and how far you can trust any estimate.

Updated

Apple publishes no search counts

Apple does not publish how often a phrase is searched in the App Store. Apple Ads (the App Store ad platform) shows a relative popularity indicator for keywords inside its campaign tools, but no counts. So every “search volume” in a third-party tool, including LocalASO, is an estimate built from public signals. Treat it as a way to compare keywords, not as a number of searches.

Which signals tools use

  • Ad popularity indicators, for tools connected to an ad account.
  • The position of a phrase in App Store search hints.
  • The size and popularity of the apps that rank for the phrase.

How LocalASO estimates volume (0 to 100)

The idea: a phrase people search often has popular apps ranking for it, and popular apps have many ratings. LocalASO takes the top 10 apps for the phrase in that country from Apple’s public search data and their rating counts:

w_i       = 1 / (1 + 0.3 * i)              i = 0..9, rank weight
meanLog   = sum(w_i * log10(1 + ratings_i)) / sum(w_i)
main      = clamp((meanLog - 1.5) / (6.2 - 1.5), 0, 1) * 100
countTerm = 5 * clamp(log10(1 + resultCount) / log10(201), 0, 1)
volume    = round(clamp(main + countTerm, 0, 100))

Worked examples:

  • Ten apps with about 2 million ratings each and 200 results: volume about 100.
  • Ten apps with about 5,000 ratings each: volume about 60.
  • Ten apps with about 40 ratings each: volume about 9.
  • No results at all: volume 0.

How LocalASO estimates difficulty (0 to 100)

Difficulty answers: how hard is it to get into this top 10?

logs       = log10(1 + ratings) of the top 10, padded with 0 to 10 slots
norm(x)    = clamp((x - 2) / (6 - 2), 0, 1)
bigFrac    = share of the top 10 with >= 50,000 ratings
difficulty = round(100 * (0.4 * norm(median(logs)) + 0.3 * norm(mean(logs)) + 0.3 * bigFrac))

Fewer than 10 results count as weak competitors, so a phrase with only a handful of apps scores low.

Demand across countries

For a keyword checked in several countries, LocalASO averages the volume into a demand label: High from 55, Medium from 25, Low from 6, otherwise None.

From numbers to a decision

  • Push: rank 4 to 20, volume 30 or more, difficulty under 80. You are close; strengthen this keyword.
  • Swap: rank 10 or better but volume 5 or less. You rank, nobody searches. Replace it.
  • Dead: volume 10 or less.
  • Hard: difficulty 80 or more and you are not in the top 10.
  • Maybe: everything else.

The limits of any estimate

  • Rating counts lag behind current popularity. A new hit app has few ratings at first.
  • Seasonality and paid ads are invisible in rating data.
  • Small storefronts such as Norway or Denmark have few apps per phrase and few ratings, so volumes are low there. That is honest, not a bug.

Use volume and difficulty to sort a list of ideas, then confirm with your own rank and downloads. The same method applied to your listing gives a reach score per variant in LocalASO’s Optimize tab.

Do this for every country, in minutes

LocalASO checks your rank, volume and difficulty for every keyword in 50+ App Store countries, in each local language. It runs on your Mac. $29 once, no subscription.