Service

Website speed optimisation, measured where your customers are

A Lighthouse score on a developer laptop with fibre broadband is not a measurement of your site — it is a measurement of the laptop. The work here is judged on field data from real visitors on real phones, which is also the data Google actually uses.

Starting from
$80
Timeline
4 days
Proof
3 live sites
Aftercare
30 days

What website speed optimisation actually means

Website speed optimisation means reducing the time between a visitor requesting your page and being able to use it, measured on the devices and networks your visitors actually have. It is a diagnostic discipline rather than a checklist — the same symptom has half a dozen possible causes and only one of them is yours.

The measurement is the part most work gets wrong. A Lighthouse run on a developer laptop over fibre describes the laptop. Google ranks on field data from real Chrome users at the 75th percentile, which means the quarter of your visitors having the worst experience are the ones deciding your score. Optimising for the lab number while the field number stays flat is the most common way this work is wasted.

Who this is for

  • Sites failing Core Web Vitals in Search Console, particularly on mobile
  • Businesses running paid traffic, where slow pages waste budget on every click
  • E-commerce sites where speed is directly measurable in checkout completion
  • WordPress sites that have accumulated plugins and a page builder over several years
  • Anyone whose site was fast at launch and is not any more, without an obvious cause

Who it is not for

Saying this out loud costs me some enquiries and saves both of us the ones that would have gone wrong. If you are on this list, I will tell you in the first reply rather than after a deposit.

  • Sites where the honest answer is a rebuild. Optimising a page builder theme has a low ceiling and I will say so
  • Businesses chasing a 100 Lighthouse score as a goal in itself, which routinely trades real performance for a lab number
  • Sites with no traffic. Speed is not the reason nobody is visiting, and this would be the wrong purchase
  • Anyone unwilling to remove third-party scripts, since those are frequently the whole problem

The problems it solves

Failing Core Web Vitals in Search Console
Each metric is diagnosed to a specific cause and fixed, then re-measured under identical conditions.
Slow first render
Critical CSS inlined, render-blocking resources deferred, and the LCP element preloaded rather than discovered late.
Huge images
AVIF and WebP with correct srcset, sized to the largest display width rather than the original upload.
Sluggish taps and clicks
Interaction to Next Paint work, which nearly always means shipping less JavaScript rather than reordering it.
Content jumping while loading
Dimensions on media, reserved space for embeds, and metric-matched font fallbacks.
Third-party tags nobody audited
Every tag measured for what it costs against what it returns, then presented to you as a decision.

What you get

  • Field-data baseline from Chrome UX Report where your traffic supports it, plus throttled lab testing where it does not
  • Largest Contentful Paint work: the actual LCP element identified, then preloaded, resized and served in a modern format
  • Interaction to Next Paint work, which usually means shipping less JavaScript rather than reordering it
  • Cumulative Layout Shift eliminated: dimensions on media, reserved space for embeds, metric-matched font fallbacks
  • Render path fixed — critical CSS, deferred non-essential script, and third-party tags audited for what they cost
  • Image pipeline: AVIF and WebP with correct srcset, and lazy loading applied below the fold only
  • Caching and compression configured at the server, including long-lived immutable assets
  • A before-and-after report with the numbers and the method, so you can reproduce it rather than trust it

What is included in the starting price

Everything below is in the $80 figure. Nothing here is quoted as an extra once the build is underway, which is the point of publishing it.

  • Field-data baseline from Chrome UX Report where traffic supports it, plus throttled lab testing where it does not
  • LCP diagnosis: the actual element identified, then preloaded, resized and served in a modern format
  • INP work, focused on reducing and deferring JavaScript
  • CLS eliminated: dimensions on media, reserved space, metric-matched font fallbacks
  • Render path: critical CSS, deferred non-essential script, and a third-party tag audit
  • Image pipeline rebuilt with AVIF and WebP, correct srcset, and lazy loading below the fold only
  • Server-side caching, compression and long-lived immutable asset headers
  • A before-and-after report with numbers, method and what was deliberately left alone

What costs extra, and why

A quote that omits these is not cheaper — it is less honest. Each one is real work that someone has to do, and pretending otherwise is how a fixed price becomes a negotiation in week two.

CDN configuration
Worth it for international traffic, often pointless for a single-country audience. You get the honest version.
Rebuilding a page builder theme
Where the theme is the ceiling, optimisation is money spent on a losing position. Quoted as a rebuild instead.
Ongoing performance monitoring
Regressions creep back with every content change. A retainer catches it; a one-off cannot.
Database optimisation
For sites where the server response time rather than the front end is the bottleneck.
Image re-authoring at volume
Re-exporting several hundred product images is real time and quoted on count.

How the work runs

  1. Measure. Field data first. Lab numbers are a diagnostic tool, not the goal, and optimising for the tool instead of the visitor is the classic failure here.
  2. Diagnose. Trace the specific cause. "The site is slow" is a symptom; "the LCP element is a 900KB hero PNG loaded after two blocking stylesheets" is something that can be fixed.
  3. Fix in priority order. Biggest measured win first. Most sites get the majority of their improvement from two or three changes, and the rest is diminishing returns you should know about before paying for.
  4. Verify. Re-measure under identical conditions. A comparison run on a different network at a different time of day is not a comparison.
  5. Report. Before, after, what changed and what was deliberately left alone, with the reasoning for each.

Day by day

4 days from the day scope is signed off. Published as a schedule rather than a promise of speed — you should be able to tell on day three whether a build is on track.

WhenWhat happens
Day 1 Measure. Field data, lab runs under throttling, waterfall analysis, and a written baseline you keep.
Day 2 Diagnose and fix the largest measured cause. Usually images and the render path, in that order.
Day 3 JavaScript and third-party work, which is where the interaction metrics are won or lost.
Day 4 Server configuration, re-measurement under identical conditions, and the before-and-after report.
Days 5–34 Field data takes weeks to update. The snag window covers what the real-user numbers reveal afterwards.

The technology

Deliberately boring, and that is the feature. A stack another developer can pick up is worth more to you than one that impresses other developers.

Measurement
Chrome UX Report field data, PageSpeed Insights, and throttled Lighthouse runs for diagnosis only
Images
AVIF and WebP with fallbacks, generated at build time rather than resized in the browser
CSS
Purged and minified, critical path inlined where it measurably helps
JavaScript
Deferred, split, or deleted. Deletion is usually the highest-value option available
Server
Brotli or gzip compression, HTTP caching headers, immutable hashed asset filenames

What it integrates with

  • Google Search Console Core Web Vitals reporting
  • Chrome UX Report, for real-user field data at the 75th percentile
  • Lighthouse in CI as a regression guard rather than a target
  • Your tag manager, audited rather than assumed
  • Any CDN you already pay for, configured properly instead of merely switched on

What I need from you

Short list, and the first item matters most. Projects do not usually slip because the code was hard — they slip because a decision waited a week.

  • Access to the site, its hosting and its server configuration
  • Search Console and analytics access for the field baseline
  • Authority to remove third-party scripts, or a named person who can decide
  • A list of tags and tools you believe are on the site, which is rarely the same as what is actually there
  • Realistic constraints — a brand font or a required chat widget is a constraint, and it is better stated than discovered

Content and photography

Most speed problems are content problems wearing a technical costume. A 4MB hero photograph, an autoplaying video nobody asked for, and six tracking scripts added by four departments will defeat any amount of code optimisation.

The most useful preparation is an honest inventory of what is on the page and who wanted it there. Roughly half the third-party tags on a typical business site are for a tool nobody uses any more, and removing those is faster, cheaper and more effective than any technique in the rest of this page.

Performance standards

Targets, not aspirations — measured before handover on a throttled mobile connection rather than on a fast laptop.

MetricTarget
Largest Contentful PaintUnder 2.5s on a mid-range Android over 4G, measured in the field rather than on my laptop
Interaction to Next PaintUnder 200ms — which mostly means shipping less JavaScript rather than reordering it
Cumulative Layout ShiftUnder 0.1: every image carries width and height, fonts have metric-matched fallbacks
Total page weightBudgeted before the build, not discovered after it

Accessibility standards

StandardWCAG 2.2 AA as the build target, tested rather than asserted
KeyboardEvery interactive element reachable and operable without a mouse, with visible focus
ContrastText at 4.5:1, interface elements and icons at 3:1, checked with a contrast tool not by eye
MotionAnything animating over five seconds gets a pause control — WCAG 2.2.2 is a Level A requirement
FormsReal labels, errors described in text next to the field, no colour-only signalling
Why it matters commerciallyThe European Accessibility Act has applied to consumer e-commerce since June 2025, and the obligation sits with the business selling, not the agency that built it

This site is built to the same standard it sells, and the accessibility statement lists what is conformant and what is not — which is the part most statements leave out.

Security practices

TransportHTTPS enforced in a single redirect hop, HSTS enabled
HeadersCSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and COOP set
DatabasePrepared statements everywhere. Not "mostly" — everywhere
InputValidated server-side, because client-side validation is a convenience and not a control
SecretsEnvironment variables, never in the repository, never in a JavaScript bundle
EmailSPF, DKIM and DMARC aligned so your order confirmations reach inboxes

The SEO included in every build

Not an upsell. A site that launches unindexed is a shop with the shutters down, and the work below is cheap during a build and expensive afterwards because the fixes are structural.

RenderingContent present in the HTML without JavaScript execution, so every crawler and answer engine can read it
IndexationOne canonical per page, generated XML sitemap, robots.txt that does not block what it should not
Structured dataA linked JSON-LD graph — Organization, WebSite, page type and the commercial type that fits
AI crawlersAccess verified per user-agent before launch, because a host can 403 GPTBot before robots.txt is read
Search ConsoleVerified and the sitemap submitted at launch, so the site goes live indexed rather than as a blank shell

Ownership and handover

You own everything: the domain registered to you, hosting in your account, code in a repository you control, and the payment provider account in your business name. Credentials are handed over as they are created rather than at the end.

A supplier who resists this is protecting recurring revenue rather than your interests. If you want the reasoning in full, including how to check your current site, there is a guide on it.

Aftercare and what happens after launch

Thirty days of snag fixes are included. A snag is something that does not work as scoped — not a new feature, and the difference is written down before launch rather than argued about after it.

You also get written handover documentation aimed at whoever maintains the site next, which may well not be me. That is deliberate: the test of a good handover is whether another developer could take over without calling me, and on my projects they can.

Ongoing maintenance

Optional, monthly, cancellable. Nothing here is required to keep what you paid for.

RetainerFromCovers
Maintenance $50/month Software, plugin and dependency updates; Automated backups with restore tested quarterly; Uptime monitoring with alerting
SEO retainer $80/month Monthly technical crawl and fix cycle; Search Console monitoring and issue resolution; Content briefs based on your real query data

Payment terms

Working hoursMon–Fri, 09:00–18:00 PKT (UTC+5). That overlaps 05:00–14:00 UK time and 00:00–09:00 US Eastern.
Response timeWithin one business day, always. If I will be unreachable for longer, you know before it happens.
MeetingsGoogle Meet or Zoom, scheduled in your timezone. I will take an early or late call to reach you — that is my problem to solve, not yours.
LanguageAll work, documentation and communication in English.
Payment40% deposit, 60% on completion. Bank transfer or Wise. Invoices issued for your records.
CurrencyQuoted in USD by default. GBP, CAD or EUR on request.

How this compares to the alternatives

Including the routes that do not involve me, because a comparison that only flatters the author is not a comparison.

RouteCostWhat you trade
Install a caching pluginLowReal gains on some sites, nothing on the ones where the front end is the problem
Buy a faster hosting planMonthlyServer response time improves, page weight does not. Often the wrong lever
This workStarting from $80Four days and permission to remove things, in exchange for measured field improvement
Rebuild the siteFull build costMore money, but the only honest answer when the theme is the ceiling

What could go wrong, and how it is handled

The theme is the ceiling
Discovered during measurement and reported before the work continues rather than after you have paid for it.
Field data takes weeks to reflect the fix
CrUX is a 28-day rolling window. Lab numbers move immediately; the score you care about lags.
A required third-party script is the main cost
You get the number it costs and the decision stays yours. Some tags are worth their weight.
Regressions after the next content update
Unmonitored sites drift back. A retainer prevents it; a one-off engagement cannot.

Live builds you can open

Every project below is live right now. Nothing here is a mockup, a concept piece or a template screenshot, and the build fails if any of these URLs stops responding.

Service Website

24 Hours London

Developed and deployed a responsive client website with a full SEO setup.

24hrs.london ↗
E-commerce + SEO

Wardrobe Store UK

Responsive e-commerce site for a UK wardrobe retailer - product pages with cart / checkout and extensive on-page and technical SEO (schema, meta tags, location pages).

wardrobe-store.co.uk ↗
Full-Stack E-commerce

Cheapest Proxies

Full-stack proxy e-commerce app with Stripe checkout and automated order + email handling via PHPMailer - built and deployed end to end.

cheapest-proxies.com ↗

Case studies

What the brief was, what I built and the decisions worth explaining. No invented traffic figures — every number on this site is one I can evidence.

What to measure after launch

A site with no measurement is a site nobody can improve. These are the numbers worth watching, in the order they matter.

  1. Largest Contentful Paint at the 75th percentile, in field data rather than the lab
  2. Interaction to Next Paint, which is where most modern failures actually are
  3. Cumulative Layout Shift, which should be near zero after the work
  4. Time to first byte, which separates a server problem from a front-end one
  5. Total page weight and request count, as leading indicators before field data updates
  6. Conversion rate and bounce, which is the commercial reason any of this matters

Common mistakes in this kind of project

Every one of these has been found on a real site, several of them on this one before it was rebuilt.

Optimising for the Lighthouse score rather than field data
The score is a diagnostic. Your visitors are the measurement.
Lazy loading the hero image
Delays the LCP element deliberately. Lazy loading belongs below the fold only.
Adding a caching plugin without diagnosing anything
Sometimes works, and when it does not, nobody can explain why.
Compressing images without resizing them
A 3000px image displayed at 600px is still a 3000px download.
Leaving third-party tags unaudited
Frequently the single largest cost on the page, and the easiest to remove.

Glossary

Terms that come up in quotes and get nodded at rather than asked about.

LCP
Largest Contentful Paint — when the main content appears. Target under 2.5 seconds.
INP
Interaction to Next Paint — how quickly the page responds to input. Target under 200 milliseconds.
CLS
Cumulative Layout Shift — how much content moves unexpectedly. Target under 0.1.
TTFB
Time to First Byte — server response time, before rendering begins at all.
Field data
Measurements from real visitors. What Google actually uses to assess the page.
Render-blocking
A resource the browser must fetch and process before it can display anything.

Guides on this subject

Free, ungated, and written from client work. If reading one convinces you I know what I am doing, the enquiry follows on its own.

Questions people ask before hiring

Does page speed actually affect Google rankings?
Core Web Vitals are a confirmed ranking signal, but a small one — speed rarely outranks relevance. The stronger argument is commercial: slow pages lose conversions before they lose rankings, and that loss is measurable in your own analytics rather than inferred.
What is a good Core Web Vitals score?
LCP under 2.5 seconds, INP under 200 milliseconds and CLS under 0.1, at the 75th percentile of real visits. The percentile matters — an average hides the quarter of your visitors having the worst experience, and they are the ones leaving.
Can you fix a slow WordPress site without rebuilding it?
Usually, yes. Most WordPress slowness comes from a page builder, an oversized image pipeline and a stack of plugins nobody has audited. I measure first and tell you whether optimising is good value or whether the theme is the problem, in which case optimising it is money spent on a losing position.
Will you optimise for a 100 Lighthouse score?
Not as a target. Chasing the last few points routinely means trading something real — repeat-visit caching, for instance — for a lab number no visitor experiences. I will tell you what the remaining points would cost and let you decide.

Every other question I get asked → · or just ask me directly

Website speed optimisation by location

Same fixed scope and the same $80 starting price, priced in the local currency with that country's tax and data-protection terms set out in full.

All 735 locations across 39 countries →

Other services

Need website speed optimisation?

Send the brief and you get a reply within one business day — either questions, or a scoping call. If your project is not something I should take on, I will say so then.

Response
Replies within 1 business day
Hours
Mon–Fri, 09:00–18:00 PKT — overlaps 05:00–14:00 UK, 00:00–09:00 US Eastern
Booking
Booking projects from October 2026
WhatsApp — opens a chat with +92 346 5348466 in a new tab