Web Performance Engineering

    Core Web Vitals Optimization

    Pass Core Web Vitals on real users, not just on PageSpeed. I diagnose LCP, INP, and CLS at the network, browser, and framework layers and ship the changes that move CrUX field data — for WordPress, Shopify, Next.js, Laravel, and custom stacks.

    Core Web Vitals Optimization — technical illustration by Mazam Khalid
    Core Web Vitals Optimization — delivered and documented by Mazam Khalid.

    What's Included

    Comprehensive solutions tailored to your specific needs

    LCP engineering

    Hero image, web font, CSS, and server-render diagnosis with fetchpriority, preload, and critical CSS implementation.

    INP engineering

    Long-task breakdown, main-thread profiling, scheduler.yield rollout, and third-party deferral for interaction-heavy pages.

    CLS engineering

    Dimension reservation, font swap stabilisation, and elimination of above-the-fold injected content.

    Field-data tracking

    CrUX, RUM, and weekly dashboards measuring real-user metrics, not synthetic lab scores.

    Third-party governance

    Audit, defer, server-side, or remove the tags that are silently destroying your Vitals.

    CI performance budgets

    Lighthouse CI on every PR with budgets that block regressions before they reach production.

    Problems I Solve

    Symptoms this engagement is built to fix

    A green PageSpeed score in the lab but Needs Improvement on real user data in CrUX.

    INP regressions since Google replaced FID, especially on interaction-heavy product or filter pages.

    LCP dominated by a hero image, web font, or render-blocking script your team cannot remove.

    CLS spikes from late-loading ads, fonts, embeds, or third-party widgets.

    Performance budgets that hold for one week then drift back the moment a marketing tag ships.

    Plugin-based optimisation that broke the site, the analytics, or the checkout.

    Why lab scores are not the same as Core Web Vitals

    PageSpeed Insights gives you two numbers: a lab score from a simulated mobile run, and a field score aggregated from real Chrome users over the previous 28 days. Google ranks on the field number. The lab number exists to help you debug. Most teams optimise the lab number, watch it climb to 95+, and then wonder why the field number is stuck in orange. The reason is that real users have slower devices, slower networks, and they actually interact with the page — which surfaces INP problems that lab tests will never reproduce. My engagements optimise against CrUX field data first, with lab numbers as a debugging tool. That is the only definition of pass that matters for rankings.

    How LCP, INP, and CLS are actually fixed

    LCP is almost always a network or render problem: the largest visible element is either a hero image that loads too late, a web font that blocks the title, or a server-rendered block that waits behind hydration. Real fixes include preloading the LCP image with the correct fetchpriority, eliminating render-blocking CSS via critical-path extraction, moving to SSR or ISR where hydration is the bottleneck, and using a properly configured CDN at the edge. INP is an interaction problem: long JavaScript tasks block the main thread between a user input and the next paint. Real fixes include breaking long tasks into yieldable chunks, moving non-critical work into requestIdleCallback or web workers, deferring third-party scripts that run on every interaction, and replacing heavy React patterns with cheaper ones. CLS is a layout problem: elements shift after they paint. Real fixes include reserving dimensions for media, ads, and embeds; pre-loading critical fonts with size-adjust; and stabilising any client-side content that injects above the fold.

    Stack-specific bottlenecks I see most often

    WordPress sites usually hit LCP problems from oversized hero images, render-blocking page builders, and uncached database queries on the first byte. Shopify stores almost always need theme-level surgery around image rendering, third-party app scripts, and the cart drawer's hydration cost — caching plugins do not exist on Shopify. Next.js apps regress on INP when client components do too much work in useEffect, and on LCP when the App Router is misconfigured for streaming. Laravel applications usually need Octane, opcache tuning, and a CDN edge cache before any front-end work pays off. Custom React SPAs typically need code splitting, route-level lazy loading, and a serious look at whether they should be a SPA at all. I diagnose against your specific stack rather than running the same five plugin recommendations on every site.

    How third-party scripts quietly destroy your Vitals

    Most field-data CWV failures are not your code. They are GTM, Meta Pixel, HubSpot, Intercom, a chat widget, a heatmap tool, a personalisation script, and three A/B tests all loading on the critical path. Each one adds main-thread work that pushes INP and TBT into the red, plus network contention that delays LCP. Removing them is not always politically possible, so the engagement includes a script governance plan: which tools are essential, which can be deferred, which can be moved server-side via GTM Server Container or Stape, and which simply need to be killed. I do this work with marketing in the room so the conversation is constructive rather than adversarial.

    How the work is measured and protected over time

    Every engagement defines a target field metric (typically all three CWV in the green for 75 percent of mobile sessions) and a measurement window (the next CrUX update cycle). You receive a weekly dashboard tracking field LCP, INP, CLS, and the underlying lab metrics, plus alerts when any metric regresses by more than 10 percent. After the initial optimisation, most clients move to a small monthly retainer that includes a performance budget enforced in CI, automated Lighthouse runs on PRs, and a monthly review of new third-party scripts before they ship. This is what prevents the gains from quietly evaporating once your team starts shipping again.

    What You Receive

    Deliverables & expected outcomes

    • Field-data baseline report with all three CWV per template
    • Engineering diagnosis document with root causes per metric
    • Implementation (or co-implementation with your team)
    • Third-party script governance plan
    • Weekly performance dashboard for 30 days post-launch
    • CI performance budget configuration to prevent regressions

    Illustrative Engagement

    A representative scenario

    The problem

    A multi-brand e-commerce group passed PageSpeed in the lab on every template but failed CWV on field data, blocking organic visibility on the product pages that drove most revenue. INP was the worst metric at 410ms p75.

    The approach

    Main-thread profiling traced 78 percent of input delay to a personalisation script and the cart drawer's React tree. We deferred the personalisation script behind first interaction, moved analytics to a server-side container, and refactored the cart drawer to lazy-hydrate only when opened.

    The outcome

    INP dropped to 168ms p75, LCP improved from 3.1s to 1.9s, and all three Vitals moved into the green within two CrUX cycles. Mobile organic clicks rose 34 percent over the following quarter.

    Composite scenario based on typical engagements. Replace with a real, attributed case study once published.

    My Process

    A proven methodology for delivering exceptional results

    1

    Field-data baseline

    We pull CrUX and (where available) RUM data per template, identify the templates that account for most traffic, and define numeric pass targets.

    2

    Root-cause diagnosis

    Profiling, log analysis, and trace inspection to find the actual bottlenecks per metric — not surface symptoms.

    3

    Implementation

    I ship the changes directly, or co-implement with your engineering team. High-risk changes are gated behind feature flags or staged rollout.

    4

    Measure & protect

    Weekly dashboard for 30 days post-launch, plus CI performance budgets so future PRs cannot quietly regress the work.

    Why Choose Me?

    With 7+ years of experience and a track record of delivering results, I bring expertise, reliability, and a results-driven approach to every project.

    • Optimise against the field data Google ranks on — not lab scores
    • Stack-specific diagnosis instead of one-size-fits-all plugin advice
    • Measurable INP wins, including the hard interaction cases
    • Third-party tag governance with marketing in the room
    • CI budgets that protect the gains long-term
    • Senior engineering delivered directly, no junior handoff

    Starting at

    €397

    Field-data baseline, engineering diagnosis, implementation, third-party governance, and 30 days of post-launch monitoring with CI performance budgets.

    Senior-level engineering delivered directly — no junior handoff
    View All Pricing

    Frequently Asked Questions

    Related Services

    Ready to Get Started?

    Let's discuss your project and create a custom strategy for success.

    Chat on WhatsApp