Skip to content
M MYKHALCHENKO.consulting
WordPress SEO Performance Web Development

WordPress Speed Optimisation & SEO

Performance audit and SEO baseline for a construction firm's WordPress site. Load time cut from 8.4s to 1.2s, now ranking for terms customers actually search.

2025
Construction Firm, Central Switzerland
Web Developer & SEO Consultant

The Situation

A construction firm came to me with a WordPress site that worked, technically, but was practically invisible. Mobile load time: 8.4 seconds. Lighthouse performance: 31. No meta descriptions, no structured data, and title tags that were either missing or duplicated across pages.

The firm had been in business for over 20 years with a strong local reputation. None of that reputation showed up online. Search their core services in their region and you got competitors who had done the basic SEO work; the firm itself didn’t surface until page three or four.

What I Did

Performance audit. I started with a full audit using Lighthouse, PageSpeed Insights, and GTmetrix to find every bottleneck. The culprits were familiar: uncompressed images (a single project gallery was loading 14MB of unoptimised JPEGs), no browser caching, render-blocking JavaScript from unused plugins, and shared hosting with no CDN.

Image optimisation. Every image went through a compression pipeline: WebP for modern browsers with a JPEG fallback, lazy loading below the fold, and proper width and height attributes to kill layout shift. The project gallery dropped from 14MB to 1.1MB with no visible loss of quality.

Plugin audit and cleanup. The site ran 23 active plugins, seven of them unused or redundant. I removed them, cutting the JavaScript payload by 340KB. Two remaining plugins that loaded scripts site-wide were reconfigured to load only where they were actually needed.

Caching and CDN. I configured WP Rocket for server-side and browser caching, enabled GZIP compression, and moved static assets onto Cloudflare’s CDN. Time to first byte fell from 1.8s to 210ms.

Technical SEO baseline. Every page got a unique, descriptive title tag and meta description built around real search terms. I installed and configured Yoast SEO, submitted an XML sitemap to Google Search Console, and cleared 47 crawl errors that had been quietly piling up for years.

Structured data. I added LocalBusiness schema with the firm’s address, service area, and contact details. That data feeds straight into how Google presents the business in local search results and knowledge panels.

Results After Three Months

  • Mobile load time: 8.4s → 1.2s
  • Lighthouse performance score: 31 → 89
  • Google Search Console: crawl errors resolved from 47 → 0
  • Organic clicks (90-day period): +210%
  • Rankings for primary service keywords: page 3-4 → page 1
  • Hosting cost unchanged: all improvements made within existing infrastructure

The firm now sits on page one for their three most important service terms in the region. No advertising budget was added. The whole improvement came from removing the technical barriers that were stopping Google from indexing and ranking the site properly.

What Made the Difference

Construction firms often have strong offline reputations that never translate online, simply because nobody has done the basic technical work. This site wasn’t bad. It was misconfigured and overloaded.

Speed was the most immediate lever. Core Web Vitals are a direct ranking signal, and an 8-second mobile load is an automatic penalty. Once load time was under 1.5 seconds, the site became eligible to compete for rankings it had been locked out of.

The structured data and title-tag work gave Google the context to understand what the business does and where it operates. Before, several pages had identical or missing title tags, so from Google’s perspective the site didn’t have clearly differentiated pages. After the fix, each page was indexable, understandable, and rankable on its own terms.