Client and context
Bailey’s Sweeper Service has been sweeping the streets of Las Vegas since 1988. John Bailey founded it; his son Connor runs it now. A fleet of sweepers works commercial sites, residential communities and event venues across the valley.
Nearly forty years of reputation, and a website that was not carrying any of it.
The problem
Bailey’s did not need a better-looking website. They needed the website to produce work, and there was no evidence it ever had.
The only way to make contact was a mailto: link. That matters more than it sounds. A mailto:
link opens a mail client, which a good proportion of people abandon, and it leaves no record
behind. Nobody could say how many enquiries the site had generated, because there was no
mechanism to count one.
Search was the second half of the same problem. The business averaged position 15 for the terms its customers actually use, which is page two, and page two is not where anyone finds a sweeping contractor. There was no analytics and no Search Console, so nobody could say what was working, and nothing was being recorded that would let them say later either. Both were set up at the start of the audit, weeks before anything was rebuilt. That is the only reason a before-and-after exists at all: search tools hold no history from before the day you verify them.
Three different logos were in circulation, so the brand looked different depending on where you met it. The site carried around 24MB of photographs.
And separately, nobody had noticed that the domain was being spoofed.
What we did
The objective was agreed first, and it was not a new website. It was more enquiries, and a way to prove whether they were arriving.
An audit came first, then the rebuild, then the migration, then measurement. In that order, because rebuilding before understanding is how you throw away what was quietly working.
Built in the open. The whole site was built on a staging address and reviewed before anything touched the live domain. Pages went to the client as finished mock-ups rather than as questions. That is deliberate: asking a busy client to list their flagship accounts tends to produce nothing, while showing them a page with the answer visibly missing produces it in one reply. It is how the marathon work and the named communities reached the site at all.
The build. Five pages and a proper 404, built with Astro and served on Cloudflare Pages. There is no CMS and no database behind it, which is why it is quick, costs almost nothing to run, and leaves very little that can be attacked. Real photography replaced stock, the team were photographed properly, and one of the three logos was chosen for the web while the others stayed on the trucks and the merchandise.
The mailto: link became a working contact form. It is short, it works on a phone, it lands in
the office inbox, and every submission is counted.
Underneath sat structured data describing the business and its services, a sitemap, a sharing card and a full favicon set, with photographs cut from around 24MB to under 10MB.
The migration, which is where projects like this come unstuck. Nameserver delegation moved to Cloudflare, with the registrar transfer deliberately held back to a separate change weeks later: combining the two is how a cutover turns into an outage nobody can unwind. Fifteen stale DNS records were cleared, thirteen left by an email system that no longer existed. Twenty redirect rules covered eleven old page addresses, each address in both its extensionless and .html form, every one a single hop to its final destination, so no bookmark or inbound link broke on the day. The site went live on 28 May 2026 and the cutover completed on the 31st.
The email problem
This was not in the brief. It surfaced during the audit and it mattered more than the website.
Around a thousand messages a month were claiming to come from the Bailey’s domain, and roughly 45% of them were failing authentication. Most of that was ordinary internet spoofing, someone else’s problem being pointed at their name. But underneath it sat something real: genuine emails to a number of named customers were being altered in transit by those customers’ own security systems, and quietly breaking.
That was diagnosed, written up in plain language, and handed over with a note the client could forward directly to the customers affected. The broken flows were dealt with first. Only then was the domain moved to enforcement, because tightening policy while legitimate mail is still failing authentication is how you take a business’s own email offline.
Enforcement is a request to receiving mail servers rather than a guarantee, and it does nothing about lookalike domains. What it closes is the route that was actually being used.
A sweeping company does not employ anyone to think about email authentication. That is the point.
Outcome
Average search position moved from 15.0 before launch to 10.6 in July. An average across every query a site appears for is not a rank, and it is worth being precise about that: what moved is the distribution. The commercial terms are the ones that came forward. For “street sweeping las vegas”, the phrase that matters most, the site now averages 2.6.
Click-through rate rose from 1.51% to 2.22%. That is not because clicks went up. Impressions fell from 3,235 to 2,118, and a smaller, better-qualified set of results converted at a higher rate.
The number that actually counts is enquiries. Eight genuine enquiries arrived in the first two full months, from a site that previously had no way to receive one, with no advertising spend behind them. Junk, duplicates and sales approaches were filtered out and counted separately, so that figure is the honest one.
Two things worth stating plainly. Impressions fell rather than grew, partly because canonicalising duplicate addresses collapsed several Search Console rows into one: the same demand, counted once instead of spread across near-identical URLs. And while total visits are up, most of that growth is people arriving directly rather than through search. Positions improved first. Organic volume typically follows later, which is why the monthly reporting continues rather than stopping at launch.
Running cost after migration is about $20 a year, which is the domain. Everything else sits on free tiers.
Stack used
Astro, Tailwind, Cloudflare Pages, Web3Forms, Google Analytics 4, Google Search Console, Google Business Profile. No CMS, no database, no server to patch.
We knew the old website was dated but didn't know where to start. Ian redesigned the whole thing and switched us over without a hitch. We'd never had any visibility of how the site was performing, and customers simply weren't finding us on Google. We're now on page one for the searches that matter, and Ian set things up so we can see the numbers ourselves rather than taking anyone's word for it.
This engagement is evidence for Web, Search & Digital Presence.
Also in the record: Creative Freight, JMC Bespoke Interiors.
Start a conversation