Mark Stott
+2
Apr 2, 2026
visibility 583
star star star star star
(5 votes)

Stott Robots Handler v7 for Optimizely CMS 13

Stott Robots Handler version 7 is now available for Optimizely PaaS CMS 13. This is includes updates to support the switch from a Site based architecture to an Application based architecture.

Robots Handler V7 initial interace

How does the change from Sites to Applications impact the user?

The data structure of Applications is subtly different to that of Sites. In CMS 12, sites were uniquely identified using a GUID. In CMS 13, Applications are uniquely identified using a string identifier. This breaks the relationship between existing robots.txt and llms.txt content and the sites they were configured to serve.

Users will have to reconfigure their robots.txt and llms.txt content when moving from CMS 12 to CMS 13. The content for both files is stored in the Dynamic Data Store and is matched to an active application before being displayed to the CMS Administrator or being served to end users.

The Environment Robots and the API Tokens are global configurations and are not bound to a specific site or application. When upgrading to version 7 and CMS 13, these features will retain their existing configuration.

What features does Stott Robots Handler have?

  • 🤖 Manage robots.txt content by Application and specific Host URL
  • 📄 Manage llms.txt content by Application and specific Host URL
  • 🔒 Override robots meta tags and response headers at an environment level to prevent indexing lower environments in search engines.
  • 🌐 APIs to support headless solutions
  • 🌐 APIs to support modification of robots.txt and llms.txt content directly within Optimizely Opal

What does this mean for Optimizely CMS 12?

Support for version 6 of the Stott Robots Handler is not going away. New functionality will be developed directly for version 7 and then backported to version 6 where appropriate. I can review the recent download stats on a version by version basis on nuget and I will use this as an indicator of the current market need.

I expect that it will take a few years for a significant portion of customers to move from CMS 12 to CMS 13. Therefore, I expect to maintain the CMS 12 version for the short to mid term.

Getting Started

Stott Robots Handler v7 is available for Optimizely PaaS CMS 13 on nuget.org and on api.nuget.optimizely.com. You can see the full installation instructions and package information over on the github page, including how to configure the add-on for use with Opti Id.

Getting started can be as simple as:

// Install the nuget package
dotnet add package Stott.Optimizely.RobotsHandler

// Add this to your services
services.AddRobotsHandler();

// Add this to your configure method
services.UseRobotsHandler();

// Add this to your _ViewImports.cshtml if you are running traditional
@addTagHelper *, Stott.Optimizely.RobotsHandler

Release 7.0.1

As of 24 June 2026, version 7.0.1 is now available on both nuget.org and nuget.optimizely.com. This hotfix includes:

  • Correcting the Content-Type header to include UTF-8 for both robots.txt and llms.txt.
  • Minor Cosmetic fixes:
    • Title bar is now visible again.
    • Containers no longer clash with Optimizely CMS built in styles resulting in excess padding.
  • Removed the “All Applications” option from the “Add new…” modals for both robots.txt and llms.txt content.
    • Validation already prevented users from saving a configuration without having selected a specific configuration.
  • Playwright tests now add confidence for future releases.

I am an OMVP and the author and maintainer of Stott Security and Stott Robots Handler for Optimizely CMS 12 & 13. You can find all of my content collated on https://www.stott.pro/ 

Apr 02, 2026

Comments

Mark Stott
Mark Stott Jun 24, 2026 08:11 AM

Update: I've added notes for bug fix release v7.0.1 to this article.  2 out of 3 bugs here are a direct result of the upgrade to CMS 13 and so it feels appropriate that they should live with the announcement blog.

error Please login to comment.
Latest blogs
Add more scheduled job settings from the Optimizely CMS 12 admin UI -- with OptiScheduledJob.ExtraParameters

  Optimizely (EPiServer) CMS 12 ships a great scheduled-jobs framework, but it has one frustrating gap: a job has nowhere to store its own...

Binh Nguyen Thi | Jun 25, 2026

Automated Search & Navigation to Graph Migration with Claude Code

A Claude Code plugin that scans your S&N codebase, applies Graph SDK transformations, and validates the result. Install once, run one command. CMS ...

Connor Fortin | Jun 24, 2026

Migrating from Find to Graph: Lessons Learned from a Real CMS 13 Project

While migrating a search solution from Optimizely Search & Navigation (Find) to Optimizely Graph in CMS 13, I encountered several issues that were...

Binh Nguyen Thi | Jun 24, 2026

Optimizely: Upgrade Opti-ID and .NET 10 in CMS 12

Many Optimizely customers are planning their roadmap around a future migration to Optimizely CMS 13. As a result, upgrades such as Opti ID adoption...

Madhu | Jun 23, 2026 |

Understanding Optimizely Graph: Caching, Webhooks & Avoiding Stale Content (Optimizely SaaS CMS)

📌 Scope: This post covers Optimizely CMS (SaaS) only — using the official @optimizely/cms-sdk and @optimizely/cms-cli packages with Next.js 15. If...

Kiran Patil | Jun 23, 2026 |

Optimizely Content APIs: the Setup the Docs Don't Walk You Through

CMS 13 is pushing things firmly in the direction of Optimizely Graph, but plenty of teams are still running on older CMS versions, or have good...

Andre | Jun 22, 2026