Skip to content

Migrate norcalcarbmobile.com from Squarespace to Cloudflare Workers#19

Draft
bgillis99-pixel wants to merge 13 commits intomainfrom
claude/migrate-squarespace-cloudflare-gqs2e
Draft

Migrate norcalcarbmobile.com from Squarespace to Cloudflare Workers#19
bgillis99-pixel wants to merge 13 commits intomainfrom
claude/migrate-squarespace-cloudflare-gqs2e

Conversation

@bgillis99-pixel
Copy link
Copy Markdown
Contributor

What this is

The full Squarespace → Cloudflare migration for norcalcarbmobile.com. Merging this triggers GitHub Actions to deploy the new site to a preview URL (*.workers.dev). The live domain stays on Squarespace until DNS is flipped manually — so merging is safe.

Bryan: how to launch

Open the file workers/norcalcarbmobile/CUTOVER.md — it's the dead-simple click-by-click guide. Step 1 is "click the green Merge button on this PR."

What's included

  • 9 main pages: home (Person+hasCredential schema, Sac/Oak LocalBusiness), about (E-E-A-T), services hub, service-areas hub (18 cities as anchors — no 404 risk), FAQ (13 Q&A + FAQPage schema), contact, privacy, terms, 404
  • 12 blog files: hub + edit-template + 10 pillar posts (Clean Truck Check, OBD, OVI-J1667, OBD vs OVI, HD-OBD, 2026 deadlines, penalties, prep checklist, mobile vs shop, RV testing)
  • SEO/AI search: robots.txt with full AI crawler allowlist (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, etc.), sitemap.xml, llms.txt, llms-full.txt, 60+ Squarespace URL redirects
  • Theme: Manus dark theme — charcoal #0f1b2e background, safety-lime #a3e635 CTAs, Inter font
  • Worker: pass-through to static assets + reserved /api/schedule stub for future native Google Calendar booking
  • Docs: CITATIONS.md (sources for every design choice), MIGRATION_PLAN.md, MIGRATION_ADDENDUM.md (gaps Manus caught + neither caught), BLOG_PLAN.md, CUTOVER.md, README.md

E-E-A-T checklist

  • Owner name (Bryan Gillis) above the fold on home + about
  • CARB Tester ID IF530523 visible above the fold
  • Person schema with hasCredential → CARB → California Air Resources Board
  • LocalBusiness.location array with both Sacramento and Oakland (service-area-business mode — no street address per Google's own guidance)
  • FAQPage schema with 13 self-contained answers
  • Service-area-business correct GBP setting
  • NAP matches across home, about, contact, footer of every page

AI search readiness

  • robots.txt allows GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, anthropic-ai, Claude-Web, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, CCBot, Bingbot
  • /llms.txt (markdown index) and /llms-full.txt (plain-text content dump)
  • Semantic HTML, one <h1> per page, answer-first prose
  • Standalone Q&A blocks LLMs can quote

Safety / preview-only deploy

  • wrangler.toml routes = [...] block is commented out — first deploy lands on *.workers.dev, not the real domain
  • Squarespace stays live until Bryan flips DNS in Cloudflare dashboard (CUTOVER.md step 4)
  • Email DNS preservation called out before any DNS change (CUTOVER.md step 2)

After merge

GitHub Actions runs wrangler deploy. The preview URL appears in the Actions tab in ~30–60 seconds. Then follow CUTOVER.md.


Generated by Claude Code

- workers/norcalcarbmobile/wrangler.toml (Workers Static Assets config)
- workers/norcalcarbmobile/worker.js (pass-through + reserved /api/)
- workers/norcalcarbmobile/public/index.html (home page, Navy/Red brand)
- workers/norcalcarbmobile/public/assets/site.css (full brand stylesheet)
- workers/norcalcarbmobile/public/robots.txt (AI crawlers allowlisted)
- workers/norcalcarbmobile/public/sitemap.xml
- .github/workflows/deploy-norcalcarbmobile.yml (auto-deploy on push)

Deploys to *.workers.dev preview only — custom domain commented out
in wrangler.toml until preview is approved.
Per Bryan: OBD is $75 (not $50), OVI (Opacity Visible Inspection —
formerly labeled smoke/opacity) is $250 (not $200). RV testing shows
the breakdown: $75 OBD + $250 OVI instead of a flat $300.

Also updates schema.org priceRange ($75-$325), adds makesOffer entries
for OBD and OVI, and replaces "smoke/opacity" in meta tags with
"OVI (smoke/opacity)" so the official term ranks alongside the search
terms customers actually use.
Per Bryan: the canonical label is OVI-J1667 (SAE J1667 opacity/visible
inspection), not generic "opacity". Updates:
- Service card heading, home lede, and meta tags now say OVI-J1667
- Footer link anchor: /services/#opacity -> /services/#OVI-J1667
- RV card pricing note: "OVI" -> "OVI-J1667"
- Schema.org Offer name includes SAE J1667

Next push applies same rename to services/index.html (section id),
FAQ, llms.txt/llms-full.txt, and _redirects.
…s, updated robots, worker.js with /api/schedule stub
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 6, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
dmc-properties 4c7ab4e May 07 2026, 08:18 AM

@fsu9913-gif fsu9913-gif requested a review from Copilot May 6, 2026 15:50
@fsu9913-gif fsu9913-gif self-assigned this May 7, 2026
@fsu9913-gif fsu9913-gif marked this pull request as draft May 7, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants