Skip to content
Mobile
Skill

/app-store-optimization

Optimize App Store product pages for search visibility and conversion. Use for App Store Optimization (ASO), keyword research, app name/subtitle/keyword-field strategy, conversion-focused descriptions and promotional text, screenshot captions and ordering, Custom Product Pages

From plugin
swift-ios-skills
1.3k86 skills1 MCP

Claude Code

$ npx -y skills add dpearson2699/swift-ios-skills --skill app-store-optimization --agent claude-code

SKILL.md

app-store-optimization.SKILL.md
name: app-store-optimization
description: "Optimize App Store product pages for search visibility and conversion. Use for App Store Optimization (ASO), keyword research, app name/subtitle/keyword-field strategy, conversion-focused descriptions and promotional text, screenshot captions and ordering, Custom Product Pages with assigned search keywords, In-App Events, Product Page Optimization tests, localized metadata, ratings/review strategy, and in-app review prompt timing with RequestReviewAction or AppStore.requestReview. Also use when routing ASO vs App Store review, privacy/ATT, or StoreKit implementation boundaries."

App Store Optimization (ASO)

Search visibility and conversion optimization for App Store product pages. This skill covers strategic metadata decisions -- which keywords to target, how to structure descriptions for conversion, and how to use Custom Product Pages and in-app events for discoverability. For metadata compliance rules (character limits, screenshot device requirements, rejection triggers), see the `app-store-review` skill.

Contents

  • [Workflow and Boundaries](#workflow-and-boundaries)
  • [Title and Subtitle Strategy](#title-and-subtitle-strategy)
  • [Keyword Field Strategy](#keyword-field-strategy)
  • [Description Structure](#description-structure)
  • [Promotional Text](#promotional-text)
  • [Screenshot and Preview Optimization](#screenshot-and-preview-optimization)
  • [In-App Review Prompts](#in-app-review-prompts)
  • [Custom Product Pages](#custom-product-pages)
  • [In-App Events](#in-app-events)
  • [Product Page Optimization](#product-page-optimization)
  • [Ratings and Review Management](#ratings-and-review-management)
  • [Localized Metadata Optimization](#localized-metadata-optimization)
  • [Common Mistakes](#common-mistakes)
  • [Review Checklist](#review-checklist)
  • [References](#references)

Workflow and Boundaries

1. Split recommendations into **Visibility** (indexed metadata, localization, ratings, events) and **Conversion** (message, assets, variants, experiments). 2. Name the evidence, owner, target metric, and validation checkpoint for each. 3. Apply the [Review Checklist](#review-checklist).

| Work | Owner | |---|---| | Listing, keyword/message fit, assets, page variants, localization, events, ratings strategy | This skill | | Submission compliance, privacy manifest/labels, ATT wording, rejection risk | `app-store-review` | | Purchases, paywalls, entitlements, subscription mechanics | `storekit` |

Title and Subtitle Strategy

Apple indexes the app name and subtitle for search. Together they provide 60 characters (30 + 30) of indexed, high-visibility keyword real estate.

Positioning framework

Use **Brand -- Keyword** when the brand already has recognition, **Keyword -- Brand** when a new app must compete on category terms, and a blended name when the brand naturally contains a relevant keyword.

Rules

  • Do not repeat words between the name and subtitle -- Apple indexes both, so duplicates waste characters.
  • Front-load the highest-value keyword in whichever field has more room.
  • Avoid generic filler words ("the", "best", "app") -- they consume space without search value.
  • The subtitle should communicate the primary value proposition, not a tagline.

Keyword Field Strategy

App Store Connect accepts up to 100 UTF-8 bytes in the keyword field (some Apple overview pages summarize this as 100 characters). Use comma-separated terms with no spaces after commas; each term must be longer than two characters.

Prioritization

Rank candidate keywords by three factors:

| Factor | Weight | Signal | |--------|--------|--------| | **Relevance** | Highest | Does the keyword describe what the app actually does? | | **Search volume** | Medium | Are users actually searching for this term? | | **Competition** | Lower | How many apps target this keyword? |

Prioritize user intent and metadata fit. Account for the primary category alongside the app name, subtitle, and keyword field; do not repeat it.

Tactical rules

  • Deduplicate against title and subtitle -- Apple already indexes those words.
  • Do not include both singular and plural forms of the same term; Apple treats

them as duplicates.

  • Omit the category name -- Apple adds the app's primary category to search automatically.
  • Omit spaces after commas -- they count against the 100-character limit.
  • Consider abbreviations and common misspellings if they are genuine search terms.
  • Reserve space for the most relevant, highest-intent terms; do not spend characters on terms that only weakly describe the app.

**See:** [references/keyword-research-methodology.md](references/keyword-research-methodology.md) for the full research process, scoring framework, and indexing details.

**Validation checkpoint:** Render the final name, subtitle, and keyword field together. Count its UTF-8 bytes, split it on commas, reject blank, space-prefixed, or two-character-or-shorter tokens, compare normalized words across the three indexed fields and primary category, and require a relevance or demand signal for every retained term. Revise the field and repeat the check until every token earns its space.

Description Structure

Apple's search guidance centers text relevance on the app name, subtitle, keywords, and primary category, plus behavior signals such as downloads, ratings, and reviews. Treat the description as conversion copy, not a place to stuff extra search terms: users who expand it are evaluating whether to download.

Four-part structure

1. **Hook** (first 1-3 lines) -- the only text visible before the "more" fold. Lead with the strongest benefit or differentiator. This is the most important copy on the page. 2. **Feature highlights** -- 4-6 short feature descriptions. Use Unicode bullet characters (•) since the App Store does not render markdown. Focus on outcomes, not technical details. 3. **Social proof** -- awards, press quotes, user count milestones, or notable ratings.

Read more
@dpearson2699
Ships withswift-ios-skills

86 agent skills optimized for iOS 26+ development with Swift 6.3 and modern Apple frameworks.

1.3k86 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.3k
Star history of dpearson2699/swift-ios-skills on GitHub, a chart by star-history.com

Other skills on swift-ios-skills.

alarmkit

alarmkit

Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, StandBy, and paired Apple…

app-clips

app-clips

Build iOS App Clips with invocation URLs, App Clip Codes, NFC, QR codes, Safari banners, Maps, Messages, target setup, App Store…

More skills from other plugins.

deep-code-review

deep-code-review

In-depth design-focused code review - understands codebase context before evaluating PR changes, posts structured feedback to…

expo1d53k
@expo@expoInstall Skill
modlens

modlens

Plug-in vision for text-only models. Hard rule: when a file path or URL with an image extension (.png, .jpg, .jpeg, .webp, .gif,…

modlens2w4.6k
@liustack@liustackInstall Skill
appllama-app-design-skill

appllama-app-design-sk…

Build native-feeling, benchmark-quality mobile app screens (Expo / React Native). Use when designing or implementing any mobile…

appllama2mo3.9k
@appllama@appllamaInstall Skill

Questions about app-store-optimization.

Which coding agents can use app-store-optimization?
app-store-optimization installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.