Methodology

The CORE Protocol

Four phases built around a single rule: the data decides. Not a borrowed framework — a process developed through fixing hundreds of WordPress sites and auditing 87 performance plugins.

Calibrate
Real user baselines first
Origin
Root cause, not symptom
Remedy
Traceable, custom-built fixes
Evaluate
Verified against baseline
C
O
R
E
C
Phase 01
Calibrate

The best baseline available. Lab tools always. Field data when accessible.

Every engagement opens with a Lighthouse and DevTools audit — reproducible, always available, works for any site regardless of traffic. For sites with enough visitors, CrUX field data layers on top: 28 days of real users on real devices revealing how actual visitors experience the site. One input or two, the work starts with numbers. Not guesses.

  • › Lighthouse + DevTools waterfall — reproducible lab baseline, always the foundation
  • › CrUX field data when available — real-user p75 for LCP, INP, CLS, TTFB per form factor
  • › Separate mobile and desktop: they often fail for completely different reasons
  • › Map which page types have the worst gap between current and passing threshold
calibrate.log
# Calibrate — lab baseline (all engagements)
$ lighthouse https://your-site.com --form-factor=mobile
FCP: 3.2s LCP: 4.1s TBT: 820ms CLS: 0.24
# + Field data layer (when CrUX data is available)
$ crux --origin https://your-site.com --days 28
LCP p75: 4.200s ● POOR threshold: 2.500s
INP p75: 520ms ● POOR threshold: 200ms
CLS p75: 0.28 ● POOR threshold: 0.100
O
Phase 02
Origin

Trace every failing metric to its infrastructure source.

"LCP is 4.2s" is a symptom. "The LCP element is a 2.3MB PNG fetched with no priority hint after a 1.82s TTFB on an un-cached shared host" is an origin. Every failing metric gets traced through its contributing factors until the actual infrastructure decision causing the number is found. No plugin installs before this step is done.

  • › LCP trace: identify the element, when it is fetched, and every delay factor in its path
  • › INP trace: record real interactions, find the main thread work blocking each response
  • › CLS map: which elements shift, what triggers the shift, what constraint is missing
  • › TTFB breakdown: CDN hit rate, server cold-start time, server-side render duration
origin.log
// Origin — root cause tree for LCP
LCP = 4.200s
├─ TTFB 1.820s ← no CDN, cold shared host
├─ Resource 0.890s ← 2.3MB PNG, no preload hint
├─ Render block 0.640s ← 3 stylesheets in <head>
└─ fetchpriority missing → browser deprioritised LCP
// Origin — root cause for INP
INP = 520ms
├─ Input delay 310ms ← 47 passive-less scroll listeners
└─ Processing 180ms ← layout thrash in click handler
R
Phase 03
Remedy

Each fix traceable to an Origin finding. Custom-built when plugins fall short.

Every change is mapped to a specific Origin finding. No speculative installs, no carpet-bombing plugins hoping something sticks. When the origin analysis uncovers a problem that no plugin can solve — a per-template critical CSS pipeline, a proximity-aware JS loader, a bespoke service worker strategy — the fix is built from scratch.

  • › Map each change to its Origin finding — no orphan commits, no unexplained modifications
  • › Lab-verify in staging before deploying to production — no regressions shipped
  • › Build custom tooling when plugin feature sets are insufficient for the root cause found
  • › Document every change: what was changed, why, and the expected performance delta
remedy.log
// Remedy — fix log, each mapped to Origin
ORIGIN FINDING REMEDY DELTA
────────────────────────────────────────────────────────────
TTFB 1.82s (no CDN) → CDN + edge cache −96%
PNG 2.3MB, no priority → AVIF + fetchpriority LCP −67%
3 render-blocking CSS → critical CSS (custom) FCP −62%
47 passive-less listeners → passive flag applied INP −68%
font-display: auto → swap + subsetting CLS −86%
// Custom-built (no plugin covered the gap):
→ per-template critical CSS pipeline (Node.js edge)
→ proximity-aware JS loader (IntersectionObserver)
E
Phase 04
Evaluate

Verified against the same baseline that opened the engagement.

Evaluation matches the engagement. Lab engagements close with before/after Lighthouse runs — documented, reproducible, delivered in a full report. Field engagements add a 30-day CrUX monitoring window: real-user data confirming improvements hold in production. Either way, if the agreed metric targets are not reached, the last 30 days are refunded.

  • › Lab engagements: before/after Lighthouse comparison — every metric delta documented
  • › Field engagements: 28-day post-fix CrUX pull — improvements confirmed in real-user traffic
  • › 30-day money-back guarantee — if agreed targets are not reached, the last month is refunded
  • › Delivery report: origin finding, remedy, and before/after delta for every change made
evaluate.log
// Evaluate — lab engagement (before/after Lighthouse)
LCP 4.1s → 1.4s (−66%) ● GOOD ✓
TBT 820ms → 95ms (−88%) ● GOOD ✓
CLS 0.24 → 0.03 (−88%) ● GOOD ✓
// Evaluate — field engagement (30-day CrUX window)
$ crux --origin https://your-site.com --compare baseline
LCP p75: 1.400s ● GOOD ✓ was 4.200s (−67%)
INP p75: 165ms ● GOOD ✓ was 520ms (−68%)
CLS p75: 0.04 ● GOOD ✓ was 0.28 (−86%)