Chrome Web Store listing SEO (+ GEO)
Maximize discovery and conversion for a Chrome extension listing without keyword spam. Work in two surfaces:
| Surface |
Goal |
Primary levers |
| CWS listing |
Store search + category + Featured path |
Name, summary, Overview, category, assets, ratings, retention |
| Marketing site / docs |
Google Search + AI Overviews / AI Mode |
Helpful unique content, crawlability, Search Console |
Official ranking signals (CWS): relevancy (name + description), popularity (rating count + average), quality/UX, and usage (e.g. installs vs uninstalls). See REFERENCE.md.
Automated vs manual (do not fake APIs)
Prefer automate (scripts / free Google APIs)
| Task |
How |
| Character limits + spam heuristics |
node scripts/validateListingCopy.mjs |
| Name ≤75, summary ≤132, description ≤16k |
same script |
| Superlatives / brand-dump / >5 keyword repeats |
same script (policy heuristics) |
| Marketing-site lab performance |
PageSpeed Insights API / Lighthouse (web-perf-ci skill) |
| Site query + AI Overview visibility |
Search Console UI / Search Console API (after verify) |
| Demand language (web, not CWS) |
Google Trends UI / Trends API alpha; Keyword Planner (Ads) |
Must stay manual or agent-browser research
| Task |
Why |
| CWS keyword volume |
No official free CWS keyword API |
| CWS autocomplete + top-10 competitor titles/summaries |
Store is JS-heavy; agent/browser research is the reliable path |
| Judging natural language vs stuffing |
Policy is qualitative |
| Featured badge readiness |
Human product/UX bar, not copy-only |
| Authentic ratings / retention |
Product + support, not metadata hacks |
GEO “mentions” / llms.txt magic |
Google: ignore for Search; still classic SEO |
There is no official free Google API that ranks or keyword-volumes the Chrome Web Store. Do not invent one.
Workflow
Load sources of truth for the extension
- Title:
STORE_TITLE / manifest name / listing name field
- Summary: package short description / manifest description (≤132)
- Overview:
cws-listing.ts listing.description (or dashboard long description)
- Homepage URL, category, screenshots/icons
Research seeds (manual / browser) — 5–15 problem phrases users would type in the store (bulk prompts, chatgpt queue, …). For each seed, capture autocomplete + top titles/summaries. Cluster into primary job + platforms + jobs-to-be-done.
Draft copy
- Name (≤75):
[Brand] – [primary job in plain language] — no stuffing
- Summary (≤132): value-first; primary job + 1–2 platforms/outcomes
- Overview (≤16k): overview paragraph → feature sections → audience → trust/privacy. Keywords in sentences, never brand/location lists
Validate
node scripts/validateListingCopy.mjs \
--name "…" --summary "…" --description-file ./overview.txt
# or JSON:
node scripts/validateListingCopy.mjs --json-file ./listing-copy.json
Apply to the repo SSOT (cws-listing.ts, STORE_TITLE, package description). Do not push to CWS unless the user asks.
GEO (owned site only) — unique how-to / workflow content, FAQ in human language, PSI/Lighthouse health, Search Console Generative AI report. Skip llms.txt as a ranking strategy for Google.
Report before/after + policy checklist + which steps were automated vs researched.
Hard policy red lines (Chrome)
From CWS Keyword Spam / listing requirements:
- No irrelevant or excessive keywords
- No bare lists of sites / brands / keywords without value
- No lists of regional locations
- No unnatural repetition of the same keyword more than 5 times
- No unattributed testimonials in the description
- No superlatives like “best/greatest/fastest” in the summary (official listing guide)
When unsure, cut keywords — suspension risk beats rank fantasy.
Field checklist
Files
- REFERENCE.md — official links, limits, ranking, GEO, tool stack
- scripts/validateListingCopy.mjs — zero-dep copy validator
- templates/listing-copy.example.json — input shape for the script
1---2name: cws-listing-seo3description: Optimize Chrome Web Store listing SEO (name, short description/summary, Overview) and marketing-site GEO using official Chrome/Google guidance plus free Google APIs. Use when the user asks for CWS SEO, Chrome Web Store listing optimization, store title/summary/description copy, keyword research for extensions, Featured eligibility copy, or GEO/AEO for an extension landing page.4---56# Chrome Web Store listing SEO (+ GEO)78Maximize **discovery and conversion** for a Chrome extension listing without keyword spam. Work in two surfaces:910| Surface | Goal | Primary levers |11| --- | --- | --- |12| **CWS listing** | Store search + category + Featured path | Name, summary, Overview, category, assets, ratings, retention |13| **Marketing site / docs** | Google Search + AI Overviews / AI Mode | Helpful unique content, crawlability, Search Console |1415Official ranking signals (CWS): **relevancy (name + description)**, **popularity (rating count + average)**, **quality/UX**, and **usage** (e.g. installs vs uninstalls). See [REFERENCE.md](REFERENCE.md).1617## Automated vs manual (do not fake APIs)1819### Prefer automate (scripts / free Google APIs)2021| Task | How |22| --- | --- |23| Character limits + spam heuristics | `node scripts/validateListingCopy.mjs` |24| Name ≤75, summary ≤132, description ≤16k | same script |25| Superlatives / brand-dump / >5 keyword repeats | same script (policy heuristics) |26| Marketing-site lab performance | PageSpeed Insights API / Lighthouse (`web-perf-ci` skill) |27| Site query + AI Overview visibility | Search Console UI / Search Console API (after verify) |28| Demand language (web, not CWS) | Google Trends UI / Trends API alpha; Keyword Planner (Ads) |2930### Must stay manual or agent-browser research3132| Task | Why |33| --- | --- |34| **CWS keyword volume** | No official free CWS keyword API |35| CWS autocomplete + top-10 competitor titles/summaries | Store is JS-heavy; agent/browser research is the reliable path |36| Judging natural language vs stuffing | Policy is qualitative |37| Featured badge readiness | Human product/UX bar, not copy-only |38| Authentic ratings / retention | Product + support, not metadata hacks |39| GEO “mentions” / `llms.txt` magic | Google: ignore for Search; still classic SEO |4041There is **no official free Google API that ranks or keyword-volumes the Chrome Web Store**. Do not invent one.4243## Workflow44451. **Load sources of truth** for the extension46 - Title: `STORE_TITLE` / manifest `name` / listing name field47 - Summary: package short description / manifest description (≤132)48 - Overview: `cws-listing.ts` `listing.description` (or dashboard long description)49 - Homepage URL, category, screenshots/icons502. **Research seeds (manual / browser)** — 5–15 problem phrases users would type in the store (`bulk prompts`, `chatgpt queue`, …). For each seed, capture autocomplete + top titles/summaries. Cluster into primary job + platforms + jobs-to-be-done.513. **Draft copy**52 - **Name (≤75):** `[Brand] – [primary job in plain language]` — no stuffing53 - **Summary (≤132):** value-first; primary job + 1–2 platforms/outcomes54 - **Overview (≤16k):** overview paragraph → feature sections → audience → trust/privacy. Keywords **in sentences**, never brand/location lists554. **Validate**5657 ```bash58 node scripts/validateListingCopy.mjs \59 --name "…" --summary "…" --description-file ./overview.txt60 # or JSON:61 node scripts/validateListingCopy.mjs --json-file ./listing-copy.json62 ```63645. **Apply** to the repo SSOT (`cws-listing.ts`, `STORE_TITLE`, package `description`). Do **not** push to CWS unless the user asks.656. **GEO (owned site only)** — unique how-to / workflow content, FAQ in human language, PSI/Lighthouse health, Search Console Generative AI report. Skip `llms.txt` as a ranking strategy for Google.667. **Report** before/after + policy checklist + which steps were automated vs researched.6768## Hard policy red lines (Chrome)6970From CWS **Keyword Spam** / listing requirements:7172- No irrelevant or excessive keywords73- No bare lists of sites / brands / keywords without value74- No lists of regional locations75- No unnatural repetition of the **same** keyword more than **5** times76- No unattributed testimonials in the description77- No superlatives like “best/greatest/fastest” in the summary (official listing guide)7879When unsure, cut keywords — suspension risk beats rank fantasy.8081## Field checklist8283- [ ] Name ≤75, clear, unique, not stuffed84- [ ] Summary ≤132, front-loads value, no competitor names85- [ ] Overview: paragraph + scannable sections; keywords contextual86- [ ] `validateListingCopy.mjs` exits 0 (or warnings accepted consciously)87- [ ] Category accurate88- [ ] Screenshots/icons match current product89- [ ] Homepage + support URLs real90- [ ] Marketing site (if any): GSC verified; PSI checked91- [ ] No CWS push as a side effect of unrelated work9293## Files9495- [REFERENCE.md](REFERENCE.md) — official links, limits, ranking, GEO, tool stack96- [scripts/validateListingCopy.mjs](scripts/validateListingCopy.mjs) — zero-dep copy validator97- [templates/listing-copy.example.json](templates/listing-copy.example.json) — input shape for the script