# 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](https://openaso.ai/docs/concepts.md), 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.

```json
{
  "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](https://openaso.ai/tools.md) 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](https://openaso.ai/tools.md), probe demand with [suggest](https://openaso.ai/tools.md), and test hypotheses with [rank](https://openaso.ai/tools.md).

## A worked 100 characters

```text
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 field** — The hidden 100-character, comma-separated metadata field per localization, indexed into the app's combined search word pool.
- **keyword-field waste** — Characters that buy no new pool words: spaces around commas, cross-field duplicates, stopwords, and stemmed variants.
- **stopword** — A common function word (the, and, for) that App Store search does not treat as a meaningful query word.
