Skip to main content

SEO Overview

Search engine optimisation for a storefront is split between the platform and the theme. Know which part you own before you add anything.

ConcernOwnerYour action
Structured data (JSON-LD)PlatformNothing. The engine injects it. Do not duplicate it.
Sitemap filesPlatformNothing. The engine serves them.
Page tags from merchant settingsPlatformNothing. The engine injects them.
Meta title, description and canonical per pageThemeSet them with Helmet
Open Graph and Twitter tagsThemeSet them with Helmet
Heading structure, alt text, link textThemeWrite correct markup
Content present in server HTMLThemeKeep it server-rendered

The most common mistake is a theme that adds its own JSON-LD block. The engine already emits one for the page type, so the page ends with two conflicting graphs.

Crawlers receive the whole page

The engine renders every section for a crawler. When the request comes from a bot it ignores ssrSectionCount and server-renders all sections, so deferred hydration never hides content from a search engine.

Read Deferred Hydration and Lazy Sections.

This does not make every pattern safe. Content that a crawler cannot see is content the theme fetches in the browser. A section that renders an empty placeholder on the server and fills it after mount is invisible to a crawler, deferred or not. If content must be indexed, resolve it on the server.

Structured data the engine emits

The engine picks a default schema from the page type and merges it with the templates configured on the platform.

Page typeDefault schema
HomeWebSite with a SearchAction
ProductProduct, with Offer, Brand, AggregateRating, DeliveryChargeSpecification
CategoryCategory default
CollectionProductCollection
BrandsBrands default
BlogBlog default
Custom pagePage default
Section pageSection default

The engine reads the values from the store, so the schema reflects the same data the page renders.

To change what appears in the structured data, change the platform SEO markup configuration. Do not add a competing script tag in the theme.

Sitemaps

The engine serves the sitemap files. A theme does not generate them.

/root.sitemap.xml
/products/:pageNo/page.sitemap.xml
/category_l1.sitemap.xml
/category_l2.sitemap.xml
/category_l3.sitemap.xml
/brand.sitemap.xml
/collections.sitemap.xml
/pages.sitemap.xml
/sections.sitemap.xml
/blogs.sitemap.xml
/faqs.sitemap.xml

Products are paginated across numbered files. root.sitemap.xml is the index that links the rest.

Page tags

A merchant can add head and body tags from platform settings, such as an analytics snippet or a verification meta tag. The engine injects these. The theme does not need to render them, and it must not hardcode them.

PageUse it when
Page MetadataYou set the title, description or canonical for a page
SEO in PagesYou want the original Helmet example

Was this section helpful?