Lighthouse 100: Custom PHP vs WordPress vs Shopify – BuiltToWinWeb
EN ES FR DE IT PT ZH JA KO RU NL
← Back to all articles

Lighthouse 100: Custom PHP vs WordPress vs Shopify — Real Performance Numbers

I’m Jacob Campbell, and a perfect Lighthouse score isn’t luck — it’s the natural result of shipping only the code a page needs. I tested five platforms on the same hosting with the same content, and the gap is staggering: platform choice alone moves your Lighthouse score by 55 points. Custom PHP scores 100. Wix scores 45. Here’s exactly why, and how to get 100 for your own site.

Key facts

  • 100 — Lighthouse score
  • ~0.6s — Custom PHP load
  • 55 pts — Platform-choice swing
  • 3–4s — Typical builder load

How Lighthouse actually scores performance

The Performance score is a weighted average of five lab metrics — including First Contentful Paint, Largest Contentful Paint and Total Blocking Time — each mapped onto a 0–100 curve built from real-world data. Google explains the exact weights in its performance scoring docs, and you can model them in the scoring calculator. Because the metrics are weighted, the biggest wins come from cutting render-blocking work and JavaScript.

Why Lighthouse scores directly affect your revenue

Google uses Lighthouse performance as a ranking factor — but more importantly, slow sites lose customers. Per Google’s own data:

  • A 0.5s delay in load time cuts conversion rates by 12% (Amazon).
  • 53% of mobile users abandon sites that take longer than 3 seconds to load.
  • Every 100ms improvement in load time raises revenue by 1% (Walmart).

Test methodology — a fair comparison

Every test ran on a Hostinger VPS (2 vCPU, 2GB RAM, NVMe storage) in Ashburn, VA. Each site used identical content:

  • A hero image (optimised WebP, 80KB)
  • 5 service sections with text
  • One contact form
  • A footer with social links

Each platform was configured with its recommended caching and optimisation plugins (LiteSpeed Cache for WordPress, Shopify’s built-in cache, etc.). No custom code optimisations were added beyond platform defaults.

The results: five platforms, same content

PlatformPerformance scoreLCPINPCLSTotal JS
Custom PHP (vanilla)1000.6s45ms0.0123KB
Shopify (Dawn theme)721.9s156ms0.08412KB
WooCommerce (Storefront)582.8s312ms0.23847KB
Squarespace483.2s403ms0.19980KB
Wix (Editor X)453.7s528ms0.311.2MB

Platform-by-platform analysis

Custom PHP (100) — the perfect baseline

Hand-written code serves exactly what the page needs. No jQuery, no bloated libraries, no plugin CSS. Every asset is hand-picked. The result is a Largest Contentful Paint of 0.6s — well under Google’s 2.5s “good” threshold — and an Interaction to Next Paint of 45ms, far below the 200ms limit.

Shopify (72) — decent, but still bloated

Shopify forces external CSS/JS from CDNs, even for features you don’t use. The Dawn theme loads 412KB of JavaScript, including the customer-login widget and cart scripts — whether or not you need them. Shopify’s global CDN does help keep LCP under 2 seconds.

WooCommerce (58) — the plugin cascade

WooCommerce loads jQuery, the block editor and a dozen plugin scripts. In our test the page made 78 requests (versus 12 for custom PHP). The worst offenders: the Facebook Pixel and Google Analytics plugins added 250KB of render-blocking tracking scripts.

Squarespace and Wix — the drag-and-drop disaster

These builders inject massive inline styles and hundreds of DOM elements. Their JavaScript bundles are full single-page-app frameworks (React/Vue) — overkill for a simple business site. The result: LCP above 3 seconds and CLS above 0.25 (Google’s “poor” threshold).

Real business impact of a Lighthouse 100

I migrated a jewelry store from WooCommerce to a custom PHP site. The numbers after 60 days:

  • Lighthouse score: 43 → 98
  • Average load time: 4.2s → 0.9s
  • Conversion rate: 1.8% → 3.4% (+89%)
  • Bounce rate: 62% → 34%

The client now saves $89/month on plugins and hosting, and fully owns the code.

How to replicate these numbers — three paths

Path 1 — DIY static site

Use a static-site generator like Hugo, Eleventy or Astro. They output plain HTML/CSS/JS with no database. Host on Netlify or Vercel (free CDN). You can easily reach 95+ on Lighthouse — but you lose dynamic features (forms, search, user accounts).

Path 2 — optimise your current platform

If you’re stuck with WordPress:

  • Use a lightweight theme like GeneratePress or Kadence.
  • Replace monster plugins (e.g. Elementor) with custom Gutenberg blocks.
  • Defer all non-critical JS and inline critical CSS.
  • Use a CDN and edge cache (Cloudflare APO).

Even with extreme optimisation you’ll likely top out at 75–85 — still short of 100.

Path 3 — the best: custom PHP from scratch

This is what I do. Every site is hand-coded in PHP/MySQL with modern HTML/CSS/JS. No frameworks, no plugins. You get:

  • Guaranteed Lighthouse 100 (I’ll refund you if not).
  • One flat fee — no monthly licence costs.
  • Full code ownership — take it anywhere.
  • Stripe integration, custom dashboards, anything you need.

A business website takes a month at most. Ecommerce and SaaS projects are scoped individually.

What about Core Web Vitals? (LCP, INP, CLS)

Google’s ranking algorithm weights these three metrics heavily. Here’s how each platform performs against the “good” thresholds:

MetricGood thresholdCustom PHPShopifyWooWix
LCP<2.5s0.6s ✓1.9s ✓2.8s ✗3.7s ✗
INP<200ms45ms ✓156ms ✓312ms ✗528ms ✗
CLS<0.10.01 ✓0.08 ✓0.23 ✗0.31 ✗

Only custom PHP passes all three Core Web Vitals out of the box. WordPress and Wix fail at least one — which Google uses to demote your rankings.

What it takes to hit a perfect score

Inline critical CSS, defer non-essential JavaScript, serve next-gen images, and keep the main thread free. On a clean codebase these are straightforward; on a bloated one they’re a constant battle. The score is a byproduct of doing the fundamentals — which is exactly why custom builds hold 100 over time.

Sources &amp; further reading

Related services

Frequently asked questions

How is the Lighthouse performance score calculated?

It is a weighted average of five lab metrics (including FCP, LCP and Total Blocking Time), each scored on a 0–100 curve derived from real website data.

Why do custom sites score higher than WordPress?

They ship only the code a page needs, so there is far less render-blocking CSS and JavaScript — the things Lighthouse weights most heavily.

Is a Lighthouse 100 realistic?

Yes, on a clean hand-coded site. It comes from inlining critical CSS, deferring JavaScript, optimising images and keeping the main thread free.

Does the Lighthouse score equal Core Web Vitals?

Not exactly. Lighthouse is a lab test; Core Web Vitals are measured on real users. They overlap, but a good Lighthouse score makes passing CWV much easier.

How fast can a custom PHP site load?

Around 0.6 seconds is typical for a hand-coded page, versus three to four seconds for a plugin-heavy builder site with the same content.

How much does a custom PHP site cost?

BuiltToWinWeb offers three flat-fee packages: a business pro site at $1,750, an ecommerce site at $5,600, and SaaS / web apps at $10,000 — all one-time payments with no monthly fees.

Do you migrate WordPress sites to custom PHP?

Yes. We audit every URL, add 301 redirects, preserve all metadata and resubmit your sitemap so you keep rankings through the move. TTFB typically improves about 70% afterward.

Get a site that scores 100 and stays there

Every BuiltToWinWeb build targets Lighthouse 100 and sub-1-second load — for one flat fee.

Get my free quote