Try our conversational search powered by Generative AI!

Lee Crowe
Jan 24, 2011
(2 votes)

EPiServer Search and Replace plug-in v1.2

I have released a new version of the Search and Replace plugin I released a few months ago.  Some UI enhancements have been made and there was an issue where the plugin fell over when running edit mode under a different relative file path location.

What is the EPiServer Search and Replace plug-in?

It’s a free plug-in aimed at content editors which allows content editors to search and replace content within an EPiServer site. 

The plugin has the ability to search and replace page properties, dynamic content and dynamic properties.

To install the plugin it is a simple as copying the compiled assembly into the bin folder and adding some configuration settings.  See the installation instructions here

How did the plug-in come about?

Myself and a couple of colleagues were discussing features missing from EPiServer.  One thing that came up several times in pitch meetings from project stake holders was whether the CMS offered the ability to search and replace content within a site. 

EPiServer doesn’t provide this functionality so I decided to create a plugin to do just this.

Search and Replace Plugin abilities

The plugin needed to meets the following requirements:

1. Search and replace page properties.

2. Search and replace dynamic properties.

3. Search and replace dynamic content.

4. For xml/xhtml content only replace the content of text nodes and attributes so that structure is not corrupted.

5. Maintain versioning history so that the editor can decide whether or not to publish/rollback the affected pages.


Using the plug-in

When the plugin has been setup a new tab will appear in the edit area named ‘Search and Replace.  The default view of this tab which is shown below allows the editor to create a new search and replace record or edit/delete an existing instance.

When the user clicks the Add ‘Search and Replace’ button. They will be presented with the following form:

Here the user can set various searching options, such as specifying a starting page, whether to search descendent pages of the start page and whether to search all language branches or specific ones, plus a few other options.

When the editor is happy with the criteria they can click ‘Go’.  This will invoke the search and replace on a seperate thread and the editor will be presented with a progress indicator which updates using AJAX like below:

Once the search and replace has completed the editor will then be presented with another screen informing them of the criteria used and any pages, dynamic properties that have been updated or any errors that have occurred:

This screen allows the editor to publish (only if the page has been in a published state) pages, roll them back or compare page versions using the new EPiServer 6 PageCompare plugin as shown below:



Further information

For further information on setup and the configuration options available please check out the Usage Instructions.

Compiled assemblies and source code can be found on codeplex


Have feedback?

Please feel free to email or twitter me with any feedback @croweman

Jan 24, 2011


Mar 2, 2011 11:08 AM

Another feature that this module could support is the possibility to act as a report tool. EPiServer provides Report Center and Gadgets in the Online Center but many editors want "ad-hoc" reporting (eg. find all pages that has the following UR, older than 6 months and are marked with the following writer) and exporting it to Excel (or Word). I know we can build reports and gadgets but for many customers the the process of putting new "features" into the production environment is tedious and expensive.

I see great potential in the mechanism used for creating Visitor Groups in EPiServer CMS R2 as an interface for creating reports. Hopefully we can provide something good for all those customers asking for better insight into the quality of their data...

Jonathan Roberts
Jonathan Roberts Feb 15, 2013 10:53 AM

Can you tell me if this works with content that is loaded in via bespoke Composer Content Blocks?
If so how do we use Search and Replace to do this task?

Many thanks


Please login to comment.
Latest blogs
Optimizely Web... 6 Game Changing Features in 2024

If you are interested in learning about what's new within Optimizely Web, you are in the right place. Carry on reading to learn about the 6 greates...

Jon Jones | Mar 3, 2024 | Syndicated blog

Headless forms reloaded (beta)

Forms is used on the vast majority of CMS installations. But using Forms in a headless setup is a bit of pain since the rendering pipeline is based...

MartinOttosen | Mar 1, 2024

Uploading blobs to Optimizely DXP via PowerShell

We had a client moving from an On-Prem v11 Optimizely instance to DXP v12 and we had a lot of blobs (over 40 GB) needing uploading to DXP as a part...

Nick Hamlin | Mar 1, 2024 | Syndicated blog

DbLocalizationProvider v8.0 Released

I’m pleased to announce that Localization Provider v8.0 is finally out.

valdis | Feb 28, 2024 | Syndicated blog

Epinova DXP deployment extension – With Octopus deploy

Example how you can use Epinova DXP deployment extension in Octopus deployment.

Ove Lartelius | Feb 28, 2024 | Syndicated blog

Identify Azure web app instance id's for an Optimizely CMS site

When running Optimizely CMS in Azure, you will be using an instance bound cloud license. What instances are counted, and how can you check them? Le...

Tomas Hensrud Gulla | Feb 27, 2024 | Syndicated blog