Shopify handles a lot of technical SEO for you. It generates a sitemap, sets canonical tags on products, writes a sensible robots.txt and serves everything over HTTPS. That is why most Shopify SEO problems are not platform bugs. They come from how the store was built: imported product copy, theme edits, a dozen apps, tag pages, changed handles with no redirects, and titles nobody ever wrote.
This audit walks through eleven checks in the order that matters, starting with whether Google can see your pages at all and ending with cleanup work. A small store can finish it in an afternoon. A store with thousands of products should budget a few days, mostly for fixing what the first steps uncover.
What you need before you start
- Google Search Console access for the store's primary domain. If it is not set up, verify the domain (a DNS record is the most complete option) and submit
/sitemap.xmlunder Indexing > Sitemaps. - A site crawler. Screaming Frog's free version crawls up to 500 URLs, which covers many small stores. Paid crawlers or cloud tools handle larger catalogs.
- A product export. In the Shopify admin go to Products > Export and export all products as CSV. You will use it for titles, meta descriptions and descriptions.
- A spreadsheet to log each issue, its URL count and its fix.
Also confirm the store is not password protected. Under Online Store > Preferences, a store with password protection on cannot be crawled or indexed, which is easy to miss on a store that launched recently.
Step 1: Crawl the store
Start the crawl from the homepage using the live domain. Once it finishes, look at the totals by type rather than individual pages:
- How many product, collection, page and blog URLs were found, and does that roughly match the admin counts?
- How many URLs return 404 or redirect?
- How many URLs are canonicalized to a different URL?
- Are there URL patterns you did not expect, such as
/collections/*/products/*, tag URLs,?variant=or?page=parameters?
A big gap between crawled URLs and your real page count is the first finding. Many more crawled URLs means duplicates. Many fewer means pages are not linked from anywhere.
Step 2: Check indexing in Search Console
Open Indexing > Pages. The indexed count should be close to the number of products, collections, pages and posts you want in Google. Then read the "Why pages aren't indexed" table. The reasons that matter most for Shopify stores:
- Crawled, currently not indexed: Google saw the page and decided it was not worth indexing. On Shopify this is often thin products or tag pages.
- Duplicate, Google chose different canonical than user: Google ignored your canonical, usually because two pages are near identical.
- Not found (404): deleted products or changed handles without redirects.
- Blocked by robots.txt: expected for cart, checkout, search and filter URLs, but check nothing important is in the list.
Use the URL Inspection tool on a handful of key pages, such as your top collection and best-selling product. Check that the Google-selected canonical matches your own and that the page is indexed.
Step 3: Find duplicate content
Shopify stores have a few known duplicate patterns. Check each one:
- Collection-aware product URLs. Many themes link products from collections as
/collections/shoes/products/runner. The canonical points to/products/runner, which prevents most harm, but linking the canonical URL directly is cleaner and saves crawl time. Some themes let you change the link; otherwise it is a small theme code change. - Tag pages. URLs like
/collections/shirts/bluerepeat the parent collection content. See our guide on Shopify product tags and SEO for noindex and canonical options. - Near-identical products. Separate products for each color with the same description compete with each other. Combine them into one product with variants where it makes sense.
- Duplicate collections. "Mens Shirts" and "Shirts for Men" with the same products split signals. Keep one, redirect the other after deleting it.
- Copied supplier descriptions. The same text appears on the supplier's site and every other reseller. This is covered in step 5.
Step 4: Audit titles and meta descriptions
In your product export, the SEO title and SEO description columns are only filled when someone wrote them. Blank means Shopify falls back to the product title and the start of the description. Check:
- Blank SEO titles and SEO descriptions on important products and collections.
- Duplicate titles across products, often from imports ("Women's T-Shirt" twenty times).
- Length. Shopify allows 70 characters for the page title and shows a counter for the meta description; Google typically truncates titles past roughly 60 characters and descriptions past roughly 155 to 160.
- The homepage title and description under Online Store > Preferences.
- Collection and page listings, which crawlers report as duplicates when many pages reuse the store name only.
Fixing hundreds of titles one product at a time is slow. A bulk editor that lets you write templated SEO titles and meta descriptions, preview them and then apply is the practical approach. Bulk Edit Pro does this for Shopify and WooCommerce products and can revert a change in one click. For writing patterns, see our guide to Shopify SEO titles and meta descriptions.
Step 5: Find thin and copied product descriptions
Add a word count column to your product export for the description field (strip the HTML first). Sort ascending. Products with fewer than about 50 words, or no description at all, are your first rewrite list. Shopify's own SEO guidance suggests aiming for at least 250 words on product pages, though a shorter description that answers real buyer questions beats padding.
To find copied text, take a distinctive sentence from a few product descriptions and search it on Google in quotes. If a supplier or ten other stores rank with the same sentence, that product needs original copy. Prioritize by revenue or by impressions in Search Console. A good description covers what it is, who it is for, materials and dimensions, how it fits or works, care, and what is in the box.
Step 6: Check images and alt text
Images affect both speed and image search. Check:
- Missing alt text. In the export, look at the image alt text column. In the admin, click an image on the product page and choose to add or edit alt text. Describe the image plainly, including the product name and a distinguishing detail like color.
- Oversized files. Shopify serves responsive image sizes through its CDN, but huge source files and images placed in theme sections at full size still slow pages. Resize to the display size before uploading.
- Useless file names.
IMG_4832.jpgtells nothing. Rename files before upload, since the name is part of the image URL.
Step 7: Measure speed and Core Web Vitals
Use real user data first. In the Shopify admin, go to Analytics > Reports and open the web performance reports for Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift. Shopify builds these from real visitor sessions, and the data can lag by up to 36 hours. In Search Console, the Core Web Vitals report groups URLs by status for mobile and desktop.
| Metric | Good | Poor | Common Shopify cause |
|---|---|---|---|
| LCP (loading) | 2.5 s or less | Over 4 s | Large hero images, slideshows, render-blocking app scripts |
| INP (responsiveness) | 200 ms or less | Over 500 ms | Too much JavaScript from apps, tracking tags and theme features |
| CLS (visual stability) | 0.1 or less | Over 0.25 | Pop-ups, announcement bars and review widgets that load late |
Run PageSpeed Insights on your homepage, a top collection and a top product to see which scripts and images cause the problem. Shopify's free Online Store 2.0 and Horizon themes are built with performance in mind, so a heavily customized older theme is often part of the story.
Step 8: Check app bloat and leftover code
Each storefront app can add scripts, styles and network requests. Uninstalling an app does not always remove code it added to the theme, so old stores often load scripts for apps they stopped paying for years ago.
- List installed apps under Settings > Apps and mark which ones touch the storefront.
- Run your homepage and a product page through the Shopify app detector to see which apps are loading on the live site. Anything detected that is not installed is leftover code.
- For each storefront app, ask whether it pays for itself. Duplicate functions (two review apps, three pop-up tools) are common.
- Disable app embeds you do not need under Online Store > Themes > Customize > App embeds.
- For leftover code in theme files, ask the app developer for removal steps or search the theme code for the app's name, working on a duplicate theme.
Tip: Record your web performance numbers before removing apps. Shopify's reports use real visitor data, so allow a week or two after changes before judging the result.
Step 9: Validate structured data
Most current Shopify themes output Product structured data on product pages, including name, price, availability and images. Problems usually come from apps adding a second, conflicting block, or from missing fields that limit rich results.
- Test a product URL in Google's Rich Results Test.
- Look for more than one Product item on the page. If a reviews or SEO app adds its own, turn off one source.
- Check that price, currency and availability match the page, and that brand and GTIN are present where you have them.
- Check the Shopping and enhancement reports in Search Console for errors across many URLs.
If you also run Google Shopping, missing identifiers show up there too. The missing GTIN guide explains how to handle them.
Step 10: Review internal links
Internal links tell Google which pages matter. In your crawl, sort pages by inlinks. Look for:
- Important collections that are only reachable through a deep menu or not linked at all.
- Products that appear in no collection, so their only link is the sitemap.
- Blog posts that never link to the collections they discuss.
- Menus with dozens of links to thin tag pages or empty collections.
Fix by adding key collections to the main menu or footer, linking subcollections from parent collection descriptions, and linking from blog posts to relevant collections and products.
Step 11: Fix 404s and redirects
Gather 404 URLs from three places: the crawl, the Search Console "Not found (404)" list, and any backlink tool you use. Prioritize URLs that have backlinks or used to get traffic.
- For each, pick the closest live page: the replacement product, the parent collection, or a related collection. Avoid sending everything to the homepage.
- Go to Content > Menus > View URL redirects and create the redirect, or import them in bulk with Shopify's CSV template.
- Recrawl to confirm each redirect goes to a 200 page in one hop, with no chains.
Standard plans allow up to 100,000 URL redirects. When you change a product or collection handle, keep the option to create a redirect checked in the search engine listing section.
Shopify SEO audit checklist
| Area | Check | Where |
|---|---|---|
| Access | No password protection, sitemap submitted | Online Store > Preferences, Search Console |
| Crawl | Crawled URL count close to real page count | Site crawler |
| Indexing | Key pages indexed, canonical accepted | Indexing > Pages, URL Inspection |
| Robots | Nothing important blocked | robots.txt, Search Console |
| Duplicates | Tag pages, duplicate collections, near-identical products handled | Crawl, theme code |
| Titles and meta | Unique, filled, right length | Product export, bulk editor |
| Descriptions | No blank, thin or copied product copy | Product export |
| Images | Alt text filled, files sized sensibly | Product export, admin |
| Speed | LCP, INP and CLS in the good range | Analytics > Reports, Search Console |
| Apps | No unused apps or leftover scripts | Settings > Apps, app detector |
| Structured data | One valid Product block per product | Rich Results Test |
| Internal links | Key collections linked from menu and content | Crawl inlinks report |
| 404s | Redirected to closest match, no chains | Content > Menus > URL redirects |
How to prioritize what you found
Not every finding deserves the same effort. Fix in this order:
- Anything that blocks indexing: password protection, robots.txt mistakes, noindex tags on real pages.
- 404s with links or history, since redirects recover value quickly.
- Titles and meta descriptions on your top collections and products, because they are fast to change and affect click-through.
- Duplicates and thin pages, starting with templates that create many URLs at once.
- Speed and apps, measured before and after.
- Description rewrites, worked through by revenue or impressions over weeks.
Your robots.txt deserves a final look after all changes. If you plan to customize it through robots.txt.liquid, draft and check the rules with the robots.txt generator first, and keep Shopify's default rules in place. Then repeat this audit every quarter, or after any theme change, migration or large import.
