No history yet

Technical SEO Infrastructure

Control Search Engine Access

Every Shopify store automatically generates a robots.txt file. Think of this as a set of rules for search engine crawlers, telling them which parts of your site they can and cannot visit. While Shopify’s default file is a good starting point, it’s not optimized for stores with large inventories or complex filtering.

The biggest issue is wasted , which is the number of pages a search engine will crawl on your site in a given period. You don't want Google wasting its time on low-value pages like internal search results or pages sorted by price. This is especially true for large catalogs where you want your key product and category pages indexed promptly.

You can customize your robots.txt.liquid file in your theme's code to be more specific. For example, you can block crawlers from indexing collection pages that have been filtered by tags, which often create duplicate content issues.

# Disallow URLs with sort_by parameters
Disallow: /*?sort_by=*

# Disallow collection pages filtered by more than one tag
{% if template contains 'collection' and current_tags.size > 1 %}
Disallow: {{ request.path }}
{% endif %}

This simple Liquid code checks if a visitor is on a collection page and has applied more than one filter tag. If so, it adds a Disallow rule for that specific URL, telling search engines to ignore it. This prevents countless variations of your collection pages from being indexed and diluting your SEO authority.

Win Rich Snippets with Schema

Beyond just telling search engines what not to look at, you need to help them understand what they are looking at. This is where schema markup comes in. It’s a vocabulary you add to your site's HTML to provide explicit context about your content. For an e-commerce store, this is a goldmine.

By implementing schema, you can tell Google that a specific number is a price, a string of text is a product review, and a list of questions are FAQs. In return, Google may reward you with rich snippets in the search results—things like star ratings, prices, and stock availability shown directly on the results page.

Schema Markup

noun

Code (semantic vocabulary) that you put on your website to help the search engines return more informative results for users. Also known as structured data.

The preferred format for this is , which is a script you can add to your theme's code. Here’s a simplified example of what Product schema might look like for a Shopify store. Most modern themes include this by default, but you often need to customize or extend it for things like FAQ schema on product pages or review schema.

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "{{ product.title }}",
  "image": "https:{{ product.featured_image | img_url: 'grande' }}",
  "description": "{{ product.description | strip_html | escape }}",
  "sku": "{{ product.variants.first.sku }}",
  "offers": {
    "@type": "Offer",
    "url": "{{ shop.url }}{{ product.url }}",
    "priceCurrency": "{{ cart.currency.iso_code }}",
    "price": "{{ product.price | divided_by: 100.00 }}",
    "availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
    "priceValidUntil": "{{ 'now' | date: '%Y' | plus: 1 }}-12-31"
  }
}
</script>

Another way to help search engines understand what your site is all about is to add schema markup, or structured data, to signal specific content types, like products or reviews.

Tackle Duplicate Content

Shopify’s architecture can sometimes create duplicate content problems. This happens when the same or very similar content is accessible at multiple URLs. Search engines see these as separate pages competing against each other, which can dilute your ranking potential.

The two main culprits in Shopify are:

  1. Tag & Vendor Pages: Shopify automatically creates collection pages filtered by tags or vendors (e.g., /collections/all/boots and /collections/vendors?q=MyBrand).
  2. Product Variants: Each product variant often exists within a collection URL (e.g., /collections/shoes/products/awesome-boot?variant=12345).

While Shopify uses the rel="canonical" tag to suggest the main version of a page, it isn't always perfectly implemented, especially with certain apps or themes. It's crucial to perform a manual audit to ensure is working as expected.

To find these issues, use a tool like Screaming Frog or Ahrefs' Site Audit to crawl your website. Look for pages with duplicate titles or meta descriptions. You can also use Google Search Console's "Pages not indexed" report to find URLs that Google has discovered but chosen not to index, often due to them being identified as duplicates.

If you find problems, you may need to edit your theme's Liquid files (like collection-template.liquid or product.liquid) to adjust the canonical tag logic or use the robots.txt methods we discussed earlier to block indexing of the filtered pages altogether.

The goal is to ensure only one version of each page is indexed by Google, concentrating all ranking power on that single URL.

Sitemap and Indexation Audits

Shopify automatically generates and updates a sitemap.xml file for your store. This file acts as a roadmap for search engines, listing all the important pages you want them to crawl and index. You can typically find it by adding /sitemap.xml to your root domain (e.g., yourstore.com/sitemap.xml).

However, you shouldn't just trust this process to run on its own. It's good practice to periodically check your sitemap to ensure it's accurate.

  • Check for Errors: Submit your sitemap to Google Search Console and check the Sitemaps report for any errors or warnings. This can alert you to pages that Google is unable to crawl.
  • Look for Unwanted URLs: Sometimes, apps or theme configurations can add pages to your sitemap that you don't want indexed. If you find these, you can use the noindex tag or a robots.txt disallow rule to remove them.
  • Compare with Crawl Data: Compare the URLs listed in your sitemap with the URLs found by a crawler like Screaming Frog. This helps you identify "orphan pages"—pages that exist on your site but aren't linked from anywhere and are missing from the sitemap.

Time to see what you've learned. Put your knowledge to the test!

Quiz Questions 1/5

What is the primary risk of using Shopify's default robots.txt file for a store with a very large and complex product catalog?

Quiz Questions 2/5

A store owner adds product review stars, pricing, and stock availability that appear directly on the Google search results page. Which technology is responsible for enabling these 'rich snippets'?

Mastering these technical elements ensures your Shopify store has a solid foundation, allowing search engines to discover, understand, and rank your most important pages effectively.