The standard

161 checks before your site goes live

This is the document every JuicedWebsites build is walked through before handover, published in full. Every item names the threshold it passes at and the tool that proves it, so you can re-run any of it yourself.

No email gate and no form. Take it to whoever else is quoting you and ask which of these they run.

Checks
161
Sections
15
Measured twice
Staging + live
Signed at handover
Every build

14 pages, printable, with a signature page. Last reviewed 2026-08-10.

A threshold, not an adjective

“The site is fast” is not a check. “LCP under 2.5s on emulated slow 4G” is. Every item here is written so it can be failed.

A named tool on every line

Lighthouse, axe-core, the Rich Results Test, a real handset. You can run any of them, or have someone else run them, and get the same answer.

Nothing skipped quietly

An item that does not apply is marked not applicable with the reason. An item that fails is fixed before launch or written down with a date.

01

Speed and Core Web Vitals

12 checks

Google ranks on how fast the page is for real visitors, not on how fast it feels on our machine. Every number here is measured on throttled hardware.

  • Largest Contentful Paint

    Under 2.5s on emulated slow 4G with 4× CPU throttling · verified: Lighthouse, median of three runs

  • Cumulative Layout Shift

    0.00 — nothing on the page moves after it paints · verified: Lighthouse, plus a manual scroll on a cold load

  • Interaction to Next Paint

    Under 200ms on the slowest interaction on the page · verified: Chrome DevTools Performance panel

  • Total Blocking Time

    Under 200ms · verified: Lighthouse, median of three runs

  • First Contentful Paint

    Under 1.8s throttled · verified: Lighthouse, median of three runs

  • Lighthouse performance score

    90 or better on mobile emulation, every indexable page · verified: Lighthouse CLI against the production URL

  • Time to First Byte

    Under 600ms from a cold edge cache · verified: curl timing against the live domain

  • The LCP element is identified and is text or the hero image

    Never a decorative background · verified: Lighthouse LCP trace

  • No render-blocking scripts above the fold

    Zero blocking third-party requests before first paint · verified: DevTools Network waterfall

  • Fonts are self-hosted or preloaded, with a fallback that matches

    No invisible text during load, no reflow when the face lands · verified: Visual check on a throttled first load

  • Analytics loads after the page, never before it

    Deferred to idle time after window load · verified: DevTools Network waterfall

  • Scores re-measured on production, not on a staging build

    Same URL the public gets · verified: Lighthouse against the live domain post-launch

02

Page weight and asset discipline

9 checks

Most contractor sites are slow because of what was loaded, not how it was coded. This is the section that keeps that from happening.

  • Total page weight on the homepage

    Under 1MB on first load, images included · verified: DevTools Network panel, cache disabled

  • JavaScript shipped to the browser

    Under 150KB compressed, and every kilobyte accounted for · verified: Build output plus a bundle inspection

  • No page builder, no theme framework, no plugin stack

    Custom code only · verified: View source on any page

  • Every photo converted to AVIF or WebP with a fallback

    No unconverted JPEG or PNG in the page load · verified: DevTools Network panel, filtered to images

  • Images sized to the box they render in

    No image served more than 2× its displayed width · verified: Lighthouse 'properly size images' audit

  • Responsive image sets for anything full-width

    A phone never downloads the desktop photo · verified: Network panel at a 390px viewport

  • Below-the-fold images lazy-loaded

    Only above-the-fold imagery loads eagerly · verified: Network waterfall on initial paint

  • Every image has explicit width and height

    Space is reserved before the file arrives · verified: Source inspection, confirmed by CLS of 0

  • No unused CSS or JS shipped

    Under 20KB of unused bytes on any route · verified: DevTools Coverage panel

03

The phone, which is where your customer actually is

11 checks

He is one-handed, outdoors, on a bad signal, and he is comparing you to two other numbers. Every check here is run on a real handset, not a resized desktop window.

  • Every tap target is at least 48 by 48 CSS pixels

    Buttons, links, phone numbers, form fields, menu items · verified: Lighthouse tap-target audit plus a manual pass

  • At least 8px of space between adjacent tap targets

    No accidental taps on the wrong button · verified: Manual pass on a real handset

  • Call button pinned within thumb reach

    Reachable one-handed on a 6.1in screen without a grip change · verified: Manual pass on a real handset

  • No horizontal scroll at any width from 320px up

    Zero sideways movement on any page · verified: Responsive mode sweep, 320px to 1920px

  • No pinch-zoom required to read anything

    Body text at 16px minimum, never below · verified: Manual pass on a real handset

  • Phone numbers are tap-to-call links

    Every visible number, on every page, in the header and footer · verified: Tap each one on a real handset

  • Address links open the customer's map app

    Works on both iOS and Android · verified: Tap on both platforms

  • Forms bring up the right keyboard

    Numeric pad for phone, email keyboard for email · verified: Manual pass on a real handset

  • Tested on real iOS Safari, not Chrome device emulation

    Emulation runs a different engine and has missed real bugs · verified: WebKit, then a physical device

  • Usable on a slow connection

    Readable and callable within 3s on emulated slow 4G · verified: Throttled load with the network panel open

  • Works in landscape and with the on-screen keyboard open

    Nothing is covered, clipped, or pushed off screen · verified: Manual pass on a real handset

04

Browsers and devices

8 checks

A site that only works in the browser it was built in is not finished. This is the matrix every build is walked through before launch.

  • Safari on iOS, current and one version back

    Full pass on a physical device · verified: Manual

  • Chrome on Android, current

    Full pass on a physical device · verified: Manual

  • Chrome, Edge and Firefox on desktop, current

    Full pass · verified: Manual

  • Safari on macOS, current

    Full pass · verified: Manual

  • Small phone, 320px to 390px wide

    No clipping, no overflow, no unreachable buttons · verified: Physical device plus responsive sweep

  • Tablet, portrait and landscape

    Layout holds at both orientations · verified: Physical device or emulation

  • Large desktop, 1920px and wider

    Content stays in a readable column, no stretched lines · verified: Manual

  • Reduced-motion preference respected

    All non-essential animation stops when the OS asks it to · verified: OS accessibility setting, then reload

05

On-page SEO

12 checks

This is the part most template sites skip entirely, and it is the reason they never rank for anything but their own business name.

  • One H1 per page, and it names the service and the place

    Never a logo, never a tagline, never two H1s · verified: Heading outline inspection on every page

  • Heading levels descend without skipping

    H1, then H2, then H3 — no jumps · verified: Accessibility tree inspection

  • Unique title tag on every page

    Under 60 characters, service and location first · verified: Crawl of every indexable URL

  • Unique meta description on every page

    Under 155 characters, written to earn the click · verified: Crawl of every indexable URL

  • A page for every service you sell

    Not one bullet on a combined services page · verified: Service list checked against the sitemap

  • A page for every town you actually drive to

    Distinct content per town, never a find-and-replace · verified: Manual read of each page

  • No two pages competing for the same phrase

    One target phrase per URL · verified: Keyword map reviewed against the sitemap

  • Internal links connect services to the towns that buy them

    No page more than two clicks from the homepage · verified: Crawl depth report

  • Descriptive alt text on every meaningful image

    Decorative images marked as decorative, not stuffed · verified: Crawl plus manual read

  • URLs are readable and stable

    Words, hyphens, lowercase, no IDs or dates · verified: Sitemap review

  • Descriptive link text throughout

    No 'click here' and no bare URLs in body copy · verified: Crawl of outgoing link text

  • Enough on the page to be worth ranking

    Every service page answers the question it targets in full · verified: Manual read against the target phrase

06

Technical SEO and crawlability

13 checks

Google has to be able to find, fetch and index every page. These are the failures that quietly keep a site invisible for months.

  • XML sitemap generated from the real route list

    Every indexable URL present, nothing stale · verified: Fetch the sitemap and diff it against the crawl

  • Sitemap declared in robots.txt and submitted to Search Console

    Submitted by hand, confirmed accepted · verified: Google Search Console

  • robots.txt allows everything that should be indexed

    No accidental site-wide disallow · verified: Fetch /robots.txt on production

  • No staging or preview URL is crawlable

    Previews carry noindex or auth · verified: Fetch a preview URL and check the headers

  • Self-referencing canonical on every page

    Prevents preview and parameter URLs duplicating production · verified: Source inspection on every indexable URL

  • One hostname, everything else redirects to it

    www and non-www resolve to a single canonical host · verified: curl both, follow the redirect chain

  • HTTPS everywhere, HTTP redirects permanently

    301, no mixed content warnings anywhere · verified: curl plus a console check on every page

  • Every URL returns the status code it should

    200 for real pages, 301 for moved, 404 for missing · verified: Full crawl of the site

  • A real 404 page that keeps the visitor

    Branded, with navigation and the phone number on it · verified: Visit a URL that does not exist

  • No redirect chains and no loops

    One hop maximum · verified: Crawl with redirect tracing

  • Old URLs redirected if we are replacing an existing site

    Every ranking URL mapped to its new home before cutover · verified: Crawl of the old site, mapped one to one

  • Pagination and filters cannot generate infinite URLs

    No crawl traps · verified: Crawl with parameter discovery on

  • Every page rendered and indexed after launch

    Confirmed in Search Console, not assumed · verified: URL Inspection on a sample of every page type

07

Structured data and AI answers

10 checks

Search engines and AI assistants read a machine-readable copy of your business. If it is missing or wrong, you get left out of answers you should be in.

  • LocalBusiness or the correct trade-specific type

    Valid, with no errors and no warnings that matter · verified: Google Rich Results Test and Schema.org validator

  • Name, address, phone and hours match everywhere

    Identical across the schema, the footer and the contact page · verified: Side-by-side comparison

  • Service schema on every service page

    Correctly typed and linked to the business · verified: Rich Results Test on each page

  • Service area declared

    Every town you cover, matching the town pages · verified: Schema inspection

  • FAQ schema where there are real questions and answers

    Emitted from the same content the visitor sees · verified: Rich Results Test, plus a visual diff

  • Breadcrumb schema matching the visible navigation

    No invented hierarchy · verified: Rich Results Test

  • No review or rating schema until there are real reviews

    Zero exceptions — inventing it risks a manual penalty · verified: Schema inspection

  • Answers written in the format AI assistants extract

    Question, then a direct answer in the first sentence · verified: Manual read of every answer block

  • Key facts stated in plain text, not only in images

    Hours, service area and pricing readable without OCR · verified: Text-only render of each page

  • Baseline AI visibility recorded before launch

    Measured so the change after launch is provable · verified: aivisibilitymetrics.com, a tool we built and run

08

Content and copy

11 checks

The words do the selling. Every page is written from one call with you and comes back for your approval before it is built.

  • Every page approved by you before it goes public

    In writing, on a staging link · verified: Approval recorded against the staging URL

  • Services described the way you describe them

    Your trade vocabulary, not generic marketing language · verified: Read-back on the review call

  • Real photos of your trucks, crews and finished work

    No stock photography of models in clean hard hats · verified: Visual audit of every image on the site

  • Licence and insurance details stated where a buyer looks

    Licence number visible, current, and correct · verified: Checked against your paperwork

  • Service area stated in plain language

    The towns you drive to, named · verified: Confirmed against your list

  • Hours, emergency availability and response time stated

    Accurate on the day of launch · verified: Confirmed with you at handover

  • Every price or claim on the site is one you stand behind

    Nothing written that you would not say on the phone · verified: Line-by-line read on the approval call

  • No placeholder text anywhere

    Zero lorem ipsum, zero 'coming soon', zero sample content · verified: Full-text search of the built site

  • Spelling and grammar checked

    US spelling throughout, consistent · verified: Automated pass plus a manual read

  • Business name, phone and address identical site-wide

    Character for character, including formatting · verified: Full-text search across every page

  • Nothing on the site contradicts anything else on it

    Hours, coverage and services agree on every page · verified: Cross-page consistency pass

09

Getting the call

12 checks

A site that ranks and never rings is a failure. These are checked on the live site, on a real phone, before handover.

  • Phone number visible without scrolling on every page

    Above the fold on both phone and desktop · verified: Manual pass on both

  • Call button in the thumb zone on mobile

    Present on every page, never scrolls out of reach · verified: Manual pass on a real handset

  • Every call link dialed and answered as a test

    Rings the phone you actually answer · verified: Live test call before handover

  • One clear next step per page

    No page leaves a visitor without an obvious action · verified: Page-by-page review

  • Quote form reachable from every page

    One tap or one click, always · verified: Navigation audit

  • Emergency or after-hours path is obvious

    Where it applies to your trade · verified: Manual review

  • Trust signals near every call to action

    Licence, insurance, years in business, service area · verified: Page-by-page review

  • Google reviews shown live on the page

    Real current rating, not a screenshot · verified: Compare the page against your Google listing

  • No dead ends

    Every page links onward to a service, a town or the form · verified: Crawl for pages with no outbound internal links

  • Nothing interrupts a visitor before they have read anything

    No entry popups, no chat bubble ambush, no auto-play sound · verified: Cold visit in a clean browser profile

  • Click-to-text where you offer it

    Opens the messaging app with the number prefilled · verified: Tap on iOS and Android

  • Every conversion path walked end to end on the live site

    Call, text, form — all three, after launch · verified: Manual test, results confirmed with you

10

Forms and lead capture

10 checks

Every extra field costs you leads, and a form that silently fails costs you all of them. Both are checked.

  • Quote form is four fields

    Name, phone, address, what's wrong · verified: Form inspection

  • Test submission received end to end

    Lands where you will actually see it · verified: Live submission before handover, confirmed by you

  • Notification reaches you within one minute

    Email, text or both, whichever you asked for · verified: Timed test submission

  • Leads are stored, not only emailed

    A dropped notification can never lose the lead · verified: Submit, then confirm the stored record

  • Spam protection that does not punish real people

    No CAPTCHA puzzle in front of a paying customer · verified: Submit as a human, then as a bot

  • Validation messages are specific and readable

    Says which field and why, never just 'error' · verified: Submit deliberately bad input

  • Errors do not clear what was already typed

    Nothing retyped after a failed submission · verified: Trigger a validation error and check the fields

  • Confirmation screen tells them what happens next

    Who calls, and how soon · verified: Complete a real submission

  • Form works with the keyboard alone

    Tab order is sane, focus is always visible · verified: Keyboard-only pass

  • Form works with JavaScript disabled or failed

    Degrades to something that still submits, or fails loudly · verified: Disable JS and submit

11

Accessibility

14 checks

Measured against WCAG 2.2 level AA. Some of your customers are older, some are on a cracked screen in the sun, and some use a screen reader. All of them can hire you.

  • Lighthouse accessibility score

    100, every indexable page · verified: Lighthouse CLI

  • Automated audit with no violations

    Zero errors at WCAG 2.2 AA · verified: axe-core

  • Body text contrast

    4.5:1 minimum against its background · verified: Contrast checker on every text and background pair

  • Large text and UI component contrast

    3:1 minimum · verified: Contrast checker

  • Every interactive element reachable by keyboard

    Nothing reachable only by mouse · verified: Keyboard-only pass of every page

  • Focus is always visible

    A clear indicator on every focusable element · verified: Tab through every page

  • Tab order follows the visual order

    No jumps backward or into hidden content · verified: Keyboard-only pass

  • Skip-to-content link present

    First tab stop on every page · verified: Tab once from a fresh load

  • Screen reader pass on the main paths

    Homepage, a service page, and the quote form · verified: VoiceOver on macOS and iOS

  • Every form field has a real label

    Placeholder text is never the only label · verified: Accessibility tree inspection

  • Landmarks and regions correctly marked

    Header, nav, main, footer all present once · verified: Accessibility tree inspection

  • Images carry alt text, decorative ones marked empty

    No image announced as its filename · verified: Screen reader pass

  • Page language declared

    Set on the html element · verified: Source inspection

  • Nothing conveyed by color alone

    Errors, links and states carry a second signal · verified: Grayscale render of every page

12

Security, privacy and legal

11 checks

The parts that only matter on the day they go wrong. Checked before handover so that day does not arrive.

  • Valid SSL certificate with auto-renewal

    No expiry date you have to remember · verified: Certificate inspection plus renewal confirmation

  • Security headers set

    HSTS, X-Content-Type-Options, Referrer-Policy, frame protection · verified: Response header inspection

  • No secrets, keys or credentials in the shipped code

    Zero · verified: Automated secret scan of the repository

  • Dependencies free of known vulnerabilities

    No high or critical advisories at launch · verified: Dependency audit

  • Form endpoints rate-limited

    A bot cannot flood your inbox · verified: Repeated submission test

  • No console errors or warnings on any page

    A clean console on every route · verified: DevTools console sweep

  • Privacy policy present and accurate

    Describes what is actually collected, nothing more · verified: Read against the real data flow

  • Terms of service present

    Linked in the footer on every page · verified: Footer audit

  • Cookie and tracking position stated honestly

    If nothing is tracked, no banner is shown · verified: Cookie inspection on a clean profile

  • Accessibility statement where you want one

    Optional, offered on every build · verified: Confirmed with you

  • Licence numbers and legal business name correct

    Matches your registration exactly · verified: Checked against your paperwork

13

Analytics and measurement

9 checks

Without this there is traffic and nothing else. You get the logins, not a monthly PDF of numbers you cannot check.

  • Analytics installed and firing on every page

    Confirmed receiving data before handover · verified: Live event check in the dashboard

  • Calls tracked as a conversion

    Every tap-to-call link, on every page · verified: Test tap, confirmed in the dashboard

  • Form submissions tracked as a conversion

    Fires on success, not on click · verified: Test submission, confirmed in the dashboard

  • Text and email clicks tracked

    Labeled by where on the page they happened · verified: Test click, confirmed in the dashboard

  • Search Console verified and the sitemap submitted

    Verified on the domain, not on a single URL · verified: Google Search Console

  • Google Business Profile connected where you have one

    Website field pointing at the new site · verified: Profile inspection

  • Baseline numbers recorded on launch day

    Speed, indexed pages and AI visibility, dated · verified: Written into the handover document

  • Analytics does not slow the site down

    Loaded after the page, never blocking it · verified: Network waterfall plus a before-and-after Lighthouse run

  • You have your own logins

    Owner access, not view-only under our account · verified: Confirmed by you signing in at handover

14

Hosting, domain and email

9 checks

The plumbing. Most of it is invisible until a domain expires or your quotes start landing in spam.

  • Domain registered in your name

    You are the registrant, not us · verified: WHOIS record

  • Domain auto-renew on, with a reminder to you

    Expiry date recorded in the handover document · verified: Registrar settings

  • DNS records documented before any change

    A copy of the old zone kept, so a cutover is reversible · verified: Exported zone file

  • Email unaffected by the website cutover

    MX records untouched, mail tested after the switch · verified: Send and receive a test message post-cutover

  • SPF and DMARC records present

    So the site's form notifications are not filtered as spam · verified: DNS inspection plus a deliverability test

  • Hosting on a CDN with automatic scaling

    A storm week cannot take the site down · verified: Deployment configuration review

  • Uptime monitoring active with alerting

    We find out before you do · verified: Monitor configured and test-alerted

  • Automatic backups with a tested restore

    Restore actually performed once, not assumed to work · verified: Test restore before handover

  • Rollback to the previous version available

    Any deploy reversible in minutes · verified: Deployment history review

15

What you get at handover

10 checks

Ownership does not depend on staying a client. This is handed over on launch day whether you stay on the retainer or not.

  • Domain registrar login, in your name

    Transferred to your account · verified: You sign in and change the password

  • Hosting account access

    Owner-level, not a shared seat · verified: You sign in and change the password

  • The source code

    The complete site, yours to take anywhere · verified: Repository access or a delivered archive

  • Every photo and every piece of copy

    Full resolution originals, not the compressed web versions · verified: Delivered file bundle

  • Analytics and Search Console access

    Owner-level on both · verified: You sign in

  • This checklist, completed and signed

    Every item marked, dated, with the measured numbers filled in · verified: Countersigned at handover

  • The launch-day measurements

    Speed scores, indexed page count and AI visibility baseline · verified: Written into the signed copy of this document

  • A written record of what changed

    Old URLs, new URLs and every redirect, if we replaced a site · verified: Delivered redirect map

  • How to text a change, and what counts as one

    In writing, with the number · verified: Handover document

  • A walkthrough of the finished site

    One call, as long as you want it to be · verified: Scheduled at handover

Questions

About the checklist

What should be checked before a website goes live?

Fifteen areas, and speed is only one of them: Core Web Vitals, page weight, mobile and touch targets, the browser matrix, on-page SEO, crawlability and indexing, structured data, content accuracy, conversion paths, forms, accessibility to WCAG 2.2 AA, security and legal, analytics, hosting and DNS, and the handover package itself. JuicedWebsites runs 161 individual checks across those 15 areas before any contractor site is handed over, then re-runs the measurements on the live site after launch.

Why does a launch checklist need a threshold for every item?

Because a check without a number cannot be verified or disputed. “The site is fast” is an opinion; “Largest Contentful Paint under 2.5 seconds on emulated slow 4G, measured in Lighthouse, median of three runs” is a claim the client can re-run himself and hold the builder to. Every item on this checklist names both the threshold and the tool for exactly that reason.

Can I use this checklist with a different web designer?

Yes, and that is the intended use. It is published in full with no email gate so a contractor can take it to whoever is quoting him and ask which items they run. Any competent builder should be able to answer for most of it. The ones who cannot are the reason the document exists.

Are the checks run again after the site is live?

Yes. Every measurement is taken twice — once on the staging link the client approves, and once on the production URL after launch — because a build that scores well on staging and badly in production has not actually been tested. The launch-day numbers are written into the signed copy the client keeps.

What happens if a check fails?

It is fixed before launch, or it is written down as an open item with a date and carried into the signed record. Items that do not apply to a particular build are marked not applicable with the reason next to them. A blank box never means “probably fine”.

The checklist is stage 04 of a five-stage build. See how the rest of it runs, or open the sites it was run on.

Order your site

No call, no quote, no proposal.

$1,000 covers the build and the first 3 months. Pay, fill in one form, and it's booked against this month's capacity. Bigger job than that? Text your trade and towns and we'll quote it by hand.

Start your site — $1,000

You own the site from day one. The monthly cancels any month.

Or text us — bigger job, or a question first.Or call the same number and talk it through.

No discovery call. No calendar link. No sales pipeline.

(831) 316-4089

Or fill this out and get a fixed quote by text

Name, number and trade is enough to quote from. The rest just means the number you get back is exact instead of a range.