Beds are bought by size before anything else. A person searching for a super king ottoman bed has often measured the room, and may own the mattress already. A bed site needs to rank for those searches without splitting each frame into a page per size, drawer layout and headboard.

Beds also raise questions that general furniture does not. British and continental mattresses use different dimensions under similar names. One divan base can be sold with no drawers, two, four or a full ottoman lift. Headboards are sold separately but only fit certain bases. This guide works through those decisions using Google’s documentation, linked where it is cited. Where a point is my own view, I say so.

UK and EU sizes in names, URLs and search terms

Typical UK sizes are single (90 x 190 cm), small double (120 x 190), double (135 x 190), king (150 x 200) and super king (180 x 200). Continental sizes are usually 200 cm long, at widths such as 90, 140, 160 and 180 cm. Shoppers search both ways. Some type “king size divan”, while others type “160×200 bed frame” because their mattress came from a European maker.

A UK king and a 160 cm continental bed are different products, and a mattress made for one will not fit the other properly. Exact measurements also vary a little between makers, so state your own. Never let them share a variant label such as “King”. Give each size value a name and its measurements, for example “King (150 x 200 cm)”. Then use the same wording in the page title, the size selector, the product feed and the markup.

Google’s URL structure guidance says each variant should be identifiable by its own URL, either as a path or a query parameter. A size held only after a # does not count, because Google ignores fragments for indexing. If your theme switches size with a fragment, any link to “the king size” points at the default size as far as Google can tell.

Size-led categories do much of the ranking. “Small double bed frames” and “super king ottoman beds” deserve real category pages with their own copy, a clean URL and links from the main menu.

Divan drawers and ottoman lifts: variant or separate product?

Google marks up variants with ProductGroup, hasVariant and variesBy, as set out in its product variants documentation. The variesBy values it accepts are https://schema.org/color, size, material, pattern, suggestedAge and suggestedGender. Bed size maps neatly to size, and a fabric choice to colour and material. Drawer layout and lift mechanism map to none of them.

That gap forces a decision. My advice is to split storage two ways:

  • Drawer options on a divan (none, two, four or continental) stay as purchase options on one product page. The markup describes the size and colour variants, and the drawer choice is recorded on the order line, with its price change shown on the page.
  • Ottoman beds become products of their own, with their own product group and category. Buyers search for “ottoman bed” as a type of bed, not as an add-on, and the price, images and mattress depth all differ.

Divan sets raise the same question. A base sold with a mattress and headboard has its own price, contents and identifier, so keep it as a separate product that links to the base.

Whichever set-up you choose, Google’s rules apply. Each variant needs a unique identifier, such as a sku or gtin, and the group needs one too. If you use productGroupID on the group and inProductGroupWithID on its variants, the values must match. In a single-page set-up, every size must be preselectable through its own URL. That URL must show the right image, price and availability, and the size must be addable to the basket from it.

Mattresses and headboards: products that must fit

Mattress compatibility belongs in the text

Bed buyers often search with a mattress in mind: “bed frame for 135×190 mattress” or “ottoman bed for a deep mattress”. Answer those questions in plain text close to the price. State the mattress size the base takes. For frames with raised side rails or an ottoman lip, give the deepest mattress that will sit properly. Add the slat gap too, since some mattress makers specify a maximum.

Facts held only inside a dimensions image or an assembly PDF are hard to scan and sit apart from the page’s own text. A short compatibility table in HTML fixes both.

Linking frames, mattresses and headboards

In my view, cross-links matter more on bed sites than on most. A double frame should link to double mattresses and double headboards, and each of those should link back. Google’s URL guidance asks for <a href> links rather than navigation driven by JavaScript. A “fits this bed” carousel that only appears after a script runs may give Google nothing to follow.

Headboards bring variants of their own: the bed size they fit, and often a choice of heights and fixings, such as strutted, floor-standing or wall-mounted. The merchant listing documentation says size takes a single value. In my view the bed size is the variant to mark up. Height works better as a separate product line or a purchase option than as a second size.

Bed filters worth indexing

A bed category may filter by size, bed type, storage, headboard style, material, colour and fabric. Crawling all of those combinations, Google’s faceted navigation guide warns, can be heavy on server resources and can delay discovery of new beds.

Pick the combinations people actually search for, such as size with bed type (“king size ottoman beds”) or material with bed type (“metal bed frames”). Build those as categories. For everything else, Google’s main options are:

  • disallow the filter parameters in robots.txt, keeping product pages and one unfiltered listing crawlable;
  • or keep filter state in a URL fragment, which has no effect on crawling.

A canonical to the unfiltered page, or nofollow on filter links, can help, though Google calls both less effective in the long term.

If filter URLs stay crawlable, separate parameters with &. For filters in the URL path, keep their order consistent and prevent duplicate filters. Many ranges do not make every bed type in every size: there may be no small single ottoman, for example. A combination like that should return a 404 at its own URL, not redirect to a general error page.

Shopping results for beds

Merchant listing markup lets Google show a bed with its price, availability, delivery and returns. The points that matter most for beds:

  • Each size needs its own Offer and price. Merchant listings require an Offer, not an AggregateOffer, so a single “from” price across all sizes, marked up as an aggregate, won’t qualify.
  • The price must be greater than zero, and only pages where the buyer can actually purchase are eligible.
  • Set delivery once for the business under Organization, then override it per offer. Two-person delivery to the room of choice, or a longer handling time for made-to-order divans, are typical overrides through shippingDetails.
  • Returns can differ by product type. Google recommends hasMerchantReturnPolicy on each offer, which can point to a policy defined once for the business. If mattresses and frames carry different terms, the markup should reflect that.
  • Images must be crawlable, at least 50,000 pixels in total, and ideally supplied in 16:9, 4:3 and 1:1. Show ottoman beds lifted as well as closed.

Google’s ecommerce structured data overview also lists VideoObject for product pages with video, which suits a clip of an ottoman base rising. Google doesn’t index CSS images, so gallery images need to be real <img> elements. Their alt text should name size and storage, for example “king size ottoman bed in grey velvet, base lifted”. If the same assembly PDF lives at several URLs, Google’s canonical guidance notes that a canonical sent in the HTTP header suits PDFs.

An SEO check for a bed site

  1. Search your own catalogue for “king” and check whether 150 cm and 160 cm beds share that label anywhere.
  2. Load each size of one bed by URL. Confirm the price, image and stock change, and that the right size goes into the basket.
  3. Open a divan and switch between drawer options. Note whether the URL changes and whether the markup still describes the visible product.
  4. View the source of an ottoman bed page and search for AggregateOffer.
  5. Check that mattress size, maximum mattress depth and slat gap appear as text.
  6. With JavaScript turned off, follow links from a headboard to its matching bases and mattresses.
  7. Request a size and bed type you do not make, and confirm it returns a 404.
  8. Compare indexed URLs in Search Console with your count of beds, headboards and size categories.

When I tested five UK bed product pages in October 2026, two returned a 404. A bed URL that breaks when a range changes loses whatever links and rankings it had, so redirect it where a true replacement exists. Of the three that loaded, two passed all of Lighthouse’s SEO checks and one had links without a crawlable address. Three pages is a very small sample. Lighthouse’s SEO category also checks only basics, so it cannot see size naming, divan variants or mattress compatibility.

Size and storage options also affect speed, because every selector tap has to update the page; that side is covered in bed website performance. For product pages, delivery and returns, see selling beds online. If you are weighing up a builder for divans and headboards, the bed configurator page and the bedroom demos are the place to look. For a full review of your own site, see my ecommerce SEO audit, or, if you run WooCommerce, handling variable products at scale.

Sources

Google pages, read in October 2026: