{"kind":"crawlcheck-platform-fix","v":1,"platform":"shopify","platform_name":"Shopify","code":null,"groups":[{"group":"robots","title":"Edit robots.txt","codes":["ROBOTS_RULES_SHADOWED","ROBOTS_NO_SITEMAP","ROBOTS_NOT_200","ROBOTS_IS_HTML","ROBOTS_IS_CATCHALL","ROBOTS_DISALLOW_ALL","ROBOTS_CTYPE","ROBOTS_BLOCKED","RENDER_RESOURCE_BLOCKED","INSTRUCTION_CONFLICT","DECLARED_SITEMAP_REFUSED","DECLARED_SITEMAP_BROKEN","SITEMAP_BLOCKED","AI_OPTOUT_SET","BOT_BLOCKED_NOT_CITED","BOT_RULES_SHADOWED_NOT_CITED"],"steps":["Online Store → Themes → … → Edit code → Templates → Add a new template → robots.txt. Shopify creates robots.txt.liquid.","Add your lines inside the existing loop over robots.default_groups instead of replacing it, so Shopify's own rules (checkout, cart, admin) stay.","Delete robots.txt.liquid to go back to Shopify's default."],"page":"https://crawlcheck.io/fix/shopify#robots"},{"group":"sitemap","title":"Publish a sitemap","codes":["NO_SITEMAP_FOUND","SITEMAP_NO_LASTMOD","SITEMAP_IS_HTML","SITEMAP_DECLARES_NOTHING","SITEMAP_UNREADABLE","SITEMAP_ORIGIN_ERROR","ROBOTS_NO_SITEMAP","DECLARED_SITEMAP_BROKEN","DECLARED_SITEMAP_REFUSED"],"steps":["Shopify writes /sitemap.xml itself (with lastmod) and lists it in its default robots.txt; it cannot be edited.","If a scan says the sitemap is missing or not declared, check whether a custom robots.txt.liquid dropped the Sitemap line."],"page":"https://crawlcheck.io/fix/shopify#sitemap"},{"group":"llms","title":"Publish llms.txt","codes":["NO_LLMS_TXT","NO_LLMS_TXT_NOT_CITED"],"steps":["Shopify cannot serve a file you upload at the root.","Upload llms.txt under Content → Files, copy its URL, then add a URL redirect from /llms.txt to it (search \"URL redirects\" in the admin). Readers that follow redirects get the file; some agents do not follow a redirect to another host."],"page":"https://crawlcheck.io/fix/shopify#llms"},{"group":"hsts","title":"Send HSTS","codes":["HSTS_MISSING","HSTS_PRELOAD_INELIGIBLE","HSTS_PRELOAD_REMOVED"],"steps":["Shopify sets response headers itself; you cannot add HSTS on Shopify. If the domain runs through Cloudflare, set it there."],"page":"https://crawlcheck.io/fix/shopify#hsts"},{"group":"bots","title":"Let crawlers through","codes":["CHALLENGE_SERVED_200","CHALLENGE_PINNED_AT_EDGE","ANSWER_ENGINE_REFUSED","UNIFORM_REFUSAL","HOMEPAGE_REFUSED","HOMEPAGE_IS_INTERSTITIAL","ORIGIN_REFUSED_SCANNER","CRAWLER_SERVED_LESS","CRAWLER_REDIRECTED_AWAY","BOT_BLOCKED_NOT_CITED"],"steps":["Shopify's own bot protection has no setting. Look for an app that blocks bots, and for Cloudflare or another proxy in front of the store."],"page":"https://crawlcheck.io/fix/shopify#bots"},{"group":"render","title":"Serve the text, not just code","codes":["PAGE_IS_MOSTLY_CODE","CONTENT_NEEDS_JAVASCRIPT"],"steps":["Uninstalled apps often leave script tags in the theme: remove them from theme.liquid and snippets.","Turn off app embeds (Theme editor → App embeds) on pages that do not use them."],"page":"https://crawlcheck.io/fix/shopify#render"},{"group":"schema","title":"Fix the structured data","codes":["ENTITY_COLLISION","ENTITY_NO_COORDINATES","GEO_COUNTRY_MISMATCH","NAP_NAME_DRIFT","NAP_UNDECLARED_LISTING"],"steps":["The theme prints Organization and Product JSON-LD in theme.liquid or a snippet: edit it there, and do not stack an SEO app's schema on top of the theme's."],"page":"https://crawlcheck.io/fix/shopify#schema"},{"group":"cache","title":"Clear stale copies","codes":["STALE_CACHE_SERVED","MACHINE_FILE_CACHE_STALE","MACHINE_FILE_CACHE_SPLIT"],"steps":["Shopify's CDN refreshes on its own after a change; if Cloudflare is in front, purge there."],"page":"https://crawlcheck.io/fix/shopify#cache"}],"rules":"https://crawlcheck.io/rules","reading":"Where to make each fix on Shopify. The general fix for each finding is in its report and at /rules/<CODE>; these steps say where that change is made on this platform, and say so when the platform cannot do it."}