This module helps prevent search engines and bots from excessively crawling your site's Views listings, especially those with many filter and pagination options. It guides crawlers to index essential content while preventing duplicate or unnecessary page crawling. The module can be configured per view and works with various pager types and embedded views.
Crawl Control stops search engines and simple bots from over-crawling Views listings or not hiding the listed content from search.
Especially useful for public views with exposed filters, sorts, items per page, tracking parameters creating a lot of additional parametrized URLs.
Less advanced crawlers can seem like they are attacking your site, particularly if they get stuck in a rabbit hole of indexing pages that list content where near-infinite possibly combinations of filters and pagination can result in huge numbers of dynamic URLS = crawls. This module helps provide guidance to crawlers around what to follow and index for your Views.
Problem solved
Plain pagination (?page=N) is real content. It stays crawlable, indexable and gets its own canonical URL, so every item in a listing keeps an internal link path. Any other query string variation of a listing (exposed filters, sorts, items per page, tracking parameters) is a variation of the same list. Its pager links get rel="nofollow" and the page is marked noindex, follow, with a canonical pointing at itself.
(Unwanted) crawling / indexing can otherwise become heavy on large views with many pages.
Features
Initially at this stage the module provides these options:
- Per view display settings in the Views UI Advanced column.
- Covers the full pager, mini pager and contrib pagers such as infinite scroll and load more.
- Works for embedded views in blocks, viewsreference fields, and general views pages
- Adjusts Metatag's robots and canonical tags in place instead of duplicating them. Metatag is optional.
- A cache context, so the dynamic page cache is not fragmented by unknown query keys.
This primarily affects Views where the URL changes as pagination and filters are applied so typically includes non-AJAX Views, Views with Drupal 11.3+ Core AJAX enabled, and Views with the Views AJAX History module enabled. Multiple Views per page are supported.
Integrations
This module integrates with
- Views (Core) - Key focus of this module
- Facets
It does not automatically integrate with Core's 'pager.manager pagers or other non views-based contrib pagers.
See README.md for details. You are welcome to request further integrations if it makes sense.
What this module is not doing
This module is not providing any flood control or mitigations against malicious attacks and crawling; that is the business of tools like Cloudflare and Protect Views Flood Control.
Ask your assistant about Crawl Control
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.0-alpha2 | Pre-release | 10–11 | Oct 2, 2026 | ||
| 1.0.0-alpha1 | Pre-release | 10–11 | Sep 18, 2026 | ||
| 1.0.x-dev | Dev | 10–11 | Sep 16, 2026 |