Bikes are searched for in a way few other products are. Many buyers type a model name with a year after it and compare stack and reach across brands. Then they want to know whether their frame size is in stock. One model can come in six sizes, two colourways and three builds. Next spring it returns with the same name and new paint.
A generic SEO checklist misses most of this. This guide works through the problems particular to selling bikes, using Google’s documentation, linked where each rule comes from. Where a point is my own advice rather than Google’s, I say so.
Frame sizes are variants; builds usually are not
Google’s ecommerce URL guidance says each variant should be identifiable by its own URL. For a bike, the natural variants are frame size and colourway. A parameter such as /bikes/gravel-al-2?size=56 works, and so does a path. A fragment such as #size-56 does not, because Google ignores everything after the # when indexing.
Google’s product variant documentation offers two set-ups. In the single-page version, the model page carries one canonical URL for the whole group. Each frame size must then be preselectable through its own URL, showing the correct price and stock, and must be addable to the basket. Many cycle retailers already list each frame size as a variant, so this set-up usually fits.
The harder question is builds. The variesBy property accepts only six values: color, size, material, pattern, suggestedAge and suggestedGender. There is no value for groupset tier, wheelset or e-bike motor. A model sold in three build levels is, in markup terms, three products. My advice is to give each build its own page and its own ProductGroup, with sizes and colours as the variants inside it.
Frame material is the awkward middle case. Google does allow material, so a carbon and an aluminium version could share a group. In practice they usually differ in price, weight and geometry, and buyers search for “carbon gravel bike” as a category of its own. I would treat them as separate products.
Every size needs its own SKU or GTIN, and the group needs an ID too. If you use both productGroupID and inProductGroupWithID, Google says the values must match. Shops running large size runs on WooCommerce will find more on this in variable products at scale.
Model years and the bikes that never go away
Many cycle brands update their models each year, often keeping the name. That leaves a choice for each model: one address that is updated every year, or a new address per model year.
My view is that one evergreen URL per model suits most shops. Reviews, forum links and press coverage build up on a single address instead of being split across years. Put the model year in the title and on the page so the buyer knows what they are looking at.
The exception is when two model years are on sale together, typically last season’s stock at a reduced price alongside the new version. Those are different products with different prices and specs. Give each its own page with a self-referencing canonical, and link the two to each other.
Discontinued bikes are the bigger problem. An old model page may hold links from reviews written years ago. Google’s canonical documentation describes a permanent redirect as a strong signal, meant for retiring a duplicate. A successor is not strictly a duplicate, so this is my advice rather than Google’s:
- Direct successor exists: a permanent redirect to the new model carries the old address forward.
- No successor: keep the page as an archive with geometry and specification, marked as no longer sold, linking to current alternatives. Owners hunting for spares or their frame size still use these pages.
Google’s suggestion to noindex or 404 an empty category is about category pages. It is not a rule for a single discontinued bike, and it should not be read as one.
Geometry charts and spec sheets as readable text
Geometry is where serious buyers spend their time, and it is sometimes published only as an image exported from the brand’s PDF. Google’s image SEO guidance says alt text is the most important image metadata. Even good alt text cannot carry a full table of stack, reach, head angle and seat tube length for six sizes.
Publish geometry as an HTML table, one column per size, with the diagram beside it. Add the rider height range for each size as text. Google also advises against text-heavy images when choosing a page’s preferred image, so a geometry chart should never be the main product photo. If the diagram is an inline SVG, give it a <title>.
Many brands also supply spec sheets as PDFs that duplicate the product page. Google’s canonical guide notes that a canonical can be sent in the HTTP header, which suits non-HTML files such as PDFs.
Dealers often receive the same brand description as every other shop. My advice is to add your own notes: who the bike suits, what changed from last year and what your workshop checks before handover.
Category pages and filters for bikes
A bike category might filter by type, frame size, wheel size, frame material, brake type, motor system, model year and price. Google’s faceted navigation guide warns that crawling filter combinations can use a lot of server resources and slow the discovery of new pages.
Pick the filter pages worth ranking and build them as proper categories with their own copy. Examples might be women’s hybrid bikes, carbon road bikes or kids’ 24-inch bikes. For the rest, Google’s options are a robots.txt rule that blocks filter parameters while product pages and one unfiltered listing stay crawlable, or filters kept in a fragment. A canonical or nofollow on filter links can help, but Google calls both less effective in the long term.
Frame-size filters deserve particular care. Their results change daily as sizes sell through, so I would block them from crawling entirely.
If filters live in the path, such as /bikes/gravel/carbon/, Google asks for a consistent filter order and no duplicate filters. Combinations with no results, such as a kids’ bike filtered to a 58 cm frame, should return a 404 at that URL rather than redirecting elsewhere.
Shopping results for collect-only and dealer bikes
Merchant listing markup can put price, stock, delivery and returns into Google’s shopping features. Several of its rules matter more for cycling than for most trades:
- Only pages where the buyer can buy qualify. A brand site that sends buyers to dealers is not eligible. Nor is a dealer-only model with no buy button.
- Price must be above zero. “Call for price” bikes cannot appear in merchant listings.
- Use an
Offer, not anAggregateOffer. Watch for themes that mark up a “from” price across builds or sizes. - Set delivery once, then override. Google recommends a shipping policy under
Organization, with offer-level details only where they differ. Bikes that are built and checked before dispatch, or are collect-only, are typical overrides. - Condition is a single value. New, refurbished or used: an ex-demo or ex-hire bike should carry the one that matches its description.
- Images need to be large and crawlable, at least 50,000 pixels in total (width times height), ideally in 16:9, 4:3 and 1:1. A side-on bike suits the wide formats; a square crop needs space above and below the frame.
Shops with a workshop or showroom should add LocalBusiness to each store page. For store pages, Google’s ecommerce structured data overview also suggests a Business Profile and store codes in Merchant Center.
Custom builds and configurators
A bike configurator can produce thousands of combinations of stem length, bar width, saddle and wheels. None should be indexed as a separate page. Keep the tool on the canonical model page. Use a parameter only when a choice matches a real SKU, and keep everything else in a fragment or a saved-build link. Copy and images must not depend on the configurator’s JavaScript. See the bike configurator page and the cycling configurator demos.
A checklist for a bike shop SEO review
- Pick three models and request each frame-size URL directly. Each should open with that size selected and a canonical pointing to the model page.
- List last season’s model names and request their old URLs. Note which return a page, a redirect or a 404, and where the redirects land.
- View source on a product page and look for the geometry table as text.
- Validate the markup on a model sold in several builds. Check that builds are not grouped as variants of one product.
- Look at robots.txt for size, wheel-size and material parameters. Try a filter combination no shop could stock, and check the status code is 404.
- Compare the
Offerprice in the markup with the price shown on a bike sold in several builds. - Check delivery markup on collect-only and part-built bikes.
- Confirm each store page has
LocalBusinessmarkup and matches its Business Profile.
On Lighthouse’s SEO checks, the four bike product pages I tested in October 2026 scored between 69 and 92. Two had images without alt text, which matters when photos carry so much of a bike’s detail. One lacked a meta description, one had link text Lighthouse judged not descriptive and one had links it could not crawl. The 69 belonged to a page blocked from indexing; that may be intended, but it is worth confirming on your own model pages. Lighthouse’s SEO audit covers only a handful of basics, and frame sizes, model years and offers are not among them.
For the commercial side of selling bikes online, see cycling ecommerce. Large galleries and size pickers also affect speed, covered in bike website performance. My ecommerce SEO audit covers all of the above. A migration review protects old model URLs when you change platform.
Sources
Google documentation, checked October 2026:
- Ecommerce URL structure best practices
- Product variant structured data
- How to specify a canonical URL
- Image SEO best practices
- Managing crawling of faceted navigation URLs (Google crawling documentation)
- Merchant listing structured data
- Structured data for ecommerce sites
My own tests: PageSpeed Insights, 5 UK product pages per industry, 23 October 2026 (the Lighthouse SEO results for bike pages above).