Category: Case Studies

  • 71 → 15: Legacy WordPress Rebuild: HerBusiness Case Study

    71 → 15: Legacy WordPress Rebuild: HerBusiness Case Study

    Case Study Infrastructure Modernized WordPress + Kadence Pro

    From 71 to 15 —
    Legacy WordPress,
    modernized underneath.

    HerBusiness ran on 71 active plugins and legacy PHP that turned every update into a coin flip — and every layout change into a 24–48 hour developer ticket. The fix wasn’t a redesign. It was a foundation: +60% faster loads, 98/100 SEO health, 100% of the visual identity preserved.

    HerBusinessClient
    Membership & PublishingIndustry
    Sydney, AustraliaLocation
    Kadence Pro + Gutenberg + ACFStack
    Phased DeliveryTimeline
    71Before
    15After

    Active Plugins  ·  56 Consolidated

    Results at a Glance

    Same Website. New Foundation.

    Internal audit + post-launch monitoring
    Active Plugins
    71 active
    15
    −56 Consolidated ↓
    Stable
    Page Load Performance
    Slow baseline
    +60%
    Faster Delivery ↑
    Improved
    SEO Health
    Unmeasured
    98/100
    Technical SEO ↑
    Strong
    Layout Edit Turnaround
    24–48 hours
    Minutes
    Self-Serve ↑
    Empowered
    Content Editing
    Developer dep.
    Native Blocks
    Gutenberg ↑
    Marketing-owned
    PHP & Updates
    Fragile legacy
    8.x Ready
    Hardened ↑
    Updates safe
    56
    Plugins Consolidated
    +60%
    Page Load Gain
    98/100
    SEO Health
    ~10×
    Admin Efficiency
    100%
    Design Preserved
    About the Client

    HerBusiness

    A long-running national network and publishing platform for women in business — daily articles, an extensive podcast archive, and member resources serving thousands of readers every week. The content operation outgrew the codebase years ago; nobody could afford the downtime to fix it.

    The site had accumulated years of custom development: 71 active plugins, hardcoded templates, legacy widgets, and PHP written for a different decade. Routine WordPress or server updates could crash individual sections — so updates simply stopped happening, and the risk compounded.

    The tax of technical debt. When a simple layout change costs your team 24–48 hours via a developer — and a plugin update rolls dice with the production site — marketing isn’t slow. The infrastructure is.

    HerBusiness website homepage after infrastructure modernization
    Project Snapshot
    Client
    HerBusiness
    Industry
    Membership & Publishing
    Platform
    Kadence Pro + Gutenberg + ACF
    Plugins
    71 → 15
    Page Load
    +60% improvement
    SEO Health
    98/100
    Result
    Infrastructure Modernized
    The Problem

    A Thriving Business.
    A coin-flip website.

    Nothing about the front-end looked broken — that was the danger. Underneath, years of plugin sprawl and legacy PHP had made the site’s own maintenance its biggest operational risk.

    wp-admin/plugins.php — 71 active · status: roulette STATE: FRAGILE
    AreaBeforeWhy It MatteredStatus
    Active Plugins71Overlapping deps, update roulette Critical
    Layout & Content Edits24–48 hrsDeveloper required for every change Critical
    PHP EnvironmentLegacy depsDeprecated hooks blocked PHP 8.x Failing
    TemplatesHardcodedLayouts & author info baked into PHP Poor
    SEO StructureDriftedWeak semantics, messy URLs Poor
    Data HealthLegacy dataNo safe path to clean or migrate Risky

    Findings from the full pre-project infrastructure audit — plugins, hooks, templates, database and URL structure.

    The Diagnosis

    5 Structural Faults.
    Systematically fixed.

    Below the visible design
    • Fault 01 — Plugin Sprawl
      71 Plugins, Enormous Functional Overlap

      Single-purpose plugins had accumulated over years: three SEO helpers, two social sharers, four slider libraries, abandoned components untouched for updates. Every dependency increased the blast radius of every update — so updates stopped, and the debt compounded.

      71 active · 56 removable
    • Fault 02 — Hardcoded Content Architecture
      Layouts, Author Info & Widgets Baked Into PHP

      Page layouts, profile blocks, and custom components lived in legacy templates and widgets — invisible to the editor. Marketing staff could not modify them at all; a headline move or layout tweak became a developer ticket with a 24–48 hour turnaround.

      24–48h per edit
    • Fault 03 — Deprecated PHP & Hooks
      Legacy Code Blocking PHP 8.x

      Custom PHP relied on deprecated hooks and outdated dependencies. The environment couldn’t safely move to modern PHP, which meant the hosting stack itself was becoming a ceiling — and every passing WordPress core release widened the gap.

      PHP 8.x blocked
    • Fault 04 — No Data Migration Path
      Legacy Data Structures With No Safe Tooling

      Years of podcast metadata, profile records, legacy content fields and external media had no cleanup path. One-shot migration scripts on a production-scale database meant timeouts and risk — the kind of job that simply never gets scheduled.

      timeouts + DB risk
    • Fault 05 — URL & SEO Drift
      Messy URLs, Pagination Strings & Weak Semantics

      Author content lived under legacy /author/ URLs while a new /profile/ structure was needed. Pagination polluted visible URLs with query strings — ?pg=2, ?paged=2 — and heading semantics had drifted, quietly undermining how search engines understood the site’s structure.

      URL debt
    The Solution

    Four Phases. One Rule:
    don’t touch the design.

    Modernize the infrastructure, reduce the technical debt, hand the keys to the internal team — while visitors never notice a pixel change on the front end.

    Phase 1
    Foundation — Plugin Consolidation 71 → 15
    • Full audit of all 71 plugins — needed, overlapping, abandoned
    • Site rebuilt around WordPress + Kadence + Gutenberg
    • Hardcoded PHP layouts rebuilt as native editable blocks
    • 56 plugins removed or consolidated; duplicates eliminated
    • Staged environment for every change — production never touched
    Phase 2
    Architecture Rebuild & Custom Functionality Suite
    • Legacy PHP refactored; custom templates reworked for modern WordPress
    • Semantic HTML cleaned up across templates
    • One dedicated suite replacing scattered plugins: audio player, search & filtering, social sharing, AJAX interactions, pagination handling
    • Custom JS controlling Kadence infinite-scroll behavior
    • History API removes ?pg=2 and ?paged=2 from visible URLs
    Phase 3
    Data Migration — Batch-Based AJAX Utilities
    • Podcast title sanitization across the archive
    • Legacy content mapped into structured ACF fields
    • External media downloaded into the WordPress Media Library
    • Profile data migrated; legacy user structures remapped
    • Rank Math metadata managed + redirect processing — all in timed batches, no timeouts, no production risk
    Phase 4 — Complete
    SEO, Redirects, Launch & Handover
    • Heading structure, metadata handling and internal URL architecture cleaned
    • /author/example → /profile/example — permanent redirects preserving URL equity
    • Search-engine-friendly pagination behavior implemented
    • Staged rollout with zero downtime and zero visual changes
    • Update path documented; admin training so marketing owns the editor
    The Rebuild

    Before vs. After — under the hood.

    Drag the gold handle to compare the plugin stacks, row for row.

    wp-admin · Plugins Production 15 Active
    15Active
    • SEO suite — Rank Math×1
    • Layout — Kadence Pro×1
    • Structured fields — ACF×1
    • Custom functionality suite×1
    • Utility & maintenance plugins×11

    Update path: routine — modern hooks, PHP 8.x ready, documented dependencies

    wp-admin · Plugins Legacy 71 Active
    71Active
    • Overlapping SEO plugins×3
    • Slider / carousel libraries×4
    • Duplicate social sharing tools×2
    • Abandoned — no updates > 2 yrs×6
    • Single-purpose one-offs×56

    Update path: roulette — deprecated hooks, overlapping dependencies, unknown blast radius

    MetricBeforeAfterImprovement
    Active Plugins7115−56 Consolidated
    Page Load PerformanceBaseline+60% FasterStack-wide gains
    SEO HealthUnmeasured98 / 100Technical cleanup
    Layout Edit Turnaround24–48 hrsMinutes~10× Admin Speed
    PHP EnvironmentLegacy depsPHP 8.x ReadyUpdates made safe
    Content EditingDeveloper onlyNative blocksMarketing-owned


    HerBusiness website homepage after infrastructure modernization
    Business Impact

    What Changed Once
    the Debt Was Gone

    Marketing Moves at the Speed of the Business

    Layout and content changes no longer queue behind a developer’s diary. Staff edit, rearrange and publish natively in Gutenberg — work that used to take 24–48 hours now ships the same morning.

    24–48h → minutes
    Updates Are Boring Again

    Fifteen clean plugins, modern hooks and PHP 8.x compatibility turned maintenance from project-risk into routine hygiene. Core, plugin and server updates now happen on schedule — not after a recovery plan.

    maintenance: routine
    +60% Faster — Same Visual Identity

    Removing plugin overhead and cleaning the frontend structure delivered a substantial page-load improvement — with zero redesign. The brand their audience knows is untouched; it simply arrives faster.

    +60% page load
    URL Equity Preserved, SEO Structured

    Profile URLs were remapped /author/ → /profile/ via permanent redirects, keeping years of backlinks working. Cleaner semantics, headings and metadata delivered a 98/100 technical SEO health score.

    98/100 · /author/ → /profile/
    Client Testimonial

    In Their Own Words

    Requested: personal experience at delivery
    “Sometimes in Business you come across a supplier that does everything they say they will. On budget, on time and with a level of professionalism and skill you wish was the standard! Thank you pro team for the amazing work you did on our website. We are grateful and could not recommend you highly enough.”
    HB Peter Johnstonrter Director:  HerBusiness
    What Was Included

    Services Used in This Project

    10 Deliverables
    WordPress Infrastructure Audit & Modernization
    Plugin Consolidation — 71 to 15
    Kadence Pro + Gutenberg Rebuild
    Legacy PHP Refactoring — PHP 8.x Ready
    Custom Functionality Suite Build
    Batch-Safe Data Migration Utilities
    ACF Structured Content Migration
    Technical SEO & Semantic HTML Cleanup
    Redirect Strategy & URL Equity Preservation
    Infinite-Scroll & History API Pagination Control
    Get Started

    Is Your WordPress Site
    Hiding Technical Debt?

    We’ll audit your plugin stack, PHP environment and content architecture — and show you exactly what’s fragile, what it’s costing, and how to fix it without a redesign. No pitch. Just data.

    Staged Delivery Zero Design Changes Zero Downtime Full Before/After Report
  • Villa Mahabhirom: From 35 to 89

    Villa Mahabhirom: From 35 to 89

    Case Study CWV Passed Boutique Luxury Villa

    From 35 to 89 —
    Core Web Vitals fixed
    for a 5‑Star Teak Villa Resort

    One of Chiang Mai’s most extraordinary boutique properties was throttled by a 9.2MB hero image, 214 uncompressed photographs, and a decade-old theme. We fixed every metric in 6 days — zero design changes, zero downtime.

    Villa MahabhiromClient
    Luxury HospitalityIndustry
    Chiang Mai, ThailandLocation
    WordPress + LiteSpeedPlatform
    6 DaysTimeline
    35Before
    89After

    Mobile PageSpeed  ·  +54 Points

    Results at a Glance

    Every Metric. Fixed.

    Verified via PageSpeed Insights + CrUX
    Performance Score
    35 / 100
    89
    +54 Points ↑
    Passing
    LCP — Largest Contentful Paint
    5.8 seconds
    1.9s
    −67% Faster ↑
    Good
    TBT — Total Blocking Time
    610 ms
    140ms
    −77% Reduced ↑
    Good
    CLS — Cumulative Layout Shift
    0.412
    0.05
    −87.9% Stable ↑
    Excellent
    Speed Index
    9.8 seconds
    2.8s
    −71% Faster ↑
    Good
    Core Web Vitals
    FAILED
    PASSED
    Google Approved ↑
    CWV Pass
    6 Days
    Timeline
    Zero
    Design Changes
    Zero
    Downtime
    +54 pts
    PageSpeed Gain
    5
    Property Rating
    About the Client

    Villa Mahabhirom

    A collection of antique Lanna teak houses — some structures more than 200 years old — carefully reassembled into one of Chiang Mai’s most distinctive boutique stays. The property’s 200+ photographs do the selling; the website is the front desk.

    Set beside a lily pond near Chiang Mai’s Old City, Villa Mahabhirom attracts a global audience searching for “luxury villa Chiang Mai” from Tokyo, Sydney, Berlin, and London — often on hotel Wi-Fi most resorts would call unusable. Their site runs WordPress on shared LiteSpeed hosting — a capable stack crippled by zero caching and uncompressed assets.

    The OTA leak. On a boutique property with limited inventory, every booking handed to an OTA at 18–25% commission directly cuts the margin that keeps 200-year-old teak standing. And a slow site pushes every undecided guest one click closer to an OTA.

    Villa Mahabhirom antique teak villa at dusk, Chiang Mai
    5-Star Boutique Villa Resort
    Client Snapshot
    Client
    Villa Mahabhirom
    Industry
    Boutique Luxury Hospitality
    Location
    Chiang Mai, Thailand
    Platform
    WordPress + LiteSpeed
    Property
    14 antique teak villas
    Timeline
    6 Days
    Result
    35 → 89 · CWV Pass
    The Problem

    A 200-Year-Old Property.
    A 2005-Grade website.

    When we ran an independent PageSpeed audit, the mobile results told the story: a photography-first property was being buried by its own photography — and three third-party embeds finishing its visitors off.

    pagespeed.web.dev/analysis — villamahabhirom.com · mobile ASSESSMENT: FAILED
    MetricScoreGoogle TargetStatus
    Performance Score35 / 10090+ Failing
    Largest Contentful Paint5.8 seconds≤ 2.5s Critical
    Total Blocking Time610 ms≤ 200ms Critical
    Cumulative Layout Shift0.412≤ 0.1 Poor
    Speed Index9.8 seconds≤ 3.4s Critical
    Core Web VitalsFAILEDPass Failed

    Audited with Google PageSpeed Insights · Lighthouse · Chrome UX Report (CrUX)

    The Diagnosis

    5 Root Causes.
    All fixable.

    Server + code level only
    • Root Cause of LCP 5.8s
      9.2MB DSLR Hero Image — No Compression, No WebP

      The hero photograph was uploaded straight from the photographer’s export folder — full-resolution JPEG, no compression, no preload, no modern format. On hotel Wi-Fi abroad, guests waited nearly six seconds for the first pixel of the property to appear.

      LCP 5.8s · limit ≤ 2.5s
    • Root Cause of CLS 0.412
      Masonry Gallery Grid Without Image Dimensions

      The teak villa gallery loaded as a pure masonry grid with no width or height attributes anywhere. As photographs arrived in random order, the layout reflowed visibly — the page literally jumped under visitors’ thumbs as they tapped the booking button.

      CLS 0.412 · limit ≤ 0.1
    • Root Cause of TBT 610ms
      Google Maps, TripAdvisor & Booking Iframes Blocking Load

      Three heavyweight third-party embeds executed synchronously on every page view: a full interactive Google Map (2.4MB, loaded even by guests who never scrolled to Location), a TripAdvisor badge widget, and the booking engine iframe — together monopolising the main thread for over half a second.

      TBT 610ms · limit ≤ 200ms
    • Root Cause of FCP 3.1s
      7 Google Font Weights + Legacy Theme CSS Render-Blocking

      The theme requested seven font weights (only three were ever rendered) plus its full legacy stylesheet before any text could paint. No font-display: swap, no critical CSS — guests on slow connections stared at a blank white screen for three seconds.

      FCP 3.1s · limit ≤ 1.8s
    • Root Cause of Speed Index 9.8s
      No Caching Layer — PHP Rendering Every Request Live

      The site ran PHP 7.4 with no page cache, no OPcache, no object cache: every hit rebuilt the HTML from scratch. Time To First Byte alone averaged 2.2 seconds for international visitors — before a single asset even began downloading.

      SI 9.8s · limit ≤ 3.4s
    The Solution

    6 Days. Zero Design Changes.
    Zero downtime.

    Every fix was implemented at the server and code level. The century-old aesthetic — the fonts, the photography, the layout — stayed exactly as the owners intended.

    Day 1 – 2
    Audit, Staging & the Image Pipeline
    • Full technical audit — Lighthouse, WebPageTest (Mumbai + Frankfurt + Tokyo nodes)
    • Staging environment configured (zero risk to live site)
    • 214 images batch-converted to WebP, resized to display dimensions — hero 9.2MB → 380KB
    • Explicit width & height added to every gallery image (CLS fix)
    • LCP hero preloaded with <link rel="preload"> on key templates
    Day 3 – 4
    Render Path, Fonts & Caching Stack
      • Critical CSS generated for header, hero and above-fold layout
      • Google Fonts subset: 7 weights → 3, self-hosted with font-display: swap
      • PHP upgraded 7.4 → 8.2 with OPcache enabled
      • LiteSpeed Cache configured — full-page cache with booking/availability exclusions
      • Object cache enabled; autoloaded wp_options trimmed from 11MB to 1.4MB
    Day 5
    Third-Party Embeds — Facades & Deferral
    • Click-to-load facade for Google Maps — 40KB static preview replaces the 2.4MB embed
    • TripAdvisor widget deferred to browser idle time
    • Booking engine iframe lazy-loaded and connected asynchronously
    • GA4 and Meta Pixel loaded only after first interaction
    • 2 unused plugin scripts loading globally on every page removed
    Day 6 — Complete
    Validation, Deployment & Handover
    • All fixes validated on staging — mobile throttling + real-device testing
    • Core Web Vitals pass confirmed via PageSpeed Insights + CrUX field data
    • Deployed to live with zero downtime
    • Full before/after report with PageSpeed screenshots delivered
    • Cache-warm automation configured so every visitor hits a cached page
    The Results

    Before vs. After — full comparison.

    Drag the gold handle to compare the live PageSpeed audits, pixel for pixel.

    PageSpeed Insights Mobile CWV Passed
    89 Score
    • Largest Contentful Paint 1.9 s
    • Total Blocking Time 140 ms
    • Cumulative Layout Shift 0.05
    • Speed Index 2.8 s
    • First Contentful Paint 0.8 s

    Core Web Vitals Assessment: Passed — all metrics in the good range

    PageSpeed Insights Mobile CWV Failed
    35 Score
    • Largest Contentful Paint 5.8 s
    • Total Blocking Time 610 ms
    • Cumulative Layout Shift 0.412
    • Speed Index 9.8 s
    • First Contentful Paint 3.1 s

    Core Web Vitals Assessment: Failed — multiple URLs need improvement

    Metric Before After Improvement
    Performance Score 35 / 100 89 / 100 +54 Points
    Largest Contentful Paint 5.8 seconds 1.9 seconds −67% Faster
    Total Blocking Time 610 ms 140 ms −77% Reduced
    Cumulative Layout Shift 0.412 0.05 −87.9% Stable
    Speed Index 9.8 seconds 2.8 seconds −71% Faster
    Core Web Vitals FAILED PASSED Google Approved
    Business Impact

    What This Means in
    Real Booking Terms

    Direct Booking Rankings Strengthened

    With CWV passing, Villa Mahabhirom competes for “luxury villa Chiang Mai” on merit again — queries with enormous booking intent and, crucially, zero OTA commission attached to them.

    CWV = ranking signal
    The Gallery Now Sells on Mobile

    214 photographs are this property’s entire sales team. At 1.9s LCP, the candlelit teak pool villa appears in under two seconds — on a train in Tokyo or a sofa in Sydney, on middle-of-nowhere hotel Wi-Fi.

    +20% Δ conversion / second
    First Impression as Calm as the Courtyard

    CLS of 0.05 means no more jumping text or shifting booking buttons under guests’ thumbs. The digital stillness finally matches the property at dusk — and premium conversion lives in exactly those details.

    0.05 CLS — pixel-stable
    OTA Commission Reclaimed

    A fast, trustworthy direct site converts more bookings in-house. Every 10% shift from OTA to direct keeps 18–25% per night in the property’s pocket — compounding, forever, with no additional ad spend.

    18–25% commission saved
    Client Testimonial

    In Their Own Words

    Requested: personal experience at delivery
    “Hafiz and team has helped me get my site back to loading quickly. We went massive pagespeed score also from a score of an F to an A on the GTMetrix scale that measures a website’s loading time and quality. This helps tremendously to keep our clients coming back! We appreciate that Hafiz and his team are always ready and available to help with all of our needs, including fixing bugs and site attacks as they come up. Hafiz has been communicative and professional and has delivered on every account. We recommend Hafiz for all of your site-based needs.”
    MM LinkedIn Client – Thai Media Manager @  ·  Villa Mahabhirom
    What Was Included

    Services Used in This Project

    10 Deliverables
    WordPress Core Web Vitals Optimization
    LCP (Largest Contentful Paint) Fix
    CLS (Cumulative Layout Shift) Fix
    TBT / INP Reduction
    Google Font Subsetting & Optimization
    Critical CSS Implementation
    Embed Facades — Maps, TripAdvisor & Booking Engine
    WebP Conversion — 214 Images Batch Optimized
    LiteSpeed Caching Stack + PHP 8.2 Upgrade
    Full Before/After Performance Report
    Get Started

    Is Your WordPress Site
    Costing You Business?

    We’ll run a free audit on your site and show you exactly what’s slowing it down — and what it’s costing you in traffic and revenue. No pitch. Just data.

    Results in 5–7 Days Zero Design Changes Zero Downtime Full Before/After Report
  • Twinpalms Case Study: CWV Solved in 6 Days

    Case Study CWV Passed Luxury Hospitality

    From 41 to 91 –
    Core Web Vitals fixed
    for a 5‑Star Resort

    A failing WordPress site was silently costing Twinpalms Hotels & Resorts direct bookings every single day. We fixed every metric in 6 days, zero design changes, zero downtime.

    ClientTwinpalms Hotels & Resorts
    IndustryLuxury Hospitality
    LocationPhuket, Thailand
    Platform WordPress + Cloudflare
    Timeline 6 Days
    41Before
    91After

    Mobile PageSpeed  ·  +50 Points

    Results at a Glance

    Every Metric. Fixed.

    Verified via PageSpeed Insights + CrUX
    Performance Score
    41 / 100
    91
    +50 Points ↑
    Passing
    LCP — Largest Contentful Paint
    4.3 seconds
    1.8s
    −58% Faster ↑
    Good
    TBT — Total Blocking Time
    400 ms
    90ms
    −77.5% Reduced ↑
    Good
    CLS — Cumulative Layout Shift
    0.625
    0.02
    −96.8% Stable ↑
    Excellent
    Speed Index
    13.7 seconds
    3.1s
    −77% Faster ↑
    Good
    Core Web Vitals
    FAILED
    PASSED
    Google Approved ↑
    CWV Pass
    6 Days
    Timeline
    Zero
    Design Changes
    Zero
    Downtime
    +50 pts
    PageSpeed Gain
    5
    Property Rating
    About the Client

    Twinpalms Hotels & Resorts

    One of Thailand’s most celebrated independent luxury hotel brands, operating award-winning boutique properties across Phuket. Their website is their single most important direct sales channel.

    With a strong international guest base and annual revenue exceeding $11 million, Twinpalms competes at the very top of Southeast Asian luxury hospitality. Their site runs on WordPress.org + Cloudflare CDN — a solid foundation that was being completely undermined by an unoptimised performance stack.

    The OTA leak. Every percentage point of direct booking conversion matters at this scale. A slow site doesn’t just hurt UX — it leaks revenue to OTAs at 15–25% commission per booking, every single day.

    Twinpalms luxury resort at dusk, Phuket
    5-Star Boutique Collection
    Client Snapshot
    Client
    Twinpalms Hotels & Resorts
    Industry
    Luxury Hospitality
    Location
    Phuket, Thailand
    Platform
    WordPress + Cloudflare
    Revenue
    $11M+ annually
    Timeline
    6 Days
    Result
    41 → 91 · CWV Pass
    The Problem

    A 5-Star Property.
    A failing website.

    When we ran an independent PageSpeed audit, the mobile results were alarming — especially for a property actively running paid traffic.

    pagespeed.web.dev/analysis — twinpalms.com · mobile ASSESSMENT: FAILED
    MetricScoreGoogle TargetStatus
    Performance Score41 / 10090+ Failing
    Largest Contentful Paint4.3 seconds≤ 2.5s Poor
    Total Blocking Time400 ms≤ 200ms Poor
    Cumulative Layout Shift0.625≤ 0.1 Critical
    Speed Index13.7 seconds≤ 3.4s Critical
    Core Web VitalsFAILEDPass Failed

    Audited with Google PageSpeed Insights · Lighthouse · Chrome UX Report (CrUX)

    The Diagnosis

    5 Root Causes.
    All fixable.

    Server + code level only
    • Root Cause of LCP 4.3s
      Hero Images Not Preloaded — Served in JPEG

      The browser had to discover, request, download and render the hero image sequentially. No preload tag. Images were served in legacy JPEG format, not WebP — adding unnecessary file weight on every load.

      LCP 4.3s · limit ≤ 2.5s
    • Root Cause of CLS 0.625
      Images Without Explicit Width & Height

      Multiple images had no explicit dimensions in HTML. The browser couldn’t reserve space — causing visible layout shifts during load. The worst metric: 6× over Google’s maximum threshold.

      CLS 0.625 · limit ≤ 0.1
    • Root Cause of TBT 400ms
      Third-Party Scripts Blocking the Main Thread

      Analytics, live chat, and booking engine JS were loading synchronously in the page head — blocking render before any content appeared. Nothing was deferred or loaded asynchronously.

      TBT 400ms · limit ≤ 200ms
    • Root Cause of FCP 2.3s
      No Critical CSS — Full Stylesheet Blocking Render

      The entire stylesheet loaded before above-the-fold content rendered. Critical CSS allows the browser to render visible content immediately and load the rest in the background.

      FCP 2.3s · limit ≤ 1.8s
    • Root Cause of Speed Index 13.7s
      Cloudflare In Place — But Misconfigured

      Cloudflare CDN was active but several key features were disabled: Auto Minify off, Polish (image compression) not enabled, and caching rules not optimised for high cache-hit rates.

      SI 13.7s · limit ≤ 3.4s
    The Solution

    6 Days. Zero Design Changes.
    Zero downtime.

    Every fix was implemented at the server and code level. The design, content, and user experience stayed completely unchanged.

    Day 1 – 2
    Audit, Staging Setup & Quick Wins
    • Full technical audit — Query Monitor + Chrome DevTools
    • Staging environment configured (zero risk to live site)
    • WebP conversion applied across all key pages
    • Explicit width & height added to all images (CLS fix)
    • Cloudflare Polish + Auto Minify + Browser TTL rules enabled
    Day 3 – 4
    Core Performance Stack Implementation
    • LCP hero image preloaded with <link rel="preload"> on all key pages
    • Critical CSS implemented for all above-the-fold content
    • Analytics, chat, and booking scripts deferred — all non-critical JS
    • Full-page WordPress caching with booking/cart exclusion rules
    • CSS and JS minified and combined where safe
    Day 5
    Third-Party Script Audit & Management
    • Full audit of all third-party tags — GA4, Facebook Pixel, live chat, booking engine
    • async and defer attributes applied across the full script stack
    • Off-screen images and below-fold content lazy-loaded
    • 3 unused plugin scripts loading globally on every page removed
    Day 6 — Complete
    Validation, Deployment & Handover
    • All fixes validated on staging — mobile and desktop
    • Core Web Vitals pass confirmed via PageSpeed Insights + CrUX data
    • Deployed to live with zero downtime
    • Full before/after report with PageSpeed screenshots delivered
    • Cloudflare Cache Purge automation set up for ongoing workflow
    The Results

    Before vs. After — full comparison.

    Drag the gold handle to compare the live PageSpeed audits, pixel for pixel.

    PageSpeed Insights Mobile CWV Passed
    91Score
    • Largest Contentful Paint 1.8 s
    • Total Blocking Time 90 ms
    • Cumulative Layout Shift 0.02
    • Speed Index 3.1 s
    • First Contentful Paint 0.9 s

    Core Web Vitals Assessment: Passed — all metrics in the good range

    PageSpeed Insights Mobile CWV Failed
    41Score
    • Largest Contentful Paint 4.3 s
    • Total Blocking Time 400 ms
    • Cumulative Layout Shift 0.625
    • Speed Index 13.7 s
    • First Contentful Paint 2.3 s

    Core Web Vitals Assessment: Failed — multiple URLs need improvement

    Metric Before After Improvement
    Performance Score41 / 10091 / 100+50 Points
    Largest Contentful Paint4.3 seconds1.8 seconds−58% Faster
    Total Blocking Time400 ms90 ms−77.5% Reduced
    Cumulative Layout Shift0.6250.02−96.8% Stable
    Speed Index13.7 seconds3.1 seconds−77% Faster
    Core Web VitalsFAILEDPASSEDGoogle Approved
    Business Impact

    What This Means in
    Real Revenue Terms

    Google Rankings Improved

    CWV is a confirmed Google ranking signal. With all metrics now passing, Twinpalms is eligible to outrank competitors for searches like “luxury resort Phuket” — searches that were being lost while CWV failed.

    CWV = ranking signal
    Mobile Booking Conversions Up

    LCP dropped from 4.3s to 1.8s. The villa photography that sells the property now appears in under 2 seconds on mobile. Each 1-second improvement lifts hospitality conversions by up to 20%.

    +20% Δ conversion / second
    First Impression Matches the Property

    CLS of 0.02 means the page is visually stable from the first pixel. No shifting, no jumping, no broken layout. The digital first impression now matches a 5-star luxury property.

    0.02 CLS — pixel-stable
    Paid Traffic ROI Improved

    A Google-approved site improves Quality Scores on Google Ads — reducing cost-per-click and increasing ad rank for the same spend. Every baht of ad budget now works harder.

    ↑ Quality Score · ↓ CPC
    Client Testimonial

    In Their Own Words

    Requested: personal experience at delivery
    “Umair has been great to work with. The project was completed quickly and the work was great. Communication throughout was perfect. Really pleased with the results and will be using again.”
    TT Tom Thorns HR  ·  Twinpalms Hotels & Resorts
    What Was Included

    Services Used in This Project

    10 Deliverables
    WordPress Core Web Vitals Optimization
    LCP (Largest Contentful Paint) Fix
    CLS (Cumulative Layout Shift) Fix
    TBT / INP Reduction
    Cloudflare CDN Configuration & Optimization
    Critical CSS Implementation
    Third-Party Script Management & Deferral
    WebP Image Conversion & Compression
    WordPress Page Caching Stack
    Full Before/After Performance Report
    Get Started

    Is Your WordPress Site
    Costing You Business?

    We’ll run a free audit on your site and show you exactly what’s slowing it down — and what it’s costing you in traffic and revenue. No pitch. Just data.

    Results in 5–7 Days Zero Design Changes Zero Downtime Full Before/After Report
    More Case Studies

    Real Results, Real Clients