Shopify on-page SEO

Shopify product page SEO, and which page should win each search

Product page SEO on Shopify starts by giving each search one page that can win it, with collection pages taking category searches like "women's compression leggings" and product pages taking specific model, size and use searches plus Google Shopping. Then you fill in what Google reads on those pages (the SEO title and meta description in admin, the description your theme actually prints, product structured data and image alt text) and point your internal links at that one page.

By Lorea Lastiri·October 2026·10 min read

Collection pages win category searches. Product pages win specific ones (a model, a size, a use), and they're the pages Google Shopping sends people to. A lot of product page SEO trouble starts before any title tag is written, with two pages chasing one search.

So start with a map. List the searches you want, decide which page type can win each one, and give every search one page of its own.

Search typeExamplePage that should winWhat to put where
Categorywomen's compression leggingsCollectionCategory phrase in the collection title and SEO title. One or two lines of intro where the theme prints them, longer buying help below the grid.
Category plus an attribute people searchblack compression leggingsIts own collection if you stock enough of it, otherwise the main collectionA collection with its own title and description, instead of a filter URL.
Specific product or modelbrand and model name, or model plus sizeProduct pageModel name and the searched attribute in the SEO title. Specs, sizing and use in the description your theme actually renders. Product structured data.
Size or color of one productmodel name in navy, size MThe same product page (variant)Options as variants, alt text on each variant image that names the color.
Question or usewhich compression level for long flightsGuideThe answer, then links to the one product or collection that fits.
Shopping resultsany product search showing product listingsProduct page, through your feedClean feed data and structured data pointing at one main product page.

One collection per category intent

If two phrases return the same results (search both and compare), treat them as one intent. Build one collection, put the bigger phrase in its title and use the other in the description. Two near-identical collections split your links and leave Google to pick between them.

Don't make products compete with their own collection

A single product shouldn't target the category phrase its collection exists for. Give the product its own words (model name, size range, the job it does) and let it link up to the collection. If a product's title reads like a category, it's competing with the page above it. That's ordinary category page SEO, with the category page called a collection.

Product page title tags and meta descriptions in Shopify admin

Every product and every collection has its own Page title and Meta description fields, in a section called Search engine listing. For a product, go to Products, open it, find Search engine listing and click the pencil icon. For a collection, go to Products, then Collections, open it and do the same. The URL handle sits in that same panel (Shopify's steps for products).

Shopify warns that titles over 70 characters and descriptions over 320 characters might get cut off in results. Your theme then builds the final tag, and Shopify says themes generate title tags that include your store name. If you've left the fields blank, don't guess what prints. Open the live page source and search for <title> and name="description".

What to write

Google generates title links automatically and uses your meta description only sometimes, so treat both fields as your best suggestion. Unique, descriptive titles give it the least reason to swap in something else.

Change handles rarely

Shopify notes that editing a handle too often can keep the page out of search results, and the collection settings offer to create a redirect from the old URL when you change one. Whatever the page type, check that the old address redirects before you move on. On a US medical-compression Shopify store I've worked with, renaming the blog base broke the guide URLs. The 404s were caught in week three, six redirects shipped, and the guides were then consolidated on a new learning center. Over matching windows those guides went from 22 to 1,821 impressions and from 0 to 18 clicks at the new addresses, all six indexed and the old addresses redirecting.

Shopify collection page SEO starts with where the description prints

Write a short intro for shoppers and put the longer copy where your theme actually prints it. A collection description in admin does nothing for search if the template hides it.

Shopify's own SEO guidance asks for readable, unique phrases that include some of your keywords, and suggests at least 250 words of descriptive text per page. On a collection I'd split that. One or two sentences above the grid confirm the shopper is in the right place. The rest (how to choose, sizing notes, links to your guides) goes below the grid, where it doesn't push products down the screen.

Whether you can do that depends on the theme. Open a collection template in the theme editor and check what the banner or header section displays, including any setting that shows or hides the description. Copy below the grid usually means a custom field (a metafield) connected to a section. Then load the live page and search for one of your sentences. If it isn't on the rendered page, it isn't helping you rank.

Shopify product page SEO starts with a theme that prints your description

Product copy only counts if the theme renders it. Before rewriting anything, open a live product page and search it for a sentence from the description in admin.

In Liquid, the standard description is product.description. A theme can also build the page from custom fields (product.metafields) through its sections and blocks, and some never print the standard description at all. That's a valid design choice. It turns into an SEO problem when the team keeps editing the field nobody sees.

What this looked like on a real store. On that same medical-compression store, links added to product descriptions were invisible. The theme rendered product pages from custom fields (metafields) and never printed the standard description. I diagnosed it from the live storefront and prepared a related-guides panel driven by a per-product field. That was a proposed fix, not a measured result.

Once you know where copy prints, write the facts shoppers compare, such as fit and sizing, materials, the specific use, what's in the box, care, and how this model differs from the one next to it. Those details are also the words specific searches contain, which is why a product page can win them and a collection can't. If your supplier's text appears on dozens of other stores, rewrite at least the parts that answer those questions.

Check the structured data your theme outputs

Test what your theme already outputs before adding any markup. Shopify gives themes a Liquid filter, structured_data, that converts a product into schema.org data, giving a Product when it has no variants and a ProductGroup when it has one or more (Shopify's filter reference). Your theme may use that filter, write its own JSON-LD or leave the job to an app.

Paste a product URL into Google's Rich Results Test and read the result. You want one product block with the right price, currency and availability. If a reviews or SEO app adds its own block, compare the two and keep the one with correct data.

Google's product structured data docs recommend merchant listing markup for pages where people can buy from you. Product snippets also cover pages where people cannot buy directly, such as reviews, and a merchant page may qualify for both. Variant markup helps Google understand which products are variations of one parent.

Images and alt text

Give every product image alt text that describes what's in the photo, in the words a shopper would use. In admin, open the product, click an image, choose Add alt text and save. Shopify allows up to 512 characters and recommends 125 or fewer.

Google calls alt text the most important attribute for image metadata and warns that stuffing it with keywords can look like spam. Compare alt="compression stockings compression socks medical" with alt="Black thigh-high compression stocking, open toe, side view". The second one helps image search and screen readers. Google also asks for short, descriptive file names, so rename IMG_4021.jpg before you upload.

On color variants, name the color in each variant image's alt text.

Point every guide, menu link, ad and feed at the one product page you want to rank. Links spread across duplicates or hidden pages split demand you already have.

Check product status first. Shopify's Unlisted status adds a noindex,nofollow robots tag, leaves the product out of the sitemap, and hides it from Shopify-powered collections, search and recommendations. The page still renders for anyone who has the direct URL (Shopify's Unlisted docs). So an Unlisted page can keep collecting visits from old links and feeds while asking Google not to index it.

The store evidence. On the same store, a routine pre-publish check found that the store's best organic product page (most organic clicks in the first month) and a second page for the same garment were set to Unlisted with a noindex tag. That split one garment's demand across three product pages, and most recent clicks were recorded against feed-tagged or variant URLs rather than the clean addresses. Every guide link and a paid placement were rerouted to the live product page, and the store chose one main page. That page went from 25 to 71 clicks (August 31 to September 23 versus the same span a month earlier, address and feed variants included). Feed cleanup and full consolidation were still unfinished at last check.

Two habits help here. Link guides to the product's plain address (/products/your-handle), and when you retire a duplicate, make sure its old address sends people and Google to the main page. To see which page Google already favors for a search, use the Performance report in Search Console filtered by query. Read product page positions with care. Check the search type, search appearance and included URLs before treating an average position as a standard text-result ranking.

Variants or separate products?

Use variants when versions differ only by options a shopper picks on the page, like size or color. Use separate products when people search for each version by its own name.

In Shopify, each combination of option values is a variant, and all of them live on one product page. A variant's URL is the product address plus ?variant= and an ID. That keeps reviews and links together, which suits sizes. Separate pages make sense when versions have their own model names, materials or uses that people type into Google, because then each one has a search it can win.

If you do split, keep the split deliberate and keep a record of which page is the main one. Three product pages for one garment, two of them carrying a noindex tag, is what divided demand on the store above.

Filters and the URLs they create

Filters create a new URL for every combination, and most of those don't need to be indexed. Shopify's storefront filters add parameters such as ?filter.v.option.color=red or filter.p.vendor= to the collection address, and they stack.

Google's advice on faceted URLs is to prevent crawling of them if you don't need them indexed. A canonical tag pointing at the unfiltered page may reduce crawling over time, but Google says it is less effective than preventing unwanted crawling (Google's faceted navigation guide). When one combination has real search demand of its own, build it as a collection with a title and description instead of relying on a parameter URL. Canonicals, collection-scoped product URLs and tag pages are covered in my Shopify duplicate content guide.

Where to start on your own store

Start with the pages that already get impressions, because Google has already paired them with searches.

  1. Export your top queries and pages and fill in the map from the first section.
  2. Fix any search with two pages chasing it, and any product that targets its own collection's phrase.
  3. Check that your key products and collections print their descriptions, and run one product URL through the Rich Results Test.
  4. Rewrite titles and meta descriptions on pages with plenty of impressions and few clicks.
  5. Point guide links at the main product or collection, and check the status of anything that should rank.

For a sense of how search numbers can move over a few months, the Shopify hardware store case went from 264 to 492 organic Google clicks (+86%), comparing March 2 to 29 with August 6 to September 2, while average position moved from 17.8 to 12.2. Organic revenue was flat (July versus August), so read it as proof of search growth only.

If you'd like to see where your own product and collection pages lose buyers, send your store URL for a Sales Leak Report. For the whole-store version of this list, use the Shopify SEO checklist, and if you want the work done for you, see Shopify SEO services.

Questions

Where do I edit the SEO title and meta description for a Shopify product?

In your Shopify admin, go to Products, open the product and find the Search engine listing section. Click the pencil icon to edit the Page title, Meta description and URL handle, then save. Collections work the same way under Products, then Collections.

Should my collection page or my product page target category keywords?

The collection page. Category searches like "women's compression leggings" want a range to choose from. Product pages should target the specific searches, such as model name, size, material or use.

Why don't the links in my Shopify product descriptions show up?

Your theme may build product pages from custom fields (metafields) and never print the standard description. Search the live page for a sentence from the admin description. If it isn't there, move the content into the field your theme renders.

Should sizes and colors be variants or separate products?

Use variants when shoppers pick the option on the page and search for the product by one name. Use separate products when each version has its own name, material or use that people search for.

Do Shopify filter URLs hurt SEO?

Filters add parameters to collection URLs for every combination. Google suggests preventing crawling of filtered URLs you don't need indexed. If one combination has real search demand, give it its own collection instead.

Next step

See where your store leaks sales.

Send your store. I'll show you, in writing, where your product and collection pages lose search buyers and what I'd fix first.

Opens the four-field form on the homepage•By email within 24 hours•No cost, no call, no store access needed
Keep reading

More from the Shopify SEO work.