“My Shopify site has 18,000+ URLs, 8,000 ‘crawled – not indexed,’ 4,000 canonical duplicates, and 2,000 noindex pages. I need a Shopify technical SEO developer who can fix URL explosion, canonical structure, tag/filter/variant URLs, pagination, and theme‑level noindex issues. I am looking for someone who have experience fixing Shopify indexing at the theme level (Liquid)?”
Based on those numbers, you need to first audit where the URL growth is coming from. On Shopify, it’s usually caused by tag/filter URLs, collection parameters, variant URLs, internal linking, and theme-generated duplicate pages.
Those are not really errors.
Easy to prevent but hard to eliminate since those are valid URLs.
I’d start by addressing the “You may also like” section since those product cards use ‘recommendations training’ URLs like
https://hannahrosevintageboutique.com/products/ivory-tulle-flower-girl-dress?pr_prod_strat=e5_desc&pr_rec_id=9b4c86a93&pr_rec_pid=5920108314790&pr_ref_pid=15317210235046&pr_seq=uniform
and every page has different URL parameters.
Small theme edit should prevent those from surfacing.
Also, probably put those pr_prod_strat in robots.txt to deny access…
Note, however, that editing theme code will lead to future problems with updating to new versions of the theme – always request precize documentation on what changes were made and to what files.
Hi @Hannahrose , before hiring a developer, you can try sorting this out by yourself first because the number you mention is actually not too alarming and mostly came from thin, duplicate, faceted, filtered, tag, search, or parameterized URLs that Google doesn’t see enough value in indexing. A few things you can try auditting first
- Collection filters and faceted navigation URLs. This can prevent Google from spending too much crawling budget on low-value pages
- Check product tags and whether they generate crawlable links. Those tag pages with little or no unique content are hurting your SEO
- Variant URL behaviors. Shopify can create URLs such as /products/running-shoe?variant=123456 or /products/running-shoe?variant=789012 for different variants and Google can discover all of these. Check Search Console to see which one appears in it, check canonical tags pointing back to the main product URL. The goal is to make sure all variant consolidate SEO signal into primary product URL.
- Search pages can generate massive amount of URLs.
- Internal link structure, XML sitemaps,.. also matter
If you cannot find a suitable dev to help out, another suggested option is apps such as SEOWILL. It helps you manage many of the issues related to index bloat.
- Detect duplicate titles, metadescriptions
- Identify thin or under optimized product or collection pages
- Bulk optimize which is very helpful and time saving for large number
Hope this helps!!
Have you identified which URL patterns are generating most of the non-indexed and duplicate pages? In Shopify, tag, filter, search, and variant URLs are often the main causes of index bloat, so you would start by auditing those first.
18k urls sounds scary but it’s actually pretty normal for a shopify store with a decent sized catalog. the 8k crawled-not-indexed ones are usually tag pages, collection filters, and pagination that google doesn’t find valuable enough to index, which is honestly fine.
biggest quick win is usually cleaning up internal linking so google isn’t wasting crawl budget on low-value paths. check if your ‘you may also like’ sections or faceted navigation are generating thousands of crawlable urls leading to basically the same content. a few strategic noindex tags on tag pages and trimming your sitemap to only include pages you actually want indexed can make a big difference without needing a developer.
Hi @Hannahrose Most of those numbers look like normal Shopify URL growth, not breakage, so triage before touching any Liquid.
Pull the affected URLs from Search Console and group them by pattern. The crawled but not indexed and canonical duplicate buckets are usually Google seeing a variant or parameter URL, reading the canonical, and skipping the copy. That is fine. The only thing worth fixing is real products, collections, or blog pages stuck in there.
Quick wins at the theme level: the “You may also like” parameters (pr_prod_strat, pr_rec_id and the rest) come from the recommendation links your theme renders, so output those cards with the plain product URL and no query string. Confirm variant URLs and /collections/x/products/y paths canonicalize to /products/handle in the rendered source. Fix any canonical that is wrong, since everything depends on it.
One caution: do not block canonicalized parameter URLs in robots.txt. That stops Google reading the canonical and they linger longer. Save disallows for true junk like internal search, and keep the sitemap to pages you want ranked.
For hiring, look for someone fluent in theme.liquid and robots.txt.liquid who can read coverage data. Ask how they would triage the 8,000 first. Anyone reaching straight for noindex everywhere has misread it.
Hi @Hannahrose .
Hope you are doing great.
This needs a real shopify SEO expert with liquid coding skills.
Best place to find one:
Shopify Expert Marketplace or Shopify Partners Directory.
Ask candidates how they can fix filter URL bloat,
which is usually the main cause of your URL explosion.
