E‑Commerce SEO Migration: Product and Category Pages in Next.js

In Brief
Product and category URLs are important revenue paths within your e‑commerce application, not just templates. Before moving them to Next.js, map product, category, filtered, variant, discontinued, campaign, and redirect URLs, then make sure that you have protected canonicals, schema, product data, internal links, and out‑of‑stock rules. Real catalogue data should drive the test.
E‑commerce migrations are unforgiving because the URLs are not just pages. They are revenue paths.
A product page may have backlinks, paid traffic, organic rankings, customer bookmarks, review snippets, merchant data, and internal links from multiple categories. A category page may be the main landing page for a high‑intent query. A filtered page may be a useful shopping state or a crawl trap.
Moving product and category pages to Next.js can improve speed, flexibility, content control, and front‑end architecture. It can also break search visibility if URL, canonical, product data, schema, and internal linking rules are treated as implementation details.
Inventory Product and Category URL Patterns
Start by exporting the current URL estate.
Include:
- product detail pages
- category pages
- collection pages
- brand pages
- filtered URLs
- search result URLs
- paginated URLs
- discontinued products
- variant URLs
- campaign landing pages
- old redirects
- sitemap URLs
- organic landing pages from Search Console
Group URLs by intent. A category landing page, a faceted filter state, and a product variant should not be handled the same way.
Google's e‑commerce SEO guidance is a useful external baseline, but the migration needs a site‑specific URL policy.
Decide Product URL Stability
Product URLs need clear rules.
Questions to answer:
- does the product URL include category path?
- what happens when a product moves category?
- do variants get their own URLs?
- what happens when a product is discontinued?
- do out‑of‑stock products stay indexable?
- how are duplicate products handled?
- how are canonical products chosen?
For many stores, stable product URLs without category dependency are safer. Category paths can change as merchandising changes. If the product URL changes every time the category changes, redirects and canonicals become noisy.
That said, some stores have category‑led URL strategies for good reasons. The point is not one universal rule. The point is choosing one deliberately before migration.
Treat Category Pages as Landing Pages
Category pages often carry more SEO value than teams realise.
A good category page should have:
- clear h1
- useful introductory copy where appropriate
- product grid
- crawlable product links
- subcategory links
- buying guidance where useful
- stable sorting and pagination rules
- canonical URL
- structured breadcrumbs
- internal links from navigation and content
Do not migrate category pages as empty product grids. If the old page had useful copy, internal links, or merchandising context, preserve or improve that value.
Handle Faceted Navigation Before Implementation
Facets can generate a huge URL space.
Decide which filter combinations are:
- indexable landing pages
- crawlable but not indexable
- internal shopping states
- blocked or nofollowed
- canonicalised to parent category
- represented by curated category pages instead
The draft on faceted navigation SEO in headless commerce covers this in detail. For migration work, the important part is that the policy must exist before components are built.
If the filter UI updates URLs, make sure the team knows which of those URLs search engines should discover and how they should behave.
Preserve Product Data and Schema
Product schema can support richer search results, but only when it matches visible product content.
Check:
- product name
- description
- images
- price
- availability
- brand
- SKU or GTIN where available
- variants
- reviews and ratings where visible and compliant
- breadcrumbs
- canonical URL
Do not mark up hidden product data or stale prices. If price and availability update from Shopify or another commerce engine, schema needs to use the same reliable source.
Structured data should be part of template acceptance criteria, not something added after launch.
Plan Discontinued and Out‑Of‑Stock Products
Discontinued products need a policy.
Options include:
- keep page live with alternatives
- redirect to replacement product
- redirect to category
- return 404 or 410
- keep page indexable for support or informational value
- noindex while retaining for users
Out‑of‑stock products are different from discontinued products. If the item returns soon, the page may need to stay live and indexable. If it is gone permanently, a replacement path may be better.
The wrong policy can remove useful long‑tail traffic or keep dead pages in search results too long.
Compare Old and New Internal Links
E‑commerce internal linking is product discovery.
Check:
- navigation
- category links
- subcategory modules
- product cards
- breadcrumbs
- related products
- recently viewed products
- buying guides
- editorial links
- sale or campaign links
- footer links
If the new site relies heavily on client‑side filtering or infinite scroll, make sure important products and categories still have crawlable links.
For headless builds, React components can accidentally turn links into buttons or state updates. That may work for users, but it weakens discovery.
Test Migration with Real Product Data
Do not validate only with clean fixtures.
Use products with:
- many variants
- missing images
- long titles
- special characters
- discounts
- out‑of‑stock states
- discontinued status
- multiple categories
- reviews
- rich descriptions
- missing optional fields
That is where product templates break. Production catalogue data is rarely as neat as the design system examples.
Wrapping Up
An e‑commerce SEO migration to Next.js needs more than a fast product grid.
The migration has to preserve product URL value, category landing‑page meaning, canonical decisions, faceted navigation policy, product schema, internal links, and discontinued‑product rules. Those decisions affect search visibility and revenue, so they need to be made before launch.
Next.js can be an excellent front‑end for e‑commerce. It still needs a commerce‑aware migration plan.
Key Takeaways
- Inventory product, category, filtered, variant, and discontinued URLs before migration.
- Choose product URL and canonical rules deliberately.
- Treat category pages as landing pages, not just product grids.
- Define faceted navigation policy before implementation.
- Keep product schema aligned with visible, current product data.
- Test templates with messy production catalogue data.