Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
0f0852e
growth(SEO): improve brain-burst snippet, share metadata and tracked …
appdevelopsk Oct 27, 2026
38b22db
growth(SEO): improve snaplingo snippet, share metadata and tracked st…
appdevelopsk Oct 27, 2026
4709606
growth(content): align brain-burst English highlights across static a…
appdevelopsk Oct 27, 2026
0309eb3
growth(content): align snaplingo English highlights across static and…
appdevelopsk Oct 27, 2026
a85a2b2
growth(site): guide searchers of unavailable Face Battle to clearly d…
appdevelopsk Oct 27, 2026
fc5df29
seo(site): allow public app icons for search image crawlers
appdevelopsk Oct 27, 2026
c856d5e
ops(site): publish priority search landings and image crawl policy al…
appdevelopsk Oct 27, 2026
fdbdb7a
ci(site): trigger search landing and crawler policy regression checks
appdevelopsk Oct 27, 2026
577e1b8
ops(site): verify live Play CTAs, alternative games and icon crawl po…
appdevelopsk Oct 27, 2026
8f1cbe6
test(growth): validate Play-consistent search snippets, live catalog …
appdevelopsk Oct 27, 2026
3f99adb
test(site): assert selective rsync invocation without matching safe d…
appdevelopsk Oct 27, 2026
4a8be44
ci(growth): test actual search landing and icon crawler contracts
appdevelopsk Oct 27, 2026
07baf96
docs(growth): document GSC 3-day baseline, live store CTA funnel and …
appdevelopsk Oct 27, 2026
0a49415
test(growth): match verified BrainBurst daily quiz headline
appdevelopsk Oct 27, 2026
1203be3
seo(site): update sitemap modification dates for three materially ref…
appdevelopsk Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .github/workflows/app-discovery-qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ on:
paths:
- apps.html
- index.html
- support/brain-burst/index.html
- support/snaplingo/index.html
- support/face-reaction-battle/index.html
- robots.txt
- apps_data.json
- guides/**
- sitemap.xml
- scripts/build_catalog.py
- site_counts.json
- tests/catalog-growth.test.mjs
- tests/search-landing-growth.test.mjs
- scripts/publish_app_discovery.sh
- scripts/check_app_discovery_live.sh
- .github/workflows/app-discovery-qa.yml
Expand All @@ -19,12 +24,17 @@ on:
paths:
- apps.html
- index.html
- support/brain-burst/index.html
- support/snaplingo/index.html
- support/face-reaction-battle/index.html
- robots.txt
- apps_data.json
- guides/**
- sitemap.xml
- scripts/build_catalog.py
- site_counts.json
- tests/catalog-growth.test.mjs
- tests/search-landing-growth.test.mjs
- scripts/publish_app_discovery.sh
- scripts/check_app_discovery_live.sh
- .github/workflows/app-discovery-qa.yml
Expand All @@ -47,4 +57,4 @@ jobs:
- name: Verify non-destructive release scripts have valid shell syntax
run: bash -n scripts/publish_app_discovery.sh scripts/check_app_discovery_live.sh
- name: Verify search, referral links and guide listings
run: node --test tests/catalog-growth.test.mjs
run: node --test tests/catalog-growth.test.mjs tests/search-landing-growth.test.mjs
15 changes: 14 additions & 1 deletion docs/APP_DISCOVERY_GROWTH_RELEASE_2026-10-27.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ bash scripts/publish_app_discovery.sh --apply
bash scripts/check_app_discovery_live.sh
```

Only these files transfer: `index.html`, `apps.html`, `sitemap.xml`, `guides/quick-games/index.html`, `guides/daily-habits/index.html`. The homepage links are tracked with `discovery_nav_click` and let visitors reach the search or guides without scrolling 92 cards. Every other VPS file, including privacy, support, policy, payment and ads assets, stays untouched. To override environment use `APP_SITE_DEPLOY_HOST` and `APP_SITE_DEPLOY_ROOT` with a known-safe absolute path. The script refuses unknown flags/invalid targets.
Only these files transfer: `index.html`, `apps.html`, `sitemap.xml`, `robots.txt`, `guides/quick-games/index.html`, `guides/daily-habits/index.html`, `support/brain-burst/index.html`, `support/snaplingo/index.html`, `support/face-reaction-battle/index.html`. The homepage links are tracked with `discovery_nav_click` and let visitors reach the search or guides without scrolling 92 cards. Every other VPS file, including privacy, support, policy, payment and ads assets, stays untouched. To override environment use `APP_SITE_DEPLOY_HOST` and `APP_SITE_DEPLOY_ROOT` with a known-safe absolute path. The script refuses unknown flags/invalid targets.

**Publish gate:** a dry-run is not publication. Only mark live once `check_app_discovery_live.sh` reports HTTP 200 and matches the homepage `discovery-links`, `id="find-app"`, both guide canonical URLs, guide click event and sitemap entries. After manual publication consider Google Search Console URL inspection and sitemap submission if the `appdevelopsk.com` property is available.

Expand Down Expand Up @@ -51,3 +51,16 @@ Do not sum the 117 apps' 7-day active-user counts as unique people. Do not inter
- [ ] Sitemap submitted/indexing checked in Search Console
- [ ] GA4 DebugView events observed without search query payload
- [ ] Google Play listing traffic / acquisition comparison recorded after meaningful sample

## GSC-backed snippet and conversion repair (2026-10-27)

A **restricted 3-day finalized GSC window (Oct 22–24)** was available, so do not treat the following as significant performance trends: BrainBurst support 14 impressions / 0 clicks / average position ~9.1; SnapLingo support 10 impressions / 0 clicks / position ~7.4; `face battle` query on Face Reaction Battle page 13 impressions / 1 click / position ~5.9. No prior-period comparison available.

- BrainBurst: correct the stale generic memory/math training synopsis to the Play-aligned daily AI trivia / 1v1 quiz proposition, improve search/snippet and open-graph fields; show Google Play CTA above the fold.
- SnapLingo: concrete photo vocabulary search snippet and high-visibility store handoff, with app structured data but **no manufactured review stars/rating scores**.
- Face Reaction Battle is **not downloadable**, so retain unavailability notice. Offer only clearly **different**, verifiably published Instant Judge and Blur games; do not imply they provide face-expression recognition.
- `robots.txt` now explicitly allows public `/icons/apps/` while continuing to disallow remaining icons. Note indexing is a search engine decision, not guaranteed.
- Preserve Google Play Install Referrer on each CTA. `download_click` adds `app` and `placement` so support hero CTA and page-details CTA can be compared; avoid raw visitor search content.
- New `tests/search-landing-growth.test.mjs` and GitHub CI prevent catalog/product mismatches, fabricated ratings, missing store links, and missing live-check assertions.

After shipping the updated **nine** files from a fresh main checkout, run `bash scripts/check_app_discovery_live.sh`. Record the deploy timestamp, then compare **landing impressions/CTR**, **support CTA clicks by placement**, **Play visitors/install**, and **first completed app action** after enough data accumulates. The early data is directional only.
2 changes: 2 additions & 0 deletions robots.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# SK APPS — apex robots.txt
User-agent: *
Allow: /
# Published catalog app icons must be crawlable for image discovery.
Allow: /icons/apps/
Disallow: /icons/

# Explicit allow for ad crawlers
Expand Down
13 changes: 12 additions & 1 deletion scripts/check_app_discovery_live.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,15 @@ fetch '/sitemap.xml' 'sitemap.xml'
for slug in quick-games daily-habits; do
grep -Fq "https://appdevelopsk.com/guides/$slug/" "$tmp/sitemap.xml" || { echo "FAIL sitemap missing $slug" >&2; exit 1; }
done
echo 'PASS: VPS catalog, two guides, click-tracking markers and sitemap all current (HTTP 200)'
for slug in brain-burst snaplingo; do
fetch "/support/$slug/" "$slug.html"
grep -Fq 'data-position="hero"' "$tmp/$slug.html" || { echo "FAIL $slug first-screen Play CTA not yet live" >&2; exit 1; }
grep -Fq 'application/ld+json' "$tmp/$slug.html" || { echo "FAIL $slug SEO metadata missing" >&2; exit 1; }
grep -Fq 'placement:' "$tmp/$slug.html" || { echo "FAIL $slug placement attribution missing" >&2; exit 1; }
done
fetch '/support/face-reaction-battle/' 'face-battle.html'
grep -Fq 'data-alternative="instant-judge"' "$tmp/face-battle.html" || { echo 'FAIL unavailable game alternative CTA missing' >&2; exit 1; }
grep -Fq 'data-alternative="blur"' "$tmp/face-battle.html" || { echo 'FAIL second unavailable game alternative CTA missing' >&2; exit 1; }
fetch '/robots.txt' 'robots.txt'
grep -Fq 'Allow: /icons/apps/' "$tmp/robots.txt" || { echo 'FAIL Google image crawl allow not live' >&2; exit 1; }
echo 'PASS: catalog, guides, priority search landings, store CTAs, icon crawl policy and sitemap current (HTTP 200)'
2 changes: 1 addition & 1 deletion scripts/publish_app_discovery.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ root="${APP_SITE_DEPLOY_ROOT:-/var/www/html}"
if [[ ! "$host" =~ ^[a-zA-Z0-9_.@-]+$ || ! "$root" =~ ^/var/www/[a-zA-Z0-9_./-]+$ ]]; then
echo 'Invalid APP_SITE_DEPLOY_HOST or APP_SITE_DEPLOY_ROOT' >&2; exit 2
fi
files=(index.html apps.html sitemap.xml guides/quick-games/index.html guides/daily-habits/index.html)
files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/index.html)
for file in "${files[@]}"; do
[[ -s "$file" ]] || { echo "Missing source file: $file" >&2; exit 2; }
done
Expand Down
6 changes: 3 additions & 3 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<url><loc>https://appdevelopsk.com/support/billendar/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/bird-encyclopedia/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/blur/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/brain-burst/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/brain-burst/</loc><lastmod>2026-10-27</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/candid/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/chaos/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/chore-roulette/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
Expand All @@ -38,7 +38,7 @@
<url><loc>https://appdevelopsk.com/support/earsense/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/excel-formula/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/eye-break/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/face-reaction-battle/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/face-reaction-battle/</loc><lastmod>2026-10-27</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/face-symmetry/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/face-vibe/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/fileforce/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
Expand Down Expand Up @@ -107,7 +107,7 @@
<url><loc>https://appdevelopsk.com/support/smalock/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/smile-score/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/snap-judge/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/snaplingo/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/snaplingo/</loc><lastmod>2026-10-27</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/solace/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/spot-diff/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
<url><loc>https://appdevelopsk.com/support/spotit/</loc><lastmod>2026-08-18</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
Expand Down
Loading
Loading