Essay · 9 min read
May 2026
How I Shipped Royal Moving's Site in 3 Days (Full Case Study)
Royal Moving had zero web presence. Three days later they were getting daily quote requests through Google. Here's exactly what shipped, what's behind the curtain, and what changed.
The starting point
Royal Moving had been running in Seattle for years. Zero web presence. Every job came from word-of-mouth referrals, paid Yelp leads they didn't control, or HomeAdvisor leads they paid $40-60 for per inquiry. The owner — Jake — knew this wasn't sustainable but didn't have time to build a site or vet developers. We talked on a Wednesday. Site went live Saturday.
The brief
Three things, in order:
- Rank for "[moving company] Seattle" and adjacent searches
- Convert visitors into quote requests without a marketing team to manage it
- Look like a real business — current Yelp listing was three blurry photos and a phone number
Budget: $750. Timeline: as fast as possible — they had a busy summer coming and wanted bookings flowing before June.
The stack
- Next.js 16 with static export (App Router)
- TypeScript strict mode
- Tailwind CSS for design system
- Cloudflare Pages for hosting (edge deploy, free SSL, global CDN)
- Resend for the contact form → SMS notification chain
- schema.org LocalBusiness + MovingCompany structured data
No CMS. No database. No JavaScript frameworks layered on top of frameworks. Five static pages, generated at build time, served from the edge. Time to First Byte: 110ms. Total page weight: 38kb compressed. Lighthouse Performance: 99.
The information architecture
Five pages, each targeting one buyer query:
- Home — for "Royal Moving" branded searches and general "Seattle movers" inquiries
- Services — broken into Local Move / Long Distance / Packing / Storage, each its own H2 section ranked separately
- About — owner story + insurance + license details (trust signals required for the moving industry)
- Reviews — pulled from real Google reviews + Yelp via static scraping at build time
- Contact / Get a Quote — primary conversion page
The conversion mechanics
Three things every page does:
1. Click-to-call in the header
Mobile users tap once, talking to Jake within ten seconds. Desktop shows the number prominently. About 60% of leads come through this path — they don't fill out the form, they just call.
2. Quote form that hits Jake's phone via SMS
The form has four fields: name, phone, move type (dropdown), preferred date. Submission triggers a Cloudflare Worker that sends the form data to Jake's phone via Resend (which I'd normally use for transactional email, but it works fine for triggering Twilio for SMS too). Jake gets the lead before the form's success message finishes animating. Average response time: under 5 minutes. That alone closes deals — most movers take 2-4 hours.
3. Reviews block visible without scrolling
The home page above-the-fold area shows the headline, the click-to-call button, AND three real Google review snippets. This is the single biggest conversion lever for service business sites. People who see reviews convert 2-3× higher than those who don't, and most service businesses bury their reviews on a separate page nobody clicks to.
The SEO setup
Every page got:
- Title + meta description targeting one specific buyer keyword
- schema.org MovingCompany + LocalBusiness markup with full service area, hours, phone, geo coordinates
- An H1 that contains the target keyword naturally
- Service area mentions with neighborhood-level specificity (Capitol Hill, Ballard, West Seattle, Kirkland, Bellevue, etc.)
- Internal links between service-specific pages
The Google Business Profile was set up the same week — verified, fully populated, with a direct review-collection link tied into the site's footer.
The first week
Day 1 (Saturday): site live, Google Business Profile submitted for verification.
Day 3 (Monday): GBP verified, Google Search Console submitted, sitemap indexed.
Day 5 (Wednesday): first organic search visitor.
Day 7 (Friday): first quote form submission from a search result.
By the end of week 2, quote requests were arriving daily.
The numbers, three months in
- Quote requests: +80% compared to pre-site baseline (which was just inbound calls)
- Cost per lead: $0 on organic-driven leads vs. $40-60 on HomeAdvisor
- Lighthouse score (mobile): 99
- Average page load: under 1 second
- Site downtime: zero (Cloudflare edge handles it)
Jake stopped buying HomeAdvisor leads in month two. The site paid for itself within the first booked move.
What I'd do differently
If I were starting Royal Moving over today: build the AI chatbot lead capture into the site from day one. Right now we're routing through forms + click-to-call, which converts well but loses some after-hours leads who don't want to call but also don't want to fill a form. A chatbot handles that 24/7.
I'd also add a simple cost calculator (rooms + distance + extras → estimate). Reduces objection on the "what does this cost" question and pre-qualifies inquiries before Jake has to engage.
The actual lesson
Service business websites don't need to be complicated. They need to be fast, focused, and built around the two or three actions a visitor might actually take. Most $5,000 agency builds for service businesses are doing 30% of the work in 5x the budget because they're padding deliverables. The Royal Moving build has every conversion mechanic that matters and shipped in three days for $750.
If you want one for your business — moving, contracting, anything — drop a message on WhatsApp. Or see the live site.
Want this kind of work for your business?
Custom websites that bring in customers — three days from kickoff to live, sub-second loads, ranking on Google from week one.