Skip to main content

What not to do

Do not fetch the fragment from the browser. Loading it with fetch() client-side defeats the entire purpose — the crawler never sees it. The request must come from your server.

Do not use the standalone client mode for SEO. Dropping <shopadvizor-rating ean="..." lang="es"> plus client.js into the page works visually and is invisible to crawlers. It is there for cases where SEO is not the goal.

And it stops working entirely where credentials are enforced

That mode calls /v1/data from the browser, which would mean putting your credential in the page's source for anyone to copy. There is no way around that, and no plan to add one: if you need the numbers in the browser, fetch them from your server and pass them down.

Do not put the credential anywhere the browser can reach it. Not in a <script> tag, not in a data attribute, not in a URL. It goes in your server's environment and travels in a request header your server makes.

Do not emit two Product nodes. If your page already has one, use schema=rating-only. This is the single most common integration mistake.

Do not enable breakdown. The per-star breakdown is a Phase-2 preview, outside the current scope.

Do not copy the fragment's HTML into your templates. Its internals are an implementation detail and will change. Always request it live.

Do not self-host hydrate.js or client.js. Load them from the service itself (https://saz-es.public.shopadvizor.com/saz-ssr-server/v1/hydrate.js and https://saz-es.public.shopadvizor.com/saz-ssr-server/v1/client.js). A copy on your own CDN drifts out of step with what the service renders, silently.