
Saurav Kr.
••2 min read
Sitecore Search with XM Cloud step-by-step
Here’s a step-by-step to integrate Sitecore Search with XM Cloud for AI-powered search and content discovery on a headless site:
Step 1: Prerequisites
- XM Cloud project set up (usually with Next.js or React).
- Access to Sitecore Search account.
- API keys for Sitecore Search.
- Node.js installed locally.
Step 2: Configure Sitecore Search
- Create a Sitecore Search instance in your Sitecore account.
- Set up Sources:
- Web Crawler: Crawl XM Cloud-rendered pages.
- API Crawler: Pull content via XM Cloud Delivery API.
- Ingestion API: Push structured content directly.
- Map XM Cloud fields to Sitecore Search attributes using Extractors.
- Publish the configuration.
Step 3: Index XM Cloud Content
- If using API Crawler:
- Get XM Cloud Delivery API endpoint (GraphQL or REST).
- Configure connector in Sitecore Search to fetch content.
- If using Ingestion API:
- Push content from XM Cloud to Sitecore Search via POST requests.
Step 4: Install Sitecore Search SDK
For a Next.js headless site:
npm install @sitecore-search/react
Step 5: Initialize SDK
Create a searchClient.js file:
import { createClient } from '@sitecore-search/react';
export const searchClient = createClient({
apiKey: process.env.SITECORESEARCHAPI_KEY,
endpoint: 'https://api.sitecoresearch.com',
});
Add your API key in .env.local:
SITECORE_SEARCH_API_KEY=your-api-key
Step 6: Implement Search UI
Example in SearchPage.js:
import React from 'react';
import { SearchProvider, SearchBox, Results } from '@sitecore-search/react';
import { searchClient } from './searchClient';
export default function SearchPage() {
return (
<SearchProvider client={searchClient}>
<SearchBox placeholder="Search content…" />
<Results>
{({ results }) => (
<ul>
{results.map(item => (
<li key={item.id}>{item.title}</li>
))}
</ul>
)}
</Results>
</SearchProvider>
);
} Step 7: Add AI-Powered Features
- Enable Recommendations in Sitecore Search dashboard.
- Use Personalization API to fetch user-specific results.
- Example:
const recommendations = await searchClient.getRecommendations({
userId: 'anonymous',
limit: 5,
}); Step 8: Deploy
- Host on Vercel or Netlify.
- Secure API keys in environment variables.
- Set up webhooks for automatic redeployment when content changes.
Happy Coding!
S
Saurav Kr.
Technical writer and software development expert at Murmu Software Infotech, sharing insights on modern web development, software architecture, and best practices.

