How to use Prismic CMS for AB testing and website personalization

ProductBy Juliana Amorim

How to use Prismic CMS for AB testing and website personalization

Prismic is an excellent headless CMS and page builder, but it doesn't offer native personalization or A/B testing. Compare the real options and see how to test slices without a developer for every variant.

Prismic has no native AB testing or personalization. It is a headless CMS and page builder, and recent industry analysis groups it with the platforms that expect you to bring your own assignment layer. It does content modeling and slice-based publishing well.

Prismic CMS is a popular headless content management system that allows developers and content creators to build websites and pages with a flexible content structure.

Known for its customizable content modeling and easy integration with frameworks like Next.js and Gatsby, Prismic helps teams manage content effectively while enabling engaging user experiences.

When your goal is to build a website that gives your content team autonomy to work without relying on developers, your main requirements probably are:

  1. It needs to be fast to load
  2. It needs to be indexed on search engines
  3. It needs to be scalable
  4. It needs to provide a good experience for content managers

Prismic certainly satisfies most, if not all, of these requirements. But how about what comes next?

Marketing teams don't use websites solely to publish content. They're always looking for ways to optimize the user journey and monetize their content. One of the most obvious tactics is AB testing and personalization.

Right after launching a website, you'll learn that Prismic has limitations for businesses focused on conversion optimization. In this post, we'll explore what Prismic is good for, its core challenges, and how you can overcome them.

What Prismic is good for

Prismic helps organizations manage and deliver content across multiple platforms with ease. The CMS focuses on a powerful content modeling experience, letting teams define repeatable components, called slices, to reuse across pages.

With its headless architecture, Prismic lets developers integrate content seamlessly into custom front-end frameworks, enabling more design freedom and performance optimization. Its key strengths lie in content management, especially for teams that want to structure content flexibly without managing complex back-end infrastructure.

Prismic solved the hardest half of marketing autonomy. Slices are reusable, marketers compose pages from them, and shipping a landing page does not require a sprint.

Why Prismic isn't ideal for website personalization and AB testing

Then the obvious next question arrives: does version A convert better than version B? The answer is that someone has to build a decision layer, which puts you back in the developer queue you adopted Prismic to escape.

That is a strange place to end up. The team that can ship a page in an afternoon waits two weeks to test it.

Website personalization

Since Prismic focuses more on static content, it lacks real-time personalization capabilities. This limits its ability to serve dynamic content based on user preferences, behaviors, or demographics, which is essential for creating tailored user experiences.

If you use Prismic and need to personalize your website, the most straightforward option is to use a third-party solution like Uniform and add an external layer to your application.

AB testing

Although Prismic used to provide AB testing capabilities, this feature was deprecated a while ago, and users are now forced to use third-party tools for that. This guide provides a more detailed explanation of how to run AB tests with GrowthBook in a Next.js application.

What testing a slice actually requires

Whichever third-party route you take, six things have to exist before a result means anything:

  1. Identity: A stable visitor ID in a first-party, server-set cookie. Safari's ITP caps client-set cookies at seven days, which rebuckets returning visitors partway through a four-week test.
  2. Deterministic assignment: Hash the visitor ID with the experiment key and map it to a bucket. Randomizing per request means a reload flips the variant.
  3. Variant modeling: Duplicate slices, a variant field on each, or duplicate documents.
  4. Selection logic: Code that picks the right variant per visitor and falls back cleanly.
  5. Exposure tracking: Recording who saw what, sent server-side so ad blockers do not bias the denominator.
  6. Statistics: An engine that decides whether the difference is real.

Item 3 is the one that quietly hurts. Duplicating slices for variants means you have to make every non-experimental change in each copy. Marketers who could previously edit one thing now edit three, and the copies drift apart.

The options you'll be recommended, and how they fit

Read most comparison articles on what to use with Prismic, and you'll get Optimizely and VWO, sometimes Statsig or PostHog. These are real answers. They're just aimed at different teams than most Prismic sites have.

Optimizely is the most-cited answer and an enterprise experimentation platform priced and staffed accordingly. It sits in front of a Prismic site and does the job if you have a team to run it.

VWO is the mid-market answer, with personalization, heatmaps and recordings included as paid add-ons. Its visual editor is client-side by default, which is what causes flicker on the landing pages you're buying traffic to. The FullStack SDKs avoid that and move you back into developer territory.

GrowthBook, Statsig, and PostHog are developer-first. Assignment and statistics are excellent, while content variants are code branches. For a team that ships pages from Slice Machine without a developer, this inverts the workflow you chose Prismic for.

Uniform adds an orchestration layer over Prismic, and relies on an external CDP for visitor data.

None of these is a bad tool. They answer the question "how do I run a rigorous experimentation program," rather than "how does my marketer test this hero next week."

Alternative for personalization and AB testing

If you're looking to give your team autonomy while ensuring excellent website performance and maintaining your design system, Croct is a great alternative.

Unlike Prismic CMS, Croct simplifies personalization and experimentation. Here's why:

  • Native personalization and segmentation

    Croct offers built-in tools to personalize content based on real-time behavior, location, marketing campaigns, and other user attributes. This is far more efficient than building it in Prismic, and you won't need a CDP to manage user data.

  • Bayesian AB testing

    Croct includes built-in Bayesian AB testing, allowing you to experiment with content variations and optimize user experiences easily. Unlike Prismic, which requires more custom development for AB testing, Croct provides a streamlined, user-friendly approach.

  • User-friendly for non-developers

    Croct is designed for developers, product managers, marketers, and non-technical users alike. Most personalization and testing tasks can be managed without needing developers, reducing your reliance on technical resources.

  • Real-time personalization analytics

    Croct offers real-time analytics, enabling you to track user interactions across segments and adapt experiences on the go. The platform's dashboards provide real-time data without needing integration with external analytics tools.

  • Server-side delivery

    Everything resolves before the response is sent, so there's no flicker and no Core Web Vitals penalty. This matters more on Prismic sites than most: landing pages are usually the pages you buy traffic to, so a client-side testing script that degrades LCP taxes the traffic you paid for.

  • Seamless integration

    Croct integrates smoothly into your existing tech stack, handling personalization and experimentation while allowing you to use Prismic for static content management. Croct covers what Prismic isn't built for, like dynamic personalization and AB testing.

Testing a slice without duplicating it

Your slice component fetches from a slot and passes the Prismic content as the fallback:

1234567891011121314151617181920
// slices/Hero/index.jsximport {fetchContent} from '@croct/plug-next/server';
export default async function Hero({slice}) {  const {content} = await fetchContent('home-hero', {    fallback: {      title: slice.primary.title,      subtitle: slice.primary.subtitle,      ctaLabel: slice.primary.cta_label,    },  });
  return (    <section>      <h1>{content.title}</h1>      <p>{content.subtitle}</p>      <a href="/signup">{content.ctaLabel}</a>    </section>  );}

One slice, one document, no duplicates. When no experiment is running, the component renders exactly what Prismic returned. Your custom types are untouched, no variant fields are added, and rolling back is deleting one call.

Developers wrap each slice they want to make testable, once. After that, variants, audiences, traffic allocation, scheduling, and results all live in the Croct interface.

Comparison

Duplicate slicesOptimizely / VWOFeature flagsCroct
No new variant fields or duplicated slices
Unchanged editorial surface (multiplies per variant)
Variant assignmentYou build it
Cross-device stickinessYou build it
Exposure trackingYou build it
Statistical engineExternal
Audiences and profilesExternal CDPExternal CDP
New variant does not need a deploy
Server-side by defaultYour choiceClient-side defaultYour choice
Entry priceYour timeEnterprise / ~$200+Free tiers existFree, then $100/mo

But wait, I don't want to switch CMS and rebuild my entire website

The good news is, you don't have to.

Consider your website as a dynamic interface. Some elements, like headers, footers, and blog content, are meant to remain static, and your growth team likely won't experiment with these. But other components, crucial to your conversion flow, should be dynamic, and that's where Croct comes in.

Similar to Prismic, Croct lets you model and create components flexibly. This allows the growth team to experiment with different layouts, content, images, and structures without breaking the design system.

Static and dynamic content can coexist, and you can gradually transition key elements from Prismic to Croct, giving both your content and growth teams the autonomy they need. Here are some templates to show you how it works.

Croct coexists with Prismic CMS
Croct coexists with Prismic CMS

Resolution happens at the slice level, so only the tested region is dynamic, and the rest of the page stays prerendered and cacheable.

A reasonable first move: pick the slice with the most traffic and the clearest conversion role, usually the homepage or a primary landing page hero. One slice, one experiment, two weeks.

If your goal is to deliver dynamic, user-specific experiences and boost conversions, take the first step by creating your free account and get started within hours.

Let's grow together!

Learn practical tactics our customers use to grow by 20% or more.

By continuing, you agree to our Terms & Privacy Policy.