Rolling personalization out across a large Sanity site incrementally
I manage a marketing site with roughly 200 pages on Sanity, and we are planning to add personalization with Croct. A big-bang migration is off the table for us. What I am looking for is a sequencing strategy: which components do teams usually map to slots first, and how do you verify each increment is actually serving traffic before moving to the next one?
Also curious whether unmapped pages need any changes at all, or if we can leave the bulk of the site untouched while we prove the approach on a few components first.
1 answer
We did almost exactly this on a site of similar size. The key thing is that adoption is component-level, not site-level, so there is no migration step at all. You only touch the components you decide to map.
Sequencing that worked for us:
- Start with the highest-traffic, highest-leverage slots: homepage hero and the primary CTA blocks. They give you signal fast and the surface area is tiny.
- Then landing page heroes for paid campaigns, since audience targeting pays off quickest there.
- Everything else stays on plain Sanity queries until you get to it. Unmapped components are completely untouched.
For mapped components, your Sanity content stays as the fallback, so anyone who does not match an experience just sees what you had before. That makes each increment low-risk.
For verification, check the slot list in the Croct dashboard. Each slot has a status dot: grey means no requests yet, green means it is actively receiving traffic, and red means it has been inactive for 7+ days. We used the grey to green transition as our "increment done" signal before picking up the next batch of components.