Shopify
Make a Shopify store agent-ready: robots.txt.liquid, product feeds, and AI bot rules.
Shopify is the friendliest platform AIScan grades — most of the work is already done by the platform itself. On a Shopify scan, Commerce gets a 1.2× weight and Content drops to 0.6× (Shopify limits how much HTML you can rewrite, so the scanner doesn't punish you for it).
robots.txt.liquid
Shopify themes can override robots.txt via a template at templates/robots.txt.liquid. To add AI bot rules:
{% 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
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /Sitemap
Shopify auto-generates /sitemap.xml. Nothing to do — the D2 check should already pass.
Product feed
Shopify exposes a JSON product feed at /products.json by default. Reference it from aLink header or your api-catalog to make it discoverable. If you maintain a Google Merchant Center feed, link that too — many shopping agents read MC-flavoured XML.
Structured product data
Most modern Shopify themes (Dawn and the OS 2.0 family) emit schema.org/Product JSON-LD on product pages. If yours doesn't, add this in sections/product.liquid:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"image": {{ product.featured_image | image_url: width: 1200 | json }},
"description": {{ product.description | strip_html | json }},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": {{ cart.currency.iso_code | json }},
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}"
}
}
</script>llms.txt
Shopify doesn't let you serve arbitrary root-level files directly. Two workarounds:
- Add a redirect from
/llms.txtto a published page with the markdown body, served as plain text. - Use a Shopify app that ships an
llms.txtproxy (a few have appeared in the App Store).