Skip to content

Keep the query string of the request out of the product list links - #2700

Open
DivaniNL wants to merge 2 commits into
canaryfrom
fix/product-list-link-query-string
Open

DivaniNL wants to merge 2 commits into
canaryfrom
fix/product-list-link-query-string

Conversation

@DivaniNL

@DivaniNL DivaniNL commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Written by Claude Code:

useRouterFilterParams reads the product list URL from router.asPath. It removes #…, but not ?…. For a request to /shoes?gclid=abc, the pagination links become /shoes?gclid=abc/page/2.

On ISR pages, Next.js renders with the query of the request in asPath, so the cached page keeps these links. A crawler that follows a link gets ?gclid=abc%2Fpage%2F2/page/2, then one more /page/2, without end. We see these links on several live shops.

  • The first commit adds a test that renders the page 2 link for /shoes?gclid=abc. It failed on CI before the fix: the link was /shoes?gclid=abc/page/2.
  • The second commit adds the fix and a changeset: the URL leaves out ?… as well as #…. CI passes with it.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
graphcommerce-246 Ready Ready Preview Oct 30, 2026 3:02pm UTC
graphcommerce-247 Ready Ready Preview Oct 30, 2026 3:02pm UTC
graphcommerce-hygraph-dynamic-rows-ui Ready Ready Preview Oct 30, 2026 3:02pm UTC
graphcommerce-open-source Ready Ready Preview Oct 30, 2026 3:02pm UTC
graphcommerce-storyblok Ready Ready Preview Oct 30, 2026 3:02pm UTC

Request Review

@changeset-bot

changeset-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5a1be63

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 87 packages
Name Type
@graphcommerce/magento-product Patch
@graphcommerce/magento-graphcms Patch
@graphcommerce/magento-open-source Patch
@graphcommerce/magento-storyblok Patch
@graphcommerce/docs Patch
@graphcommerce/browserslist-config-pwa Patch
@graphcommerce/changeset-changelog Patch
@graphcommerce/eslint-config-pwa Patch
@graphcommerce/graphql-codegen-markdown-docs Patch
@graphcommerce/graphql-codegen-near-operation-file Patch
@graphcommerce/graphql-codegen-relay-optimizer-plugin Patch
@graphcommerce/misc Patch
@graphcommerce/next-config Patch
@graphcommerce/prettier-config-pwa Patch
@graphcommerce/typescript-config-pwa Patch
@graphcommerce/address-autocomplete Patch
@graphcommerce/address-fields-nl Patch
@graphcommerce/algolia-categories Patch
@graphcommerce/algolia-insights Patch
@graphcommerce/algolia-personalization Patch
@graphcommerce/algolia-products Patch
@graphcommerce/algolia-recommend Patch
@graphcommerce/algolia-search Patch
@graphcommerce/cli Patch
@graphcommerce/demo-magento-graphcommerce Patch
@graphcommerce/ecommerce-ui Patch
@graphcommerce/framer-next-pages Patch
@graphcommerce/framer-scroller Patch
@graphcommerce/framer-utils Patch
@graphcommerce/google-datalayer Patch
@graphcommerce/google-playstore Patch
@graphcommerce/googleanalytics Patch
@graphcommerce/googlerecaptcha Patch
@graphcommerce/googletagmanager Patch
@graphcommerce/graphcms-ui Patch
@graphcommerce/graphql-mesh Patch
@graphcommerce/graphql Patch
@graphcommerce/hygraph-cli Patch
@graphcommerce/hygraph-dynamic-rows-ui Patch
@graphcommerce/hygraph-dynamic-rows Patch
@graphcommerce/hygraph-ui Patch
@graphcommerce/image Patch
@graphcommerce/lingui-next Patch
@graphcommerce/magento-cart-checkout Patch
@graphcommerce/magento-cart-coupon Patch
@graphcommerce/magento-cart-email Patch
@graphcommerce/magento-cart-items Patch
@graphcommerce/magento-cart-payment-method Patch
@graphcommerce/magento-cart-pickup Patch
@graphcommerce/magento-cart-shipping-address Patch
@graphcommerce/magento-cart-shipping-method Patch
@graphcommerce/magento-cart Patch
@graphcommerce/magento-category Patch
@graphcommerce/magento-cms Patch
@graphcommerce/magento-compare Patch
@graphcommerce/magento-customer Patch
@graphcommerce/magento-graphql-rest Patch
@graphcommerce/magento-graphql Patch
@graphcommerce/magento-newsletter Patch
@graphcommerce/magento-payment-adyen Patch
@graphcommerce/magento-payment-afterpay Patch
@graphcommerce/magento-payment-braintree Patch
@graphcommerce/magento-payment-included Patch
@graphcommerce/magento-payment-klarna Patch
@graphcommerce/magento-payment-multisafepay Patch
@graphcommerce/magento-payment-paypal Patch
@graphcommerce/magento-payment-tokens Patch
@graphcommerce/magento-product-bundle Patch
@graphcommerce/magento-product-configurable Patch
@graphcommerce/magento-product-downloadable Patch
@graphcommerce/magento-product-grouped Patch
@graphcommerce/magento-product-simple Patch
@graphcommerce/magento-product-virtual Patch
@graphcommerce/magento-recently-viewed-products Patch
@graphcommerce/magento-review Patch
@graphcommerce/magento-search-overlay Patch
@graphcommerce/magento-search Patch
@graphcommerce/magento-store Patch
@graphcommerce/magento-wishlist Patch
@graphcommerce/mollie-magento-payment Patch
@graphcommerce/next-ui Patch
@graphcommerce/react-hook-form Patch
@graphcommerce/service-worker Patch
@graphcommerce/storyblok-ui Patch
@graphcommerce/framer-next-pages-example Patch
@graphcommerce/framer-scroller-example Patch
@graphcommerce/image-example Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

A request with a query string, such as an ad click with ?gclid=…, gave pagination links that crawlers followed without end.

This branch was successfully deployed

5 active deployments
Preview – graphcommerce-246 — 5a1be637 Deployed Oct 30, 2026 by vercel[bot]
Preview – graphcommerce-247 — 5a1be637 Deployed Oct 30, 2026 by vercel[bot]
Preview – graphcommerce-storyblok — 5a1be637 Deployed Oct 30, 2026 by vercel[bot]
Preview – graphcommerce-open-source — 5a1be637 Deployed Oct 30, 2026 by vercel[bot]
Preview – graphcommerce-hygraph-dynamic-rows-ui — 5a1be637 Deployed Oct 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants