Personalized Website Examples: Six Patterns and the Tests That Prove Them
David SertillangeIndependent experimentation specialistTL;DR
- →See six personalization patterns described the same way: what the visitor sees, the data it needs, and the test that decides whether it stays.
- →Know where relevance tips into surveillance, and the three practices that keep a personalized experience on the right side of that line.
- →Avoid the four ways personalization results mislead: post-hoc segments, underpowered audiences, hidden trade-offs and novelty effects.
Most pages that promise personalized website examples show you a screenshot of a homepage with someone's first name on it and move on. That is not an example of anything useful, because the interesting part of personalization is never what the visitor sees — it is what data made that view possible, and whether showing it beat showing the default. This page answers the first question: what does personalization actually look like on a real site, pattern by pattern. The companion question — how do you know a personalization programme is working, and which metrics tell you — is answered by website personalization, which is about measurement strategy rather than the patterns themselves. Read that one if you already know what you want to build.
What follows is six patterns that are in production on sites you have used. For each one: what the visitor sees, the data it requires, and the experiment that decides whether it stays. That last part is what makes this list worth reading. A personalized experience is a bet that a segment responds differently to a treatment than everyone else does, and a bet like that has a statistical name — a heterogeneous treatment effect — and a way of being tested. Measuring a personalized experience honestly is where the failure modes live, and it is the section to read before you ship any of this.
How to read each pattern
Every pattern below is described the same way, because personalization work always decomposes the same way.
flowchart LR
A[Signal available at request time] --> B[Rule: which visitor gets what]
B --> C[Variation the visitor sees]
C --> D[Experiment: personalized vs default]
D --> E[Metric that proves it worked]
D -. no lift .-> F[Remove the rule]What the visitor sees is the concrete change — a swapped hero, a different default, a module that appears or does not.
What data it needs is the signal, and where it has to be available. A signal that only exists in the warehouse cannot drive a first-paint decision; a signal that exists in a cookie can. This is where most personalization plans quietly fail.
How to test it is a real experiment: the segment gets randomised into personalized and default arms, and one pre-declared metric decides. Personalization that ships without this is a design opinion with extra infrastructure.
Geo and locale
What the visitor sees. Currency and pricing in their own units, delivery estimates and shipping costs for their country, the store or branch nearest them, the correct legal and tax copy, a language default they did not have to choose, and seasonal creative that matches their hemisphere rather than the head office's.
What data it needs. IP-to-country resolution, which every CDN and edge runtime already provides in a request header, plus Accept-Language for the language default. This is the cheapest pattern to run because the signal arrives before the page does, so there is no flicker and no client-side lookup.
How to test it. Hold out a share of visitors in one or two countries and serve them the generic experience. The metric is conversion rate within that country, not site-wide — a global average will drown a real effect in a market that is 4% of traffic. The common surprise is that localised delivery estimates move purchases more than translated copy does, which is a result you only get by testing the two separately.
New visitor or returning visitor
What the visitor sees. A first-time visitor gets the explanatory version: what this product is, who it is for, the proof. A returning visitor gets the continuation — pick up where you left off, the item still in the cart, the article you were half-way through — and does not get the introductory banner they have already dismissed twice.
What data it needs. A first-party cookie or local storage flag, and a visit count. Nothing more. If the site has accounts, an authenticated session upgrades the pattern considerably, but it is not required.
How to test it. Randomise returning visitors into the tailored experience and the standard one. The metric is the action the tailored version is supposed to accelerate — resumed sessions, cart recovery, second-article reads — with time on site left alone as a diagnostic. Watch for the effect decaying after the first week: returning-visitor treatments are the archetypal case of novelty and primacy effects, where a change looks strong because it is different and stops looking strong once it is familiar.
Behaviour: pages viewed, cart contents, content consumed
What the visitor sees. Recommendations built from what they just looked at. A category page whose default sort reflects the three products they have already opened. A cart page that suggests the accessory that fits the item in the cart rather than the current bestseller. A documentation site that surfaces the SDK for the language whose pages the reader keeps opening.
What data it needs. An event stream with a session identifier, and a decision point fast enough to use it. This is the first pattern where the plumbing is real work: the events have to reach the decision service before the next page renders, which usually means keeping a small behavioural profile in the session rather than querying a warehouse.
How to test it. This is a classic A/B test of the recommendation module against the static one, and the metric should be revenue or engagement per session for the whole visit — never clicks on the module itself. A module that steals clicks from the navigation next to it can post a superb click-through rate while lowering the number of people who buy anything, and module-level metrics cannot see that. If you are testing several recommendation strategies at once rather than one, a multi-armed bandit allocates traffic more efficiently than a fixed split, at the cost of a clean fixed-horizon read.
Account tier and lifecycle stage
What the visitor sees. A trial user sees setup guidance and the feature they have not activated. A paying customer never sees the upgrade banner they already acted on. An enterprise account sees contact-sales routing where a self-serve account sees a checkout. A churn-risk account sees the support path rather than the expansion offer.
What data it needs. Authenticated identity joined to a plan or lifecycle attribute — the one signal on this list that genuinely requires an account system and a synchronised attribute store. It is also the most stable signal here: a plan does not change between page views.
How to test it. Randomise within a single tier, never across tiers. Tiers differ so much in baseline conversion that mixing them makes the comparison meaningless, and comparing tier to tier is not an experiment at all. The metric follows the lifecycle stage: activation rate for trials, expansion for paying accounts, retention for at-risk ones. Take a guardrail on support contacts — a "helpful" in-product prompt that raises tickets is a cost, not a win, and guardrail metrics are how that gets caught before the rollout.
Traffic source and campaign
What the visitor sees. Message match: the ad promised a specific thing and the landing page leads with that specific thing. A visitor from a comparison review lands on the comparison-shaped page; a visitor from a technical newsletter lands on the technical one; a visitor from a branded search sees the branded hero rather than the explainer written for strangers.
What data it needs. The referrer and the campaign parameters already in the URL. No profile and no history — which is why this is the pattern most sites can implement this week, and the one with the tightest link to spend, since the traffic being personalized is traffic somebody paid for.
How to test it. This is landing page A/B testing with the audience defined by campaign rather than by page. Randomise within one campaign; the metric is that campaign's conversion rate and, where the numbers exist, its cost per acquisition. Do not read a campaign-level win as a site-level one. And note that source-based personalization interacts with pricing decisions, so if a price test is running at the same time, the two need to be either coordinated or explicitly interleaved.
Search and browse history
What the visitor sees. The site remembers a search from a previous visit and offers it back. Filters persist — size, brand, price band — instead of resetting. A returning reader sees the next part of a series rather than the front page of it. At its most developed, the ranking of an entire catalogue shifts to reflect what this person has shown interest in over months.
What data it needs. A durable, identity-linked history: consented storage, a retention policy, and a way for a person to see and clear it. This is the pattern with the highest data cost and the highest privacy exposure, and it is the one where the difference between helpful and unsettling is decided.
How to test it. Randomise visitors with enough history to be personalized at all — a minimum interaction count is part of the audience definition, not an afterthought — and measure task completion, not engagement. Session length rises when people cannot find things, so an engagement-only read of this pattern is close to unfalsifiable. Add a guardrail on unsubscribe or opt-out rate; that is where the cost of getting this one wrong appears first.
Why personalization works, and where it tips into feeling surveilled
The psychology is not mysterious. Relevant options reduce the effort of choosing, and choice effort is the reason most people abandon a page — narrowing a hundred products to the six that fit removes work the visitor would otherwise have to do. Familiarity helps too: a returning visitor who is shown continuity rather than a fresh introduction is being told the site remembers them, and reciprocity does the rest. And recognition of context — the right currency, the right delivery date, the right language — reads as competence, which is a component of trust rather than a trick.
The same mechanisms invert. The uncanny threshold is crossed when the site demonstrates knowledge the visitor did not knowingly give it, and the tell is specificity without an obvious source. A recommendation based on what someone just clicked reads as helpful, because the source is visible. The same recommendation based on a data broker's profile reads as surveillance, because it is unexplained. Cross-device recognition surprises people. So does personalization based on inferred sensitive attributes — health, finances, family status — even when the inference is correct, and especially then.
Three practices keep the pattern on the right side of that line. Prefer signals the visitor can trace back to something they did on this site. Make the personalization legible where it is not obvious — "because you viewed X" costs a line of copy and converts an unsettling experience into an explicable one. And make it reversible: a visible control that resets the profile is used by very few people and reassures many more. If a treatment only works while the visitor does not understand where the data came from, that is not a personalization win, it is a liability with a positive p-value.
What the tooling actually has to do
Personalization tools are usually evaluated by feature list, which is the wrong axis. The capabilities that decide whether a pattern above can actually ship are narrower: where the decision is made and how fast, whether the audience definition can use the signal you have, whether the tool can hold out a control group, and whether its results export somewhere you can analyse them properly.
Decision latency is the constraint most plans hit. An edge or server-side decision can personalize a first paint; a client-side decision after page load cannot, without a flicker that costs more than the personalization gains. If a pattern needs to change what the visitor sees before they see anything, the tool has to run before render, and a tag-manager-based implementation generally does not.
The control group is the capability people forget to ask for, and it is the one that determines whether any of this is measurable. A tool that applies rules but cannot withhold them from a random share of the eligible audience makes every result unfalsifiable. Ask for it in the evaluation, and check that the holdout is randomised per visitor and persistent across their sessions rather than re-rolled on each visit.
Measuring a personalized experience honestly
Personalization is the deliberate pursuit of a heterogeneous treatment effect: the claim is not that a change helps everyone, but that it helps this segment enough to justify treating them differently. That framing is what A/B test segmentation is about, and it carries the discipline that makes segment-level results trustworthy — the segment is declared before the test runs, not discovered in the results afterwards.
Four things go wrong repeatedly.
Segments are found after the fact. Slicing a finished experiment until a subgroup shows a win produces a win essentially every time, because with enough slices one of them is significant by chance. Declare the segment and its metric before launch; if you are genuinely exploring several segments, control the error rate across them with false discovery rate control rather than reading each at 0.05.
The segment is too small to answer the question. A personalized experience for 6% of traffic is powered by 6% of traffic, so the test needs either a much larger effect or a much longer run than the site-wide equivalent — and how long to run an A/B test is the calculation to do before building anything, not after.
Aggregate metrics hide the trade. A personalized module can lift its segment and depress everybody else through the space it takes or the navigation it displaces. Report the segment metric and the site-wide metric together, always.
Wins are read too early. Personalization treatments are unusually prone to novelty effects, because "the site changed" is itself the salient thing for a returning visitor. Hold the test through at least one full behavioural cycle and check whether the effect in the last week matches the effect in the first.
Here is the shape of the read, once the experiment has run:
select
segment,
variation,
count(distinct visitor_id) as visitors,
sum(converted) * 1.0 / count(distinct visitor_id) as conversion_rate
from experiment_exposures
join outcomes using (visitor_id)
where experiment = 'personalized-hero'
group by segment, variation
order by segment, variation;
The eligible-but-held-out visitors have to be in that table as their own arm. Comparing personalized visitors against visitors who were never eligible for personalization is not a comparison of treatments; it is a comparison of two different populations, and it will report a large effect whether or not one exists.
Where to start
Take the six patterns in order of what your data already supports. Geo and campaign are usually available today and need no profile. Returning-visitor and behavioural patterns need an event stream and a fast decision point. Tier and history patterns need identity and a retention policy. Pick the highest one on that list you can actually implement, define the audience and the single metric before you build the variation, and run it with a held-out control from the first day.
A pattern is a hypothesis about a segment, and the useful output is not the personalized page. It is knowing which segments genuinely respond differently — which is a fact about your customers that outlives whichever page you shipped it on.

Independent experimentation specialist
David Sertillange is an independent experimentation specialist with 10 years implementing Optimizely across enterprise programs. He specializes in Feature Experimentation, analytics integrations, and helping teams build a culture of data-driven decision making.
Related articles
Subscribe
Practical Optimizely tips, monthly. No fluff.