Get found in search and see where sign-ups come from
@slashclone/website-traffic
Get your web app found in Google and AI search, and see which channels bring sign-ups. Sets up sitemap, robots, canonical URLs, share images, and structured data with a page checker, then consent-aware first-touch tracking from UTM tags and referral links, saved at sign-up. Includes a launch channel checklist. Engineering guidance, not legal advice.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
- 1{
- 2 "name": "website-traffic",
- 3 "owner": "slashclone",
- 4 "version": "0.1.0",
- 5 "type": "skill",
- 6 "description": "Get a web app found and learn where its sign-ups come from: sitemap, robots, canonical URLs, titles, noindex, share images, and JSON-LD (real prices, lists, FAQs), then first-touch attribution from UTM tags, ?ref= links, and referring sites that waits for analytics consent and is saved at sign-up. Includes a page checker, templates, and a launch channel checklist.",
- 7 "category": "content",
- 8 "license": "MIT",
- 9 "compat": ["claude-code"],
- 10 "permissions": {
- 11 "shell": ["node scripts/page-check.mjs"],
- 12 "files": {
- 13 "read": [
- 14 "./examples/**",
- 15 "./data/**",
- 16 "./templates/**",
- 17 "./src/**",
- 18 "./app/**",
- 19 "./public/**"
- 20 ],
- 21 "write": ["./out/page-check*"]
- 22 }
- 23 },
- 24 "tests": {
- 25 "cases": [
- 26 {
- 27 "name": "the example site has no problems",
- 28 "inputs": {},
- 29 "checks": [
- 30 {
- 31 "type": "command_exits_zero",
- 32 "command": "node scripts/page-check.mjs --pages examples/site --out out/page-check.json"
- 33 },
- 34 {
- 35 "type": "output_matches_schema",
- 36 "path": "out/page-check.json",
- 37 "schema": {
- 38 "type": "object",
- 39 "required": ["problems", "pages", "sitemap"],
- 40 "properties": {
- 41 "problems": { "type": "array", "maxItems": 0 },
- 42 "pages": { "type": "array", "minItems": 4, "maxItems": 4 },
- 43 "sitemap": { "type": "object", "properties": { "urls": { "const": 3 } } },
- 44 "robots": { "const": true }
- 45 }
- 46 }
- 47 }
- 48 ]
- 49 },
- 50 {
- 51 "name": "catches markup in an FAQ answer, a missing price, canonical, and share image",
- 52 "inputs": {
- 53 "data/bad/page.html": "<title>Pricing</title><script type=\"application/ld+json\">[{\"@type\":\"SoftwareApplication\",\"name\":\"App\",\"offers\":{\"@type\":\"Offer\",\"priceCurrency\":\"USD\"}},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"See <a href=\\\"/pricing\\\">pricing</a>.\"}}]}]</script>"
- 54 },
- 55 "checks": [
- 56 {
- 57 "type": "command_exits_zero",
- 58 "command": "node scripts/page-check.mjs --pages data/bad --out out/page-check.json --report-only"
- 59 },
- 60 {
- 61 "type": "output_matches_schema",
- 62 "path": "out/page-check.json",
- 63 "schema": {
- 64 "type": "object",
- 65 "properties": {
- 66 "problems": { "type": "array", "minItems": 4, "maxItems": 4 }
- 67 }
- 68 }
- 69 }
- 70 ]
- 71 }
- 72 ]
- 73 }
- 74}
