Portfolio · the entry product · 15 audit-shaped openings · 2016 to today

Website Speed Audit.

Know which fixes matter before you spend a dollar on them.

Most of this portfolio shows outcomes. This page sells the thing that comes first: the audit. It is the smallest engagement here and the one our audit-led engagements grew out of.

Free: a real first read of your field data, honest findings, no obligation.Full audit: six analysis sections plus the roadmap, written report typically in one to two weeks. Quoted per scope, in writing, before work starts.

the path

  1. Free first read

    field data on your key templates; if the problem is small, you are told it is small

  2. The full audit

    six analysis sections plus the roadmap, issue-to-solution rows, written findings

  3. The fix roadmap

    quick wins separated from involved changes, effort-priced

  4. Longer work

    retainers, migrations, year-long engagements; some audits just end

15 audit-shaped openings since 2016; 7 engagements on this site are tagged audit-driven. Some audits end at the report, and that is a fine ending.

01 · inside the report

Six analysis sections, plus a prioritized roadmap.

This is the table of contents of the audit deliverable: six analysis sections and the prioritized roadmap that closes it. Each of the six carries a sample finding below it: a real line in the voice the report writes in, from a real engagement, paraphrased from project records. Yours will name your plugins, your templates, your numbers.

§1

Field data read

CrUX · Google Search Console

What real visitors actually experienced over the last 28 days, per page group, at the 75th percentile: the numbers Google ranks by, split by template so a healthy average cannot hide a failing page.

sample finding“CrUX says this origin is fine on average. The homepage is not: the reservation form loads last and pushes everything down.”Hotel Okura Amsterdam, 2025

§2

Real-user monitoring

DebugBear RUM · live traffic

What the numbers look like the moment monitoring switches on. Lab tools stop measuring at the page-load event; RUM keeps watching past it: per-visitor Core Web Vitals at the interaction level, TTFB by the hour under real ad traffic, and the per-template p75s a 28-day CrUX average smooths over. Monitoring is left running at handoff, so the numbers keep flowing after the report.

sample finding“The lab cannot tell you which interaction fails. RUM can: the INP is JavaScript from ads, video ads named per interaction, plus one page element driving the CLS.”gfcnieuws.com, 2024

§3

Render-blocking inventory

Chrome DevTools coverage · waterfall

Every stylesheet and script weighed and attributed: which plugin or theme file owns it, how much of it executes before first paint, and what can be deferred, delayed, or deleted outright.

sample finding“Theme and plugin CSS and JS ship as one merged, minified bundle. Nothing can be attributed to a plugin until a coverage profile splits it back apart.”Aerotime, 2024

§4

Server response & cache behavior

TTFB sampling · cache HIT/MISS analysis

How often pages are actually served from cache versus rebuilt in PHP, where the misses are (ads traffic, geolocation, query strings), and whether the host is helping or quietly fighting the cache plugin.

sample finding“Same page, same minute: 3 s TTFB on a cache miss, under 1 s on a hit. A host-side rewrite module is racing the cache plugin.”thefelthub.com, 2025

§5

Image pipeline

LCP element trace · format audit

Which element is the LCP on each template, whether it is preloaded, fetched with priority, served in a modern format, and the honest size budget of the hero the lab will measure you on.

sample finding“The image you are measured on is being lazy-loaded. The hero arrives last by configuration, not by accident of network.”tech4gamers.com, 2024

§6

Plugin & autoload overhead

autoload audit · page-build profiling

What each plugin costs on every request, what the database loads on boot for pages that no longer exist, and the cron jobs that were supposed to be keeping the cache warm.

sample finding“Cache preload is warming 1,300+ zero-value tag URLs while real pages expire; an unused-CSS job has been silently dead for months.”thefelthub.com and the Macaw roster, 2025

02 · how it runs

Scope, access, read, handoff.

The written report typically follows in one to two weeks. The one variable that has ever stretched delivery is access, never analysis: one hotel audit waited weeks on a Search Console permission chain, and the field data it unlocked was worth every day of the chase.

  1. 01 · Scope

    One site, every template that matters: home, article or product, category, landing. Field data first. Frontend always; server configuration wherever host access is granted.

  2. 02 · Access

    WordPress admin (or Shopify collaborator access on shop builds), Search Console read-only, host panel or file access when possible. Read-only where the client prefers it; the audit adapts to what can be shared.

  3. 03 · Read

    Lab and field together: CrUX and Search Console p75s per template, real-user monitoring where INP is the mystery, DevTools coverage for per-plugin attribution, cache HIT/MISS sampling for TTFB.

  4. 04 · Handoff

    A findings document structured as issue-to-solution rows ready for developer tickets, quick wins separated from involved changes, an effort indicator per item, and monitoring left running so the numbers keep flowing after handoff.

03 · the hero narrative

One audit, three projects.

In December 2025 a craft-education publisher bought an audit titled as a performance audit and strategic roadmap. The diagnostic milestone installed real-user monitoring and named the root causes of volatile TTFB within days: a host-side module racing the cache plugin, an opcode cache running full, and a preload queue warming over a thousand zero-value URLs. The client kept hiring.

  1. 1

    The audit

    Monitoring installed, field data read, root causes named and priced against effort. TTFB volatility explained down to the cache HIT-versus-MISS level; average TTFB about 0.3 s better within 24 hours of the first host-side fix.

  2. 2

    The template work

    LCP render-delay work on the ad-laden article template, under Mediavine scripts, without touching a single revenue tag.

  3. 3

    The migration

    Full hosting and domain migration: content, media, and membership data, redirects, Cloudflare, and the Search Console change of address, plus a custom membership-to-mailing-list plugin replacing a paid automation workflow.

04 · what an audit turns into

Clients keep buying the thing that comes first.

Not a pitch tactic: the pattern the contract archive actually shows. 15 audit-shaped openings since 2016,9 of them with the word "audit" in the contract title outright, and 7 engagements on this site tagged audit-driven. The cadence is not slowing:

YearClientOpened asTurned into
2016Byrne VenturesSite speed analysis, fixes and recommendationsreturned two months later for a second pass
2017SureShot Booksmaintenance auditthe archive's first audit-titled contract
2023Alexander Orthtwo PageSpeed analysis contractsCLS-scoped analysis, then a WP Rocket follow-through
2024Dalton LukaCore Web Vitals Audit & Fixes, twiceone-day site audit; working relationship still open in 2026
2024tech4gamers (Banoori)opened with an audit requestthe 3.7s TTFB rescue, then a second publisher site
2024Aerotimespeed audit for a news siteissue-to-solution document, then four months of implementation support
2024boogzelclothing.comWordPress performance audit neededsame-day first read, then a year of hourly work
2025Macaw Digital MarketingPageSpeed analysis and optimizationan audit the agency presented to its client; the Elementor roster retainer; a repeat audit request nine months later
2025Hotel Okura Amsterdam (Hotelchamp)hotel website speed auditrecommendations-only report; the CrUX average vs page-level split finding
2025Sandy M (thefelthub.com)performance audit & strategic roadmapthree projects in four months
2025Don Caromaudit traffic dropfourth contract with a returning WooCommerce client
2026Odds and Ends Supplyremediation, audit supplied by the clientShopify Liquid work, Feb to Aug 2026
2026Creative EscapesLighthouse LCP diagnosisclient supplied their own audit; closed in a week with 5.0 public feedback

Counts read from the normalized contract archive (529 contracts, 2014 to 2026). Two of the 2026 openings are remediations where the client supplied the audit document themselves; they count as audit-shaped, not as audits sold. Opening titles are paraphrased contract subjects; thread contents are never quoted.

7 engagements, opened by an audit.

  1. Dalton Luka (daltonluka.com)

    SEO consultant, own custom-built WP site

    Two contracts literally titled "Core Web Vitals Audit & Fixes" (Jan 2024): the first pass audited and fixed his own hand-built WordPress site in a day, tracing the blog template's LCP to the post image (already fetchpriority-tagged, missing preload) and moving fonts and images to modern formats. The second contract is still the working relationship in 2026, and extended to an Avada client site of his. Facts paraphrased from project records.

    “Super helpful. Made some quick and highly effective changes to improve LCP, FCP, and TTFB core web vital metrics.”
    Dalton Luka, daltonluka.com · Upwork 5.0
  2. Aerotime (aerotime.aero)

    Aviation news publisher, Lithuania

    217ms INP

    Contract titled "Speed audit for news site" (Jul 2024): the deliverable was a findings document structured as issue-to-solution rows their developers could turn directly into tickets. With staging locked behind corporate IT, the audit ran against production and Chrome DevTools coverage profiling, splitting a single merged-and-minified theme/plugin CSS+JS bundle into per-plugin attribution. The engagement then ran four more months as implementation support: WOFF2 conversion, icon-font subsetting, LCP image preloading, and a DebugBear RUM rollout to chase a mobile INP sitting at 217 ms toward the sub-200 ms green threshold. Facts paraphrased from project records.

  3. Hotel Okura Amsterdam (via Hotelchamp)

    Five-star hotel site, Duda platform

    Hotel-tech agency Hotelchamp commissioned a standalone speed audit of the hotel website (May 2025) with recommendations only, no fixes. The field-data read found the exact lab-vs-average trap: CrUX origin averages looked healthy while the homepage failed CLS because the reservation form at the top of the page loaded last. Report scoped honestly to frontend performance (images, fonts, CSS, JavaScript), with server-side explicitly out of scope. Facts paraphrased from project records.

  4. boogzelclothing.com

    Alternative-fashion e-commerce

    2.6s LCP

    Contract titled "WordPress Performance Audit Needed" (Sep 2024): the same-day first read pulled real-user averages (LCP 2.6 s mobile), the Search Console warning behind them, a main product image being lazy-loaded right out of LCP contention, and a CLS picture that had been degrading since May. One audit turned into an hourly working relationship that ran a full year to Sep 2025. Facts paraphrased from project records.

  5. tech4gamers.com + eXputer.com

    Tech media, 20-50k daily traffic

    3.7s TTFB80+ PSI

    Opened with an explicit audit request (Jan 2024): the first read found the LCP image itself lazy-loaded and a 3.7s average TTFB from broken page caching. Discover pipeline rescue for high-traffic publishers: that TTFB cut with Cloudflare APO (pages at 80+ PSI within weeks), and a broken featured-image pipeline fixed same-day after 404ing crops started costing the client Google Discover visibility on new articles. A second site (eXputer) followed.

  6. thefelthub.com

    Craft-education publisher, Mediavine + MemberPress

    volatile TTFB3 projects from 1 audit

    One WordPress performance audit turned into three linked projects (Dec 2025 to Mar 2026): DebugBear RUM installed to see real-visitor CWV under Mediavine ads, LCP render-delay work on the ad-laden article template, host-side mod_pagespeed removal (average TTFB about 0.3 s better within 24 hours), then a full hosting and domain migration with Cloudflare APO enabled and logged-in members excluded from cache.

    “This contract originally started as a single WordPress performance audit and roadmap, but I was so impressed with his expertise and the way he works that I ended up hiring him for three projects in total.”
    Sandy M, thefelthub.com · Upwork 5.0
  7. Macaw Digital Marketing

    US agency retainer, Elementor client roster

    6s+ builds252ms TTFB

    Speed partner for an agency's Elementor clients (hydromer.com, sciencebranding.com, luxwashauto.com), 2025 into 2026. hydromer.com: most traffic was missing the host page cache and triggering 6 s+ uncached Elementor page builds; after migration and cache coverage, mobile TTFB measured 252 ms over 24 h in DebugBear, a report the client could re-run. sciencebranding.com: audited at 2.54 s TTFB, then EWWW image optimization, WP Rocket unused-CSS removal (its cron had been silently dead, so the feature never ran), and page caching that bypasses the slow host took PageSpeed consistently into the 90s. Same retainer: Elementor editor stalls (10+ AJAX calls with addon widgets), popup cache-render bugs, Elementor Pro forms with reCAPTCHA.

05 · what it costs

the standing offer

The first audit is free.

That is the offer everywhere on this site, and it is the same offer here: a free first read of your field data, honest findings, no obligation. If the free read shows your problem is small, you will be told it is small.

Get a free audit

beyond the free read

Scoped on request.

The full report (six analysis sections plus the roadmap), deeper diagnostics, agency deliverables, multi-site rosters: quoted per scope, not off a rate card. The written report typically follows in one to two weeks. Numbers come after the scope is understood, in writing, before any work starts.

What clients said about working together.

Verbatim from public Upwork feedback, unedited.

  • "Milan was very attentive, knowledgeable and eager to help. His input was very important for us to be able to decide what to do and what not to do. Extremely worthwhile consultation!"

    GlobalenSpeed consultation · 2023
  • "Milan is highly skilled and knowledgeable -- I will absolutely work with Milan again when I have questions about page speed issues, WordPress plug-in recommendations, and Divi's impact on page speed."

    Sue Chef AppPage-speed consultation · 2023
  • "It was pleasure working with Milan, he provided us the necessary support and consultation in a timely manner, adhering to high quality standards. We are looking forward to working with Milan again!"

    Belal HummadiSpeed consultation · 2025

4.9/5 average across 306 Upwork reviewsSee all reviews on Upwork ↗

Know which fixes matter first.

Free audit, honest findings, no obligation. Every audit-led engagement in this portfolio started exactly here.

Get a free audit