E-commerce SEO for a small store: the pages, the data, the structure
You want products to show for buyers, not bots. This guide gives you the pages to build, the data to send, and the order to do it for a small store.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
Where your products can appear
Your products can show in Search, Images and the Shopping tab. Your store can also show on your Business Profile. You can earn free listings in Merchant Center if you send a feed that matches your pages.
- Search: titles, descriptions and rich results from Product data.
- Images: product images with alt text and structured data image properties.
- Shopping tab: free listings from a Merchant Center feed that matches on-page data.
- Business Profile: opening hours, phone and links. Useful if you also sell in person.
Aim to match product data across all channels. A price on the feed must match the price on the page. The same for availability and variant details.
The three page kinds a store needs
You need category pages, product pages and utility pages. Each plays a role in crawling, ranking and conversion.
| Page type | Purpose | What good looks like |
|---|---|---|
| Category, for example /collections/mens-trainers | Collect demand and pass users to products | A clear h1, a short intro that sets scope, links to subcategories, links to top products, filters that do not create duplicate indexable URLs, breadcrumbs |
| Product, for example /products/blue-suede-trainer | Rank for product-intent queries and convert | Unique copy, key specs, price, availability, images per variant, reviews, Product structured data with offers and aggregateRating, related products |
| Utility, for example /pages/shipping-returns | Build trust and answer concerns | Plain policies, shipping prices, timings, returns. Linked sitewide in header or footer |
Build each category as a real page, not only a filter. Put it in the nav and link to it from the homepage and relevant pages. Add breadcrumbs across the site.
Product pages: data, content and rich results
Product pages win when a buyer gets enough detail to decide. Google also needs structured data to qualify for rich results. Keep both in sync.
- Write a unique description. Do not paste the manufacturer blurb alone. Explain fit, materials, sizing, use and care in your own words.
- Show price, currency, availability and shipping costs or timelines near the add to cart. Keep this consistent across variants.
- Add one image per variant. Name files clearly and set alt text, for example alt="Blue suede trainer, size 9".
- Collect reviews and show an honest average. Use aggregateRating on the product. Do not add self-serving reviews markup on your own organisation page.
- Mark up with Product structured data. Include offers, availability, price, review and aggregateRating when you have them. Use JSON-LD.
Check your markup in Rich Results Test. Fix all errors. Warnings are optional but often worth addressing, for example missing brand or size attributes if relevant.
On Shopify, most modern themes include Product structured data. Inspect the HTML to confirm. You can override or extend with a template snippet if needed. Titles and descriptions live in the product editor. Redirects are in Settings, URL redirects. Add alt text per image in the media panel. The sitemap.xml is automatic. You can edit robots.txt via robots.txt.liquid if you must block noisy tag or vendor URLs.
Merchant Center feed and free listings
Free listings on the Shopping tab come from a Merchant Center feed. Send the same data you show on the page. Mismatches can disqualify items.
Prepare identifiers
Use GTINs where you have them, or MPN plus brand. Set correct condition and availability for each SKU.
Map variants
Each purchasable variant needs its own item in the feed with the same URL and variant attributes. Include colour, size or material where relevant.
Align price and availability
Make stock status and price match the product page and structured data. Update the feed as stock changes.
Submit and monitor
Set up Merchant Center and submit the feed. Fix item-level errors. Keep shipping and returns policies accurate and visible on-site.
If you use a platform app, review the mapping. Check a sample item in Merchant Center against /products/handle to confirm parity on price, sale_price, availability and image_link.
URL structure and variants
Keep one primary URL per product. Handle variants with care. Only give a variant its own indexable URL when people search for it by name or attribute.
- One product URL, for example /products/blue-suede-trainer. Variants, for example size or colour, can share the product URL with a selected state.
- If a variant has demand, for example “blue suede trainer size 9”, you can give it a stable URL and index it. If not, keep it non-indexable and canonical to the parent.
- Keep parameters minimal and consistent. If you use ?size=9, use that one form everywhere. Avoid multiple parameter names for the same thing.
- Set the canonical to the parent product URL from each variant when variants are not meant to rank alone.
On Shopify, product URLs live at /products/handle. Collection variant URLs like /collections/mens-trainers/products/blue-suede-trainer canonical to /products/blue-suede-trainer by default. Leave that in place. It avoids duplicate content between collection and product paths. Tags and vendor pages can create thin lists, usually better kept out of the index.
Facets and pagination without index bloat
Filters create many URLs. Let only useful combinations get indexed. Keep the rest crawlable only if needed for users, not for discovery. Avoid infinite combinations.
- Keep the canonical on the unfiltered category page, for example /collections/mens-trainers.
- Allow indexing of a small set of facet URLs that map to real demand, for example /collections/mens-trainers?brand=acme if you see searches for “mens acme trainers”.
- Block the rest from crawling with robots.txt disallow rules that target parameter patterns, or add noindex. Use fragments, for example #size=9, only for facets that must not be crawled at all.
- Rel next and prev are not used by Google since 2019. Give each paginated page its own canonical, or offer a view-all page if it loads fast enough. Link pages clearly with numbered pagination.
A fixed category looks like /collections/mens-trainers with an h1, a short intro, links to top subcategories, and a grid of bestsellers. Filters exist, but only the few with demand are indexable and linked.
Out of stock, discontinued and seasonal
Do not 404 a product that will return. Keep the page live. Mark availability in structured data. Offer alternatives on the page. Let shoppers sign up for stock alerts if you support that.
- Temporary out of stock: keep the URL, show the status and expected return window if you know it. Keep internal links.
- Gone for good: 301 redirect to the closest alternative product or to the parent category. If there is no close match, 410 is valid.
- Seasonal: keep the page live year round if it earns links or has history. Clarify next availability. Hide from nav when not in season but keep it crawlable.
This protects any rankings and links the product earned. It also avoids soft 404s from weak replacements that do not match intent.
Images, reviews and snippets that help buyers
Images sell. Reviews reassure. Both can make your result stand out if you implement them cleanly and avoid spammy patterns.
- Upload large, sharp images. Provide one per variant. Use descriptive alt text.
- Use the image field in Product structured data. Point to the main product images that match the page content.
- Show real reviews. Mark up aggregateRating on the product, not on list pages or your organisation page. Do not invent ratings.
Speed that meets Core Web Vitals
A slow store bleeds clicks and revenue. Aim for LCP under 2.5 seconds, CLS under 0.1 and INP under 200 ms. Test on mobile first, as Google does.
- Optimise the hero image on /products/handle and /collections/handle. Compress and serve modern formats.
- Lazy load below-the-fold images. Preload the main product image and key font files.
- Trim third-party scripts. Remove unused apps. Defer non-critical JS and CSS. Keep the cart and analytics, but question every widget.
- Use the Search Console Core Web Vitals report to see which templates fail. Fix shared issues at the theme level so every product benefits.
The order of work for a 200 product store
Ship the highest gain changes first. Work template by template so fixes scale across products and categories. Keep a weekly loop with Search Console.
Fix discoverability and structure
Check your sitemap.xml exists and is linked in robots.txt. Ensure categories are linked from the homepage and each has a unique h1 and intro. Add breadcrumbs.
Stabilise URLs and canonicals
Confirm one URL per product. Keep Shopify’s canonical from collection-product to product. Set canonicals from non-indexable variants to the parent.
Implement Product structured data
Add offers, price, availability, reviews and aggregateRating. Test with Rich Results Test. Roll out in the theme so all products get it.
Submit a clean feed
Set up Merchant Center. Map variants correctly. Align price and availability with the page and markup. Fix disapprovals.
Tighten facets and pagination
List the few facet combinations with demand and allow them to be indexed. Disallow noisy parameters in robots.txt. Set pagination without rel next or prev.
Write or improve 50 product pages
Start with top sellers. Replace manufacturer text with unique copy. Add variant images and alt text. Add FAQs if buyers ask the same things.
Tune category pages
Add a short intro. Link to top subcategories and top products. Remove indexable duplicates created by filters.
Improve speed
Compress images. Lazy load below-the-fold. Remove slow apps. Measure LCP, CLS and INP by template and iterate.
Add internal links
From blog guides to categories and products, for example from /guides/getting-started to /collections/mens-trainers and /products/blue-suede-trainer.
Monitor and expand
Use the Search Console Performance report. Find queries where you are close to page one. Improve those pages and consider variant URLs where demand exists.
Questions
It is how your store earns visibility in Search, Images and the Shopping tab. You align pages, product data and site structure so buyers can find and choose your products.
Yes, for a small store. Work on templates, not one page at a time. Ship clean category pages, unique product copy, Product structured data, a matching feed and fast pages. Use Search Console to track progress.
Start with Google’s guidance for ecommerce sites as of 2026. Read about Product structured data, Merchant Center feeds, facets, pagination and Core Web Vitals. Then fix one template at a time and check results in Search Console.
Yes if you want free listings on the Shopping tab. Structured data helps rich results in Search. The feed powers free listings. Keep both in sync on price and availability.
Only when buyers search for them. Keep most variants on the parent product URL with a consistent parameter or a selected state, and canonical back to the parent.
Keep the URL live if the product will return. Mark it out of stock in structured data and on the page, and show alternatives. If it is gone for good, 301 to the closest match or the category, or 410 if there is none.
Sources
- Google Search Central: Best practices for ecommerce sites
- Google Search Central: Introduction to product structured data
- Google Merchant Center: About free listings
- Google Search Central: Pagination guidance
- Google Search Central: Faceted navigation
- Google Search Central: Spam policies for web search
- web.dev: Core Web Vitals
- schema.org: Product
Check my site, free
Want a fast read on your store’s pages, searches and rivals from a URL in about thirty seconds, free, with three findings shown whole? Try Porteur’s check.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideProduct page SEO: what a buyer and a crawler need on the page
- GuideCategory page SEO: the page that ranks for the product type
- GuideFaceted navigation SEO: which filters to index and how to hide the rest
- GuideOut of stock product pages: keep, redirect or retire
- GuideProduct schema: the fields Google reads and the ones it requires
- GuideCanonical tags: what they do and the mistakes that cost rankings
- GuideE-commerce site structure: categories, products, and the links between
- GuideThe best SEO tools for a small business: the free set plus one