SEO fields and access

Resource SEO fields, translations, indexing and the current API boundary.

Resource fields#

Products, collections, categories, brands, vendors, pages and blog posts expose seo_title and seo_description through their resource operations. Follow each resource’s documented limits and patch/clear semantics; there is no separate JSON-LD write endpoint. An explicit title is a final override. Generated titles use the storefront defaults. Schema uses storefront data and the resolved market, currency, tax display and stock, so changing only SEO text does not change an Offer price.

Source and translated SEO#

Catalog directory SEO uses /list-page-seo/{pageType}, for brand_list, vendor_list, category_list and collection_list. The blog index uses /blog/list-seo. These are separate from each resource’s SEO. List-page source reads/writes require read_products/write_products; the blog index requires read_blog/write_blog. Translation reads/writes also require read_translations/write_translations. Assigning a non-empty social_image_id requires read_site_assets and a site-asset image owned by the store. Source PUT operations are patches: omitted fields are preserved; null or *_is_default=true restores generated defaults. Remove existing translations before clearing a translated source field. Source edits mark translations outdated. See List-page SEO, list-page translations and blog index SEO.

Current storefront-settings boundary#

Home, Shop and Search SEO, title patterns and the store-name/share-image settings are managed through Store Admin and the mobile app. The public Store API currently has no endpoints for these storefront-scoped SEO settings. The read_storefront/write_storefront scopes cover preferences; they are not a grant for the distinct online_store.storefronts staff permission. Consequently public Store API-backed MCP tools do not provide those missing operations. Do not substitute a list-page SEO endpoint or use another storefront’s identifier.

Translations, bulk work and events#

Use resource translation endpoints or the resource’s supported translation CSV/AI operations for SEO fields. Source list-page SEO has no data CSV. Translation resource types are catalog_list_seo, blog_list_seo and storefront_page_seo; do not assume every type is exposed by every public API. Lists, deletes and bulk work follow the resource contract: at most 100 items per API page, a full delete-preview count with at most the first 50 entries, and at most 1,000 IDs per delete batch where batch deletion is supported. Resource updates and translation events carry SEO through their resource payloads. Public list-page SEO emits list_page_seo/update and translation update/delete topics; the blog index emits blog_list_seo equivalents. Consult the webhook topic reference for subscription scopes and staff permissions.

Storefront URLs and indexing#

Use returned localized slugs and storefront URLs. The platform generates canonical and hreflang links, Open Graph/Twitter cards, /sitemap.xml and /robots.txt. Search query results and filter/sort combinations are noindex; unfiltered pagination has page-specific canonical URLs. System/list-page SEO without translated text uses the generated default for the active language. See theme SEO and structured data for emitted JSON-LD and theme responsibilities.