About Listing Page Optimizer (LPO)

This is for:

System Administrator

Coveo Machine Learning Listing Page Optimizer (LPO) optimizes product ordering on product listing pages (PLPs) by learning from historical shopper behavior. By learning from diverse buyer preferences, LPO determines which products shoppers tend to prefer when browsing a given PLP and places those products higher in the listing.

To achieve this, LPO analyzes aggregated Coveo Analytics data such as clicks, add-to-cart actions, and purchases across all shopper sessions on each PLP. It combines PLP-specific interaction patterns with global engagement signals such as, but not limited to, clickthrough rates, product popularity, and trending patterns. LPO combines these signals with observed shopper preferences to produce an optimized product ordering for each PLP in your commerce storefront.

By using LPO in your Coveo-powered PLPs, you:

  • Increase engagement: LPO places the products shoppers are most likely to engage with near the top of each PLP, increasing the likelihood that shoppers find compelling products.

  • Reduce manual tuning: LPO minimizes the need for extensive manual pinning, boosting, and burying of products.

Notes
  • LPO doesn’t replace merchandising rules, and it doesn’t eliminate the need for them. LPO ranks products based on learned shopper behavior, but merchandisers are still responsible for applying business-driven adjustments—such as promotions, seasonal priorities, or brand requirements—that behavioral data alone can’t express. Merchandising rules (pinning, boosting, burying, and exclusions) are applied after the LPO ranking, and their effect is combined with the LPO ranking modifier to determine the final product ordering. This means that a small boost may not override a strong LPO signal, so merchandisers should account for the LPO influence when tuning rules.

  • LPO only affects the ordering of products on PLPs:

    • It doesn’t control which products appear on a PLP. Filtering and assortment are handled by other mechanisms.

    • It doesn’t apply to search result pages. Use IAPR or ART for search ranking.

    • It doesn’t personalize rankings per individual visitor. All shoppers browsing the same PLP see the same LPO-optimized order.

How LPO differs from search result ranking

On a search result page, users express intent through an explicit query, and ranking is primarily a relevance prediction problem. Each product can be scored independently against the query.

PLPs are fundamentally different. Shoppers browse a category without an explicit query, comparing products as they scroll.

Because of this, LPO doesn’t predict an absolute outcome for each product, such as a probability of purchase. Instead, LPO determines which product should appear before another, given the specific assortment and PLP context. It learns from implicit head-to-head preferences: when two products appear on the same PLP, which one do shoppers tend to engage with? LPO aggregates these pairwise preference signals across many shopper sessions to produce an ordering where the most compelling products appear earlier, all based on past observed behavior.

This is why LPO rankings can differ from rankings based purely on sales volume or popularity. A product with lower historical sales can be ranked higher than a bestseller if it consistently attracts stronger shopper preference when the two compete for attention on the same PLP.

Example

Consider a "Coffee Makers" PLP with drip machines, espresso makers, and single-serve brewers. A drip coffee maker might outsell every other product in the category globally on your storefront, but shoppers who browse this PLP tend to click espresso makers and single-serve brewers more often. LPO captures this pattern: even though the drip machine has higher total sales, shoppers on this specific PLP consistently prefer exploring other options first. LPO may rank the products that attract the most engagement higher, regardless of which ones sell the most overall.

How LPO works

LPO is trained on historical shopper behavior and produces precomputed ranking scores that are stored in the Coveo index. No real-time model inference occurs at query time, which ensures predictable performance and low latency.

What LPO learns from

LPO is trained using behavioral data collected as shoppers browse PLPs. For each shopper session on a PLP, LPO constructs a judgment list, a training record that orders products based on observed interactions and implicit preferences. It ranks products using the following preference grades:

Behavioral signal Preference grade [1]

Purchase

Highest

Add to cart

High

Click

Moderate

No interaction (product was displayed but the shopper didn’t engage with it)

Lowest

Each judgment list captures one shopper’s behavior during a single session on a PLP. Because different shoppers interact with different products, the same PLP produces many different judgment lists over time. LPO combines these observations to determine which products most shoppers tend to prefer, even when individual shoppers disagree.

1. Grades are additive: if a shopper clicks, adds to cart, and purchases the same product in one session, all three grades contribute to that product’s ranking.

LPO adapts its ranking strategy depending on how much behavioral data is available for a given PLP:

  • Popular PLPs: For the most popular PLPs (ranked by interaction volume), LPO learns a dedicated, PLP-specific ranking for each product. These rankings are trained using historical shopper behavior specific to that PLP, allowing the model to capture context-specific preferences.

  • Low-traffic PLPs: For PLPs that don’t receive enough interactions, LPO learns a shared ranking signal by aggregating shopper behavior across low-traffic PLPs. Products on these PLPs are still ranked, but using aggregated behavioral signals instead of context-specific ones.

How ranking scores are stored and served

Once training is complete, LPO writes precomputed ranking scores into the Coveo index as fields. Each product’s stored scores include PLP-specific values for popular PLPs and a global default value for all other PLPs.

When a shopper browses a PLP:

  1. A listing query is sent to the Coveo index.

  2. The system identifies the PLP and selects the appropriate precomputed score field (PLP-specific or global default).

  3. A ranking function retrieves the relevant score for each product and combines it with the default index score. Merchandising rules (boosting, burying, pinning, exclusions) are then applied on top of the combined index and LPO scores to produce the final product ordering.

  4. The ranked results are returned to the shopper.

LPO models update automatically every 24 hours, incorporating recent shopper interactions into the ranking.

How to interpret LPO scoring

LPO assigns a ranking score to each product for a given PLP. Products are sorted by this score in descending order to determine the final ranking.

Keep the following in mind when interpreting LPO scores:

  • The score is for ordering, not measurement: An LPO score isn’t meant to be read as a standalone measure such as a "probability of purchase". The score only exists to produce a relative ordering of products. Don’t interpret score gaps as business impact. A higher score means the product is ranked ahead of another product in that PLP context, but the size of the gap isn’t meaningful on its own.

  • Ranking is contextual: The same product can receive different scores on different PLPs. LPO evaluates how shoppers interact with products within the specific context of each listing page, so a product that ranks well on one PLP can rank differently on another.

  • Ranking is relative, not a property of the product: A product’s position is determined by how its signals compare to every other product on the same PLP. Change the product assortment on a PLP, and the rankings change, even if the products themselves haven’t changed at all.