openaso

The App Store keyword field: 100 characters of mechanics

The keyword field is 100 hidden characters per localization, indexed into the same word pool as the title and subtitle — and the easiest budget to waste.

How the field is parsed

  • Separate single words with commas: budget,expense,saving. Commas count toward the 100 characters.
  • Spaces around commas are pure waste — a,b not a, b. A space that is a word's only separator costs the same as the comma replacing it, so mixing separators buys nothing.
  • Case never matters, and word order does not gate what can rank: queries are assembled from the combined pool, so budget,travel covers travel budget and budget travel alike.
  • Multi-word entries are just their words. Entering habit tracker as a phrase indexes habit and tracker — the same two pool words the comma-separated form buys.

What wastes budget

  • Duplicates across fields. A word already in the title or subtitle adds nothing again here — the pool is a set.
  • Plurals Apple already stems. English plurals and close variants generally match their base form (photo covers photos); spend the characters on a new word and verify the odd case with a rank probe.
  • Stopwords. Common function words (the, and, for) carry no standalone search value.
  • Your app name, your category name, and generic qualifiers like app or free — Apple's own guidance says to skip them.
  • Trademarked competitor names you have no rights to — a metadata-rejection risk under Guideline 2.3.7, not a growth channel.
coverage → keywordFieldWaste (excerpt)
{
  "keywordFieldWaste": {
    "spaces": 3,
    "duplicates": 9,
    "stopwords": 4,
    "separators": 1,
    "total": 17
  },
  "note": "17 of 100 characters buy nothing — reclaim them for new pool words"
}

The coverage tool computes this accounting locally for any draft: budgets, duplicates, per-word waste, and which target phrases the resulting pool actually covers.

Nobody can read the field back

The live keyword field is not exposed by any public Apple API — for your apps or anyone else's. Tools claiming to show a competitor's keywords are inferring them from observed rankings, not reading them. The honest workflow is the same inference done openly: pull the visible metadata with app, probe demand with suggest, and test hypotheses with rank.

A worked 100 characters

keyword field draft — 97/100 chars, zero waste
budget,expense,tracker,money,finance,saving,spend,bill,receipt,cash,wallet,plan,daily,simple,goal

Eighteen words, each new to the pool, each combining with title and subtitle words into dozens of rankable queries. That combinatorial reach — not any single phrase — is what the 100 characters are for.

FAQ

Should I use commas or spaces in the keyword field?

Either separates words identically and costs one character per boundary. Commas are the convention and survive human editing better; just never spend both (a, b) on one boundary.

Should I include both singular and plural forms?

Usually not. Apple stems common English plurals, so the base form covers both. Exceptions exist in edge cases and other languages — when a plural query matters commercially, verify with a rank check instead of paying ~10 characters on faith.

Can I see which keywords a competitor uses?

No API exposes any app's keyword field. Competitor keyword lists in ASO tools are reverse-inferred from ranking observations — useful hypotheses, not ground truth.

Do keywords in a second localization help?

Often, yes — many storefronts index additional localizations, effectively doubling the keyword budget. See cross-localization indexing for the mechanics and the verified storefront pairs.

Terms

  • keyword fieldThe hidden 100-character, comma-separated metadata field per localization, indexed into the app's combined search word pool.
  • keyword-field wasteCharacters that buy no new pool words: spaces around commas, cross-field duplicates, stopwords, and stemmed variants.
  • stopwordA common function word (the, and, for) that App Store search does not treat as a meaningful query word.

markdown mirror: /reference/keyword-field.md · full corpus: /llms-full.txt