Case Study

Skapa
Hospitality.

A one-day performance sprint on a 30-property hospitality site running WordPress + Elementor + Astra. Mobile PageSpeed went from 57 to 90 in a single day, with the headline Core Web Vital — LCP — dropping from 11.8 seconds to 1.0. Zero paid plugins.

Client
Skapa Hospitality
Year
2026
Discipline
Performance · SEO
Services
Performance audit, optimization implementation, verification
Mobile PageSpeed score: 57 before the sprint, 90 after. A +33 point jump in a single day.

Why this mattered.

Skapa Hospitality curates 50+ homes across Maharashtra — designer villas in the Western Ghats, cottages near Karjat, homestays in Pune. Beautiful properties, beautiful site. One problem: visitors didn't see the site for nearly twelve seconds on mobile.

A blank screen for 12 seconds is a deal-breaker for a brand whose pitch is "a quiet escape, thoughtfully designed." Google was penalising the site's search ranking, and qualified visitors were bouncing before the homepage ever rendered.

The brief was simple. The constraints were hard. Make it lightning fast. No design changes. No migration. No paid plugins.

The headline metric: LCP.

Largest Contentful Paint measures when the biggest visible element on the page has finished loading. Google uses it as a direct SEO ranking signal. Anything over 2.5s is "poor". This site was at 11.8.

LCP went from 11.8 seconds to 1.0 second — a 91.5% reduction.
Largest Contentful Paint · mobile · before vs after
57 → 90
Mobile PageSpeed (+33 points)
11.8s → 1.0s
LCP (−91.5%)
5MB → 1.8MB
Page weight (−64%)

All Core Web Vitals, before vs after.

Four of five mobile Core Web Vitals are now green. The remaining yellow flag is Speed Index — Smart Slider's auto-rotating hero counts as ongoing visual change after LCP. Documented as a follow-up.

Core Web Vitals comparison table — mobile and desktop, before and after the sprint.
Core Web Vitals · Moto G Power · Slow 4G throttling
Mobile and desktop PageSpeed scores side-by-side after the sprint.
Mobile vs desktop · final PageSpeed scores

What we cut.

The diagnostic approach was simple — load every public page with browser network tracking on. Capture exactly what was firing. Then cut anything that wasn't earning its weight.

Page weight cut from ~5 MB to ~1.8 MB across 128 requests.
Page weight · ~5 MB → ~1.8 MB
Plugin count reduced from 20 to 12 — eight removed after a network-trace audit.
Plugin diet · 20 → 12 (eight removed after a network-trace audit)
306 stale database rows removed — post revisions, stale transients, auto-drafts. Weekly cleanup now scheduled.
Database hygiene · 306 stale rows removed, weekly cleanup scheduled

The optimization stack.

All free-tier. The original plan called for WP Rocket (~₹5,000) and Perfmatters (~₹2,000). We discovered that Elementor's own Performance tab handles most of what Perfmatters offers; LiteSpeed Cache + WP Super Cache replaced WP Rocket. Saved ~₹7,000 with no functional loss.

The optimization stack layered: browser cache, edge cache, asset minification, origin cache, application-level tuning, platform.
The optimization stack · all free-tier

Key technical decisions.

Five decisions that did most of the work. Each one came from real measurement, not a generic "WordPress performance tips" list.

  1. Skip paid plugins where free equivalents exist. Elementor's Performance tab covers most of Perfmatters' functionality — fetchpriority, lazy background images, self-host Google Fonts. LiteSpeed Cache + WP Super Cache replaced WP Rocket.
  2. Use Elementor's fetchpriority="high" for the LCP image. Single biggest individual lever for mobile LCP. One toggle, and the hero image starts downloading before JavaScript parses.
  3. Connect QUIC.cloud to unlock LiteSpeed Cache's full feature set. Normally requires a LiteSpeed web server; hosting was Apache. Connecting QUIC.cloud (no DNS changes) unlocked UCSS — the biggest single CSS optimisation on Elementor sites — plus image optimisation. Free tier handles ~1 GB/month, plenty for a small hospitality site.
  4. Audit add-ons via real network inspection, not guesswork. Loaded every public page with browser network tracking on. Captured exactly which add-on's CSS/JS files actually loaded. Templately wasn't firing on any front-end page — safe to delete. The other three are used on internal pages and stayed.
  5. Worked around a hosting-provider outage. The original plan included a Cloudflare cutover. Bluehost India's customer panel went into maintenance the same day and stayed down for a week. Pivoted to QUIC.cloud + WP Super Cache to recover ~80% of what Cloudflare would have added, without any DNS work. The headline result didn't slip.

The final read.

PageSpeed Insights, end of the sprint. Mobile and desktop, side by side.

PageSpeed Insights final scores — mobile 90, desktop in the high 90s.
PageSpeed Insights · post-sprint scores

What we'd do next.

Three follow-ups documented for the next engagement. The first one is fifteen minutes of work once Bluehost India's panel is back; the other two are designer-time investments.

  • Cloudflare cutover (~15 min). Global edge CDN, edge HTML caching via free-tier Page Rule, HTTP/3, DDoS/WAF protection. Would push mobile PageSpeed from 90 to 95+.
  • Royal Elementor Addons removal (3–6 hours of designer time). Heaviest add-on still loading on every internal page — 6 JS files + 3 CSS. Replacing each Royal widget with native Elementor equivalents would cut another ~250 KB per page.
  • Static hero replacement (1–2 hours). Would crash the Speed Index metric into the green. Tradeoff: lose the rotating slider feel.

The impact.

What changed at the business level, and what changed for the people on the other end of the URL.

For the business

  • SEO ranking signal recovered — LCP moved from "poor" (11.8s) to "good" (1.0s), Google's threshold.
  • ₹0 spent on plugins or CDN fees — same outcome that paid stacks (WP Rocket + Perfmatters + Cloudflare Business) would have produced.
  • Pre-bounce homepage rendering — visitors now see content in under a second instead of after 12.
  • Documented continuity — every decision and result tracked. Future engagements pick up without re-discovery.

For the visitor

  • The homepage now loads in the time it used to take for the favicon to appear.
  • Image quality preserved — page weight down 64% with no visible loss.
  • Layout doesn't shift mid-load — Cumulative Layout Shift stayed at zero.
  • The site works on a slow connection — tested at Slow 4G throttling, not just lab conditions.

Have a brief?

If your site is slow and Google is starting to notice, we can usually move the needle in a single sprint. Tell us what's broken.

Start a project