All Posts
Headless Commerce June 25, 2026

Searchspring vs Constructor.io vs Klevu for Enterprise Shopify Plus Headless Search (2026)

Enterprise headless search on Shopify Plus splits along a clean axis: merchandiser controlled tuning versus AI driven personalization. Searchspring, Constructor.io, and Klevu sit at three different points on that axis, and the wrong pick produces either a merchandising team that cannot adjust anything or an AI that ranks against the brand strategy.

Enterprise headless search on Shopify Plus is not the same problem as picking a search engine. Typesense, Algolia, and Meilisearch are infrastructure: indexing, ranking, faceting, and a query API. Searchspring, Constructor.io, and Klevu are commerce search platforms: infrastructure plus merchandising controls, AI ranking models trained on commerce signals, category page management, recommendations, and the workflow tooling a merchandising team uses every day. The two categories solve different problems and the wrong choice produces either an engineering team owning every merchandising change or a merchandising team locked out of the page they are responsible for.

The split inside the commerce search category is along the merchandiser versus AI axis. Searchspring leans hardest on merchandiser controlled tuning: drag and drop boost rules, visible business rule layers, and a model that defers to human curation. Klevu sits in the middle with an AI ranking foundation and a merchandising surface that can adjust the AI. Constructor.io leans hardest on AI driven personalization: per shopper ranking, autonomous tuning loops, and a smaller merchandising surface intentionally constrained to high level intent. We have integrated all three into Shopify Plus headless storefronts on Hydrogen and Next.js Commerce across the last 24 months and the trade offs sort cleanly.

Headline Comparison

Dimension Searchspring Constructor.io Klevu
Founded / focus 2007, merchandiser controlled commerce search 2015, AI driven personalized search and discovery 2013, AI native ecommerce search with merchandising surface
Best fit brand profile Mid market to enterprise with strong merchandising team Enterprise with high catalog churn and deep behavioral data Mid market to enterprise with mixed AI and human curation
Pricing model (entry) $1,500/mo plus query volume $3,000/mo plus traffic tier $1,200/mo plus query volume
Pricing model (enterprise typical) $5,000 to $15,000/mo $8,000 to $40,000/mo $4,000 to $12,000/mo
AI ranking Hybrid, merchandiser overrides dominant Per shopper, fully personalized Native AI ranking, merchandiser tunable
Merchandiser control surface Strongest in category Lightest, intentional design Strong, integrated with AI
Headless API surface REST + GraphQL, dedicated SDK GraphQL primary, well typed REST + GraphQL, Hydrogen examples
Shopify Plus integration depth Native, mature Native, growing Native, mature
Indexing latency (catalog change to live) 3 to 10 minutes 5 to 15 minutes 2 to 8 minutes
Time to production (enterprise migration) 8 to 14 weeks 10 to 16 weeks 6 to 12 weeks

The shape of the table reveals the decision. Searchspring is the cleanest pick when the merchandising team is the strategic driver and the AI ranking is an aide. Constructor.io is the cleanest pick when behavioral data is rich and the strategic bet is on personalization scale beyond what humans can curate. Klevu is the bridge: AI ranking by default with a merchandising surface that can override or shape it.

The Merchandiser vs AI Axis: Why This Choice Matters

Search relevance on a commerce site is shaped by two forces in tension. Behavioral signals (what shoppers click, add to cart, and buy) push ranking toward what has converted before. Business strategy (margin, inventory position, brand priorities, new launches) pushes ranking toward what the brand wants to sell. A pure AI system optimizes the first and ignores the second. A pure merchandiser system encodes the second and misses what the AI would have caught.

# Conceptual ranking score
final_score = (
    ai_relevance(query, product, shopper) * w_ai
    + merchandiser_boost(product, rules, segments) * w_merch
    + business_constraints(margin, inventory, brand) * w_biz
)

The platform choice determines the weights and which layer is the source of truth.

Searchspring's defaults set w_merch highest, with w_ai as an aide. The merchandising team owns category pages, boost rules, pin and bury, search synonyms, and the segmentation logic. The AI surfaces ranking suggestions and intent classification, but the merchandiser overrides are visible, auditable, and applied last.

Constructor.io's defaults set w_ai highest, with w_merch constrained to high level intent (collection focus, themes, exclusions). The platform's bet is that per shopper personalization scales beyond what a merchandising team can curate, and that the right unit of merchandiser input is direction rather than per product control.

Klevu's defaults sit in the middle. The AI ranking runs by default; the merchandising surface can pin, bury, boost, and constrain at the category and query level, but the AI continues to do the work between those constraints.

API Design For Hydrogen and Next.js Commerce

Capability Searchspring Constructor.io Klevu
GraphQL surface completeness 75% 95% 85%
Typed SDK for Hydrogen Yes (TypeScript) Yes (typed, Hydrogen native) Yes (TypeScript)
Server side rendering support Yes, with caching tier Yes, edge optimized Yes
Edge function compatibility Limited (REST fallbacks) Native edge Native edge
Faceting query performance (p95) 80 ms 60 ms 70 ms
Autocomplete query performance (p95) 65 ms 45 ms 55 ms
Personalization context (per request) Segment ID Full shopper context Segment ID plus behavioral signals
Rate limits (per minute, enterprise) 6,000 12,000 10,000

Constructor.io's GraphQL completeness and edge native architecture are the strongest fit for a Hydrogen build that wants the search layer to live on Shopify Oxygen or Vercel Edge with sub 100 ms latency at p95. The trade is that the per shopper personalization context requires more state in the request, which complicates SSR caching strategies.

Searchspring's REST fallbacks for some operations (advanced merchandising calls, segment management) require additional glue in an edge function deployment. The headless SDK is mature and well documented but the architecture assumes a Node origin somewhere in the path.

Klevu's GraphQL surface is well typed and edge compatible, sitting between the two on capability and complexity.

Merchandising Surface: What The Team Actually Touches

Workflow Searchspring Constructor.io Klevu
Boost product on query Drag and drop UI API or admin (lighter UI) Visual UI with AI suggestion
Pin position on category page Yes, drag and drop Yes, intent based Yes, drag and drop
Bury or exclude product Yes, rule based Yes, intent based Yes, rule based
Synonym management Strong UI, bulk import Strong UI Strong UI
Category page hero merchandising Native, deep Lighter, AI driven Native, hybrid
A/B test configuration Native, integrated Native, statistical engine Native
Segmentation for boost rules Strong, granular Behavioral, automatic Strong, hybrid
Reporting on merchandiser actions Strong Lighter (the AI is the actor) Strong

The depth of the merchandising surface tracks the platform's philosophy. Searchspring's UI assumes the merchandiser is the actor and provides the most surface area. Constructor.io's UI assumes the AI is the actor and provides smaller, higher level controls. Klevu's UI sits between the two and is the most common fit for organizations that want both human and AI control without picking one as the source of truth.

Indexing Architecture and Catalog Sync

Aspect Searchspring Constructor.io Klevu
Catalog sync method Webhook + scheduled full sync Webhook + delta sync, near real time Webhook + scheduled full sync
Indexing latency (single product change) 3 to 10 minutes 30 seconds to 5 minutes 2 to 8 minutes
Inventory aware ranking Yes, hourly inventory feed Yes, real time inventory webhook Yes, hourly inventory feed
Catalog size limit (practical) 10M+ SKUs 50M+ SKUs 5M SKUs
Multi store indexing Yes, separate indices Yes, separate indices with shared models Yes, separate indices
Localized indexing Yes, per locale index Yes, per locale index Yes, per locale index

For high SKU catalogs (apparel brands with deep size and color matrices, B2B distributors, marketplaces) Constructor.io's catalog ceiling and faster delta sync are real advantages. For mid SKU catalogs the indexing latency differences are below the threshold that matters in production.

Integration Patterns: Hydrogen and Next.js Commerce

// Constructor.io in a Hydrogen route loader
import { getConstructorClient } from '@/lib/constructor';

export async function loader({ request, params }: LoaderArgs) {
  const query = new URL(request.url).searchParams.get('q') ?? '';
  const client = getConstructorClient();
  const results = await client.search({
    query,
    filters: { collection: params.handle },
    shopperContext: getShopperContext(request),
    page: 1,
    resultsPerPage: 24,
  });
  return { results };
}
// Klevu in a Next.js Commerce server component
import { klevuClient } from '@/lib/klevu';

export default async function SearchResults({ query }: { query: string }) {
  const results = await klevuClient.search({
    term: query,
    typeOfRecord: ['KLEVU_PRODUCT'],
    limit: 24,
    sort: 'RELEVANCE',
  });
  return <ProductGrid products={results.records} />;
}
// Searchspring in a Hydrogen route loader
import { searchspringClient } from '@/lib/searchspring';

export async function loader({ request, params }: LoaderArgs) {
  const query = new URL(request.url).searchParams.get('q') ?? '';
  const results = await searchspringClient.search({
    siteId: process.env.SEARCHSPRING_SITE_ID,
    q: query,
    bgfilter: { collection_handle: params.handle },
    resultsPerPage: 24,
    userId: getUserId(request),
  });
  return { results };
}

The three integrations look similar at the loader level. The differences appear at scale: per shopper personalization (Constructor.io) requires keeping the shopper context fresh across requests and handling cold start, AI tuning workflows (Klevu) require an event tracking sidecar, and merchandiser overrides (Searchspring) require a merchandising webhook that invalidates SSR caches when rules change.

Decision Table

Brand profile Searchspring Constructor.io Klevu
Strong merchandising team, brand led ranking Strong default Wrong axis Acceptable
Behavioral data rich, personalization first Acceptable Strong default Acceptable
Mixed AI and human curation Acceptable Acceptable Strong default
10M+ SKU catalog Acceptable Strong default Catalog ceiling concern
Sub 100 ms p95 latency target Acceptable Strong default Strong default
Hydrogen native build, edge first Acceptable Strong default Strong default
Tight budget, mid market scale Strong default Premium pricing concern Strong default
Heavy A/B testing culture Strong default Strong default Strong default

When This Applies to Your Stack

If you are moving from a Shopify native search (built in or Shopify Search and Discovery app) to a dedicated commerce search platform on a Hydrogen or Next.js Commerce headless build, the choice between Searchspring, Constructor.io, and Klevu is the most consequential decision in the search stack. Pick by the axis your merchandising and engineering teams are aligned around, not by feature checklist.

The team at Contra Collective ships headless commerce migrations and search platform integrations on Shopify Plus, including merchandising workflow design, indexing architecture, and the SSR caching patterns that make commerce search platforms work in a Hydrogen build. If you are scoping a search platform migration or stuck on an integration design decision, that is the work we do.

FAQ

Q: Is Algolia a real alternative to these three? A: Algolia is a search infrastructure platform with a commerce surface layered on top. It can serve the same role as Searchspring or Klevu for brands that want to own the merchandising layer themselves or build it bespoke. For brands that want the merchandising workflow tooling out of the box, the three commerce search platforms here deliver a deeper surface than Algolia's commerce add ons.

Q: How does this list change for B2B commerce? A: Constructor.io's per shopper personalization is more valuable in B2C where shopper distributions are wide. Searchspring and Klevu both have stronger B2B feature sets (account level pricing, customer specific catalogs) than Constructor.io. For B2B on Shopify Plus B2B, Klevu is the most common pick.

Q: Can these platforms run alongside Typesense or Algolia? A: Yes, and a common pattern is to run Typesense for site search where catalog scale is high and Constructor.io or Klevu for category pages where personalization matters most. The split adds operational complexity and is only worth it when the two surfaces have genuinely different requirements.

Q: What does the migration from Shopify Search and Discovery to one of these look like? A: 8 to 16 weeks for an enterprise build, depending on catalog size, merchandising rule complexity, and storefront framework. The bulk of the work is reproducing existing merchandising rules in the new platform's model, not the integration code. Plan for a parallel run window of two to four weeks where both surfaces serve a fraction of traffic.

Q: Do any of these platforms support generative AI for search? A: All three have generative AI surfaces in production (semantic search expansion, natural language query rewriting, conversational shopping). Constructor.io's is the most aggressive (full conversational shopping mode), Klevu's is integrated into the standard search ranking, Searchspring's is opt in per query. For most brands the generative AI capabilities are a tiebreaker rather than a primary decision factor in 2026.

[ 02 ] — Keep Reading

More from the lab.

Aug 2, 2026 Headless Commerce

Segment vs RudderStack vs mParticle: Customer Data Platform for Headless Commerce (2026)

A customer data platform is the least visible and most load-bearing piece of a headless commerce stack. It is the layer that captures every event from the storefront, the mobile app, and the backend, resolves those events into a single view of the customer, and fans them out to analytics, email, ads, and the warehouse. Because it sits in the middle of everything, the CDP choice quietly decides three things that are expensive to change later: whether you own your customer data or rent access to it, how much of your compliance and consent surface lives inside a vendor versus your own infrastructure, and how your bill scales as event volume grows, which in commerce it always does. Segment, RudderStack, and mParticle are the three platforms most enterprise commerce teams shortlist, and they embody genuinely different philosophies rather than being feature-for-feature clones. Segment is the managed incumbent optimized for time to value. RudderStack is the warehouse-first, self-hostable challenger built for teams that want to own the pipeline. mParticle is the mobile-heavy enterprise option with the deepest identity and audience tooling. For a headless architecture, where the storefront is decoupled and events originate from several surfaces at once, the differences in how each handles server-side collection, identity resolution, and pricing at volume are what separate a clean integration from a costly one. This post lays out those differences and the decision framework that follows from them.

Jul 30, 2026 Headless Commerce

Multi Currency and Cross Border Pricing in Headless Commerce: Duties, Rounding, and the Presentment Problem (2026)

Selling internationally on a packaged storefront is mostly a settings screen: turn on the currencies, let the platform convert, and the theme shows the right number. Go headless and the convenience disappears, because now your own frontend is responsible for asking the API for a price in the customer's currency, displaying it with the correct rounding, carrying that currency all the way through the cart and into checkout, and reconciling what the customer paid against what the store settles in. Each of those steps has a way to go wrong that a themed store never exposed you to, and the most common one is subtle: the storefront requests a presentment currency and the API quietly returns the amount in the store's base currency anyway, so the customer sees a euro sign in front of a dollar number. Add duties and import taxes on a cross border order and the surface expands again, because now the total the customer sees at checkout has to include or exclude a duty depending on whether you sell delivered duty paid or delivered duty unpaid, and getting that wrong means either a surprised customer or a margin you did not plan to give away. This post is about the architecture that keeps a headless international store honest: which system owns the converted price, how presentment currency actually flows through the Storefront API, why rounding is a real rule and not a rounding error, and how duties change the checkout total.

Jul 29, 2026 Headless Commerce

Migrating from Salesforce Commerce Cloud to Headless Shopify Plus: A Replatforming Playbook (2026)

The decision to leave Salesforce Commerce Cloud is usually made on cost and velocity, and by the time it reaches engineering it has hardened into a deadline. That is where replatforming projects go wrong, because moving from SFCC to a headless Shopify Plus stack is not a migration in the copy the data and flip the switch sense; it is a rebuild of the parts of your commerce logic that lived inside SFCC cartridges and pipelines, wrapped around a data migration that is the easy part by comparison. SFCC gave you a monolith where the storefront, the business logic, and the platform were fused, and headless Shopify Plus deliberately unfuses them: Shopify becomes the commerce engine behind an API, and the storefront becomes your own application. Everything that made SFCC feel complete, the cartridge ecosystem, the pipeline customizations, the server side rendering baked in, becomes something you now own explicitly. This playbook walks the migration in the order that actually de-risks it: what maps cleanly from the SFCC data model to Shopify, what has to be rebuilt rather than ported, how to protect the SEO equity that a careless cutover destroys, and the sequencing that lets you move without a big bang launch. The projects that fail treat this as a data problem. The ones that succeed treat it as a rebuild with a data migration attached.

Ready when you are

Want to discuss this topic?

Start a Conversation