# Keywords and tags are relevant — no competitor names or keyword stuffing

- **Pattern:** `ab-000424` (`app-store-metadata-listing.listing-content.keywords-no-stuffing`)
- **Severity:** high
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-000424
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-000424)

## Why it matters

Apple Guideline 2.3.7 and Google Play's Spam and Minimum Functionality keyword-spam policy both result in rejection when competitor names or stuffed keywords are detected. On the App Store, the 100-character keyword field is machine-parsed; exceeding it causes an automatic metadata validation failure before a human reviewer sees your app. On Google Play, keyword stuffing in the description triggers algorithmic suppression — your app ranks lower for every keyword it over-repeats, precisely the opposite of the intended effect. Using a competitor's trademark ('Spotify', 'Headspace') as a keyword additionally exposes the developer to trademark infringement claims under Lanham Act theories.

## Severity rationale

High because keyword violations cause automatic submission rejection on App Store and algorithmic ranking suppression on Google Play, directly blocking discoverability.

## Remediation

Audit `fastlane/metadata/ios/<locale>/keywords.txt` before every submission. The entire field must be 100 characters or fewer — verify with:

```bash
wc -c fastlane/metadata/ios/en-US/keywords.txt
```

Remove every competitor name. Remove your app's own name (App Store indexes it automatically). Remove any keyword repeated more than once. Replace stuffed repetitions with distinct, high-intent terms your actual users search for. Keep `keywords.txt` version-controlled in `fastlane/metadata/` so keyword changes are reviewable in git history before submission.

## Detection

- **ID:** `keywords-no-stuffing`
- **Severity:** `high`
- **What to look for:** Read `fastlane/metadata/ios/<locale>/keywords.txt` (App Store — comma-separated, 100-char limit) and any tag or keyword fields in Play Store metadata. Check for: (a) competitor app names (e.g., "Spotify", "Netflix", "Instagram", "Duolingo", "Headspace") — using competitor names as keywords is a policy violation on both platforms, (b) keyword stuffing — repeating the same word multiple times in the keywords field (e.g., "meditation, meditation app, meditation timer, best meditation"), (c) the app's own name repeated in the keywords field (App Store ignores app name in search automatically), (d) irrelevant category keywords (a flashlight app listing "social media, dating, games" as keywords), (e) exceeding platform character limits (App Store: 100 characters total including commas). For Google Play, check whether the short description and full description over-repeat keywords — Google's algorithm penalizes obvious stuffing. Before evaluating, extract and quote the keywords field or keyword-dense sections of the description to assess repetition patterns. Count all instances found and enumerate each.
- **Pass criteria:** Keywords are relevant to the app's actual functionality. No competitor names. No excessive repetition. Within character limits. At least 1 implementation must be confirmed.
- **Fail criteria:** Competitor names present; same keyword repeated 3+ times; keywords entirely unrelated to the app's purpose; App Store keywords field exceeds 100 characters.
- **Skip (N/A) when:** No keyword metadata files are present in the repository.
- **Cross-reference:** The `description-accurate` check verifies the description content that this check evaluates for keyword density.
- **Detail on fail:** `"fastlane/metadata/ios/en-US/keywords.txt contains competitor name: 'Calm, Headspace'" ` or `"Keywords field is 142 characters, exceeding the 100-character App Store limit"`.
- **Remediation:** Keyword violations cause immediate rejection. Keyword stuffing causes algorithmic suppression.
  1. Remove all competitor names from keyword fields — using them violates Apple and Google policies
  2. Remove your app's own name from keywords (App Store automatically indexes it)
  3. Focus on words your target users would actually type when searching for an app like yours
  4. Use each meaningful word once — repetition does not improve ranking and may get you rejected
  5. Stay within 100 characters total for the App Store keywords field
 Edit keyword fields in `fastlane/metadata/` or App Store Connect. Keep `src/store-metadata/keywords.txt` as a version-controlled reference.

## External references

- external apple-guideline-2.3.7 — https://developer.apple.com/app-store/review/guidelines/#2.3.7
- external google-play-spam-policy-keyword-spam — https://support.google.com/googleplay/android-developer/answer/10433049

Taxons: findability, content-integrity

HTML version: https://auditbuffet.com/patterns/ab-000424
