Platform guide
Shopify
Product pages start strong. Collection pages are where almost every store loses the answer.
Shopify does a lot for you. Product templates emit Product schema with price and availability, pages are server-rendered, and the sitemap generates itself. Most stores start around 60/100 without doing anything.
The failure is nearly always the same: collection pages that say nothing. A collection titled "Boots" with twelve product tiles and no prose cannot be quoted. When someone asks "who sells wide-fit walking boots in Australia", the model has nothing to work with.
If you have a lot of products
Every fix below goes in the theme, not on individual products. Add Product schema to the product template once and it applies to your whole catalogue — twelve items or twelve thousand. The exceptions are alt text and product descriptions, which are per-item and best handled through a CSV export rather than one at a time.
Fix 1 — Organization schema, site-wide
Create snippets/ai-visibility-jsonld.liquid:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "{{ shop.url }}/#org",
"name": {{ shop.name | json }},
"url": {{ shop.url | json }},
"description": {{ shop.description | json }},
"email": {{ shop.email | json }}
}
</script>Then in layout/theme.liquid, just before </head>:
{% render 'ai-visibility-jsonld' %}Fix 2 — Write your collection descriptions
In the admin: Products → Collections → [collection] → Description. Two or three paragraphs that state who the collection is for and what distinguishes it. Include the constraints people search with — width, price band, material, use case.
Then confirm your theme actually renders it. Many do not:
{% if collection.description != blank %}
<div class="collection-description">{{ collection.description }}</div>
{% endif %}Fix 3 — Product alt text
Products → [product] → Media → click image → Edit alt text. Describe the product and what is visible. This is bulk-editable via a CSV export if you have hundreds.
Fix 4 — FAQ schema on high-value products
Add an FAQ metafield or use the theme's rich text, then mark it up. Only include questions genuinely answered on the page. See FAQ schema.
Fix 5 — robots.txt
Shopify supports robots.txt.liquid as a theme template. Create it, and note that Shopify's default already allows most crawlers — the risk is an app or a custom rule that has added a blanket disallow.
{% for group in robots.default_groups %}
{{ group.user_agent }}
{% for rule in group.rules %}{{ rule }}
{% endfor %}
{% endfor %}
User-agent: GPTBot
Allow: /
User-agent: PerplexityBot
Allow: /Fix 6 — llms.txt
Shopify does not serve arbitrary root files easily. The practical route is a redirect from /llms.txt to a page, or hosting the file on a subdomain you control. Weigh it against the fixes above, which matter more.
Collection descriptions first. They are the biggest gap and require no code.
Common questions
Does Shopify add structured data automatically?
Most modern themes emit Product schema on product pages. Very few emit Organization schema site-wide or FAQPage schema, which is why adding them manually is worthwhile.
Can I edit robots.txt on Shopify?
Yes. Create a robots.txt.liquid template in your theme. Keep the default groups loop so you do not lose Shopify's built-in rules.
Take this to your assistant
Paste it into ChatGPT, Copilot, Claude or Gemini and apply it to your own website.
Nothing is sent anywhere. The text is copied to your clipboard.