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
- 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.
- 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.
- 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.
- Verify. Re-measure under identical conditions. A comparison run on a different network at a different time of day is not a comparison.
- 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.
| When | What 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.
| Metric | Target |
|---|---|
| Largest Contentful Paint | Under 2.5s on a mid-range Android over 4G, measured in the field rather than on my laptop |
| Interaction to Next Paint | Under 200ms — which mostly means shipping less JavaScript rather than reordering it |
| Cumulative Layout Shift | Under 0.1: every image carries width and height, fonts have metric-matched fallbacks |
| Total page weight | Budgeted before the build, not discovered after it |
Accessibility standards
| Standard | WCAG 2.2 AA as the build target, tested rather than asserted |
|---|---|
| Keyboard | Every interactive element reachable and operable without a mouse, with visible focus |
| Contrast | Text at 4.5:1, interface elements and icons at 3:1, checked with a contrast tool not by eye |
| Motion | Anything animating over five seconds gets a pause control — WCAG 2.2.2 is a Level A requirement |
| Forms | Real labels, errors described in text next to the field, no colour-only signalling |
| Why it matters commercially | The 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
| Transport | HTTPS enforced in a single redirect hop, HSTS enabled |
|---|---|
| Headers | CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and COOP set |
| Database | Prepared statements everywhere. Not "mostly" — everywhere |
| Input | Validated server-side, because client-side validation is a convenience and not a control |
| Secrets | Environment variables, never in the repository, never in a JavaScript bundle |
| SPF, 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.
| Rendering | Content present in the HTML without JavaScript execution, so every crawler and answer engine can read it |
|---|---|
| Indexation | One canonical per page, generated XML sitemap, robots.txt that does not block what it should not |
| Structured data | A linked JSON-LD graph — Organization, WebSite, page type and the commercial type that fits |
| AI crawlers | Access verified per user-agent before launch, because a host can 403 GPTBot before robots.txt is read |
| Search Console | Verified 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.
| Retainer | From | Covers |
|---|---|---|
| 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 hours | Mon–Fri, 09:00–18:00 PKT (UTC+5). That overlaps 05:00–14:00 UK time and 00:00–09:00 US Eastern. |
|---|---|
| Response time | Within one business day, always. If I will be unreachable for longer, you know before it happens. |
| Meetings | Google 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. |
| Language | All work, documentation and communication in English. |
| Payment | 40% deposit, 60% on completion. Bank transfer or Wise. Invoices issued for your records. |
| Currency | Quoted 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.
| Route | Cost | What you trade |
|---|---|---|
| Install a caching plugin | Low | Real gains on some sites, nothing on the ones where the front end is the problem |
| Buy a faster hosting plan | Monthly | Server response time improves, page weight does not. Often the wrong lever |
| This work | Starting from $80 | Four days and permission to remove things, in exchange for measured field improvement |
| Rebuild the site | Full build cost | More 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.
24 Hours London
Developed and deployed a responsive client website with a full SEO setup.
24hrs.london ↗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 ↗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.
- Largest Contentful Paint at the 75th percentile, in field data rather than the lab
- Interaction to Next Paint, which is where most modern failures actually are
- Cumulative Layout Shift, which should be near zero after the work
- Time to first byte, which separates a server problem from a front-end one
- Total page weight and request count, as leading indicators before field data updates
- 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.
- Website speed optimisation Ealing
- Website speed optimisation Drogheda
- Website speed optimisation Ottawa
- Website speed optimisation Philadelphia
- Website speed optimisation Parramatta
- Website speed optimisation Abu Dhabi
- Website speed optimisation Dammam
- Website speed optimisation Sahiwal
- Website speed optimisation Delhi
- Website speed optimisation Woodlands
- Website speed optimisation Cape Town
- Website speed optimisation Essen
- Website speed optimisation Rotterdam
- Website speed optimisation Toulouse
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