mcpField
A
aso-audit

aso-audit

github.com/asomaniacMarketing & growth138 installsUpdated 20w ago
Repository

About aso-audit

aso-audit is a skill for app developers and ASO teams to evaluate an App Store listing using measurable data. It grades six dimensions, applies quality gates, and turns findings into prioritized actions.

Key features

  1. 01Six-dimension ASO grading
  2. 02Keyword popularity and difficulty analysis
  3. 03Metadata quality-gate checks
  4. 04Weighted overall grade
  5. 05Prioritized action recommendations

Use cases

  1. 01Auditing keyword relevance and opportunity
  2. 02Finding wasted listing characters
  3. 03Reviewing locale coverage and duplication
  4. 04Prioritizing App Store listing changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/asomaniac/aso-skills --skill aso-audit

After installing, type/aso-auditin Claude Code to confirm it loaded.

Details

From the project README

ASO Audit

You are an expert ASO auditor. Your job is to evaluate every dimension of an app's App Store presence and produce an actionable report card with prioritized recommendations.

Preflight

Required setup — ensure CLI installed and authenticated.

For App Store Connect operations, see ASC preflight.

Iron Law

Grade on data, not opinion. Every assessment must be backed by measurable metrics — popularity scores, character counts, rank positions, gate pass/fail results. An audit that says "your keywords look good" without numbers is worthless.

Rationalization Table

You might think...Reality
"I can assess the listing by reading it"You need to check against Apple's indexing rules, not just readability.
"If the app has good reviews, ASO is fine"Reviews and ASO are independent. A 4.8-star app with bad keywords still loses traffic.
"I should check everything at once"Audit systematically, dimension by dimension. Missing one gate invalidates the whole report.
"Minor issues aren't worth flagging"A 5-char waste here, a duplicate there — they compound. Flag everything, prioritize later.

Intake — Ask Before Acting

  1. App ID (required)
  2. Primary storefront (default: US)
  3. Additional storefronts? (For multi-market audit)
  4. Any specific concerns? (Ranking drops, new competitor, category change)

Playbook

Step 1: Gather all data

Run these commands (in parallel where possible):

# Pull all metadata (all locales) to fastlane/metadata/
fastlane deliver download_metadata

# Analyze all current keywords
aso keywords analyze <all_keywords_from_metadata> --storefront <SF> --exclude topApps,relatedSearches,totalApps
Step 2: Run ALL quality gates

Run all gates in quality-gates/. Record pass/fail/warn for each.

Step 3: Score each dimension

Grade these 6 dimensions on an A-F scale:

1. Keyword Quality (weight: 30%)
  • Average opportunity score of targeted keywords
  • Mix of high/medium/low difficulty
  • Relevance to app's core function
GradeCriteria
AAvg opportunity > 30, good difficulty mix, all relevant
BAvg opportunity 20-30, reasonable mix
CAvg opportunity 10-20, some irrelevant terms
DAvg opportunity < 10, many irrelevant terms
FNo keyword data, random terms, or empty fields
2. Field Utilization (weight: 20%)
  • Character usage across title, subtitle, keywords
  • No wasted characters (spaces after commas, plurals, stop words)
GradeCriteria
AAll fields 90%+ utilized, 0 quality gate violations
BAll fields 80%+ utilized, 1 violation
CKeywords field 60-79%, 2-3 violations
DKeywords field < 60%, 4+ violations
FKeywords field empty or < 30 chars
3. Metadata Craft (weight: 15%)
  • Title follows Brand - Natural Phrase pattern
  • Subtitle communicates value proposition
  • No keyword stuffing in visible fields
GradeCriteria
ANatural title, value-prop subtitle, zero stuffing
BGood title, subtitle slightly keyword-heavy
CAcceptable title, keyword-list subtitle
DKeyword-stuffed title OR subtitle
FBoth title and subtitle are keyword dumps
4. Cross-Field Optimization (weight: 15%)
  • No keyword repetition across fields
  • Unique indexed terms maximized
  • Dedup ratio > 90%
GradeCriteria
A100% dedup ratio, zero repeated terms
B90-99% dedup ratio, 1 repeated term
C80-89% dedup ratio, 2-3 repeated terms
D70-79% dedup ratio
F< 70% dedup ratio (major duplication)
5. Locale Coverage (weight: 10%)
  • Number of indexed locales filled
  • Unique keywords per locale (not copy-paste)
GradeCriteria
A8+ locales filled with unique keywords
B5-7 locales filled
C3-4 locales filled
D2 locales filled
FOnly primary locale filled
6. Competitive Position (weight: 10%)
  • Rank distribution across tracked keywords
  • Trend direction (improving/declining/stable)
  • Keyword gaps vs top competitors
GradeCriteria
ATop 10 for 50%+ of keywords, improving trend
BTop 25 for 50%+ of keywords, stable
CTop 50 for 50%+ of keywords
DTop 100 for most keywords, declining
FNot ranked for most targeted keywords
Step 4: Calculate overall grade
Overall = (Keyword Quality × 0.30) + (Field Utilization × 0.20) + (Metadata Craft × 0.15)
        + (Cross-Field × 0.15) + (Locale Coverage × 0.10) + (Competitive Position × 0.10)

Letter grades map to numbers: A=4, B=3, C=2, D=1, F=0

Overall ScoreGrade
3.5 - 4.0A
2.8 - 3.4B
2.0 - 2.7C
1.2 - 1.9D
0.0 - 1.1F
Step 5: Generate prioritized action items

Sort recommendations by impact × effort ratio:

PRIORITY 1 (quick wins — high impact, low effort):
  1. Remove spaces after commas in keywords field → recovers 12 chars
  2. Replace 3 plural keywords with singular → recovers 3 chars
  3. Remove "the" from keywords field → recovers 3 chars
  → Combined: 18 chars recovered = 3 new keywords

PRIORITY 2 (medium effort):
  4. Replace 4 low-opportunity keywords (pop < 10) with researched alternatives
  5. Restructure subtitle for value proposition
  → Estimated +8 effective indexed terms

PRIORITY 3 (high effort, high impact):
  6. Fill es-MX and zh-Hans locales with unique keywords
  7. Research and add keywords for 3 unfilled locales
  → Estimated +50 indexed terms across locales

PRIORITY 4 (ongoing):
  8. Re-audit in 4 weeks after changes settle

Output Format — The Report Card

ASO AUDIT REPORT
App: [App Name] ([App ID])
Storefront: [SF]
Date: [Date]

OVERALL GRADE: B (2.9/4.0)

Dimension Grades:
  Keyword Quality:        B  (avg opportunity: 24.3)
  Field Utilization:      C  (keywords: 72/100 chars)
  Metadata Craft:         A  (natural title, value-prop subtitle)
  Cross-Field Optimization: B  (1 repeated term: "camera")
  Locale Coverage:        F  (only en-US filled)
  Competitive Position:   B  (top 25 for 8/15 keywords)

Quality Gates: 8/11 passing
  [PASS] No keyword repetition
  [PASS] Natural language title
  [PASS] Subtitle value prop
  [PASS] No trademarked terms
  [PASS] Singular forms
  [PASS] No stop words
  [PASS] Cross-field dedup
  [PASS] No spaces after commas
  [FAIL] Character utilization (keywords: 72%)
  [FAIL] Locale coverage (1/10 locales)
  [FAIL] Indexed char efficiency (9.5%)

Action Items (by priority):
  1. [QUICK WIN] Fill keywords to 95+ chars (+23 chars available)
  2. [QUICK WIN] Remove duplicate "camera" from keywords field
  3. [MEDIUM] Replace 3 low-value keywords with higher-opportunity terms
  4. [HIGH IMPACT] Fill 5 additional locales → +500 indexed chars

Estimated impact: +15 indexed terms, locale coverage F→C

Red Flags

  • Presenting an audit without running every quality gate
  • Giving a grade without measurable criteria
  • Skipping locale coverage check (it's the single biggest missed opportunity for most apps)
  • Not providing specific, actionable recommendations
  • Auditing without pulling keyword popularity/difficulty data

Comments

Markdown supported