- ASO
- Keywords
- Indie makers
ASO keyword research without paid tools: free data from Apple and Google
Free ASO keyword research for indie apps: use Apple Ads popularity, Play Console search terms and the iTunes Search API to find keywords you can rank for.
AppRanker team13 min read

On this page
Ask indie developers how they choose App Store keywords and you will hear the same frustration: the tools that show search volume cost more per month than a small app earns, and the free tiers stop just before the useful part. Even people who build ASO tools say the numbers are softer than they look. The developer behind one open-source tool put it bluntly on Hacker News: what any ASO tool gives you are "algorithmically estimations", and in their experience they are "not consistent at all".
The good news is that the two stores give away more first-party keyword data than most developers use. Apple shows a popularity score for search terms in Apple Ads. Google Play Console lists the search terms that bring visitors to your listing. Apple's public Search API lets you size up the competition for any term in a few lines of code. This guide turns those free sources into a repeatable process for a new or small app, on both stores.
Key takeaways
- Good keywords are relevant, searched, and winnable. Free data covers all three if you combine sources.
- Apple Ads shows a 1 to 5 search popularity score for keywords, from App Store searches.
- Play Console shows which Google Play search terms drive visitors and installs to your listing.
- The iTunes Search API gives a quick, scriptable read on how strong the apps on a term already are.
- New apps should aim at specific, longer phrases first, then move to broader terms as installs and ratings grow.
What ASO keyword research has to answer
Every keyword you consider needs three answers. Paid tools wrap them in one score; doing it yourself, you answer them separately.
- Relevance: would someone searching this term be happy to find your app? Apple's App Store search guidance asks you to avoid terms that are not relevant to the app, and irrelevant traffic does not convert anyway.
- Popularity: do enough people search it? A perfect keyword nobody types is worth nothing.
- Difficulty: can a new app realistically appear in the first screen of results? Apple says search results depend on text relevance and user behavior, including "downloads, ratings and reviews, and more". Apps with years of installs and thousands of ratings hold the top of broad terms.
The trap is optimizing for one. Broad and popular terms are usually out of reach. Easy terms are often unsearched. The goal is the overlap.
Step 1: Build a seed list in your users' words
Start with words, not numbers. Write down 30 to 50 candidate phrases from sources that reflect how real people talk:
- Your reviews and support email. People describe the problem they bought your app to solve. "Track water intake" and "remind me to drink water" are different searches.
- Store autocomplete. Type the start of a phrase into the App Store and Google Play search boxes on a phone and note the suggestions. They are free, current and come straight from the store.
- Competitor listings. Read the names, subtitles and short descriptions of the apps that rank for your main term. Note the phrases they use, but keep their brand names out of your metadata: Apple lists competing app names among the things to avoid.
- Your own feature list. Every distinct job your app does ("export to CSV", "widget", "offline") is a potential long-tail phrase.

The seed list is a writing exercise first. Numbers come later. Photo: Pixel.la, Wikimedia Commons, CC0
Group the phrases by intent, for example "drink water reminder", "hydration tracker" and "water log for kidney health". Each group is a different reason to install, and later each group can map to a different part of your listing.
Step 2: Check popularity with Apple Ads
Apple does not publish search volume, but Apple Ads shows a relative search popularity for keywords. Apple's glossary defines it as "a relative indicator of an Apple Ads keyword's popularity", displayed as numbers from 1 to 5, with 5 being the most popular. Its keyword best practices say the keyword tool "displays keyword popularity based on App Store searches".
How to use it for ASO:
- In Apple Ads, start a search results campaign for your app and open the step where you add keywords to an ad group. Nothing is spent until a campaign is running.
- Paste your seed phrases into the keyword list and note the popularity shown for each. Campaigns target specific countries or regions, so check the markets you care about one by one.
- Note the related keywords Apple suggests. Apple says it "will suggest a further set of keywords related to the ones you've provided", which is a free source of phrases you missed.
Turn a small budget into real search terms
If you can spare a small daily budget for a week or two, a campaign with Search Match turned on is the best keyword research you can buy. Apple describes Search Match as matching your ad to relevant searches automatically, using your product page metadata, similar apps and other search data. The campaign's Search Terms tab then shows the actual queries your ad appeared for, with impressions, taps and installs. Those are real phrases from real users, and the tap-through and install rates tell you which ones convert.
ASO tool vendors also report a newer, free option: a monthly Search Term Rank report in the Insights section of Apple Ads, in beta since late 2025, with popularity on a finer scale within each app genre. ASO.dev's write-up notes that Apple chooses the list of terms and that only more popular terms are included, so it is better for spotting big terms in your category than for long-tail research. Apple's own help pages did not describe it at the time of writing, so check your Apple Ads account to see whether you have it.
Step 3: Read your Google Play search terms
Google Play has no keyword field and no popularity score, but Play Console does something Apple does not: it tells you which search terms bring people to your listing.
In Play Console, go to Grow users, then Store performance, then Conversion analysis. Google's help page on understanding your user base describes reviewing "Google Play search terms driving the most visits" and finding the "countries and search terms with high visitors". For each term you can compare store listing visitors with acquisitions to see which searches convert.
Two caveats:
- Small numbers are grouped. Google says search terms, UTM sources or campaigns that "did not have enough visitors or acquisitions over time to be reported individually" are shown as Other. A new app may see little beyond its own name at first.
- It only shows terms you already appear for. This report measures what is working, not what you are missing. Pair it with the autocomplete research from step 1.
Play Console can also turn a high-traffic search term into a tailored custom store listing. We covered how that works in our Google Play ASO guide for 2026.
Step 4: Measure difficulty with the iTunes Search API
Popularity tells you a term is worth having; difficulty tells you whether you can have it. A quick way to judge difficulty is to look at the apps already on that term: how many put the phrase in their name, and how many ratings they have.
Apple's public iTunes Search API returns App Store results as JSON with no key or account. Apple says it is limited to approximately 20 calls per minute. This short Python script, using only the standard library, summarizes the top 10 results for each term you pass it:
import json
import statistics
import sys
import time
import urllib.parse
import urllib.request
FILLER = {"a", "an", "and", "for", "of", "the", "to", "with"}
def top_apps(term, country="us", limit=10):
query = urllib.parse.urlencode(
{"term": term, "country": country, "entity": "software", "limit": limit}
)
req = urllib.request.Request(
f"https://itunes.apple.com/search?{query}",
headers={"User-Agent": "keyword-check/1.0"},
)
with urllib.request.urlopen(req, timeout=20) as resp:
return json.load(resp)["results"]
def summarize(term, country="us"):
apps = top_apps(term, country)
words = [w for w in term.lower().split() if w not in FILLER]
in_title = sum(all(w in a["trackName"].lower() for w in words) for a in apps)
ratings = [a.get("userRatingCount", 0) for a in apps]
return {
"term": term,
"results": len(apps),
"titles_with_all_words": in_title,
"median_ratings": int(statistics.median(ratings)) if ratings else 0,
"smallest_ratings": min(ratings) if ratings else 0,
}
if __name__ == "__main__":
for term in sys.argv[1:]:
print(summarize(term))
time.sleep(3) # the API allows roughly 20 calls a minute
Run it with your candidate phrases:
python3 keyword_check.py "habit tracker" "habit tracker for adhd" "streak counter"
On October 2, 2026, for the US storefront, it printed:
{'term': 'habit tracker', 'results': 9, 'titles_with_all_words': 7, 'median_ratings': 10707, 'smallest_ratings': 2440}
{'term': 'habit tracker for adhd', 'results': 9, 'titles_with_all_words': 1, 'median_ratings': 17996, 'smallest_ratings': 90}
{'term': 'streak counter', 'results': 10, 'titles_with_all_words': 2, 'median_ratings': 7030, 'smallest_ratings': 2}
How to read it:
- "habit tracker" is crowded: 7 of the top results have both words in their name, and even the smallest has thousands of ratings. A new app will not reach the first screen soon.
- "habit tracker for adhd" still returns mostly general habit trackers with many ratings, and only one names ADHD. An app genuinely built for that audience has a real angle.
- "streak counter" has an app with 2 ratings in the top 10. That is the clearest signal a term is winnable.
Treat the output as a sample of the competition, not as your rank. The API's ordering is not guaranteed to match what the App Store app shows a given user, and the store personalizes results. For Google Play there is no official public search API, so do the same check by hand: search the term on a phone or at play.google.com while signed out, and note the names and rating counts of the first ten apps.
Step 5: Score and choose
Put everything in one sheet. For a new app, a simple scoring rule works better than a precise-looking one. Here is what it might look like for a hypothetical new habit app; the difficulty column comes from the script output above, and the other columns are placeholders for your own data:
| Phrase | Relevance (0 to 3) | Apple popularity | Play search visits | Difficulty | Decision |
|---|---|---|---|---|---|
| habit tracker | 3 | high | some | Hard | Keep in name only if it is your core job |
| streak counter | 3 | medium | none yet | Easy | Target now |
| habit tracker for adhd | 2 | low | none yet | Medium | Target if the app really serves it |
| daily checklist | 1 | high | none yet | Hard | Skip |

A short, honest list beats a long one. Write down why each phrase made the cut. Photo: Shixart1985, Wikimedia Commons, CC BY 2.0
Rules of thumb that hold up:
- Drop anything with relevance below 2. Ranking for it will not produce installs that stay.
- For a new app, favour easy terms with some popularity over popular terms you cannot reach. Installs from small terms build the history that helps you on bigger ones.
- Keep one broad term that describes your app's main job, even if it is hard. It anchors relevance and becomes winnable later.
Step 6: Put the keywords where each store reads them
The two stores index different fields, so the same list lands differently.
On the App Store, Apple says text relevance comes from your app's title, subtitle, keywords and primary category. The name and subtitle allow 30 characters each, and the keyword field 100 characters. Put your most important phrase in the name or subtitle, and the rest as single comma-separated words in the keyword field, without repeating words already in the name. Our post on App Store search in 2026 covers the keyword field rules in detail, with a script to check your field before you submit.
On Google Play, there is no keyword field. Google Play Console allows a 30-character app name, an 80-character short description and a 4,000-character full description (Create and set up your app). Google's help on visibility and discovery says Play search considers app titles, developer names and app descriptions. Use your main phrase in the title and short description, and work the others naturally into the full description. The metadata policy tells you to avoid "repetitive or unrelated keywords", so write for people and mention each phrase where it fits.
For the wording itself, our guide to writing a store listing that converts goes through the name, description and screenshots in order.
Step 7: Measure, then repeat every few weeks
Keyword work is a loop, not a one-off.
- App Store Connect Analytics splits traffic by source type. Apple defines App Store Search as users who viewed or downloaded your app from search, and notes that it includes ads in search results (Acquisition sources). It does not show which keywords people searched, so watch the trend in search views and downloads after each metadata change. Since Apple's March 2026 Analytics update, you can also build cohorts by download source to see whether search users stick around and pay.
- Play Console keeps the per-term view from step 3. Compare visitors and acquisitions for your target terms before and after a change.
- Re-run the difficulty script for your targets every month. A new competitor with a big launch can change a term's difficulty overnight.
Change one thing at a time where you can, and give each change two to four weeks before judging it, since store rankings move slowly for small apps.
Where free data runs out
Free sources will not give you daily rank tracking across hundreds of keywords, estimated download volumes per term, or historical rank charts for competitors. If you reach the point where those decide real money, a paid tool can be worth it. Until then, the combination above covers what a new app needs: words people use, a first-party popularity signal, the terms that already work on Google Play, and a quick read on who you are up against.
Your free ASO keyword research checklist
- 30 to 50 seed phrases from reviews, support email, autocomplete and your feature list.
- Phrases grouped by install intent.
- Apple Ads popularity noted for each phrase, per country.
- Optional: one to two weeks of a small Search Match campaign, Search Terms tab exported.
- Play Console search terms reviewed for visitors and conversion.
- Difficulty checked for each phrase with the Search API script, and by hand on Google Play.
- Phrases scored; anything with relevance below 2 dropped.
- Main phrase placed in the App Store name or subtitle and the Play title and short description.
- Remaining App Store words in the 100-character keyword field, with no repeats.
- Baseline for search traffic recorded before the change, and a date set to review it.
Beyond store search
Keyword work makes you findable by people who already know what they want. A new app also needs people to arrive from outside the store, so its first installs do not depend on a search ranking it has not earned yet. Our launch-week visibility checklist covers the links worth lining up, and on AppRanker you can paste your App Store or Google Play link to see what a place on the board costs today. The rank there is a plain sort on what each listing has paid, with every row linking straight to your store page.
And if your app does not show up even for its own name, keywords are not the problem yet: start with our guide to why an app is not showing in App Store or Google Play search.
FAQ
How do I find ASO keywords for free?
Build a seed list from your reviews, support email and store autocomplete, check popularity with Apple Ads search popularity, read the search terms report in Play Console, and judge difficulty by looking at the apps that already rank, for example with the iTunes Search API.
What does Apple Ads search popularity mean?
It is Apple's relative indicator of how often a keyword is searched on the App Store, shown on a scale from 1 to 5, where 5 is the most popular. It is relative, not a search count, and it varies by country.
Can I see which keywords people used to find my app on the App Store?
Not in App Store Connect Analytics, which shows App Store Search as a source but not the search terms. An Apple Ads campaign with Search Match shows the search terms your ads appeared for in its Search Terms tab.
Does Google Play have a keyword field?
No. Google Play search considers your app title, developer name and descriptions. Use your main phrase in the 30-character title and 80-character short description, and mention other phrases naturally in the full description without repeating keywords.
Is the iTunes Search API the same as App Store search?
No. It returns App Store results for a term, but Apple does not guarantee the order matches what a user sees in the App Store app, and it is limited to roughly 20 calls per minute. Use it to judge competition, not to track your exact rank.
Image credits
- Cover, notebook and pen beside a laptop: photo by Shixart1985, via Wikimedia Commons, CC BY 2.0. Cropped to 1200x630.
- Laptop, sticky notes and notebook: photo by Pixel.la Free Stock Photos, via Wikimedia Commons, CC0. Resized.
- Writing a list beside a laptop: photo by Shixart1985, via Wikimedia Commons, CC BY 2.0. Resized.


