The short answer. Over six weeks on a live WordPress hotel site, the PageSpeed average rose from 67 to 84, accessibility from 87 to 95, the mobile largest paint fell from 14.9 seconds to 3.9, and AI answer engines went from blocked to served. The fixes were small; getting a caching plugin, a firewall and a bot filter to accept them was the work.
What changed in six weeks
The site is the hotel’s own WordPress installation on shared hosting, behind a content delivery network. Nothing was replaced. The numbers were taken on the live site during the sprint, July to August 2026, from Google’s PageSpeed test and the hosting provider’s agentic-browsing audit.
| Measure | Before | After |
|---|---|---|
| PageSpeed average across the audited pages | 67 | 84 |
| Accessibility score | 87 | 95 |
| Agentic browsing audit | 1 of 3 | 3 of 3 |
| Mobile largest contentful paint | 14.9 s | 3.9 s |
| Mobile first contentful paint | 4.7 s | 3.2 s |
| Render-blocking stylesheets | 17 | 7 |
| AI crawler access | Blocked | Open |
| Blog posts | 12 | 17 |
| Social posts scheduled | 0 | 19 |
Google’s own threshold for a good largest contentful paint is 2.5 seconds (web.dev), so 3.9 seconds is still not good; it is a third of what it was, on a stack that was never designed to be fast.
The hotel was invisible to AI engines and healthy to browsers
A human got a normal page. GPTBot, ClaudeBot, PerplexityBot and OAI-SearchBot got a challenge page or an error, because the content delivery network’s bot filter was serving a managed challenge to anything automated, before the site or its robots file were ever consulted. The fix was to turn that mode off and lean on the security plugin’s rate limiting instead, at 960 crawler page views a minute, so legitimate crawlers pass and abusive ones still do not. All four now receive the real content.
Cutting a 14.9-second paint by not waiting for scripts
The homepage headline sat inside a carousel that stayed at display none until a script library, a carousel library and the theme’s own script had all loaded and run. On a phone that was 14.9 seconds to the largest paint. A stylesheet-only fallback forces the first slide visible, hard-codes its background image and neutralises the entrance animation before any script runs. Largest paint fell to 3.9 seconds and first paint from 4.7 to 3.2.
The recommended optimiser blanked the homepage
Turning on minification in the usual optimiser produced an empty homepage. The markup was all there; the merged stylesheet had broken the one rule that reveals the carousel, so the content existed at display none. Rebuilding the pipeline on a different plugin gave stylesheet aggregation and critical-CSS deferral without breaking the theme: render-blocking stylesheets went from 17 to 7. The lesson written down that day: on a script-gated theme the page’s own markup will lie to you, and every change needs a screenshot.
The server refused correct changes
Two more layers pushed back. The object cache held the pre-edit stylesheet and would not flush without server access, so the fix shipped as an inline snippet, which caching ignores. The firewall returned a 403 to a logged-in administrator saving a script or style tag, so scripts went through per-action allow lists and the stylesheet through a raw-CSS snippet type with no tags in it, leaving the blanket rules armed. The last audit point, hidden in a noscript fallback and a path regex that resolved venue names to empty strings, took a one-line change once found.
The technical work fed the content
With crawlers able to read the site and 750 KB of unnecessary anti-bot payload removed, Search Console showed that all of the site’s traffic was branded. Five posts were written for the questions people ask before choosing a hotel in the area, with FAQ markup, taking the blog from 12 to 17, and 19 social posts were rebuilt and scheduled across the hotel’s profiles with the stale dates fixed.
What this is, and is not
This is the founder’s family’s hotel, which is why the work could be done live and why every number could be checked on the server the same day. It is not a client engagement at Firstfold’s prices, and it was done with the same AI-assisted pipeline that now builds every Firstfold site. The rebuild of the same site, same content and same photographs, is the second case study, where the score went from 39 to 99 on mobile. What it means for a business deciding between fixing and rebuilding is in what a small business website costs, and the ten lines to compare when you get more than one quote are in how to compare website quotes.
Questions people ask
Why work on the live site instead of rebuilding it?
Because the hotel was trading on it every day and a rebuild is a decision the owner makes, not the developer. Working live meant every change had to be safe, reversible and verified on the real server the same hour. The rebuild came afterwards, as its own case study, once the owner could see both.
What was actually slow?
The headline was inside a slider that stayed hidden until three scripts had loaded, so the page painted at 14.9 seconds on a phone. A CSS-only fallback that shows the first slide before any script runs brought that to 3.9 seconds. The recommended optimiser plugin then blanked the homepage, and a different one had to be configured by hand.
Why does AI-crawler access matter for a hotel?
Because people ask assistants where to stay, and an assistant cannot recommend a hotel it cannot read. The hotel's bot filter was answering GPTBot, ClaudeBot and PerplexityBot with challenges and errors while humans saw a normal page. Turning that filter off and rate-limiting instead made the site readable to them without opening it to abuse.
What does the site score today?
On 2026-09-26 our own Lighthouse run put the homepage at 51 on mobile and 91 on desktop. A WordPress site drifts as plugins and themes update, which is the honest argument for the rebuild on the pipeline, where the same content scores 99 on mobile and the build fails if a page ever falls under 90.
See what yours would look like, free
Firstfold builds the first fold of your homepage free, in two business days, with no call. If you like it, we build the rest for $1,950 to $4,950, with $500 to start and the balance only when you approve it. If you do not, you owe nothing.
Build my first fold