Using Coveo and Sitecore XM Cloud
How to transform Coveo for Sitecore into part of your composable stack for Sitecore XM Cloud
Start typing to search...
I have been a long-time user of Coveo and Sitecore. I first started using Sitecore in 2007 and Coveo in 2009. I would hazard to say that I’m pretty familiar with both tools as I’ve been awarded 10 Sitecore MVPs and 2 Coveo MVPs. I’m hoping that with all that baggage, I’m in a position to provide some insights.
Coveo has undergone significant transformation, particularly with the introduction of SaaS and the Coveo Cloud Platform, which has accelerated innovation and made implementation easier. Similarly, Sitecore is transforming their core CMS/DXP offering into an enterprise SaaS solution called XM Cloud, and I anticipate a similar transformation in terms of innovation and implementation.
But there is some confusion afoot.
Is there a version of a Coveo for Sitecore for XM Cloud? Are XM Cloud and Coveo even compatible? What do we do with our investment in Coveo for Sitecore? What are options in moving forward?
I assure you that there is still a viable (and even improved) path to leveraging Coveo with XM Cloud. Let's get into it.
To lay a foundation for term, when we say Coveo or Coveo Platform we’re referring to Coveo’s SaaS product and technology. Whereas Coveo for Sitecore refers to module thats integrates Coveo Platform capabilities into Sitecore.
Yes, you absolutely can continue to use Coveo with XM Cloud. In fact, we are already using the Coveo Platform on a number of our XM Cloud project
To be sure, there is a small distinction here. We are not using the Coveo for Sitecore module, but we’re using the Coveo Platform.
We’re doing a lighter, more composable implementations that still take advantage of Coveo’s relevance, A.I. and search platform. We are not using the Coveo for Sitecore as a product however.
To understand why not, let’s take a look at Coveo for Sitecore any why it doesn’t fit as well with XM Cloud.
Coveo for Sitecore deeply integrates with the traditional Sitecore XP CMS, creating a seamless bridge between building in Sitecore and using Coveo. This integration covers various aspects, such as:
Coveo for Sitecore can handle a variety of tasks, including search page building, content indexing, custom data transformations, relevance adjustments, analytics tracking, user security integration, role integration, and page personalization.
Semi-recently the Coveo for Sitecore Hive Framework has been developed to allow search interfaces and configurations to be managed in Sitecore with a great amount of granularity.
There is also a module that allows Coveo for Sitecore to be added SXA (Sitecore Experience Accelerator) for some ease of use as well.
It’s a module that takes advantage of all available features in Sitecore, and uses them to create a 100% CMS-integrated (not just website-integrated) search experience.
There are several architecture changes in XM Cloud that pose a challenge for the current (April 2023 and previous) versions of Coveo for Sitecore.
Changes in XM Cloud architecture that affect Coveo for Sitecore:
These issue are present in any deeply intertwined solutions but are more pronounced because of shift Sitecore’s XM Cloud architecture and overall product delivery (SaaS).
There is an easy solve for all of these issues. Embrace the "composable" approach across your stack, facilitating integrations with APIs and loose-coupling instead of tight, monolithic integrations. Use the Coveo Platform as a composable piece of your tech stack.
Now that we’ve looked at the challenges with traditional Sitecore and Coveo for Sitecore, lets look at the benefits we’ll get of using the Coveo Platform with XM Cloud:
I’ve put together some simple diagrams to show the relative complexity of the indexing website content using Coveo for Sitecore and XM Cloud with the Coveo Platform.

There are quite a few steps happening here! Firstly there is a Coveo module installed into Sitecore, essentially becoming an extension of the CMS. Any changes to content in Sitecore whether saving or publishing automatically processed by Coveo for Sitecore. Then when content is published, Sitecore pushed content to your website but data & configurations are also pushed to the Coveo Platform. The Coveo Platform then crawls specific pages on your website, targeting the content you’ve just published. The HTML of your page is then processed and added to the “documents” in the Coveo Platform.

When we use the Coveo Platform, you can see that the Sitecore CMS can be left out of the picture. A sitemap or a crawling connector is used index the site. The logic to control what is indexed and extract additional information from the pages is controlled directly in the Coveo platform.
To upgrade to using Coveo on XM Cloud we need to address two things:
Coveo for Sitecore provides a tightly integrated approach, embedding both content indexing and search page creation directly into Sitecore.
However, by taking control and using the best-fit method for indexing content and creating search interfaces, we can achieve the same (or better) results.
Although the approach is slightly different, in my opinion it leads to an improved outcome while still having a great Coveo-driven search experience.
When using Coveo For Sitecore, when items are published they’re converted and sent to Coveo as documents. It’s actually quite a complex process. It involves processing security, pushing field mappings, processing and computing fields, pushing data into Coveo, then finally the Coveo Platform does a web crawl of the content with some extra process.
We can do something simpler.
Coveo has a wide range of integrations and connectors that allow you to index virtually anything.
For our XM Cloud implementations our preferred connectors are the Web Connector and the Sitemap Connector. Once our connector is setup we need to map its data to fields into Coveo.
Allows us to crawl the site, target URLs, extract content from the page, do pre-processing & post-processing of content & customize indexing behaviour and frequency.
Very similar to the web connector except it references a sitemap.xml file generated by your site instead
of a crawling process to discover your content.
Two other frequently used connectors are REST API and Push. The REST API Connector allows you to use an REST API as a source and iterate through the data as a source. The Push Connector allows you send JSON objects in to represent documents for a source.
A key part of XM Cloud is Experience Edge, which uses GraphQL queries for retrieving data and content from Sitecore. You can use this Edge + GraphQL with Coveo's Rest API or Push connector to add content to Coveo that does not exist as pages. For example, if you want to perform a people search but each person does not have a page to index.
In an XM Cloud implementation we can manage and map our data from our sources to fields directly in the Coveo Platform.
By contrast, in Coveo For Sitecore we’d define our custom fields and how they were to be processed in Sitecore config files and then Sitecore would push that configuration into the Coveo Platform.
Coveo for Sitecore uses integrated MVC components that utilize Coveo's JavaScript Search framework (JSUI). All Sitecore configurations and interface building options are simply wrappers around JSUI features. By working with Coveo on XM Cloud directly, we can bypass the need for Coveo for Sitecore as an intermediary.
Let's explore modern methods of building search pages / user interfaces with Coveo on XM Cloud.
I’ve created a diagram showing 4 different ways to create search experiences in the Coveo Platform and mapping them to flexibility vs time to develop.

You can see how in my view Coveo for Sitecore offers minimal flexibility and an increased time to develop. When I say flexibility, there is a degree of ease-of-use factored in as well. While in some ways Coveo for Sitecore is very flexible, the idea that that interfaces are supposed to be built and managed using Sitecore using JSUI as its library limits its ultimate flexibility.
Coveo Headless works as a middle-layer or middle for front-ends, acting as the communication layer between your search UI and Coveo’s APIs. Headless provides an engine to manage states and features, as well as controllers & actions to interact with those features.
Headless is JavaScript based. It’s recommended to use if you’d like to build your own search interface and have granular control.
For example you might leverage the Material Design UI Kit for your front-end or your favorite React component library and connect them to Coveo’s back-end via Headless. This gives you total control and freedom.
Coveo Atomic is a library of web components (which is powered by Coveo Headless) using to build search interfaces on Coveo. You can check out a list of Atomic components available and see that operate in a composable manner, allowing you to add to your interface what you need.
The Atomic library contains components including Did You Mean , Facets,
Load More, No Results, Paging, Search Box and you have the
ability to create your own Atomic components to extend the library to your needs.
To help bring this together I’ve assembled this table to highlight some similarities and differences between using the Coveo Platform with XM Cloud and Coveo for Sitecore.
| Feature | Coveo Platform | Coveo for Sitecore |
|---|---|---|
| Default Connector | Sitemap, Web Crawl | Coveo for Sitecore module |
| Multiple Sources | Yes | Yes |
| Architecture | Composable | Deep Integration |
| Upgrades | Not necessary | Linked to Sitecore upgrades |
| Field Mapping | Yes, in Coveo Platform | Yes, in Sitecore config |
| Analytics | Yes | Yes |
| Re-indexing | Scheduled | Integrated with publishing |
| Security | Customization | Integrated with Sitecore user roles |
| Metadata Extraction | Targeted CSS selectors & JSON configuration in Coveo Platform | Computed fields in Sitecore config |
| Processing | Extensions scripts in Coveo Platform | Computed fields in Sitecore config |
| Query Pipelines | Yes | Yes |
| Search Interface Development | Coveo Atomic, Coveo Headless, React-based. (Coveo APIs) | Coveo Hive, MVC, JSUI (Sitecore-driven) |
| Multi-language | Yes | Yes |
| Machine Learning | Yes | Yes |
| A/B Testing | Yes | Yes |
| Query Suggestion | Yes | Yes |
| Recommendations | Yes | Yes |
| XM Cloud-friendly | Yes | No |
The genesis of this article is my concern that organizations currently using Coveo for Sitecore might be discouraged from moving to XM Cloud because they believe they are not compatible. In reality, switching to the Coveo Platform with XM Cloud will be an even better approach.
At Fishtank, we are early adopters of XM Cloud and long-time partners of Sitecore and Coveo. We are excited about the potential, opportunity, and added value for customers that integrating XM Cloud with Coveo brings.
We have leveraged the same techniques referenced here to build amazing Coveo search experiences on AEM, Drupal, Kentico, Salesforce, Wordpress, as well as the traditional Sitecore CMS. We know that the same path lies ahead for XM Cloud and the Coveo Platform.
If you need help migrating to XM Cloud or moving from Coveo for Sitecore to the Coveo Platform, please email us at [email protected] or use our contact form.
Thank you for reading.