SEO Audit - Sitecore XM Cloud Marketplace App

Introduction

Working in Sitecore XM Cloud, I often noticed a gap: it can be difficult to quickly identify SEO and accessibility issues on a website page. Things like missing alt text, page titles, or improper heading structures often slip through the cracks. These may seem like small details, but they matter a lot for SEO and accessibility.

To solve this, I built a Marketplace app that plugs directly into XM Cloud and lets you run a quick audit on published pages. The results show up instantly inside the Pages editor.


The Idea Behind the App

The idea was simple. Instead of relying on external tools or waiting for SEO audits later, authors can now check their published pages right inside XM Cloud.

It makes the process faster, removes context switching, and gives immediate insights into metadata and accessibility.


How the App Works

The app is built with Next.js and TypeScript and embedded into Sitecore Pages via the Marketplace. When opened, it fetches the published page’s rendered HTML and checks for:

  • Missing alt attributes on images
  • Missing or duplicate meta titles and descriptions
  • Incorrect heading structure

The results are displayed in a clean panel inside Pages.

image

Creating and Configuring the App in Sitecore XM Cloud

Here’s the exact process I followed to create and configure the app:

  1. Build the app locally
git clone https://github.com/mgnventures/xmc-page-seo-audit-app.git
cd xmc-page-seo-audit-app
npm install
npm run dev

The app runs on http://localhost:3000.

  1. Deploy the app
    Push it to Vercel, Netlify, or Azure.

  2. Register the app in Sitecore XM Cloud

  • Go to Sitecore Cloud Portal.
  • Navigate to Cloud Portal → Developer Studio → Create App.

image

  • Fill in details:

    • Name
    • App icon (from your repo’s public folder)
    • App URL (your deployed endpoint)
    • Select Pages Context Panel as the extension point

    image

    image

  • Save the configuration.

  1. Install the app in XM Cloud
  • Open Sitecore Prtal.
  • Go to the My Apps tab.
  • Search for your app and click Install.

image

  • The app now appears as a panel inside Pages.

Real Use Cases

  • A content author can check if their published landing page has proper alt text.
  • A marketer can confirm that the page has a correct title and description.
  • A developer can extend the app with custom rules for their project.

The biggest win is that you can run these checks on the live published page and see results immediately in XM Cloud.


Getting Started Guide

For anyone who wants to try this app:

git clone https://github.com/mgnventures/xmc-page-seo-audit-app.git

Then follow the steps above to register and configure the app in XM Cloud.


Reflections and Future Potential

Building this app showed me how easy it is to extend XM Cloud with custom utilities. The Marketplace is still new, and even small apps like this can add real value for authors and marketers.

Next, I would like to refine the audit rules and improve how results are displayed. I also hope other developers fork the project on GitHub and help make it more stable and useful:

👉 GitHub Repo – xmc-page-seo-audit-app

In the end, this app is about more than code—it’s about contributing something practical to the Sitecore community.

Related Posts

Exposing Site Settings from the Settings item in a Headless JSS Next.js Application

In this blog post, we will explore a common requirement in Sitecore Headless SXA, exposing site-specific settings and global data to the front end when working with a JSS headless site. ## Problem S

Read More

Leveraging Sitecore Search SDK Starter Kit into Your Sitecore Next.js Solution [Part 2]

In this blog post, I'll walk you through the process of smoothly leveraging the Search SDK Starter Kit into a Sitecore Next.js solution. ## Prerequisites Before proceeding, ensure the following prer

Read More

Next.js Image Wrapper for Sitecore SVGs

Our team is consistently hitting a wall with next/image component. When a designer hands off a vector graphic, it gets flattened into a static img tag, completely stripping it of its inherent scalabi

Read More