Lighting is sold on detail. Someone choosing a wall light for a shower room needs the IP rating first. A homeowner replacing a pendant wants the lamp cap, the drop length and whether it dims. A specifier wants photometric data and a spec sheet. That detail has to be findable, and much of it ends up in filters and variants that multiply a site’s URLs.
This page applies Google’s documentation to the way lighting is sold online. When a point comes from Google, it links to the page it comes from. When it is my own judgement, I say so.
One fitting, many finishes and sizes
Plenty of lighting ranges come in several metal finishes, two or three diameters and a choice of shade or glass. A pendant in four finishes and three sizes is twelve variants before cable colour is counted.
Google’s ecommerce URL guidance says each variant should be identifiable by its own URL. A path such as /pendants/orbit/antique-brass and a parameter such as ?finish=antique-brass are both acceptable. A fragment is not: Google ignores everything after # for indexing, so a finish picker that only rewrites the fragment leaves every finish on one URL.
The product variant documentation describes two set-ups:
- One page for the group. A single canonical URL covers the product, usually with no finish selected. Each variant must be preselectable through its own URL, showing the right photo, price and availability, and must be addable to the basket.
- One page per variant. Every variant page has its own canonical, and the whole group is repeated in the markup on each page.
For most fittings I prefer the first. Buyers search for a pendant and then pick a finish. Separate pages earn their keep when a version has its own demand, such as an outdoor-rated twin of an indoor wall light.
Mapping finish and glass to variesBy
ProductGroup markup states what changes through variesBy. Google allows six values: https://schema.org/color, size, material, pattern, suggestedAge and suggestedGender. Nothing covers finish, colour temperature or beam angle. A brushed brass finish fits colour, material or both, and opal against clear glass is a material difference.
Colour temperature is the awkward one. A downlight sold in warm white and cool white cannot declare that difference in variesBy. My advice is to list each version as its own product, or record the choice at the basket and leave it out of the variant markup. Either way, each variant needs a unique sku or gtin, and the group needs its own ID.
Technical filters: IP rating, lamp cap and kelvin
Lighting categories often carry more technical filters than many other product types. A typical ceiling light listing might filter by finish, room, IP rating, lamp cap (E27, E14, B22, GU10), dimmable or not, colour temperature, number of arms and integrated LED versus replaceable lamp. Every added filter multiplies the possible combinations. Google’s faceted navigation guide warns that crawling them can use a lot of server resources and slow the discovery of new pages.
Build pages for the combinations people type
A few filter combinations match real searches, for example IP44 bathroom ceiling lights, GU10 downlights or plug-in wall lights. Check your own Search Console queries before choosing. In my view each chosen combination deserves a proper category page with a clean URL, a short note on the rating or fitting, and navigation links.
Keep the rest out of the crawl
For everything else, Google’s guide gives two dependable routes. Either disallow the filter parameters in robots.txt, leaving product pages and one unfiltered listing crawlable, or hold the filter state in a URL fragment. A canonical from filtered to unfiltered pages, or nofollow on filter links, can help but is described as less effective over time. nofollow only works if every link to that URL carries it.
If filter URLs remain crawlable, separate parameters with &. Return a 404 at the URL itself for combinations with no products, such as an IP rating that no table lamp in your range carries. Where filters sit in the path, keep their order consistent and block duplicate filters.
Spec sheets, photometric files and fitting instructions
Electricians and specifiers look for spec sheets, installation leaflets and photometric files. These usually live as PDFs, which Google can index, so a spec sheet can rank for a product code in place of the page that sells the fitting.
The stronger fix is to put the numbers on the product page as HTML. Wattage, lumen output, colour temperature, beam angle, IP rating, lamp cap, dimmer compatibility, drop length and ceiling rose size all belong in a text table. Link the PDF from that table for anyone who needs the full document.
Duplicate copies of the same file are a separate problem. When one spec sheet is served from several URLs, Google’s canonical documentation notes that a canonical can be sent in an HTTP header, which suits PDFs. Use an absolute URL, and do not send a header canonical and a link element for the same document. Google also says robots.txt is not a canonicalisation tool, because blocked URLs can still be indexed without their content.
Lit, unlit and in-room photographs
Lighting is photographed in states: switched off on white, switched on, and installed in a room at dusk. Each answers a different question, and image search can send visitors to any of them. Google’s image SEO guidance sets the rules that matter.
- Use
<img>elements. Google does not index CSS background images. If a theme swaps an unlit tile photo for a lit one through a CSS background on hover, the lit photo is invisible to image search. - Write alt text that names the state. Google calls alt text the most important image metadata. “Orbit pendant in antique brass, switched on above a dining table” is useful to a screen reader user and to search.
- Name files plainly, such as
orbit-pendant-antique-brass-lit.jpg, and reuse one image URL wherever the photo appears. - Choose the main image with care. For the preferred image, Google advises against text-heavy graphics and extreme aspect ratios. A dimension drawing, or a very tall crop of a long-drop pendant, is better further down the gallery.
The same fitting on many shops
Designer and trade lighting is often stocked by many retailers, many of them starting from the manufacturer’s description. When many pages carry identical copy, yours needs something the others lack. These points are my own advice.
- Write your own opening paragraph about where the fitting works and what it pairs with.
- Add the facts buyers ask that manufacturer copy may skip: whether a lamp is included, the maximum drop, suitability for sloped ceilings, and which dimmers you have tested it with.
- Show the manufacturer’s code as visible text, since many trade buyers search by it. Google’s merchant listing rules say a
skumust not contain whitespace.
Shopping data for fittings with a price
Merchant listing markup can show price, availability, delivery and returns in Google’s shopping features. The rules that trip up lighting sites:
- The price must be greater than zero. Architectural fittings sold on quotation, and chandeliers priced per project, cannot appear as merchant listings.
- Use an
Offer, not anAggregateOffer. Merchant listings are for the seller of the item, so a “from” price spread across sizes needs checking. - Only product pages where the buyer can purchase qualify, not category pages.
- Set delivery and returns once, under
Organization, and override at offer level only where needed, for instance for a large chandelier sent on a pallet or a fitting cut to a custom drop. - Supply crawlable images of at least 50,000 pixels in total, ideally in 16:9, 4:3 and 1:1.
Lighting showrooms can add LocalBusiness markup to their store pages, as Google’s ecommerce structured data overview recommends.
Eight checks for a lighting site
- Open a pendant with several finishes and switch between them. Watch the address bar: does the finish land in a path, a parameter or a fragment?
- Paste one finish’s URL into a private window. It should open with that finish selected, its own photo and its own price.
- View the source and confirm the canonical matches the set-up you chose.
- Run the page through the Rich Results Test. Check that
variesByuses schema.org URLs and that every variant carries an ID. - Apply two technical filters together, such as IP44 and GU10. Is that URL blocked, held in a fragment or crawlable?
- Request a filter combination with no products and confirm the response is a 404.
- Search Google for three of your product codes. Note whether your product page, your PDF or another shop appears.
- Inspect a lit photograph. Is it an
<img>with alt text that says the fitting is switched on?
Lighthouse’s SEO checks, run on five UK lighting product pages on 23 October 2026, passed two pages outright. Two had links without descriptive text, one had a link that could not be crawled, and one had images without alt text, the gap check 8 looks for. A clean Lighthouse SEO score proves little here, though. It never looks at finish URLs, technical filters, canonicals or ProductGroup markup, which make up most of this page.
Lit photography and filter-heavy categories are also where lighting sites lose speed, which I cover in lighting website performance. The broader picture of selling fittings online is in lighting ecommerce, and the lighting configurator demo shows finishes and options chosen on one page. For a review of your own site, see my technical SEO audit or ecommerce SEO services.
Sources
Google documentation, checked October 2026:
- Ecommerce URL structure best practices, for finish URLs and fragments
- Product variant structured data, for
ProductGroupandvariesBy - Managing crawling of faceted navigation URLs (Google crawling infrastructure docs), for technical filters
- How to specify a canonical URL, for spec sheet PDFs
- Image SEO best practices, for lit and unlit photography
- Merchant listing structured data, for prices, offers and delivery
- Structured data for ecommerce sites, for showroom markup
- My own tests: PageSpeed Insights, 5 UK product pages per industry, 23 October 2026, for the Lighthouse SEO findings on lighting pages.