The best web design pitch I ever wrote was three sentences long and started with the words "your homepage loads in 6.4 seconds." It closed a $9,000 project the same week.
A freelancer we know, on why paid ads were never the answer
Why do ads fail most web designers?
Search ads for "web designer" cost $8 to $30 per click in most markets. Even at a 5% landing page conversion and a 20% close rate, you are paying $800 to $3000 to acquire one client. That math kills freelancers and most small agencies. The businesses that need you the most are also not searching Google for "web designer." They are running a business that is quietly losing traffic because their site is broken.
What is a buying signal for a web designer?
A buying signal is a public, verifiable fact that says "this business would benefit from what you sell, right now." For web design, the strongest signals are visible in five minutes with public tools.
| Signal | How to spot it | Why it matters |
|---|---|---|
| No website on GBP | Public directory listing has no website link | They already rank locally; a site converts calls |
| Broken SSL | Chrome shows "Not Secure" | Every visitor sees a trust warning |
| Slow LCP | PageSpeed Insights over 2.5s | Google downranks and users bounce |
| No mobile responsiveness | 375px viewport breaks layout | 60%+ of traffic is mobile |
| Facebook page as website | GBP or ad links to a FB page | They have accepted no site as normal |
| Duplicate title tags | Homepage title = "Home" | Site cannot rank for anything specific |
| Outdated design (pre-2015) | Visual inspection | Signals distrust to modern buyers |
- Signal
- No website on GBP
- How to spot it
- Public directory listing has no website link
- Why it matters
- They already rank locally; a site converts calls
- Signal
- Broken SSL
- How to spot it
- Chrome shows "Not Secure"
- Why it matters
- Every visitor sees a trust warning
- Signal
- Slow LCP
- How to spot it
- PageSpeed Insights over 2.5s
- Why it matters
- Google downranks and users bounce
- Signal
- No mobile responsiveness
- How to spot it
- 375px viewport breaks layout
- Why it matters
- 60%+ of traffic is mobile
- Signal
- Facebook page as website
- How to spot it
- GBP or ad links to a FB page
- Why it matters
- They have accepted no site as normal
- Signal
- Duplicate title tags
- How to spot it
- Homepage title = "Home"
- Why it matters
- Site cannot rank for anything specific
- Signal
- Outdated design (pre-2015)
- How to spot it
- Visual inspection
- Why it matters
- Signals distrust to modern buyers
How do you build the list?
Five steps from vertical to first send
- 01
Pick one vertical and one city
Roofers in Austin. Dentists in Coimbatore. Pilates studios in Melbourne. Narrower is better because your first-line references will be sharper.
- 02
Pull the top 100 from the public directory
Manually or with a tool that queries an official business-directory API. You want name, address, phone, category, review count, and website URL.
- 03
Enrich with a real site check
For each URL, capture SSL status, LCP, title tag, mobile viewport behavior, and whether a booking form exists.
- 04
Score and cut
Keep only businesses with at least one clear, fixable signal. This usually leaves 30 to 60 of the original 100.
- 05
Find the owner email
GBP owner-attributed pages, WHOIS on the domain, or LinkedIn. Not scraped generic inboxes.
The email template (one signal, one ask)
Subject: quick note on the [service] page Hi [First name], Your site loads in 5.8 seconds on 4G. The two roofers ranking above you on Maps load in under 2. Google treats that as a ranking signal and users bounce before the page paints. I redesigned the site for [reference client in same vertical] last quarter and got their LCP to 1.4s. Happy to send a two-minute video showing exactly which three things on your site are causing it, no pitch attached. Worth 15 minutes next week? [Your name]
Signal-referenced cold email for a web designer
Why the three-sentence format works
Why this works
The first sentence proves you looked. The second sentence quantifies the loss. The third offers value before asking for time. No em dashes, no fluff.
What about replies?
You will get three kinds of replies. "Not interested" (archive, do not argue). "How much" (send a range, ask a diagnostic question, do not quote a fixed number by email). "Tell me more" (this is the meeting, book it inside the reply thread, not after five more messages).
If you are hitting spam, read our note on why cold emails go to spam. Cold email deliverability.
How do you scale without becoming spam?
A tight list of 40 businesses per week is more productive than a database blast to 4000. You are trading volume for reply rate. In Milo's beta cohort (US, UK, EU, India, mixed verticals) we observe 5 to 12% reply rates on tight signal-first lists, with a smaller share of those replies converting to a call and a smaller share still to a paid project. On a list of 40, one to two projects per week is a plausible upper end when the signal is strong.
The one thing to remember
Web design clients are not searching Google for a web designer. They are running a business that is quietly losing traffic because their site is broken. If the first sentence of your email quantifies a specific defect on their own site, the rest of the offer barely needs to argue.
How long until this produces clients?
Two to four weeks from first send if the vertical is narrow and the signal is strong. Longer if you spray across five verticals.
Do I need a portfolio in the same vertical?
Helpful but not required. A generic portfolio plus a specific, well-referenced signal outperforms a niche portfolio with a generic email.
Should I attach the redesign mockup in the first email?
No. Offer to send a two-minute video after they reply. Attachments reduce inbox delivery and let them skip the conversation.
Is this compliant with CAN-SPAM and GDPR?
B2B outreach with a clear opt-out and honest identification is compliant in most jurisdictions. See our post on cold email legality.
Can I use ChatGPT to write these?
You can, but the first line has to reference a real signal you verified. Fully generated emails from a scraped list get filtered.