Portfolio · Ads & conversion speed · 10 tagged engagements

Every ad click prints a receipt.

Organic visitors get your fastest pages. Paid visitors often get your slowest: ad clicks land with tracking strings that bust the cache, the wait dings the landing page experience side of Quality Score, and the bounce is pre-paid. The engagements below are the same defect, found with RUM data the clients could re-run, priced in click costs.

How a paid click pays twice.

  1. TOLL 01

    The click lands with baggage

    Every Google Ads URL arrives carrying campaign parameters. Most caching layers treat each unique query string as a brand-new page, so the visitor you paid for skips the cache and waits for a full page build. Seen in real RUM data on every engagement above.

  2. TOLL 02

    Google scores the wait

    Landing page experience is a documented component of Google Ads Quality Score, and page speed is part of it. A slow landing page lowers the score, and the score is part of the price you pay per click. This is in Google's own ads documentation.

  3. TOLL 03

    The bounce is pre-paid

    Google's published mobile research: as load goes from 1s to 3s, bounce probability rises 32%; to 5s, 90%. At auction CPCs, that exit was funded in advance. The receipt in the header is that arithmetic with example numbers.

08 · 7 receipts · 2023 → today

What the wait was costing.

One receipt per engagement: the paid traffic, what those visitors actually got, what the ad money was burning, the fix, and the outcome on record. Numbers are field data or client-visible reports, never estimates.

RECEIPT 01

bookextraordinary.com

Event entertainment booking · WordPress + WooCommerce

Jul 2024 – 2026 · repeat client

Paid traffic

Google Ads, Meta, LinkedIn campaigns onto booking pages

What ads visitors got

Ad clicks landed with campaign tracking params, so nearly every paid visitor bypassed the page cache. DebugBear RUM showed it page by page: a mostly-PPC page averaged 2.5s TTFB while organic pages on the same site stayed fast.

What was burning

The best-traffic pages were the slow pages: TTFB had drifted from 1.4s to 2.7s between January and June 2025 while paid visits kept rebuilding pages from scratch.

The fix

Cache-key normalization at Cloudflare and WordPress level; when the host (Cloudflare Enterprise reseller) could not flatten all ad query strings, a hosting move finished the job.

Result

Paid traffic finally cached. TTFB 1.2s within days, then green sitewide.

370 pages GSC-validated, ~50 finishing validation

RECEIPT 02

australiangrants.org

Grant-finding service · WordPress

Aug – Sep 2025

Paid traffic

Heavy Google Ads reliance, in the client's own words

What ads visitors got

Ad-click query strings bypassing the page cache on every paid visit. DebugBear RUM: TTFB 2.1s on the main site, 3.1s on the /access funnel, desktop LCP 4.1s (3.6s of it pure server wait).

What was burning

The exact visitors the campaigns paid most for waited longest for the page to start.

The fix

Cache behavior repaired for real visitors, front-end pass, Search Console validation driven page by page.

Result

All pages Core Web Vitals green in GSC, Sep 17, 2025.

LCP settled around 2s · ~3 weeks start to green

RECEIPT 03

raskrask.dk

On-demand massage and wellness · WordPress + LiteSpeed

Sep 2025 – ongoing · active retainer

Paid traffic

Google Ads onto booking funnels

What ads visitors got

RUM showed essentially every Ads pageview was a page-cache miss; the main AdWords landing page sat at ~2.45s TTFB while cached pages answered fast.

What was burning

The landing page the bids pointed at was among the slowest pages on the site.

The fix

Ad-parameter cache normalization plus LiteSpeed tuning; PPC landing pages monitored as their own group in RUM.

Result

Averages recovered; PPC cache-hit ratio the open thread the retainer watches.

Started as a paid consult, converted to an active retainer

RECEIPT 04

rawteen.com

DTC food store · WordPress + WooCommerce

Apr 2025 – ongoing · phase-2 active

Paid traffic

Google Ads and social spend onto a store that barely opened

What ads visitors got

The owner's report: a month of ad spend, zero orders, because ad clicks landed on a store that felt like it would not open. The 2026 re-audit measured 4MB mobile payloads and 2.5-3s uncached TTFB.

What was burning

An entire ad budget spent proving the store slow to its exact target audience.

The fix

Full-store speed: nginx fixes, crawler throttling under load, cron cache warming, REST API kept fast for the mobile app.

Result

~100ms cached TTFB; phase-2 infrastructure retainer active since 2026.

Public feedback 5.0

"He resolves the issues of the loading time as great as he promised. He is one of the best choices if you need his work."
— rawteen.com · Upwork 5.0

RECEIPT 05

sculpiflex.com

DTC store, ~7M views/month · WordPress + WooCommerce, 42 currencies

Jul 2025 – ongoing · via MIDAGENCY

Paid traffic

Meta and Google ads worldwide; every landing URL carries campaign params

What ads visitors got

On an ads-driven store, cache experiments gone wrong showed up same-day as conversion crashes: one Spanish-campaign crash took the conversion rate to near zero for a day; a wrong-currency cached page would have halved it. Checkout 504 storms added their own lost orders.

What was burning

Client's framing: live testing on this traffic means burning money. Even a 1% conversion improvement covers the whole server budget.

The fix

Per-currency page-cache architecture, cache-control conflicts resolved, checkout stabilized, Cloudflare/Hetzner migration.

Result

Sub-1s TTFB, cache safe to test, conversion crashes gone from the log.

Project records · ongoing maintenance

RECEIPT 06

thehauntghosttours.com

Ghost tours and experiences · WordPress

Mar – Apr 2026

Paid traffic

Google Ads onto tour booking pages

What ads visitors got

Failing Core Web Vitals dragging down the landing page experience side of the ad auctions.

What was burning

Every click priced against a page Google could see was slow.

The fix

Flat-fee engagement scoped as: pass CWV validation in Search Console to relieve the landing-page-experience penalty. A hidden malware infection was found and removed along the way.

Result

CWV green April 2026, clean bill for the ads account.

Public feedback 5.0

"Very thorough, excellent work. Thank you!"
— thehauntghosttours.com · Upwork 5.0

RECEIPT 07

bio-sol.ca

Septic-care products store, Canada · WordPress + WooCommerce

Oct 2023 – Mar 2024

Paid traffic

Paid campaigns, mostly mobile visitors (owner's observation)

What ads visitors got

Cache and checkout breakage losing orders mid-funnel on a store living on paid traffic: stalled confirmations, pages breaking during campaigns.

What was burning

Paid visitors who wanted to buy and could not finish.

The fix

Cache discipline and checkout stabilization across the order flow.

Result

The day after the fixes landed, the owner reported roughly triple the online sales.

Client-reported outcome, Dec 2023 · project records

From the spend log.

  • NOTE 01

    windsor.ai · wonderstory.es · fixdapp.com

    Three long-running relationships where the same defect surfaced: paid visitors bypassing cache. DebugBear pair tests on wonderstory.es showed the Google Ads URL missing cache while the clean URL hit it; on fixdapp.com, host-level cache misses on PPC pageviews shaped the 2024-2025 pass; on windsor.ai, Cloudflare rules now serve ads visitors the same fast HTML as everyone else.

  • NOTE 02

    wowflow.com

    Cloudflare and WordPress cache rules normalized every ad query string the campaigns use, structured so future campaigns launch without re-tuning the cache. Public feedback: "Milan did a great job identifying page speed problems and promptly fixing them. Highly recommend"

  • NOTE 03

    thematchguy.com · jeevanaa.com

    Two 2026 intake audits, same diagnosis. A WooCommerce store doing 150-200k visits a month, mostly Meta and Google Ads, with 3.35s CrUX mobile TTFB and 10-15 PPC landing pages; and a store whose Ads account switched on in January and whose CrUX LCP now sits at 2.78s. Both quoted the same plan: cache first, 70-80% of the gain is TTFB.

  • NOTE 04

    mijnsollicitatie.com (2023)

    The cleanest statement of the ask ever received, paraphrased: the client wanted faster landing pages purely for the Google Ads Quality Score, expecting cheaper CPCs to follow. Google's own docs back that instinct: landing page experience, which includes page speed, is a Quality Score component.

  • NOTE 05

    cyrix.fr

    A speed audit that turned into ad-spend triage: RUM showed paid clicks jumping from 10 to 100 a day, and the trail revealed the campaign was sending worldwide traffic to a France-only store. Cache diagnostics find wasted ad money that no score report shows.

  • NOTE 06

    The honest no

    Told to multiple prospects, on the record: a 90+ mobile PageSpeed score with live Google Ads scripts is not realistic. One site ran three separate gtag instances; 80+ is the honest ceiling there. What is achievable, and what the auctions price: fast field data, cache hits for paid traffic, green Core Web Vitals.

Two disclaimers, before you buy anything.

On the certification

Google AdWords Fundamentals certified, years ago; it stayed on the CV through 2024. I do not run campaigns and I will not manage your ads. What I do is on this page: make the pages your campaigns point at load like they were organic, and make the click you already bought stop being the slow one.

On the promises

Nobody outside Google can show you your actual Quality Score delta in advance. What is verifiable: field data, cache-hit ratios for paid URLs, Core Web Vitals validation in Search Console. Every number on this page is one of those. Where an outcome is client-reported, it says so next to the number.

The spend ledger.

EngagementPaid trafficWhat ads visitors hitOutcomeWindowEvidence
bookextraordinary.comGoogle Ads + Meta + LinkedInads pages 2.5s TTFB vs 1.3s organicads cached · green · 370 pages GSC-validated2024 – 2026DebugBear RUM · CrUX
australiangrants.orgGoogle Ads, heavyTTFB 2.1 – 3.1s · desktop LCP 4.1sCWV green in GSC, ~3 weeksAug – Sep 2025DebugBear RUM · GSC
raskrask.dkGoogle Adsads LP ~2.45s TTFB, every ads view a cache missaverages recovered · retainer active2025 – ongoingDebugBear RUM
rawteen.comGoogle Ads + sociala month of ad spend, zero orders~100ms cached TTFB · phase 2 active2025 – 2026project records · feedback 5.0
sculpiflex.comMeta + Google ads, 42 currenciesconversion crashes on cache bugs · checkout 504ssub-1s TTFB · cache safe to test2025 – ongoingproject records
thehauntghosttours.comGoogle Adsfailing CWV vs landing page experienceCWV green Apr 2026 · malware removed2026GSC · feedback 5.0
bio-sol.capaid, mostly mobilecheckout stalls losing paid orders~3x sales the next day (client-reported)2023project records
wowflow.comPPC campaignsad params breaking cache hitsnormalized for current and future campaigns2025 – ongoingfeedback 5.0
windsor.aiGoogle Adsads visitors bypassing edge cachesame fast HTML for ads visitors2025 – ongoingproject records

Numbers from DebugBear RUM, CrUX, and Search Console, plus public Upwork feedback where quoted. Engagement narratives paraphrased from project records, never pasted from private correspondence. The hero receipt is labeled worked example because it is one.

Your ads traffic deserves a receipt too.

Free audit: I will load your landing pages the way your ad clicks do, with campaign URLs, and show you exactly what the paid visitor waits for.

Get a free audit