Easy Search Replace — Documentation
Everything you need to know about installing, configuring, and getting the most out of Easy Search Replace and Easy Search Replace Pro.
Getting started
What Easy Search Replace does
Easy Search Replace lets you find and replace any text, HTML, or URL on your WordPress site in real time — without modifying your database. Replacements happen as the page renders, so disabling the plugin instantly restores your original content.
Installing the plugin
You can install the free version directly from your WordPress dashboard:
- Go to Plugins → Add New
- Search for "Easy Search Replace"
- Click Install Now, then Activate
- Find the settings under Settings → Easy Search Replace
If you've purchased Pro, you'll receive a download link by email. Upload that ZIP via Plugins → Add New → Upload Plugin, then activate. The Pro version replaces the free one automatically — your existing rules carry over.
Activating your Pro license
After installing the Pro version:
- Go to Settings → Easy Search Replace
- Click the Account link in the topbar
- Enter the license key from your purchase email
- Click Activate License
You'll see a "PRO" badge next to the plugin name when activation succeeds. All Pro features unlock instantly — no logout or refresh needed.
Your first replacement
The plugin starts with one empty rule waiting for input.
- In the Find box, type the text you want to replace (e.g.,
Old Company Name) - In the Replace with box, type what it should become (e.g.,
New Company Name) - Click Save changes
Visit your site's frontend. Every instance of "Old Company Name" is now "New Company Name." Your posts and pages remain untouched in the database.
Creating and editing rules
The rule card
Every replacement is a "rule." Rules display as cards on the Rules tab. Each card has:
- A header with the rule number, a live preview of what it does, an enable/disable toggle, and a delete button.
- A Find box and a Replace with box — these are the only required fields.
- Optional sections below for targeting, advanced matching, scheduling, and audience.
Adding a rule
Click Add rule at the bottom of the rules list. A new empty rule appears at the end. Fill in Find and Replace with, then save.
Removing content
Leave Replace with empty and the matching text will be removed from your pages.
Disabling a rule without deleting it
Toggle the switch in the rule header off. The rule stays saved but stops applying. Useful for testing or for rules you only want active during certain seasons.
Case-insensitive matching
Tick Case-insensitive under the Find/Replace boxes to match any capitalization. This applies to the search text — the replacement text is used exactly as you type it.
Order of execution
Rules run from top to bottom in the order they appear. If two rules might match the same text, the upper rule runs first.
Targeting — where rules apply
By default, every rule applies to every page on your site. The Where to apply section narrows that down.
Limit by post type
Pick one or more post types (Post, Page, Product, custom post types). The rule will only run on singular views of those types. Leave empty to apply on every type.
Limit by post ID
Comma-separated list of post or page IDs (e.g., 12, 15, 22). The rule runs only on those specific entries.
Limit by URL
One URL pattern per line. Each line is a substring match — if the current URL contains the line, the rule applies.
/about/
/contact/
https://yoursite.com/landing-page/
Exclusion rules Pro
The "Except on" subsection mirrors the include filters but blocks the rule when matched. Use this for "apply this rule everywhere EXCEPT my About page."
Advanced matching Pro
The Advanced matching section gives you three ways to make rules more powerful, listed from easiest to most technical.
CSS selector
Restrict a replacement to elements matching a CSS selector. For example, to only replace text inside your footer:
.site-footer
The replacement runs only inside elements matching the selector. Everything outside is ignored.
Match between two markers
Use this when you want to replace a chunk of HTML that lives between two recognizable snippets, but you don't want to write regex. For example:
- Starts with:
<a href="https://oldsite.com"> - Ends with:
</a> - Replace with:
<a href="https://newsite.com">My Site</a>
Regex
For full pattern-matching power, tick Treat "Find" as a regex pattern. The plugin uses standard PHP regex with these defaults:
.matches newlines (no need for thesflag)- Patterns are UTF-8 aware
- The
iflag is added automatically when you check Case-insensitive
.*? over .*. Greedy .* can match across multiple tags and break your page.
Scheduling rules Pro
The Schedule section lets you control when a rule is active.
Date range
Pick a start date and/or an end date. The rule runs only between those dates (inclusive). Leave one empty to extend that side indefinitely.
Time of day
Pick a start time, end time, or both. Times are in 24-hour format and use your WordPress site timezone. Examples:
09:00to17:00— active during business hours22:00to02:00— overnight; the plugin handles the day-wrap correctly
Days of week
Tick which weekdays the rule should be active. Leave all days unchecked to mean "every day."
Audience and device Pro
Logged-in state
- Any visitor — default, no restriction
- Only logged-in users — guests don't see the replacement
- Only guests — logged-in users don't see the replacement
User roles
Pick one or more WordPress roles. The rule runs only when the visitor is logged in AND has at least one of the selected roles.
Device targeting
- Any device — default
- Desktop only — non-mobile visitors
- Mobile only — phones (using
wp_is_mobile()) - Tablet only — devices identifying as iPad or "tablet"
Import / Export Pro
Export
The Import / Export tab has two download buttons:
- JSON — full fidelity. Best for backups and moving between sites.
- CSV — flat file with one row per rule. Easier to edit in Excel or Google Sheets.
Import
Click Choose file and select either a JSON or CSV file. Tick Replace existing rules to wipe your current rules and start fresh from the imported file. The import file size limit is 2 MB.
Skip HTML tags
By default, replacements run against your entire HTML output — including content inside <script> and <style> tags. For most sites this is what you want.
Configuring tag protection
Go to the Settings tab and tick which common tags to skip:
<script>— protects inline JavaScript<style>— protects inline CSS<code>,<pre>— protects code examples<noscript>,<textarea>— protects fallback / form content
Pricing and licensing
Easy Search Replace Pro comes in three tiers. All tiers include every Pro feature — the only difference is how many sites you can activate on.
| Plan | Personal | Business | Agency |
|---|---|---|---|
| Activations | 1 site | 5 sites | Unlimited |
| Annual price | $29/yr | $49/yr | $99/yr |
| Lifetime price | $89 | $149 | $299 |
Localhost and staging don't count. Domains containing .local, .test, staging., or dev. are detected automatically and exempt from your activation count.
FAQ
Does this modify my database?
No. The plugin works at page render time — it intercepts the HTML right before WordPress sends it to a visitor and applies your replacements.
Will it slow down my site?
On a normal page, the overhead is a few milliseconds for plain text rules and slightly more for regex. With caching enabled, replaced output is cached just like normal page output.
Does it work on multisite networks?
Yes. The plugin can be activated network-wide or per-site. Pro is licensed per individual site.
What WordPress versions are supported?
WordPress 5.0 and later, with PHP 7.2 or later.
Troubleshooting
"My replacement isn't happening"
- Is the rule enabled? Check the toggle in the rule header.
- Is the find text exact? Try toggling Case-insensitive.
- Are filters too restrictive?
- Is caching the issue? Clear your caching plugin and CDN cache.
"My regex matches too much"
Change .* to .*? in your pattern. The ? makes the match non-greedy.
"The site looks broken after a replacement"
Disable the rule that's causing the issue (uncheck its toggle and save). Your site returns to normal immediately.
Still stuck?
Email support@fluxpress.io with a description of what you tried, a screenshot of the rule, the URL where you expect the replacement, and your WordPress + PHP versions.
