PHPackages                             augustash/drupal\_cache\_protection - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. augustash/drupal\_cache\_protection

ActiveDrupal-module[Caching](/categories/caching)

augustash/drupal\_cache\_protection
===================================

Protects Drupal page cache from fragmentation by tracking parameters and bot abuse

1.0.14(1w ago)059proprietaryPHP

Since Apr 15Pushed 5d agoCompare

[ Source](https://github.com/augustash/drupal-cache-protection)[ Packagist](https://packagist.org/packages/augustash/drupal_cache_protection)[ Docs](https://github.com/augustash/drupal-cache-protection)[ RSS](/packages/augustash-drupal-cache-protection/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (2)Versions (16)Used By (0)

Drupal Cache Protection
=======================

[](#drupal-cache-protection)

Protects Drupal page cache from fragmentation by tracking parameters and bot abuse.

Install
-------

[](#install)

```
ddev composer config --json --merge extra.drupal-scaffold.allowed-packages '["augustash/drupal_cache_protection"]' && ddev composer require augustash/drupal_cache_protection && ddev drush en -y drupal_cache_protection
```

Submodules
----------

[](#submodules)

The parent module always belongs on. Submodules are opt-in based on what features the site exposes — enable each only when its trigger is present.

### `drupal_cache_protection_facets`

[](#drupal_cache_protection_facets)

**Enable when:** `drupal/facets` is enabled on the site.

Facet bot protection — count throttle, alias validation, per-IP rate limit on faceted requests. Skip on sites without faceted browsing; the middleware would only inspect requests that never reach it.

### `drupal_cache_protection_search`

[](#drupal_cache_protection_search)

**Enable when:** any search exposure is present — Drupal core Search, `search_api`, Solr, or a custom search route reachable from the front end.

Per-IP rate limiting and page-cache kill switch on search routes. Bots blast unique queries to fragment `cache_page` and overload Solr — this throttles them and prevents the responses from being cached.

- Two flood windows (burst + sustained), either limit triggers a 429.
- Only acts when a configured search query parameter is present (e.g. `?s=...`), so the empty search form stays cacheable.
- Configure at `/admin/config/search/cache-protection/search`.

Enabling
--------

[](#enabling)

```
# Always:
ddev drush en -y drupal_cache_protection

# Add when applicable:
ddev drush en -y drupal_cache_protection_facets   # only if drupal/facets is enabled
ddev drush en -y drupal_cache_protection_search   # if any search route is exposed
```

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance99

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

15

Last Release

12d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/58f09f3094dbf20ec7c4e7539132ab26b92f16b4aad1aed8812740383ca2af18?d=identicon)[kazajhodo](/maintainers/kazajhodo)

---

Top Contributors

[![kazajhodo](https://avatars.githubusercontent.com/u/1173204?v=4)](https://github.com/kazajhodo "kazajhodo (24 commits)")

### Embed Badge

![Health badge](/badges/augustash-drupal-cache-protection/health.svg)

```
[![Health](https://phpackages.com/badges/augustash-drupal-cache-protection/health.svg)](https://phpackages.com/packages/augustash-drupal-cache-protection)
```

###  Alternatives

[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6941.5M395](/packages/drupal-core-recommended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
