Conversion and compliance

Speed, measured the way Google measures it.

What the three vitals mean for a roofing site, and why JavaScript is almost always the cause.

The three metrics

Google publishes three, each with a documented threshold for a good experience.

01
Largest Contentful Paint, at or under 2.5 seconds.

When the main content of the page becomes visible.

02
Interaction to Next Paint, at or under 200 milliseconds.

How quickly the page responds after a tap.

03
Cumulative Layout Shift, at or under 0.1.

How much the page jumps around while it loads.

Measured on real visits, not on your desktop

The scores that matter come from field data: real visits, mostly on mid-range phones on mobile networks. A site that scores well in a lab test on office wifi can fail in the field, which is why a contractor's impression of their own site being fast is not evidence. Check the field data, and check it segmented by mobile.

The usual cause is scripts

Page builders, tag managers, chat widgets, review carousels, and call-tracking snippets all load code that must execute before the page becomes usable, and each one is usually added by a different person for a good reason. Layout shift is the visible symptom: a hero image without dimensions, a font swapping late, a cookie banner pushing content down after you have started reading.

What actually fixes it

Six changes, in order of effect.

01
Remove scripts you do not need.

Most sites carry at least one widget nobody can name the owner of.

02
Build interaction from native HTML rather than JavaScript.

Accordions, menus, and forms all have native equivalents.

03
Set explicit dimensions on every image so nothing reflows when it loads.
04
Serve images at the size they display, in a modern format, with the hero image loaded eagerly and the rest lazily.
05
Self-host fonts, limit to two weights, and avoid a late swap.
06
Move any remaining third-party script below the fold or defer it entirely.

Why this site ships zero JavaScript by default

Not as a purity claim. A page built from native HTML for accordions, forms, and navigation has almost nothing to execute, so the vitals are structural rather than tuned after the fact. The same property makes the page legible to an answer engine, which reads markup rather than waiting for a script, so one decision serves both speed and citability.

Where speed stops being the problem

Speed is a threshold, not a ranking lever you can keep pulling. Once the three vitals are in the good band on mobile field data, further tuning returns very little, and the constraint moves to whether the page answers the question someone typed. A fast page that answers nothing still loses to a slower page that answers the query, which is why an audit reports both.

How to check your own field data

Four steps, no vendor required.

01
Open Search Console and find the Core Web Vitals report, which uses real visits rather than a lab test.
02
Segment to mobile, since that is where roofing traffic and the failures both concentrate.
03
Note which page groups fail, because it is usually one template rather than the whole site.
04
Re-check a month after any fix, because field data is a rolling window and moves slowly.

Images are the other half of the problem

Roofing sites are image-heavy by nature, and project photographs are usually uploaded at whatever size the camera produced. Serve them at the size they display, in a modern format, with explicit dimensions so nothing reflows, the hero image loaded eagerly and everything below it lazily. On most contractor sites that single pass does more for load time than any script removal.

What to do about the widgets you want to keep

Chat, reviews, and call tracking all have legitimate uses. Load them after the page is usable rather than before, keep them off the templates where they add nothing, and audit them annually. Every contractor site accumulates at least one widget nobody can name the owner of, and removing it costs nothing.

Find out what your site fails.

$2,500, and every accessibility and speed failure comes back in writing.