Skip to main content

Step 2 — The JavaScript enhancement (optional)

<script type="module" src="https://saz-ssr-server.public.shopadvizor.com/v1/hydrate.js"></script>

Load it once per page, before </body> — the same bundle serves both widgets. This is the same URL as Step 1, whether Shopadvizor serves it directly or behind a CDN on their side: saz-ssr-server.public.shopadvizor.com.

Do not copy the file onto your own CDN

The bundle has to stay in step with the fragment the service renders, and the versioned /v1/ path is what guarantees that. A self-hosted copy stops matching the first time the service is upgraded, and nothing warns you when it does.

It is genuinely optional: without it the widget is fully functional and fully indexable. It does not re-fetch data (the data is already embedded in the fragment) and it does not repaint, so there is no flicker.

It is one file for both widgets, about 15 KB gzipped.

WidgetWhat you lose without it
Ratings widgetNothing visible: the compact rating is complete without it.
Reviews carouselThe arrows, the dots, the circular wrap-around and the automatic advance. Their room is already reserved in the fragment, so nothing below the widget moves when they appear.
The one case where it is not optional

If your page inserts the fragment with JavaScript — for example a Next.js app navigating between pages — load hydrate.js: without it your visitors see a blank widget after those navigations. Indexing is not affected: a crawler loads each page from your server, with the widget in it. See the Next.js note in Step 1.