Product Selection & Sort Order for Category Pages

Which products a category page shows, and in what order, is a merchandising decision most stores never brief their SEO on. This is how default sort order shapes crawling and internal links, how to handle out-of-stock products within a listing, and how to keep sort-order URLs from becoming duplicate content.

First published: Jul 3, 2026 · Last updated: Jul 19, 2026 · Advanced

A category page makes two decisions every time it renders: which products appear (selection) and in what order (sort). Selection affects content-quality signals and how far your internal links reach; sort order affects duplicate content (via ?sort= URL variants) and which products get crawled most reliably. The accuracy spine: Google explicitly names sort order (?order=price) as a duplicate-content case — canonicalize sort variants to the base view or block them, since pure sort has essentially zero standalone keyword demand. Pick one default sort as the canonical, indexed view; a diversity-based Featured/Relevance default (Baymard's research) usually serves both conversion and crawl goals. Out-of-stock products shouldn't lead the default sort — Mueller says stock isn't a normal-search ranking factor, but an OOS-heavy listing reads as low-value and wastes crawl/link equity. itemListOrder schema is descriptive only, with no ranking effect.

TL;DR — A category page makes two decisions with distinct SEO mechanics: selection (which products appear) drives content-quality signals and how far internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. reach; sort order (the sequence) drives duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. and crawl-depth priority. Accuracy spine: Google explicitly names sort order (?order=price) as a duplicate-content case — canonicalize sort variants to the base view or block them via robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere./noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., because pure sort has essentially zero standalone keyword demand. Pick one default sort as the canonical, indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. view; a diversity-based “Featured/Relevance” default (Baymard’s research) usually serves conversion and crawl goals at once. Out-of-stock products shouldn’t lead the default sort — Mueller says stock isn’t a normal-search ranking factor, but an OOS-heavy listing reads as low-value and wastes the position-1 crawl/link advantage. itemListOrder schema is descriptive, not directive, and must match the visible order if used.

Two levers, two different SEO mechanics

Google recommends linking from menus to categories and from categories to products so crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can discover the catalog. Evidence for this claim Google recommends navigational links from menus to categories and from category pages to products so crawlers can discover an ecommerce catalog. Scope: Google Search ecommerce site-structure guidance. Confidence: high · Verified: Google: Ecommerce site structure Filters and sort orders can create large URL spaces, so their crawl behavior should be designed separately from merchandising order. Evidence for this claim Faceted navigation can create very large URL spaces and should be managed deliberately to avoid inefficient crawling. Scope: Google Search guidance for faceted navigation; the right controls depend on whether filtered URLs need indexing. Confidence: high · Verified: Google: Managing faceted navigation

The reason this topic is worth its own page — separate from category page SEOCategory page SEO is the practice of optimizing an ecommerce listing page (also called a PLP or collection page) — the page that groups products under a classification like /shoes/running/ — so it ranks for broad commercial queries and routes crawlers and link equity to the products beneath it. generally and from faceted navigation — is that “product selection” and “sort order” are genuinely two different levers that break in two different ways:

  • Selection (which products the listing includes) affects content-quality and completeness signals and internal-link reach. A default view full of out-of-stock or thin, near-duplicate items reads as lower-value; and the products you don’t surface prominently get fewer internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. from the category, so less importance signal flows to them.
  • Sort order (the sequence of that set) affects duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. and crawl budget — via ?sort= URL variants — and crawl-depth priority — because what sits near the top of the default view, and on page 1 of paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., is what gets crawled most reliably.

This is a cross-functional blind spot. Merchandising picks the default sort for conversion; almost nobody briefs them on the SEO consequences of that same choice. The rest of this covers both sides.

Why sort order is an SEO issue at all

Sort order looks like pure UX — it’s just the same products in a different order. But Google itself treats it as a duplicate-content problem. In its ecommerce pagination guidance, under the heading “Avoid indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. URLs with filters or alternative sort orders,” Google gives the exact scenario: “you may support ?order=price on URLs to return the same list of results ordered by price.” The recommendation: “To avoid indexing variations of the same list of results, block unwanted URLs from being indexed with the noindex robots meta tagThe robots meta tag is an HTML element in a page's head — <meta name=\"robots\" content=\"noindex\"> — that tells search engines how to index and serve that page. It's crawl-then-obey: a page blocked in robots.txt is never fetched, so the tag is never seen. or discourage crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. of particular URL patterns with a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. file.”

That’s a stronger duplicate-content case than a filter. A filter (color=red) changes which products are in the set — it can capture real long-tail demand. A sort variant doesn’t change the set at all; in Google’s own words it returns “the same list of results” in a different sequence. So it’s rarely worth indexing.

Sort is an “active parameter.” In my URL parameters guide I put sorting parameters in the active category — alongside filtering, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., and search — meaning they change what the page presents and therefore need a deliberate indexing decision. They’re not passive like tracking parameters you can simply ignore: “You should avoid passive parameters like those used for tracking on internal links.” A ?sort=price-asc URL isn’t passive — it needs a real call (canonical to base, or noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. + robots.txt).

Crawl-depth interaction. Google’s ecommerce guidance is blunt that category pages are the on-ramp to your products — if they don’t link to all products, GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. might not find all of your products by crawling alone.” But under pagination, only the first page (or first N items) is reliably crawled. So the default sort order directly decides which products get that crawl-depth advantage. A “Price: Low to High” default can bury flagship, high-margin, or high-search-demand products on page 6, where both users and crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. are less likely to reach them. A demand-relevant default concentrates the products that matter near page 1.

Choosing a default sort: merchandising vs. SEO (they mostly align)

The good news is these goals usually point the same way.

Baymard Institute’s research argues for a diversity-based “Relevance/Featured” default over pure Best-Selling. Their finding: a best-selling default tends to cluster similar high-volume items at the top, which can make the catalog look narrower than it is and drive abandonment — and they document that a large share of sites fail to use diversity-based sorting. Pamela Hazelton’s older-but-evergreen Practical Ecommerce piece makes the parallel CRO case: a best-selling-first default can surface low-rated or high-price items right at the top, and “when the shopper is presented with bad choices right out of the gate, he’s apt to bail immediately.”

Here’s the SEO echo nobody connects: the “above the fold” set is also the set getting the most reliable crawl and the most internal-link equity. If that set is narrow or unrepresentative, you’re under-serving the rest of the catalog twice — once in the UI, once in the crawl. A representative default does the opposite: it surfaces a broader slice of the catalog to Google, which is healthier for demonstrating topical breadth and for spreading link equity across products.

When a different default is justified: genuine cases exist — a clearance category where “Price: Low to High” is the intent, a “New Arrivals” collection where “Newest” is the whole point. The rule isn’t “always Featured”; it’s “pick the default that represents the catalog and front-loads products worth crawling, and have a reason if it isn’t diversity-based.”

Out-of-stock products within the listing

This is a distinct decision from what you do with an out-of-stock product’s own page (redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., 404, or keep it live — I’ve written about that separately, and Google’s guidance generally favors keeping the URL live over blanket 404s). Here the question is narrower: should out-of-stock items appear in the default category sort at all, and if so, where?

Google hasn’t issued a listing-level rule on this. What it has said, via John Mueller, is that stock levels aren’t a normal-search ranking factor — asked whether stock levels impact product ranking, he said it “seems unrelated, at least for normal search.” And separately, on out-of-stock handling, he noted that when Google sees a product is out of stock “we will assume it’s more like a soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. error, where we will drop that URL,” while stressing that “even if one product goes out of stock, the rest of the site’s rankings are not affected by that.”

So there’s no “in-stock = ranking boost” mechanism. But the case for demoting out-of-stock items in the listing is about efficiency and quality, not a direct ranking factor:

  1. Wasted crawl/link equity. Out-of-stock items don’t convert. Giving them the position-1-to-N spots hands your best crawl-depth and internal-link advantage to pages that can’t transact.
  2. Content-quality signal. A listing that’s mostly out-of-stock reads as thinner and less useful — the same low-value concern behind the soft-404 risk Mueller described for individual OOS pages, now at the listing level.
  3. The “don’t mislead on availability” principle. Merchant Center already expects clear, non-misleading availability treatment on product pages; extend the same spirit to listings by pushing OOS to the back of the default sort or behind a toggle.

The practical recommendation: demote out-of-stock items to the end of the default sort, or place them behind a “show out of stock” toggle — don’t let them lead, and don’t deindex the products wholesale. Removal from the index is the product-page question, not the listing-order one.

Managing sort-order URLs technically

Once you’ve picked a default, everything else is a variant. Treat sort variants like filter noise:

  • Pick one default/base view as the canonical, indexed page. All other sort permutations are non-canonical variants — full stop.

  • Canonicalize sort variants to the base, or block the parameter. Because a sort variant is “the same list of results,” it almost never has independent keyword demand — nobody searches “shoes sorted by price ascending.” (Contrast a filter facet like “red running shoes,” which can. This is why sort is a cleaner block/canonicalize case than filters — see the near-zero standalone demand for pure sort in the faceted-nav long-tail research.)

  • Canonical alone doesn’t save crawl budgetThe number of URLs an engine will crawl in a timeframe.. As I note in the URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. guide, “a canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. can help consolidate signals to a chosen URL but requires each additional version of a page to be crawled” — Google still has to fetch the ?sort= URL to see the tag. For high-URL-count catalogs, pair the canonical with a robots.txt block on the sort parameter. A pattern in the spirit of Google’s own filter examples:

    User-agent: Googlebot
    Disallow: /*?*sort=
    Allow: /*?sort=featured$

    (An adaptation of Google’s filter-blocking pattern for a sort= parameter — not a verbatim Google example.)

  • 404 empty combinations. When a sort parameter combines with a filter that returns zero results, Google’s faceted-nav guidance is to “return an HTTP 404 status code when a filter combination doesn’t return results” rather than serve a blank indexable shell.

  • Bing has a lever Google no longer offers. Google’s URL Parameters tool is gone (2022), but Bing’s URL Normalization feature in Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. is still active and lets you register sort as a parameter that doesn’t change content meaningfully. Fabrice Canel’s framing is that “relying on canonical tag is not necessarily the perfect solution to fix all your duplicate content problems” — so on Bing, normalize the sort parameter as an additional signal.

Schema and sort order: what itemListOrder can and can’t do

If you mark up a category listing with ItemList, the type has an itemListOrder property — but keep its role straight:

  • Descriptive, not directive. itemListOrder describes the ordering type; it has no documented ranking influence. It won’t make products rank better.
  • It must match the visible order if used. Schema.org itself notes “the order of elements in your mark-up is not sufficient for indicating the order or elements [sic]. Use ListItem with a ‘position’ property in such cases” — and Google’s structured-data rules require parity between markup and visible content. If your ItemList claims one order and the page shows another, that’s a mismatch, not a signal.
  • No Product rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. on listings anyway. Google’s merchant listing structured data guidance is explicit: “Product rich results only support pages that focus on a single product (or multiple variants of the same product). For example, ‘shoes in our shop’ is not a specific product,” and Google states it recommends “focusing on adding markup to product pages instead of pages that list products or a category of products.” So ItemList/itemListOrder is a machine-readability aid at best on a listing page — never a substitute for a sound sort-URL strategy.

Where this sits

Product selection and sort order is one slice of ecommerce site structure. The full listing-page lifecycle — URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly., pagination after rel=prev/next died, thin- content handling, structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. — is in category page SEOCategory page SEO is the practice of optimizing an ecommerce listing page (also called a PLP or collection page) — the page that groups products under a classification like /shoes/running/ — so it ranks for broad commercial queries and routes crawlers and link equity to the products beneath it.. The filter/facet URL crawl-management mechanics are in faceted navigation. Product-page-level out-of-stock treatment (redirect/404/keep-live) is its own decision. This page is the narrower question of which products show, and in what order — and why that’s a merchandising call with an SEO tail.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.