📊
ASO 100 分計分卡
App Store 優化自我健檢 · 每週跑一次
市面上的 ASO 建議大多長這樣:「標題要放關鍵字」「截圖要好看」。都對,但沒辦法拿來打分——你永遠不知道自己現在幾分、下週有沒有進步。
這是我自己在 13 支 App 上每週實跑出來的一張表。47 分機器查得到,53 分只能人眼判斷,兩邊合起來 100 分。
47
機器可自動判定
Title 長度、實測排名、截圖數、語言數、更新天數、評分——全部來自 Apple 公開 API,不必開帳號。
53
只能人眼判斷
Icon 辨識度、截圖文案、影片前三秒、描述摺疊線、評分引導時機——沒有 API 能替你打這些分。
為什麼要分開算?把「拿不到資料」跟「不及格」混在一起,是自我健檢最常見的假警報。Apple 的 iTunes API 不回傳 Subtitle 與 100 字元 Keywords 這兩個欄位——沒填資料時它應該整項移出分母,而不是算 0 分讓你無條件掉 20 分、每支 App 都亮紅燈。
A. 機器可自動判定(47 分)
這 11 項全部可以用 Apple 公開的 iTunes Search / Lookup API 查出來,不需要 App Store Connect 帳號,也不需要 Apple Search Ads。每週跑一次腳本就有一組客觀數字。
| 檢查項目 | 分數 | 及格線 | 為什麼值這個分數 |
| Title ≤ 30 字元 | 3 | 1–30 | 超過 30 的字元不會進 Apple 的關鍵字索引,在搜尋結果裡也會被截斷。這條幾乎沒人會錯,所以只給 3 分。 |
| 至少 1 組關鍵字進前 10 名 | 4 | ≥ 1 組 | 排在第 11 名跟排在第 200 名,自然下載量的差別非常小。前 10 名是有沒有自然流量的分水嶺。 |
| Subtitle ≥ 15 字元 | 5 | 15–30 | Subtitle 的關鍵字權重等同 Keywords 欄位。空著等於白丟 30 字元的免費排名空間。 |
| Subtitle 不與 Title 重複 | 5 | 0 個重複字 | Apple 會自動把各欄位的字交叉組合。Title 已有的字再寫一次,不會加權,只是浪費格子。 |
| Keywords 用滿 ≥ 90 字元 | 3 | 90–100 | iOS 專屬的 100 字元免費資源。用到 60 字元就收手,等於自己少要 40 字元。 |
| Keywords 格式正確(無空格) | 4 | a,b,c | 半形逗號分隔、不留空格。每個空格都吃掉一格額度,10 個詞就白白損失 9 字元。 |
| Keywords 不重複上方欄位 | 3 | 0 個重複 | 同「Subtitle 不與 Title 重複」,只是這欄更便宜,罰得輕一點。 |
| 截圖 ≥ 5 張 | 5 | ≥ 5 | 不是張數越多越好(Apple 上限 10 張,放滿也不加分),而是少於 5 張明顯不足。真正決定轉換率的是前 3 張(見 B 區)。 |
| 平均評分 ≥ 4.5 | 5 | ≥ 4.5 ★ | 評分同時吃兩頭:排名權重、以及搜尋結果頁的點擊率。低於 4.0 轉換率會明顯下滑。 |
| 60 天內有更新 | 5 | ≤ 60 天 | App Store 對活躍的 App 有加成。超過 60 天沒動,等於自己放掉一個免費因子。 |
| 已本地化 ≥ 2 語系 | 5 | ≥ 2 | 競爭較小的語系(日、韓、西、葡)常常只要做好在地化就能拿到很前面的名次。 |
| 小計 | 47 | 全部可自動查 |
B. 只能人眼判斷(53 分)
這 9 項沒有 API 能替你打分,但它們決定的是轉換率——也就是「被搜到之後有沒有人真的按下載」。A 區拿滿分而 B 區不及格的 App,會出現「排名不錯但下載很少」的典型症狀。
| 檢查項目 | 分數 | 怎麼自己判斷 |
| Icon 在競品堆裡一眼可辨 | 8 | 把自己的 icon 跟搜尋結果前 6 名並排截圖,縮到 60px 看。認不出哪個是自己的,就是不及格。 |
| 前 3 張截圖有文案標題 | 8 | 大多數人只看得到前 2–3 張。純畫面截圖沒有文案,等於要使用者自己猜這 App 在幹嘛。 |
| 截圖文案講「好處」不是「功能名」 | 5 | 「離線可用,不收資料」是好處;「支援離線模式」是功能名。念出來像規格表就是不及格。 |
| 有 App Preview 影片,前 3 秒就出現核心動作 | 6 | 影片自動播放且預設靜音。開頭放 logo 動畫的,等於把最貴的 3 秒丟掉。 |
| 描述摺疊線以上就講完價值 | 6 | 只有前 3 行不用點「更多」。把最重要的一句話放第一行。 |
| 描述有自然的搜尋詞,但沒硬塞關鍵字 | 4 | iOS 的描述不進關鍵字索引,塞了也沒用;但它會被 Google 和 AI 檢索到,所以要寫得像人話。 |
| App 內有 Happy Moment 評分引導 | 6 | 在情緒最高點(剛完成一關、剛解鎖新內容)才跳 SKStoreReviewController,不要一開 App 就問。 |
| What's New 好好寫,不是只寫 Bug fixes | 4 | 更新說明是少數會被回訪使用者讀到的欄位。寫「修正了什麼、加了什麼」比「Bug fixes」有價值。 |
| 本地化不是直翻 | 6 | 各語系要重做關鍵字研究。把英文詞丟進翻譯器,出來的通常不是當地人會打進搜尋框的字。 |
| 小計 | 53 | 需人眼判斷 |
A 區 47 + B 區 53 = 100 分。實務上 A 區先做完再碰 B 區——A 區是改欄位、幾分鐘的事;B 區是重做素材,成本高很多。
競爭度:一個可以自己算的估算值
Apple 官方的 Popularity 分數(5–100)要有 Apple Search Ads 帳號才拿得到。沒有帳號時,可以用「前 10 名的評論數中位數」來估——那代表你要擠掉的守門員規模。
# 對一個關鍵字搜尋,取回前 200 筆結果
med = median(前 10 名 App 的評論數) # 守門員規模
strength = clamp((log10(med + 1) − 2) / 5, 0, 1) # 100 則 ≈ 0 / 1000 萬則 = 1
breadth = min(結果總數 / 200, 1) # 這個詞底下擠了多少 App
競爭度 = round(strength × 85 + breadth × 15) # 0–100
直覺是:守門員的評論數每多 10 倍,難度大約 +17 分。前 10 名都是 100 則評論的小 App,跟前 10 名都是 10 萬則評論的大廠,是完全不同的兩件事,但「結果總數」這個常見指標分不出來——所以權重只給它 15%。
| 競爭度 | 判讀 | 該怎麼辦 |
| 0–24 低 | 守門員規模小 | 值得放進 Title / Subtitle,新 App 有機會直接排上去。 |
| 25–44 中 | 要一點評論數才擠得進去 | 放 Subtitle 或 Keywords,先觀察兩輪再決定要不要升級到 Title。 |
| 45–64 高 | 前 10 名有成熟 App | 短期內排不上。放 Keywords 當長尾就好,不要佔 Title 的字元。 |
| 65–100 極高 | 大廠戰場 | 像 kids、notes、scan 這種泛用詞。放進 Title 是純浪費。 |
這是自訂估算值,不是 Apple 官方數據。它的用途是「同一支 App 的不同關鍵字互相比較」與「同一個關鍵字的逐週變化」,不適合拿去跟別人的工具對數字。
關鍵字去留規則
同一個排名,放在不同欄位的結論不一樣。Title(30 字元)和 Subtitle(30 字元)是最貴的格子,排不上就該換掉;Keywords 有 100 字元,便宜,排不上留著當長尾無妨。
| 實測排名 | 放在 Title / Subtitle | 放在 Keywords 欄位 |
| 第 1–10 名 | ✅ Keep 務必留著,這是自然流量的來源 | ✅ Keep |
| 第 11–50 名 | 🟡 觀察 方向對了,再等一兩輪看會不會往前 | 🟡 觀察 |
| 第 51–200 名 | ⚠️ 考慮替換 這個名次幾乎沒有流量 | ⚠️ 考慮替換 |
| 200 名外 | 競爭度 ≥ 40 → ❌ Remove 打不贏又佔著最貴的格子 競爭度 < 40 → ⚠️ 沒排名 競爭不高卻排不上,通常是相關性不足 | 競爭度 < 45 → 🔵 低競爭機會 競爭度 ≥ 45 → 🔵 長尾備用 |
為什麼兩欄的門檻不一樣(40 vs 45)?因為兩邊的字元不等價。Title / Subtitle 各只有 30 字元,用錯一個詞的代價是「擠掉另一個能排上的詞」,所以門檻設得嚴一點(40 就該換)。Keywords 有 100 字元、又不會被使用者看到,留一個排不上的長尾詞幾乎沒有機會成本,門檻自然可以鬆一點(45)。
✅ Keep前 10 名。改 Title 時務必確認這些字還在。最容易犯的錯是為了塞新詞,把原本排第 1 的字擠掉了。
⚠️ 沒排名競爭度低卻排不上,代表 Apple 認為你的 App 跟這個詞相關性不夠。多半得靠描述、類別、實際下載行為去補,換字不一定有用。
❌ Remove高競爭 + 排不上。這是計分卡上最該優先動的一格——換掉它是零成本的,改完等 2–4 週再看。
每週作業流程
ASO 不是一次做完的事。它的價值幾乎全部來自「逐週比較」——單一週的絕對數字沒什麼意義,變化才有。
1
打分
照 A 區逐項打勾,B 區自己誠實給。第一次通常會落在 60–70 分,這很正常。
2
挑最貴的一格
先看 Title 和 Subtitle 裡有沒有「❌ Remove」的字。有的話,那就是這週唯一要動的東西。
3
一次只改一個欄位
同時改 Title、Subtitle、Keywords,兩週後排名動了也分不出是哪個生效——等於這次實驗白做。
4
等 2–4 週
Apple 重建索引、排名回穩需要時間。改完隔天去看名次,看到的是雜訊不是結果。
5
對照週變化
下一輪比對同一組關鍵字的名次。名次數字越小越好,所以「↑」代表往前進了。
三個最常犯的錯
1. 把 Subtitle 當標語寫
「讓學習變有趣」念起來很漂亮,但沒有人會把這句話打進搜尋框。Subtitle 的權重等同 Keywords 欄位,它是排名欄位,不是文案欄位。
→ 改成使用者真的會搜的詞,而且一個字都不要跟 Title 重複。
2. Keywords 塞了 Title 已經有的字
Apple 會自動把 Title、Subtitle、Keywords 三個欄位的字交叉組合。Title 已經有 piano,Keywords 再寫一次 piano 不會加權,只是吃掉 5 個字元額度。
→ 把 Keywords 當成「Title 和 Subtitle 沒放進去的字」的補充清單。
3. 一次改三個欄位
這是最貴的錯:兩週後排名進步了 30 名,但你不知道是哪個欄位的功勞,下一支 App 上架時完全無法複製。
→ 一次一個變因。ASO 是實驗,不是裝潢。
📊
The 100-Point ASO Scorecard
App Store optimisation self-audit · run it weekly
Most ASO advice reads like this: "put keywords in your title", "make your screenshots nice". All true, and none of it scoreable — you never know what you're at today, or whether next week is better.
This is the sheet I actually run every week across 13 apps. 47 points a machine can check, 53 points only a human can judge, 100 together.
47
Machine-checkable
Title length, measured rankings, screenshot count, locales, days since update, rating — all from Apple's public API. No account needed.
53
Human judgment only
Icon recognisability, screenshot captions, the first 3 seconds of the preview, the description fold, when you ask for a rating.
Why split them? Conflating "no data" with "failed" is the classic false alarm in a self-audit. Apple's iTunes API doesn't return Subtitle or the 100-character Keywords field — when those are blank the item should be removed from the denominator, not scored zero. Otherwise every app drops 20 points unconditionally and the whole report goes red for no reason.
A. Machine-checkable (47 points)
All 11 come from Apple's public iTunes Search / Lookup API. No App Store Connect login, no Apple Search Ads. Run the script once a week and you have an objective number.
| Check | Pts | Pass | Why it's worth that much |
| Title ≤ 30 chars | 3 | 1–30 | Anything past 30 never enters Apple's keyword index and gets truncated in results. Almost nobody gets this wrong — hence only 3. |
| ≥ 1 keyword in the top 10 | 4 | ≥ 1 | The gap between rank 11 and rank 200 is small. The top 10 is the line between having organic traffic and not. |
| Subtitle ≥ 15 chars | 5 | 15–30 | Subtitle carries the same keyword weight as the Keywords field. Leaving it empty throws away 30 free ranking characters. |
| Subtitle shares no word with Title | 5 | 0 overlap | Apple cross-combines words across fields automatically. Repeating a Title word adds no weight — it just burns a slot. |
| Keywords ≥ 90 chars used | 3 | 90–100 | An iOS-only free resource of 100 characters. Stopping at 60 means asking for 40 fewer than you're given. |
| Keywords formatted correctly (no spaces) | 4 | a,b,c | Comma-separated, no spaces. Every space eats a slot — ten terms means nine characters gone for nothing. |
| Keywords don't repeat the fields above | 3 | 0 overlap | Same logic as the Subtitle rule, but this field is cheaper, so the penalty is lighter. |
| ≥ 5 screenshots | 5 | ≥ 5 | More isn't better (Apple caps it at 10, and filling all 10 earns nothing extra); fewer than 5 is visibly thin. What actually drives conversion is the first 3 (see section B). |
| Average rating ≥ 4.5 | 5 | ≥ 4.5 ★ | Rating feeds both ranking weight and tap-through on the results page. Below 4.0 conversion drops sharply. |
| Updated within 60 days | 5 | ≤ 60 days | The App Store rewards active apps. Going quiet past 60 days is giving up a free factor. |
| Localised into ≥ 2 languages | 5 | ≥ 2 | Less crowded storefronts (JA, KO, ES, PT) often rank well on localisation quality alone. |
| Subtotal | 47 | fully automatable |
B. Human judgment only (53 points)
No API scores these, but they decide conversion — whether being found turns into being installed. An app that aces section A and fails section B shows the classic symptom: decent ranking, few downloads.
| Check | Pts | How to judge it yourself |
| Icon is recognisable among competitors | 8 | Screenshot your icon beside the top 6 search results, scale to 60px. If you can't pick yours out, it fails. |
| First 3 screenshots carry caption headlines | 8 | Most people only ever see 2–3. A raw screen with no caption asks the visitor to guess what the app does. |
| Captions state benefits, not feature names | 5 | "Works offline, collects nothing" is a benefit. "Supports offline mode" is a feature name. If it reads like a spec sheet, it fails. |
| App Preview video shows the core action in 3s | 6 | It autoplays muted. Opening on a logo animation throws away the most expensive three seconds you have. |
| The value lands above the description fold | 6 | Only the first ~3 lines show without tapping "more". Put the one sentence that matters on line one. |
| Description reads naturally, no keyword stuffing | 4 | On iOS the description is not indexed for keywords, so stuffing gains nothing — but Google and AI assistants do read it. |
| In-app rating prompt fires at a happy moment | 6 | Trigger SKStoreReviewController at an emotional peak (level cleared, content unlocked) — never on launch. |
| What's New says something, not "Bug fixes" | 4 | Release notes are one of the few fields returning users actually read. Say what changed. |
| Localisation isn't a straight translation | 6 | Redo keyword research per locale. Machine-translating your English terms rarely produces what locals type into search. |
| Subtotal | 53 | needs a human |
47 + 53 = 100. In practice finish section A first: it's editing text fields, a few minutes' work. Section B means remaking assets, which costs far more.
Competitiveness: an estimate you can compute yourself
Apple's official Popularity score (5–100) requires an Apple Search Ads account. Without one, you can estimate from the median review count of the top 10 — that's the size of the gatekeeper you'd have to displace.
# search one term, take the top 200 results
med = median(review counts of the top 10) # gatekeeper size
strength = clamp((log10(med + 1) − 2) / 5, 0, 1) # 100 reviews ≈ 0 / 10M = 1
breadth = min(total results / 200, 1) # how crowded the term is
score = round(strength × 85 + breadth × 15) # 0–100
The intuition: every 10× increase in the gatekeeper's review count costs about +17 points of difficulty. A top 10 made of 100-review indies and a top 10 made of 100,000-review studios are entirely different problems — and "number of results", the metric everyone quotes, can't tell them apart. That's why it only gets 15% of the weight.
| Score | Reading | What to do |
| 0–24 Low | Small gatekeepers | Worth a Title / Subtitle slot. A new app can rank here directly. |
| 25–44 Medium | Needs some review volume | Put it in Subtitle or Keywords, watch two cycles before promoting it to the Title. |
| 45–64 High | Established apps in the top 10 | Not winnable soon. Keep it in Keywords as a long tail; don't spend Title characters. |
| 65–100 Very high | Big-studio territory | Generic words like kids, notes, scan. In a Title they are pure waste. |
This is a self-defined estimate, not official Apple data. Use it to compare keywords within one app, and to track one keyword week over week. Don't compare the raw number against other tools.
Keep-or-cut rules for keywords
The same rank means different things in different fields. Title (30) and Subtitle (30) are the expensive slots — if a word can't rank, replace it. Keywords has 100 characters, it's cheap, so a non-ranking word can stay as a long tail.
| Measured rank | In Title / Subtitle | In the Keywords field |
| 1–10 | ✅ Keep — this is where the organic traffic comes from | ✅ Keep |
| 11–50 | 🟡 Watch — right direction, give it another cycle or two | 🟡 Watch |
| 51–200 | ⚠️ Consider replacing — this rank produces almost no traffic | ⚠️ Consider replacing |
| Beyond 200 | competitiveness ≥ 40 → ❌ Remove — unwinnable, and occupying your most expensive slot competitiveness < 40 → ⚠️ Unranked — low competition yet still not ranking, usually a relevance problem | competitiveness < 45 → 🔵 Low-competition opportunity competitiveness ≥ 45 → 🔵 Long-tail spare |
Why the two columns use different thresholds (40 vs 45). The characters aren't equivalent. Title and Subtitle give you 30 characters each, so a wrong word costs you a word that could have ranked — hence the stricter line (replace at 40). The Keywords field has 100 characters and is never shown to users, so keeping a non-ranking long-tail term has almost no opportunity cost, and the line can sit looser (45).
✅ KeepTop 10. When you edit the Title, check these words survived. The most common self-inflicted wound is squeezing in a new term and pushing out the one that ranked #1.
⚠️ UnrankedLow competition but still no rank means Apple doesn't consider your app relevant to that term. That's usually fixed through the description, category and real install behaviour — swapping words may not help.
❌ RemoveHigh competition plus no rank. This is the first cell to act on — replacing it costs nothing. Then wait 2–4 weeks.
The weekly loop
ASO isn't a one-off. Nearly all of its value comes from week-over-week comparison — a single week's absolute number says very little; the change says a lot.
1
Score it
Tick off section A, judge section B honestly. A first pass usually lands at 60–70. That's normal.
2
Find the most expensive cell
Look for a "❌ Remove" word inside the Title or Subtitle. If there is one, that's the only thing you touch this week.
3
Change one field at a time
Edit Title, Subtitle and Keywords together and a two-week rank move tells you nothing about which one worked. The experiment is wasted.
4
Wait 2–4 weeks
Apple needs time to re-index and for ranks to settle. Checking the day after an edit shows you noise, not a result.
5
Compare the change
Next cycle, diff the same keyword set. Lower rank numbers are better, so "↑" means it moved forward.
Three mistakes almost everyone makes
1. Writing the Subtitle as a slogan
"Making learning fun" reads beautifully and nobody types it into search. The Subtitle carries the same weight as the Keywords field — it is a ranking field, not a copy field.
→ Use words people actually search, and share not a single word with the Title.
2. Repeating Title words in Keywords
Apple cross-combines words across Title, Subtitle and Keywords automatically. If the Title already has piano, adding piano to Keywords adds no weight — it just eats 5 characters.
→ Treat Keywords as the list of everything the other two fields left out.
3. Changing three fields at once
The costliest mistake: two weeks later you're up 30 places, you don't know which field earned it, and you can't reproduce it on the next app you ship.
→ One variable per cycle. ASO is an experiment, not a redecoration.