← All posts

How I build

The 42-Point Checklist Every Site Should Pass Before It Goes Live

September 23, 2025 9 min read Matt McAlexander

The 42-Point Checklist Every Site Should Pass Before It Goes Live

Most websites get launched the same way a garage gets cleaned. Somebody decides it looks good enough, hits publish, and never opens the hood again.

I run every build through the same checklist before it goes live. Not because I like checklists. Because “it looks done” and “it’s built right” are two completely different things, and only one of them shows up in Google.

Here’s the whole thing. If you already have a site, use it as an audit. Most local business sites I look at fail somewhere between fifteen and twenty five of these.


Part 1 · What Google actually reads (8 checks)

Google doesn’t look at your website. It reads it. Everything below is the part a human never sees.

1. LocalBusiness schema is present and valid. This is a block of structured data called JSON-LD sitting in your page code that tells Google, in machine language, “this is a plumbing business, here’s the phone number, here are the hours, here’s the service area.” Without it Google is guessing. With it, you’re eligible for the rich results that take up more space on the page.

2. The schema type is specific, not generic. A restaurant should be Restaurant, a coffee shop CafeOrCoffeeShop, a dental hygienist MedicalBusiness. Generic LocalBusiness works. The specific one works better.

3. FAQPage schema on your FAQ section. This is how you get those expandable question dropdowns directly in the search results. It costs nothing and it doubles the vertical real estate you own on the page.

4. Your name, address, and phone match your Google Business Profile exactly. Character for character. “Suite 200” versus “Ste 200” is a mismatch. This is one of the most common quiet killers of local rank and almost nobody checks it.

5. Every page has its own title tag and meta description. Not the same one repeated five times. The title is the blue link in search results. Write it like a headline, not a filename.

6. There’s a canonical tag on every page. It tells Google which version of a URL is the real one so you don’t compete against yourself.

7. Open Graph and Twitter card tags are set. This controls what shows up when someone texts your link or drops it in a Facebook group. Without it you get a blank gray box, which looks broken and kills the click.

8. There’s a sitemap and a robots.txt. Basic plumbing. Takes five minutes. Skipped constantly.


Part 2 · Speed (7 checks)

Speed is not a nice to have. It’s a ranking factor and a bounce factor at the same time. Somebody on a phone in a parking lot with two bars will leave.

9. Largest Contentful Paint under 2.5 seconds. That’s the time until the biggest thing on screen finishes loading. Usually your hero image.

10. Images are WebP, not JPEG or PNG. Same visual quality, roughly a third of the file size. There is no reason to be shipping a 3MB hero photo in 2026.

11. Hero images are sized to what’s actually displayed. A 4000 pixel wide photo squeezed into a 1200 pixel slot means the visitor downloaded three times the data for zero benefit.

12. Below-the-fold images lazy load. The hero does not. Load what they see immediately. Defer the rest.

13. Every image has an explicit width and height or aspect ratio. This stops the page from jumping around as things load. That jumping is called Cumulative Layout Shift and Google measures it.

14. No render-blocking junk in the head. Fonts preconnected, scripts deferred, nothing sitting there holding up the paint.

15. No jQuery, no page builder bloat, no plugin stack. This is why I hand code. A Wix or WordPress site is carrying code for a thousand features you’ll never use, on every page load, forever.


Part 3 · Mobile (6 checks)

Somewhere between 60 and 80 percent of your visitors are on a phone. This is not the secondary version of your site. It’s the site.

16. Zero horizontal scroll at 1280, 768, 390, and 360 pixels. If a visitor can swipe sideways and see white space, something is broken. I check all four widths on every page.

17. A sticky call bar pinned to the bottom on mobile. Tap to call, always visible, no scrolling required. For a trade business this single element is worth more than the rest of the design combined.

18. Every tap target is at least 44 pixels. Thumbs are not mouse cursors.

19. The phone number is clickable everywhere it appears. Header, hero, footer, sticky bar. A phone number a customer has to copy and paste is a phone number that doesn’t get called.

20. The menu opens and closes without the page drifting. Small thing, feels broken when it’s wrong.

21. Text is readable without pinching. 16 pixels minimum on body copy.


Part 4 · Accessibility (6 checks)

Partly a legal floor. Mostly it just makes the site better for everyone.

22. Body copy and CTA buttons pass WCAG AA contrast. Light gray text on a cream background looks refined in Figma and is unreadable outside in the sun.

23. Every image has real alt text. Describe the picture. Not “IMG_4471.”

24. Proper landmarks: header, nav, main, footer. One <h1> per page, headings in order.

25. Forms have labels, not just placeholder text.

26. The form success state announces itself. When somebody submits, they should get clear confirmation. aria-live handles the screen reader side.

27. Animations respect reduced motion. Some people get motion sick. One CSS media query fixes it.


Part 5 · The AI layer (4 checks)

This is the newer one and it’s where most sites are furthest behind. People are increasingly asking ChatGPT and Google’s AI overview “who’s a good plumber in Temecula” instead of scrolling ten blue links.

28. Clean semantic HTML. Language models parse structure. A page built out of nested unnamed divs is harder to understand than a page with real headings, sections, and lists. Sloppy code now costs you visibility in a way it didn’t three years ago.

29. Your schema is doing double duty. The same JSON-LD that earns rich results is the cleanest possible summary of your business for an AI to ingest. Hours, services, service area, price range. Fill it in completely.

30. An llms.txt file at the root. A plain text file describing what the business is and what’s on the site, aimed at AI crawlers. Early days for the standard, costs almost nothing, and I’d rather be early than late.

31. Your answers are written as answers. If a page says “we offer emergency service,” an AI can’t repeat that usefully. If it says “we answer calls 24 hours a day in Temecula, Murrieta, and Menifee, and typically arrive within 90 minutes,” it can. Write in complete, quotable facts.


Part 6 · The part every technical checklist skips (6 checks)

You can pass everything above and still have a website that doesn’t make you money. Traffic is not revenue. This is where I steal openly from Alex Hormozi, because he’s right about the mechanics of an offer.

32. Your headline names the customer’s outcome, not your job title. “Temecula’s Trusted Plumber Since 2004” is about you. “Water on your floor? We’ll be there in 90 minutes.” is about them.

33. The offer and a price signal are visible on the first screen at 390 pixels. Not “contact us for pricing.” Give a number or a range. Hiding price doesn’t build intrigue, it builds suspicion.

34. The guarantee is specific and spelled out in plain words. A badge that says “Satisfaction Guaranteed” is worth zero. “If it leaks again within a year, we fix it free” is worth something, because it’s falsifiable.

35. A trust signal sits right next to the primary button. Rating, review count, or the guarantee, physically adjacent to the CTA. Doubt spikes at exactly the moment somebody is about to click. Answer it there.

36. A real proof number appears near the top. Years in business, jobs completed, review count. Something countable.

37. Real photos of real people and real work. Not stock. Not a stethoscope on a keyboard. A customer can smell stock photography in half a second and it quietly costs you every time.


Part 7 · Proving it works (5 checks)

38. The lead form actually submits and you actually get the email. Test it. Then have somebody else test it. I have found dead forms on sites that had been live for years, silently eating leads.

39. Analytics is installed before launch, not after. Day one data or you’re guessing.

40. Conversion events are wired, not just pageviews. Phone taps, text taps, form submits, quote requests. Pageviews tell you people showed up. Events tell you they did something.

41. Zero broken links, zero 404 assets, zero absolute local file paths. The last one is the sneaky one. A path that points at a folder on somebody’s laptop works perfectly in preview and breaks the second it goes live.

42. No leftover placeholder anything. No lorem ipsum, no “Your Business Name Here,” no demo reviews sitting on a live site pretending to be real. That last one isn’t just sloppy, it’s a problem.


What to do with this

If you have a site right now, open it and walk this list. You don’t need to be technical for most of it. Half of these you can check by looking: is the phone number tappable, is there a price on the first screen, does the guarantee say anything specific, do the photos look like your actual crew.

The other half live in the code, and that’s the half nobody ever audits, which is exactly why it’s where the opportunity is. Your competitor down the street almost certainly fails Part 1 entirely.

Every site I build passes all 42 before it goes live. Not because I’m precious about it. Because a site that fails a third of this list is a site that’s quietly leaking calls, and the owner will never know which ones they didn’t get.

If you want me to run this against your current site and send you the results, that’s free. Send me the URL.

Matt McAlexander, owner of Temecula Web Co.

Matt McAlexander

Owner & designer, Temecula Web Co.

I design, write, and build every site myself, for local businesses in Temecula, Murrieta, and across Southwest Riverside County.

Call Matt Text Matt