# Shopify SEO for ChatGPT, Perplexity and AI search

> Get your Shopify store into ChatGPT and AI search: server-rendered Liquid, robots.txt.liquid, the managed llms.txt, product JSON-LD and sitemap.

Canonical page: https://getrankroot.com/builders/shopify · E-commerce platform · checked 2026-10-18

What Shopify's own documentation says about how AI crawlers see sites built with it, and the exact settings for robots.txt, llms.txt, structured data and the sitemap.

## How Shopify delivers pages to crawlers

**Server-rendered (Liquid themes)** (HTML without JavaScript (documented))

Shopify's developer docs say "Shopify renders Liquid templates server-side on every page request", and recommend rendering essential content in Liquid and HTML rather than client-side JavaScript. If a framework is needed, Shopify points to server-side rendering with Hydrogen. Headless storefronts are outside Liquid, so check those separately.

Why it matters: many AI crawlers don't run JavaScript. If your text only appears after scripts run, they may see an empty page.

## Make your content readable without JavaScript

1. Keep product details, hero content and navigation in Liquid and HTML. Shopify says moving them into client-side JavaScript delays loading and harms SEO.
2. Turn off password protection when you launch. Shopify notes crawlers can't reach a store in private mode.
3. Run the [free audit](https://getrankroot.com/#scan) on your store's primary domain.

## robots.txt: let AI search crawlers in

1. Every store has a default `robots.txt` that Shopify says works for most stores. You can usually leave it alone.
2. To customize it: **Online Store** > **Themes** > **...** > **Edit code** > **Add a new template** > **robots** > **Create template**. This creates `robots.txt.liquid`.
3. Open your current `/robots.txt` first. If no group names OAI-SearchBot, PerplexityBot or Claude-SearchBot, those crawlers follow the `User-agent: *` group, and you may not need a template at all.
4. In the template, keep the Liquid loop over `robots.default_groups` and add your own groups after it. Shopify strongly advises against replacing the template with plain text, because rules can go out of date.
5. Shopify warns this is an unsupported customization, its support can't help with it, and mistakes can lose you all traffic. Save a copy of your current `/robots.txt` first and compare.

robots.txt.liquid: keep Shopify's defaults, then opt out of OpenAI training (GPTBot):

```
{% for group in robots.default_groups %}
  {{- group.user_agent -}}
  {% for rule in group.rules %}
    {{- rule -}}
  {% endfor %}
  {%- if group.sitemap != blank -%}
    {{ group.sitemap }}
  {%- endif -%}
{% endfor %}

User-agent: GPTBot
Disallow: /
```

## Add llms.txt

1. You may not need to do anything. Shopify serves `/llms.txt` by default by mirroring `/agents.md`, its canonical agent-discovery file.
2. To change the agent-facing content for `/agents.md`, `/llms.txt` and `/llms-full.txt` together, add an `agents.md.liquid` template.
3. Only if `/llms.txt` must differ from `/agents.md`: **Online Store** > **Themes** > **...** > **Edit code**, right-click **Templates** > **New File**, name it `llms.txt.liquid`. It accepts text, Markdown and Liquid, but only the `request` and `agents` objects are available (no `shop`, `collections` or `articles`).
4. The file is served at your bare primary domain, without a locale or Markets prefix. Check it with the [llms.txt validator](https://getrankroot.com/tools/llms-txt-validator).

## Add JSON-LD and head code

1. Theme head code lives in `layout/theme.liquid`, inside `<head>`. Shopify's SEO docs put title, meta description and canonical tags there.
2. For products and articles, Shopify's `structured_data` Liquid filter outputs schema.org JSON-LD (Product or ProductGroup, and Article). Many themes already include it, so check your page source before adding a second copy.

Product JSON-LD with Shopify's structured_data filter:

```
<script type="application/ld+json">
  {{ product | structured_data }}
</script>
```

## Sitemap

1. Shopify generates `sitemap.xml` automatically at the top level of each of your domains, with links to products, primary product images, pages, collections and blog posts.
2. Verify your domain in Google Search Console and submit `sitemap.xml`. If you use international domains, submit each one.

## Common mistakes

- Replacing robots.txt.liquid with plain text. Shopify says rules may go out of date and mistakes can cost all your traffic.
- Adding a User-agent group for an AI crawler and forgetting it no longer follows the `*` group. A crawler uses only the most specific group that names it, so repeat any Disallow lines you need (such as cart and checkout paths) in that group.
- Launching with password protection on. Crawlers can't read a store in private mode.
- Adding llms.txt.liquid when agents.md.liquid would do. Shopify recommends agents.md.liquid for most customizations.
- Duplicating Product JSON-LD that the theme already outputs.

## FAQ

### Does Shopify have llms.txt?

Yes. Shopify serves /llms.txt by default by mirroring /agents.md. You can customize it with an agents.md.liquid or llms.txt.liquid theme template.

### Is my Shopify store visible to ChatGPT?

Shopify renders Liquid themes on the server, so crawlers get full HTML. Make sure the store isn't password-protected and robots.txt doesn't block AI search crawlers. Shopify also notes that blocking AI crawlers affects only open-web discovery, not Shopify Catalog data sent to activated agentic storefronts.

### How do I edit robots.txt on Shopify?

Create a robots.txt.liquid template in your theme (Online Store > Themes > Edit code > Add a new template > robots), keep the default Liquid groups, and add your rules after them.

### Does Shopify add product schema automatically?

Shopify provides a structured_data Liquid filter that outputs Product and Article JSON-LD. Whether your store uses it depends on your theme, so check the product page source.

## Sources

- [Shopify Dev: Theme performance best practices (server-side Liquid) (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/best-practices/performance)
- [Shopify Dev: Render essential content in Liquid and HTML, not JavaScript (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/best-practices/performance/render-essential-content-server-side)
- [Shopify Help: Editing robots.txt.liquid (read 2026-10-18)](https://help.shopify.com/en/manual/promoting-marketing/seo/editing-robots-txt)
- [Shopify Dev: robots.txt.liquid (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/architecture/templates/robots-txt-liquid)
- [Shopify Dev: llms.txt.liquid (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/architecture/templates/llms-txt-liquid)
- [Shopify Dev: agents.md.liquid (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/architecture/templates/agents-md-liquid)
- [Shopify Dev: Add SEO metadata to your theme (read 2026-10-18)](https://shopify.dev/docs/storefronts/themes/seo/metadata)
- [Shopify Dev: structured_data Liquid filter (read 2026-10-18)](https://shopify.dev/docs/api/liquid/filters/structured_data)
- [Shopify Help: Finding and submitting your sitemap (read 2026-10-18)](https://help.shopify.com/en/manual/promoting-marketing/seo/find-site-map)

RankRoot is not affiliated with Shopify. Check a live site: https://getrankroot.com/ or `GET https://getrankroot.com/api/audit?url=example.com`. Other builders: https://getrankroot.com/builders.md
