Furniture websites carry more weight than most shops. A single sofa page can hold a dozen large lifestyle images, a zoomable gallery, forty fabric swatches, a finance widget, a reviews widget, a delivery date checker, live chat and sometimes a 3D or AR viewer. Each of those exists for a good reason. Together they can make a page that is slow on a phone, shifts as it loads and lags when the buyer taps a fabric.
This guide explains how Google measures page experience, where furniture pages usually fail, and how to fix each problem without losing the images and tools that sell furniture.
How speed is measured
Google’s Core Web Vitals are three measurements of real visits. Each is judged at the 75th percentile, so three in four visits need to meet the “good” threshold, and phones and desktops are assessed separately.
| Metric | What it measures | Good | Poor |
|---|---|---|---|
| Largest Contentful Paint (LCP) | How long the main content takes to appear | 2.5 s or less | over 4 s |
| Interaction to Next Paint (INP) | How quickly the page responds to taps and clicks | 200 ms or less | over 500 ms |
| Cumulative Layout Shift (CLS) | How much the layout jumps unexpectedly | 0.1 or less | over 0.25 |
INP replaced First Input Delay as a Core Web Vital in 2024. It matters for furniture because every swatch tap, size change and gallery arrow click is an interaction, and INP usually reports the slowest of them across the visit.
There are two kinds of data. Field data comes from real Chrome users, through the Chrome UX Report, PageSpeed Insights and Search Console. Lab data comes from a single simulated test such as Lighthouse. Field data is what Google uses. Lab data is for diagnosing problems, and Lighthouse cannot measure INP at all; it reports Total Blocking Time as a stand-in.
What I measured on UK furniture product pages (October 2026)
I tested five UK furniture product pages with PageSpeed Insights on 23 October 2026, using its mobile test (an emulated mid-range phone on slow 4G) and one run per page.
| Page | Performance score | Lab LCP | Total Blocking Time | Lab CLS |
|---|---|---|---|---|
| Retailer A | 56 | 23.0 s | 40 ms | 0 |
| Retailer B | 25 | 25.6 s | 4,990 ms | 0.031 |
| Retailer C | 31 | 23.4 s | 1,510 ms | 0.098 |
| Retailer D | 62 | 12.5 s | 80 ms | 0 |
| Retailer E | 12 | 8.3 s | 1,780 ms | 0.62 |
The median score was 31 and the median lab LCP was 23.0 seconds, against 12.8 seconds across all 103 pages I tested in every industry. Four of the five pages had images without set dimensions, and Lighthouse flagged the same four for how the hero image was discovered and prioritised, the gallery problem covered below. Three pages blocked the main thread for 1.5 seconds or more, enough to make a fabric tap lag, and Retailer E’s lab CLS of 0.62 was over six times the 0.1 limit.
Some cautions:
- A throttled phone on slow 4G is much slower than most real visits, so these LCP times are not the figures Google uses.
- None of the five URLs had page-level field data in the Chrome UX Report. Each showed only its whole site’s data, and three of those five sites passed Core Web Vitals.
- Five pages is a small sample. Read it as a snapshot, not a ranking.
Where the web stood in 2024
The 2024 Web Almanac performance chapter, which analyses millions of sites, gives a useful baseline:
- 43% of sites pass all three Core Web Vitals on mobile, and 54% on desktop.
- On mobile, the largest element is an image on 73.3% of pages. On a furniture product page that is typically the first gallery image.
- 16% of mobile pages whose largest element is an image lazy-load that image, which delays it.
- 35% of mobile LCP elements cannot be found in the initial HTML, often because they are added by JavaScript or set as CSS backgrounds.
- 66% of mobile pages have at least one image without set dimensions, a common cause of layout shift.
- On desktop, JPEG is the format for 61% of LCP images, WebP for 7% and AVIF for 0.3%, with mobile similar.
These are figures for the web as a whole, not furniture specifically. Each one describes a mistake that furniture pages are especially prone to, because they lean so heavily on images.
Fixing the hero image (LCP)
On a furniture product page, LCP is typically the first gallery image. Google’s guide to optimising LCP breaks the time into four parts: server response, the delay before the image starts loading, the image download, and the delay before it is drawn. Image-heavy pages tend to lose time in the middle two.
- Put the hero image in the HTML. Use a normal
<img>withsrcandsrcset. Galleries that inject the first image with JavaScript, or show it as a CSS background, hide it from the browser’s early scan. - Never lazy-load the first image. Lazy loading is right for the rest of the gallery and wrong for the image the buyer sees first.
- Add
fetchpriority="high"to the hero image only. Google notes the benefit drops if it is used on more than one or two images. Offscreen carousel slides can takefetchpriority="low". - Size and compress properly. A 4,000-pixel studio export has no place on a phone. Serve sizes that match the layout, in WebP or AVIF, from a CDN with long cache headers.
- Serve it from the same origin as the page, with a CDN in front if you use one. A separate image host adds a connection before the download can begin.
Fabric swatches and galleries
Swatches are the furniture-specific problem. A range with forty fabrics can mean forty thumbnails plus forty full-size product images, one for each fabric.
- Make swatch thumbnails small. A swatch shown at 40 pixels needs an image of about 80 pixels for sharp screens, not a crop of the full fabric photograph.
- Do not load every fabric’s product image up front. Load the image for a fabric when the buyer hovers over or focuses its swatch. Keep the current image on screen until the new one is ready. The configurator demos on this site work this way.
- Keep gallery dimensions fixed so that swapping a fabric or a photo never moves the rest of the page.
Widgets and layout shift (CLS)
Common sources of layout shift on furniture pages are content that arrives late and pushes everything down: finance offers, review stars, delivery date estimates, stock messages and cookie banners. Google’s CLS guidance lists the causes as images and video without dimensions, web fonts, third-party widgets that resize, and content inserted above what is already on screen.
- Reserve space for each widget in the layout, with a minimum height that matches what it will show.
- Give every image
widthandheightattributes, or a CSSaspect-ratio. - Load web fonts so they swap in at a similar size to the fallback.
- Animate with
transform, not by changing height or position.
Shifts that happen within half a second of a tap or click do not count, so an accordion opening when the buyer taps it is fine. A finance banner appearing two seconds after load is not.
Responsiveness and configurators (INP)
INP counts every tap, so a slow fabric picker damages the score however fast the page loaded. The usual causes are long tasks on the main thread: large scripts running on load, third-party tags and heavy re-rendering when an option changes.
- Keep the work done on each swatch tap small. Update the image and the summary first, and do slower work afterwards.
- Load third-party scripts such as chat, analytics and review widgets after the page is usable, and audit them regularly. Each one competes for the main thread.
- For 3D viewers, load the viewer only when the buyer asks for it. Show a still image as the poster, so the still image is the LCP element and the 3D model downloads on demand. Compress models (glTF with Draco or Meshopt geometry and KTX2 textures) and keep texture sizes in proportion to the screen.
I cover the 3D side in more depth in how a 3D product configurator is built.
Measuring your own site
- Open Search Console’s Core Web Vitals report. It groups URLs by template, so a problem on product pages shows up as one group.
- Run your main product, category and home pages through PageSpeed Insights. Read the field data at the top before the lab score below it.
- Test on a mid-range Android phone on mobile data, not on an office laptop.
- Check what the LCP element is on a product page. If it is not the hero image, find out why.
- List every third-party script on a product page and what it is for. Remove the ones nobody can justify.
Speed work on furniture sites is mostly about images and widgets, and most of it can be done without changing how the site looks. If you would like it done for you, see Core Web Vitals and Shopify speed optimisation, or for WooCommerce, speed, caching and scripts. For the rest of the series, see selling furniture online and furniture ecommerce SEO.
Sources
- web.dev, Web Vitals, LCP, Optimise LCP, INP and CLS, checked October 2026.
- HTTP Archive, Web Almanac 2024: Performance, November 2024 (all sites, CrUX and lab data).
- My own tests: PageSpeed Insights, 5 UK product pages per industry, 23 October 2026, for the furniture results table above.