Search personalization: re-ranking on-site search results by what a shopper has shown you
Two shoppers typing running shoes may want trail shoes under eighty dollars and carbon racers at any price. Default search cannot tell them apart. Personalized search re-ranks results using what the session and history reveal, keeping relevance first and letting affinity break the ties that default ranking gets wrong.
Relevance first, personalization second
The failure mode to avoid is personalization overriding relevance. A shopper searching for a specific product wants that product, not a tour of their favorite categories. Treat the query match as the gate and personalization as the ordering within matching results.
That structure also makes testing honest. If personalized ordering only rearranges results that already match the query, any conversion change is attributable to ordering, not to hiding or inventing results.
The signals worth using
Category affinity from viewed and purchased products is the workhorse: a shopper who lives in trail gear should see trail results first within a matching set. Price band affinity matters just as much, since ranking premium results first for a value shopper reads as tone-deaf, not premium.
Session signals should outweigh stale history. What a shopper searched, filtered, and clicked in the last twenty minutes describes this trip, and this trip is what search is serving. Blend history in gently and let the session lead.
Cold searches and new visitors
With no history, personalized search should quietly be good default search: strong text matching, sensible popularity ordering, and filters that reflect the query. The personalization layer earns its place only when evidence exists.
Zero-result handling benefits most from restraint. Offer the closest category matches and spell-corrected interpretations, clearly labeled, rather than silently substituting results from the shopper profile that ignore the query.
Guardrails against filter bubbles
A search system that only shows a shopper what they already like will slowly shrink their catalog. Reserve part of the first page for strong general matches outside the affinity profile, and rotate exploratory results in lower positions.
Monitor query-level outcomes, not just global conversion. Personalization can lift the average while quietly wrecking specific long-tail queries, and only per-query reporting catches that before it compounds.
What to measure and how long to test
Search conversion, time to first click, reformulation rate, and zero-result rate together describe search health. A ranking change that lifts clicks but also lifts reformulations is shuffling frustration, not fixing it.
Run tests across at least one full weekly cycle per major category. Search behavior differs on weekends and payday cycles, and a three-day test mostly measures which days it happened to include.
Frequently asked questions
Will personalized search hurt shoppers looking for gifts?
It can if history dominates. Session signals and an easy way to browse the unpersonalized ordering reduce the effect, and gift-intent sessions usually reveal themselves through category jumps the system should respect.
What data do we need before starting?
View, click, and purchase history tied to a visitor, plus clean product attributes for category and price. Start with category affinity only; it delivers most of the lift with the least complexity.
How do we keep personalization from hiding new products?
Reserve exploratory slots in results for new and generally popular items outside the shopper profile, and track how much of the first page personalization is allowed to reorder.
Should search personalization apply to every query?
No. Navigational queries for a specific product or page should return the exact match first regardless of profile. Personalization helps most on broad category and attribute queries.