ProductSeoOptions
Defined in: @storesynk/react/dist/seo.d.ts:20
SEO for a product page as framework-neutral data - map it onto your
framework’s head API (TanStack Start head(), Remix meta()). The
JSON-LD half is renderProductJsonLd + scope under fresh) costs no extra requests.
head: ({ loaderData }) => ({ meta: [ { title: loaderData.seo.title }, { name: ‘description’, content: loaderData.seo.description }, { property: ‘og:title’, content: loaderData.seo.title }, { property: ‘og:image’, content: loaderData.seo.image }, { property: ‘og:type’, content: ‘product’ }, ], })
Extends
Section titled “Extends”Properties
Section titled “Properties”description?
Section titled “description?”
optionaldescription?:string
Defined in: @storesynk/react/dist/seo.d.ts:26
Override the meta description (default: the product’s plain-text description).
fresh?
Section titled “fresh?”
optionalfresh?:boolean
Defined in: @storesynk/react/dist/runtime.d.ts:27
Bypass the module cache and fetch live (per-request SSR freshness).
Inherited from
Section titled “Inherited from”FetchOptions.fresh
locale?
Section titled “locale?”
optionallocale?:I18nState|null
Defined in: @storesynk/react/dist/seo.d.ts:22
Per-request buyer market (from getRequestLocale()); null-safe.
scope?
Section titled “scope?”
optionalscope?:RequestScope
Defined in: @storesynk/react/dist/runtime.d.ts:30
With fresh: dedupe fetches within one request (see createRequestScope).
Without it, every fresh call fetches.
Inherited from
Section titled “Inherited from”FetchOptions.scope
siteName?
Section titled “siteName?”
optionalsiteName?:string
Defined in: @storesynk/react/dist/seo.d.ts:30
Appended to the default title as ” - siteName”.
title?
Section titled “title?”
optionaltitle?:string
Defined in: @storesynk/react/dist/seo.d.ts:24
Override the document title (default: product title, with siteName appended).
optionalurl?:string
Defined in: @storesynk/react/dist/seo.d.ts:28
Canonical URL for og:url (pass it if you have it).