Title: TechDex Search Scrape Guard
Author: Dexter Nelson
Published: <strong>August 10, 2026</strong>
Last modified: August 10, 2026

---

Search plugins

![](https://ps.w.org/techdex-search-scrape-guard/assets/banner-772x250.png?rev=3640801)

![](https://ps.w.org/techdex-search-scrape-guard/assets/icon-256x256.png?rev=3640801)

# TechDex Search Scrape Guard

 By [Dexter Nelson](https://profiles.wordpress.org/techdex/)

[Download](https://downloads.wordpress.org/plugin/techdex-search-scrape-guard.0.4.2.zip)

 * [Details](https://wordpress.org/plugins/techdex-search-scrape-guard/#description)
 * [Reviews](https://wordpress.org/plugins/techdex-search-scrape-guard/#reviews)
 *  [Installation](https://wordpress.org/plugins/techdex-search-scrape-guard/#installation)
 * [Development](https://wordpress.org/plugins/techdex-search-scrape-guard/#developers)

 [Support](https://wordpress.org/support/plugin/techdex-search-scrape-guard/)

## Description

**TechDex Search Scrape Guard protects the public WordPress search feature from 
spam, automated abuse, deep pagination, and other excessive search activity. It 
blocks bots and abusive requests that can consume database and server resources,
slow down your site, or use your search results to scrape and rip content from it.**

I built Search Scrape Guard after a client’s live WordPress site was hammered with
thousands of automated searches in a short period of time. The traffic appeared 
designed to scrape and rip content, and it was consuming database and server resources
as a result.

This plugin is designed to stop that activity before WordPress performs the resource-
intensive work behind a search. Normal searches continue working within the limits
you configure.

#### Search Protection

Search Scrape Guard can:

 * Reject empty and whitespace-only searches
 * Limit search length and word count
 * Limit how deeply visitors can paginate through search results
 * Set different pagination limits for anonymous and logged-in users
 * Block known automation signatures
 * Rate-limit repeated searches
 * Optionally require Cloudflare Turnstile verification

Rejected searches receive lightweight responses without loading the complete WordPress
theme.

The rate limiter uses a fixed 256-row database table instead of creating a new transient
or cache entry for every IP address. This prevents the rate-limiting storage from
becoming another source of resource bloat.

#### Activity Log

The searchable activity log shows:

 * Why a search was rejected
 * The latest search sample
 * The requested results page
 * The reported browser or user agent
 * A masked network
 * How often the same pattern occurred

Repeated activity is grouped into a maximum of 250 signatures. The log is paginated
and can refresh automatically. Raw IP addresses are not retained.

#### Optional Cloudflare Turnstile

Cloudflare Turnstile can be used when a visitor reaches the search rate limit or
when verification is required before searching.

Visitors who complete the verification receive a short-lived signed cookie so they
can continue searching without being challenged on every request.

Turnstile is optional and is not used unless a site administrator configures it.

#### Scope

Search Scrape Guard applies its protections to the public WordPress search feature.
It does not apply those restrictions to administration, REST, AJAX, cron, or WP-
CLI requests.

The plugin can also add `noindex` directives to search-result pages and search exclusions
to WordPress’s virtual robots.txt file.

Robots directives are guidance for compliant crawlers. They are not a security control.

### External Services

Cloudflare Turnstile is optional and no data is sent unless a site administrator
configures Turnstile keys. Once configured, Turnstile may be used when required 
verification is enabled or after a search rate limit is reached. The verification
page loads Cloudflare’s Turnstile JavaScript and submits the visitor’s verification
token and connection IP address to Cloudflare for validation. This data is sent 
only when Turnstile is configured and a search request requires verification.

Cloudflare privacy policy: https://www.cloudflare.com/privacypolicy/

Cloudflare terms: https://www.cloudflare.com/website-terms/

The plugin does not otherwise send search queries, log records, usage statistics,
or site data to TechDex or any other external service.

### Privacy

Search Scrape Guard stores bounded operational security data locally in the WordPress
database. Raw IP addresses are not retained. Search samples and reported user-agent
strings may contain information supplied by a requester, so administrators should
treat the log as security data and limit dashboard access accordingly.

## Installation

 1. Upload the `techdex-search-scrape-guard` folder to `/wp-content/plugins/`.
 2. Activate the plugin.
 3. Open Search Scrape Guard > Settings & Log.
 4. Review the default limits.
 5. Optionally add Cloudflare Turnstile keys and enable verification.

## FAQ

### Does this replace a CDN or WAF?

No. Edge protection is preferable because it stops abusive traffic before PHP. This
plugin is a WordPress-level database backstop.

### Does the rate limiter create a transient for every IP?

No. It uses a fixed table with 256 hash slots. Collisions evict older occupants 
instead of creating unlimited keys or object-cache files.

### Are IP addresses logged?

Raw IP addresses are not retained. The rate limiter stores salted hashes in fixed
slots. The bounded operational log stores only masked IPv4 /24 or IPv6 /48 networks,
along with the rejection reason, HTTP status, latest search sample, reported browser
string, and a coalesced count.

### What information does the operational log retain?

The log retains at most 250 coalesced signatures. It stores a masked network, rejection
reason, HTTP status, latest search sample, reported browser or user-agent string,
first and last observation times, and an occurrence count. Clearing the log removes
those records immediately, and uninstalling the plugin removes its tables and settings.

### Does this affect WordPress administration or REST search?

No. Admin, REST, AJAX, cron, and WP-CLI contexts are excluded.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“TechDex Search Scrape Guard” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Dexter Nelson ](https://profiles.wordpress.org/techdex/)

[Translate “TechDex Search Scrape Guard” into your language.](https://translate.wordpress.org/projects/wp-plugins/techdex-search-scrape-guard)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/techdex-search-scrape-guard/),
check out the [SVN repository](https://plugins.svn.wordpress.org/techdex-search-scrape-guard/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/techdex-search-scrape-guard/)
by [RSS](https://plugins.trac.wordpress.org/log/techdex-search-scrape-guard/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.4.2

 * Moved challenge-page presentation into a locally enqueued stylesheet.
 * Preserved administrative notices registered by WordPress and other plugins.
 * Removed WordPress.org directory-only artwork from the distributable plugin package.

#### 0.4.1

 * Completed the WordPress.org guideline and Plugin Check compliance pass.
 * Improved autocomplete and password-manager positioning on editable fields.
 * Moved plugin-row behavior into a locally enqueued script.
 * Clarified when the optional Cloudflare Turnstile service is contacted.

#### 0.4.0

 * Added a TechDex dashboard with Dashboard, Settings & Log, and Changelog tabs.
 * Added donation links, creator information, local plugin details, and consistent
   plugin-row metadata.
 * Added a nonce to Turnstile verification submissions and tightened request input
   handling.
 * Added WordPress.org privacy and external-service disclosures.
 * Added suggested text to WordPress’s Privacy Policy Guide.

#### 0.3.0

 * Added separate anonymous and logged-in search-pagination ceilings.
 * Anonymous visitors default to 15 search-result pages.
 * Logged-in users default to 50 search-result pages.
 * The logged-in ceiling cannot be saved below the anonymous ceiling.
 * Other query validation and rate-limit protections continue to apply to logged-
   in searches.

#### 0.2.1

 * Removed the redundant daily rejection-summary table and its separate counter 
   writes.
 * Made the coalesced operational log the single reporting source.
 * Added one-time cleanup of the retired summary option during upgrade.

#### 0.2.0

 * Added a bounded operational log that combines repeat events by browser signature,
   masked network, reason, and status.
 * Added full browser/user-agent strings, latest search samples, occurrence counts,
   and masked networks.
 * Added five-page navigation with 50 signatures per page.
 * Added manual and automatic 30-second refresh controls.
 * Added text search across browser strings, reasons, masked networks, and search
   samples.
 * Added a direct Settings link on the WordPress Plugins screen.

#### 0.1.1

 * Standardized the plugin author display as Dexter Nelson | TechDex Development
   and Solutions.

#### 0.1.0

 * Initial development build.

## Meta

 *  Version **0.4.2**
 *  Last updated **18 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bots](https://wordpress.org/plugins/tags/bots/)[performance](https://wordpress.org/plugins/tags/performance/)
   [search](https://wordpress.org/plugins/tags/search/)[security](https://wordpress.org/plugins/tags/security/)
   [spam](https://wordpress.org/plugins/tags/spam/)
 *  [Advanced View](https://wordpress.org/plugins/techdex-search-scrape-guard/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/techdex-search-scrape-guard/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/techdex-search-scrape-guard/reviews/)

## Contributors

 *   [ Dexter Nelson ](https://profiles.wordpress.org/techdex/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/techdex-search-scrape-guard/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://buy.stripe.com/14AbJ1bp63hF3en6yvdEs0i)