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.1",
- 5 "type": "skill",
- 6 "title": "Get found in search and see where sign-ups come from",
- 7 "description": "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.",
- 8 "category": "content",
- 9 "license": "MIT",
- 10 "compat": [
- 11 "claude-code"
- 12 ],
- 13 "permissions": {
- 14 "shell": [
- 15 "node scripts/page-check.mjs"
- 16 ],
- 17 "files": {
- 18 "read": [
- 19 "./examples/**",
- 20 "./data/**",
- 21 "./templates/**",
- 22 "./src/**",
- 23 "./app/**",
- 24 "./public/**"
- 25 ],
- 26 "write": [
- 27 "./out/page-check*"
- 28 ]
- 29 }
- 30 },
- 31 "tests": {
- 32 "cases": [
- 33 {
- 34 "name": "the example site has no problems",
- 35 "inputs": {},
- 36 "checks": [
- 37 {
- 38 "type": "command_exits_zero",
- 39 "command": "node scripts/page-check.mjs --pages examples/site --out out/page-check.json"
- 40 },
- 41 {
- 42 "type": "output_matches_schema",
- 43 "path": "out/page-check.json",
- 44 "schema": {
- 45 "type": "object",
- 46 "required": [
- 47 "problems",
- 48 "pages",
- 49 "sitemap"
- 50 ],
- 51 "properties": {
- 52 "problems": {
- 53 "type": "array",
- 54 "maxItems": 0
- 55 },
- 56 "pages": {
- 57 "type": "array",
- 58 "minItems": 4,
- 59 "maxItems": 4
- 60 },
- 61 "sitemap": {
- 62 "type": "object",
- 63 "properties": {
- 64 "urls": {
- 65 "const": 3
- 66 }
- 67 }
- 68 },
- 69 "robots": {
- 70 "const": true
- 71 }
- 72 }
- 73 }
- 74 }
- 75 ]
- 76 },
- 77 {
- 78 "name": "catches markup in an FAQ answer, a missing price, canonical, and share image",
- 79 "inputs": {
- 80 "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>"
- 81 },
- 82 "checks": [
- 83 {
- 84 "type": "command_exits_zero",
- 85 "command": "node scripts/page-check.mjs --pages data/bad --out out/page-check.json --report-only"
- 86 },
- 87 {
- 88 "type": "output_matches_schema",
- 89 "path": "out/page-check.json",
- 90 "schema": {
- 91 "type": "object",
- 92 "properties": {
- 93 "problems": {
- 94 "type": "array",
- 95 "minItems": 4,
- 96 "maxItems": 4
- 97 }
- 98 }
- 99 }
- 100 }
- 101 ]
- 102 }
- 103 ]
- 104 }
- 105}
