Rank Rays logo

Content & Ecommerce SEO

10 Category Page Fixes That Help Ecommerce Products Rank

By Muhammad Shakeel · Oct 29, 2026 · 17 min read

Empty category pages don't rank. 10 fixes: copy, titles, facets, pagination, links, and stock handling that turn category pages into pages Google wants to rank.

Share this article:

Most ecommerce stores treat the category page as a container. A title, a product grid, maybe a sentence of copy, and done. The real SEO effort goes into product pages and blog posts. That is backwards.

Category pages target the broad, commercial keywords shoppers actually type: "running shoes," "leather sofas," "wireless headphones." A product page can only rank for terms tied to that one product. A category page can rank for the whole family of searches around a product type, including buying questions and comparisons. It also collects authority: internal links from the navigation, blog posts, and guides flow into it, and every product inside it gets lifted when it ranks.

Here is the honest core of this post. A category page is a landing page that happens to sell. It needs words, structure, and internal links like any landing page, plus ecommerce-specific machinery: filters, pagination, stock states, and schema. The 10 fixes below cover both sides. None of them require a redesign. Most take an afternoon.

Why category pages matter more than product pages

Illustration of a category page as a storefront window lifting many product cards at once, beside a single standalone product card, showing why category pages carry more ranking leverage

When a shopper has not chosen a product yet, Google tends to rank pages that offer a choice. Search "men's trail running shoes" and you will see category pages from retailers, not a single shoe. Search the exact model name and the product page wins. That split is the whole strategy: category pages own the broad searches, product pages own the specific ones.

This is why thin category pages are so expensive. The broad searches carry the most volume, and the page built to win them is the one with no copy, no internal links, and a title tag that says "Shoes." Meanwhile the store pours effort into 400 product pages competing for long-tail terms one at a time.

There is a second reason. A category page is the best link distributor a store has. It sits one click from the homepage and one click from every product it lists. Fix its copy and structure once, and every product underneath it benefits. Fix a product page and only that product benefits. The difference in payoff is not close.

The 10 fixes are grouped into 4 parts: making the page worth ranking, stopping index bloat, connecting the store, and finishing the details. Work them in order.

Part 1: Make the page worth ranking

Illustration of a category page layout with short intro copy above the product grid and longer buying-guide copy below it, showing where the words go

1. Give the page real copy, above and below the grid

A category page with no text is a page with no context. Google can see the products, but it has to guess what the page is about, who it is for, and why it deserves to rank above 50 other stores selling the same things.

The practical split, tested on Shopify's Dawn theme: 40 to 80 words above the product grid, 200 to 500 words below it. The top text is a short intro that names the category, the main keyword, and who it is for. The bottom text is buying advice: how to choose, what features matter, sizing guidance, care notes. That is where most of the keywords live.

Placement matters for shoppers, not for Google. A 500-word buying guide above the grid pushes products down and hurts conversions. Put it below the grid. Google indexes the entire page regardless of where the content sits, so you lose nothing by keeping products visible first.

Write the copy for the shopper, not the keyword count. "Our trail running shoes" repeated 12 times reads like a page from 2012. One natural mention of the category keyword in the heading, one in the first sentence, and then useful buying detail does the job. Shopify's own guidance says the same: helpful, reliable, people-first content, with original copy replacing anything the manufacturer supplied.

2. Write a unique title and meta description for every category page

The title tag is the single highest-impact line on a category page, and it is the one most stores leave on autopilot. "Shoes | Store Name" tells Google nothing. "Men's Trail Running Shoes | Shop Waterproof & Lightweight Pairs Online" tells Google the keyword, the attributes shoppers search for, and the intent.

Give each category one target keyword, the phrase a shopper would actually type. Put it near the front of the title. If there is room, add a secondary keyword or a store benefit, like "free delivery" or "30-day returns." Keep it near 60 characters so it does not get cut off in results.

The meta description is the ad under the title. Work the keyword into it and write for the click: what the shopper finds on the page and why this store. Keep it between 150 and 160 characters.

Then audit the boring part: no two category pages should share the same title or description, and none should share the homepage's. Duplicated titles across 30 collections are one of the most common findings in a store audit, and they are a 10-minute fix per page. If your store has hundreds of categories, start with the 10 that earn the most revenue and work down.

Part 2: Stop the index bloat

Illustration of faceted filter options funneling into a few clean category pages while duplicate filter URLs fade away, showing selective indexing of filtered URLs

3. Stop faceted filters from flooding the index

Filters are the biggest technical SEO problem in ecommerce. Size, color, price, brand, rating: a category with 10 filterable attributes and 5 options each can generate millions of URL combinations. Most of those combinations are thin or duplicate pages that burn crawl budget and dilute the category's authority.

The fix is selective indexing, and it is a decision, not a tool. Index the filter combinations with real search demand. "Red leather sofas" gets searched; index it. "Blue sofas under $200, size small, 4 stars and up" does not; keep it out of the index with a noindex tag or a canonical pointing at the parent category. On Shopify, this is mostly handled for you: the default robots.txt excludes filtered URLs from indexing, and sort and filter URLs canonicalize to the parent collection.

Two mistakes to avoid. First, do not block faceted URLs with robots.txt on a custom platform when your plan depends on canonical tags or noindex directives. A robots.txt block stops Google from crawling the page, which means it never reads the canonical or the noindex. The signals you are counting on are invisible. Use the tags and let Google crawl.

Second, watch single tag and attribute URLs. On Shopify's Dawn theme, sort and filter URLs are canonicalized, but single tag URLs stay indexable with their own canonical. If your theme links to tag pages that have no search demand, noindex them or canonicalize them to the parent collection. If a tag matches a real search, build it a proper collection instead, with its own title and copy, so it can rank on its own merits.

4. Fix pagination the modern way

Category pages with 200 products need pagination, and pagination done wrong either hides products from Google or splits the category's authority across a dozen thin pages. The old advice centered on rel=next and rel=prev markup. Google retired those as an indexing signal in March 2019 and confirmed it does not use them at all. Bing still reads them, and they are harmless to keep, but they are not the mechanism. Links and canonicals are.

Each paginated page should canonicalize to itself, with real crawlable links to the other pages in the series. Do not point every page's canonical at page 1. That was a popular trick for years, and it can reduce crawling of the deeper pages and the products on them. Each page lists different products, so each page is the canonical version of itself.

Do not noindex page 2 and beyond either. Pages that are noindexed tend to be crawled less over time, which weakens the path to the products listed on them. Keep the normal category pagination indexable. Add the page number to each page's title ("Men's Trail Running Shoes - Page 2") so the pages are distinguishable in search results, and keep paginated pages out of the XML sitemap: list page 1 and the individual products, and let crawlers find the paginated pages through links.

One more: if the category uses load-more buttons or infinite scroll, back them with real paginated URLs. Crawlers do not scroll. Without those URLs, Google only ever sees the first batch of products.

Part 3: Connect the store

Illustration of a category page as the central node of an internal link map connecting the homepage and product pages, with one dimmed out-of-stock product, showing store connection and stock handling

5. Link category pages into the site like they matter

A category page that is only reachable from the navigation menu is a page with one internal link. Google's own link guidance says every page you want indexed should have at least one internal link, but one is the floor, not the target. Category pages deserve a link structure that matches their importance.

Start with the patterns that move the most weight. Link from product descriptions to the parent collection, using the collection's target keyword as the anchor text: "men's trail running shoes," not "back to category." On broad collection pages, link down to narrower sub-collections in the copy. Link from blog posts and buying guides to the relevant category with contextual anchors, the way this post links to related reading.

Put these links in real HTML body copy. Most stores rely on "you may also like" carousels, which are fine for shoppers but are often JavaScript-rendered and may not be crawled reliably. A deliberate link inside a product description or a category intro is crawlable, carries anchor text, and tells Google exactly what the linked page is about.

Two anchor rules. Use descriptive anchors that reflect the linked page's content, never generic "click here." And do not overdo it: a category page does not need 40 internal links. It needs the right ones: navigation, parent and child categories, featured products, and relevant guides. Keep the URL structure clean while you are at it. The proven pattern is a three-tier hierarchy, /category/subcategory/product/, with categories named for keywords shoppers use rather than internal org-chart labels, 5 to 10 subcategories per parent, and every category reachable from the main navigation.

6. Handle out-of-stock products so categories do not rot

Nothing degrades a category page faster than a grid of dead ends. A shopper clicks a product, lands on "out of stock" with no alternatives, and leaves. Google sees the same thing: a page that cannot satisfy the visit. Stock handling is a category-page fix because the category is where the damage shows.

For products that will come back, keep the page live with a 200 status and say so clearly. Show the out-of-stock status next to the price, not buried after the add-to-cart click. Add a restock email alert, show in-stock alternatives in the same price range, and keep the useful content: specs, manuals, reviews. Google's John Mueller has said that marking a product out of stock, using a 404, or adding noindex can all work for search, but keeping the page live is the most customer-friendly option, and it preserves the rankings and links the page earned.

For products that are gone for good, match the treatment to the situation. A direct successor exists: 301 redirect the old URL to the successor. No successor but the product still gets searches or links: keep a helpful page pointing at alternatives. No value at all: let it return 410 or 404 and remove it from the sitemap. What you must not do is redirect every discontinued product to the homepage. Google treats mass homepage redirects as soft 404s, and the shopper learns nothing.

Two details most stores miss. Handle variants individually: when one size or color sells out, keep the main product page live and mark the variant unavailable in the selector, instead of killing the whole page. On Magento, stock is managed per variant through configurable products, so use that granularity instead of killing the whole page for one dead variant. And keep the structured data honest: the Product markup should reflect the real availability using schema.org's OutOfStock, PreOrder, or BackOrder values, matching what the shopper sees on the page.

Part 4: Finish the details

Illustration of a smartphone displaying a category page under a magnifier with a checkmark badge, showing the mobile parity and detail checks

7. Add schema that matches the page

Category pages are eligible for more structured data than most stores use, and the rich results are worth having. The baseline is BreadcrumbList: it shows the category path in search results and reinforces the site hierarchy. On the page itself, mark the product grid as an ItemList so Google understands the listing structure.

Then be selective. Add Product schema to featured or linked products with accurate price, availability, and review data, which can earn rich results showing all three directly in the listing. If the category page carries a genuine FAQ section, add FAQPage schema built verbatim from the visible questions and answers, never invented. Do not add schema for content that is not on the page. Every rich result Google shows is a promise the page has to keep, and mismatched markup is one of the fastest ways to lose the feature.

The availability point from fix 6 applies here too. Product markup with the wrong availability is worse than no markup: it shows "in stock" in search results for a product the store cannot ship. Keep the feed, the page, and the markup in sync, especially after inventory updates.

8. Write real alt text for category and product images

Category pages are image-heavy, and most of that image content is invisible to search engines because the alt text is empty or useless. "image1" and "shoe" describe nothing. Alt text is how Google understands what the image shows, and for image links, the alt text serves as the anchor text.

The standard is simple: describe the product with its distinguishing attributes. "Unisex Acne Studios crewneck sweater front view" tells Google the brand, the product, the view, and the audience. Add color, material, or gender terms where they are real: "red leather ankle boots side view." Those attribute words are also the long-tail terms shoppers search for, so good alt text pulls double duty.

Apply the same standard to category hero and banner images, and to lifestyle shots in the buying-guide copy. Decorative images, the ones that add no information, should have empty alt attributes so screen readers skip them. Every informative image should have text a person would find useful if the image failed to load. That test catches nearly all bad alt text.

9. Keep the mobile category page equal to the desktop one

Google uses the mobile version of the page as the primary ranking signal for all results, including desktop. This is mobile-first indexing, and it has a specific failure mode on ecommerce sites: the mobile template strips the category description, lazy-loads the review content, or drops the schema markup the desktop version renders. If Googlebot's mobile crawl reaches a thinner page, the thinner page is the one that ranks.

Check parity deliberately. Open the category page as Googlebot Smartphone sees it, using Search Console's URL Inspection tool, and compare it against the desktop render. The copy, the product grid, the internal links, and the schema should all be present on both. Pay attention to content hidden behind tabs and accordions on mobile: it is still indexed, but content removed from the mobile template entirely is gone from Google's view of the page.

Speed is the other half of mobile. Category pages are heavy: product images, filter scripts, carousels. Aim for the Core Web Vitals thresholds on the category template, a largest contentful paint under 2.5 seconds, interaction under 200 milliseconds, and minimal layout shift. Compress the product thumbnails, defer the filter scripts, and test on a real mid-range phone, not just a fast office connection.

10. Give every category page a reason to exist

The final fix is subtraction. Most stores accumulate category pages the way attics accumulate boxes: a collection for every tag, a landing page for every campaign, three near-identical categories created by three different people. Each thin page competes with the others, splits internal links, and gives Google one more page to crawl that adds nothing.

Audit the catalog with one question per page: does this category have enough products and a distinct keyword to justify its existence? A collection with 3 products targeting a keyword nobody searches is not a page, it is clutter. Merge near-duplicates into the stronger page with a 301 redirect. Delete the campaign pages that outlived the campaign. Build proper collections only for searches with real demand.

Then enforce the structure going forward. Base categories on keyword research, not internal org charts. Keep 5 to 10 subcategories per parent so no level sprawls. Require a unique title, description, and at least a short intro for every new collection before it goes live. A category page that cannot pass those checks does not get published. That rule, applied for a year, prevents every other fix on this list from being needed twice.

The comparison table: fix, what breaks without it, and the check

FixWhat breaks without itThe 5-minute check
Real copy above and below the gridGoogle guesses what the page is about; thin pages lose broad searchesEvery top-10 revenue category has 40 to 80 words above the grid and buying advice below it
Unique titles and meta descriptionsDuplicate titles compete with each other and get truncated in resultsNo two category pages share a title; each carries one target keyword near the front
Selective indexing of filtered URLsMillions of thin filter URLs burn crawl budget and dilute authorityOnly filter combinations with real search demand are indexable; the rest carry noindex or canonical
Modern paginationProducts on page 2+ stay undiscovered; authority splits across thin pagesEvery paginated page has a self-referencing canonical, real links, and a page number in its title
Internal links in real HTML copyCategory pages sit on one nav link; products get no anchor-text liftProduct descriptions link to the parent collection with the target keyword as anchor
Out-of-stock handlingDead ends frustrate shoppers and rot the category's rankingsTemporarily unavailable products show status, alternatives, and restock alerts; discontinued ones redirect properly
Matching schemaNo rich results; wrong availability shown in search listingsBreadcrumbList and ItemList on the category; Product markup with accurate price and availability
Real alt textProduct images are invisible to search; image links carry no anchor textEvery informative image has descriptive alt text with real attribute terms
Mobile parityGoogle ranks the thinner mobile version of the pageURL Inspection as Googlebot Smartphone shows the same copy, links, and schema as desktop
Pruning thin categoriesNear-duplicate collections compete with each other and waste crawl budgetEvery live category has enough products and a distinct searched keyword to justify itself

Frequently asked questions

Should the category page or the product page rank first?

It depends on the search. When the shopper has not chosen a product yet and searches a broad term like "wireless headphones," Google tends to rank category pages that offer a choice. When the search names a brand, model, or exact attributes, the product page wins. Aim both at their own intent instead of making them compete: the category targets the broad term, the product targets the specific one.

How much copy does a category page actually need?

Enough to explain the category and help the shopper choose. A tested split on Shopify is 40 to 80 words above the product grid and 200 to 500 words of buying advice below it. The top text names the category and its main keyword; the bottom text answers buying questions. Put the longer content below the grid so products stay visible, since Google indexes the whole page wherever the content sits.

Should I noindex my filtered URLs?

On Shopify, filtered collection URLs are already excluded from indexing by the platform's default robots.txt, so check that first before adding anything. On a custom platform, noindex the utility filters (size, price range, sorting, multi-parameter combinations) and use canonical tags for near-duplicate pages, pointing them at the parent category or the chosen indexable version. Index only the filter combinations with genuine search demand. Never use a robots.txt block when your plan relies on canonical or noindex tags, because blocked pages never get those signals read.

Do I still need rel=next and rel=prev on paginated category pages?

No. Google retired rel=next and rel=prev as an indexing signal in March 2019 and does not use them at all. What matters now is giving each paginated page a self-referencing canonical, real crawlable links between the pages, and page numbers in the titles. Bing still reads the old markup and it is harmless to keep, but it is not doing the work. If your category uses load-more or infinite scroll, back it with real paginated URLs, because crawlers do not scroll.

What should I do with out-of-stock products?

If the product will return, keep the page live with a clear out-of-stock message, a restock email alert, and in-stock alternatives, and keep the structured data availability accurate. If it is permanently discontinued and a direct successor exists, 301 redirect to the successor. If it is gone for good with no equivalent, let the page return 410 or 404. Never redirect every discontinued product to the homepage; Google treats that as a soft 404 and the shopper learns nothing.

The bottom line

Category pages fail quietly. There is no error, no penalty, no warning in Search Console. There is just a page full of products that never ranks for the broad searches carrying the most volume, while the store spends its SEO budget one product page at a time.

The 10 fixes share one idea: treat the category page as a landing page that happens to sell. Give it words. Give it a title worth clicking. Stop the filters and pagination from burying it. Link it into the store. Handle the products that sell out. Mark up what is there, describe the images, keep mobile equal, and delete the pages that should never have existed. None of this is exotic. All of it compounds, because every product under a fixed category gets lifted with it.

If the list feels long, start where the money is: the 10 categories that earn the most revenue. Fix their copy, titles, and internal links this week, then work through the technical fixes with an seo audit checklist beside you. And if you want the whole store handled properly, from category architecture to the product pages underneath, that is what our ecommerce seo services cover. Get a free quote and we will look at your categories first.

Share this article:

Want this done for your site?

Reading helps, but rankings come from doing. Request a free SEO audit and our team will look at your actual site.

Case studies

Real work, real numbers

A few projects we're allowed to talk about, the problem, what we did, and what changed. Client names stay private; the numbers don't.

Muhammad Shakeel: Founder and SEO Expert at Rank Rays

Have an SEO Question? Ask the Founder Directly.

Muhammad Shakeel. Founder of Rank Rays. Doing SEO since 2013: 2200+ websites worked on with 95% client satisfaction. Tell me what you're trying to rank, and I'll tell you honestly what it takes.