53% of mobile users abandon sites that take longer than 3 seconds to load.
✶ What I see every day
Most page builder sites I audit take 7-12 secondsfor Largest Contentful Paint on mobile. The worst I've seen? 24 seconds. That's not a website. That's a loading screen.
Hand-crafted HTML/CSS/JS. But not all hand-crafted is equal.
What I build: lean, static, no database, no plugins, no sloppy frameworks.Just HTML, CSS, and JavaScript. Unlike platforms such as WordPress or Wix, which confine you to their inherent architectural limits, my method is Augmented Craftsmanship. I begin with a blank canvas to architect the foundational structure. I then leverage advanced computational tools, meticulously reviewing and optimizing every line of code. This hands-on control over the entire stack builds speed, security, and SEO foundations through an architectural approach that differs from platform-based solutions.
Google measures three key ranking signals.
LCP (Largest Contentful Paint)
How fast your main content loads. Google recommends under 2.5 seconds. My hand-crafted sites often hit sub-2 seconds.
CLS (Cumulative Layout Shift)
Does your page jump while loading? This is bad. Very bad.
INP (Interaction to Next Paint)
Google's latest responsiveness metric. How quickly your page responds to clicks and taps. My sites respond faster than a guy hearing his phone go off after a first date.
TBT (Total Blocking Time) — Lab Metric
Not a Core Web Vital, but important for Lighthouse scores. Measures how long the page is blocked before responding to user input.
Core Web Vitals and PageSpeed Insights measure different things.
Field Data (CrUX)
- Real visitor experiences (new + returning)
- Google's actual ranking signal
- Requires enough traffic to be measured
- 28-day rolling average
- Updates slowly
Lab Data (Lighthouse / PageSpeed)
- Synthetic, controlled test
- Scores don't directly affect rankings
- Works for any site, any traffic level
- Instant results after changes
- Simulates a repeatable environment
✶ Here's what you need to know
If you don't have enough traffic for CrUX data, lab scores are your best baseline. They give you a good idea of how your site would perform under ideal conditions. Note that Google does not give an exact number of monthly visitors required to generate these results. Some estimates I have seen are 10,000 visitors per month. That's a lot.
One caveat:CrUX scores are typically higher than PageSpeed lab scores — sometimes significantly. Don't panic if your PageSpeed numbers look worse. Use lab data as a diagnostic tool, not a direct ranking predictor. This is why I hyper-focus on PageSpeed over CrUX. Core Web Vitals require a lot of monthly visitors. PageSpeed gives you lab data — a controlled baseline — which helps you understand the first-time visitor experience. If you meet or exceed PageSpeed scoring, you should be in a strong position for higher conversions, cheaper PPC, and better rankings.
Faster sites are more likely to have lower cost-per-click. That's how the auction works.
What I build vs what most devs build vs page builders
✓ My hand-crafted sites
- Sub-3s LCP guaranteed
- No database, no plugins
- Phenomenal PageSPeed scores
- Full control over every element
- Virtually no architectural limitations (just don't ask for a self guided satelite with a one-way trip to Mars)
Other "hand-crafted" sites
- May add databases or frameworks
- Inconsistent performance is common
- Can achieve better scores than page builders, but it depends upon the developer
Page builders
- Often 7-12s LCP in my experience
- Have large layout shifts
- Database overhead + plugins
- Regular security updates required
- Nickel-and-diming plugins are common
- Platform lock-in is very common
- Templates are the norm
- Often limit the designers branding ability
My opinion on Wix, Squarespace, and Wordpress:
Page builders have their uses.
But if your goal is to rank high, lower your PPC costs, and convert more visitors into clients and jobs...
I always recommend hand-crafted. No contest.
Sub-3s LCP or I fix it.
Most agencies won't do that. I've yet to see another because it is so difficult to achieve. I do because I know what my code can do.
