Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

page_analytics

5 sites No security coverage
View on drupal.org

Page Analytics provides simple, server-side page view analytics for Drupal. No JavaScript tracking or third-party services are required. It records daily view counts without affecting the page load and displays an admin report with charts for a given period. All data is stored in your database and processed via Drupal's queue on cron.

Post-Installation

To see data in the report: visit some front-end pages (as an anonymous user if "Exclude logged-in users" is on), then run cron. The queue worker runs on cron and writes to the analytics table. This keeps page responses fast by doing the database work in the background instead of during the request.

Cron: Run cron often (e.g. every 15 minutes). If cron runs rarely, the queue can grow large and a single cron run may process many items at once, which can temporarily overload the server. Frequent cron keeps batches small.

Report

See the report in Reports » Page analytics. Charts show daily view counts for the selected period (7 or 30 days).

How it works

  • On each successful (200) response for a non-admin path that is not a static asset, the module may enqueue a view (subject to sampling and optional exclusion of authenticated users). Paths under `/admin` and asset file extensions (e.g. `.jpg`, `.png`, `.js`) are not tracked. Paths longer than 255 characters are truncated.
  • Eligible page views are added to the `page_analytics` queue
  • When cron runs, the queue worker upserts into the `page_analytics_daily` table (path + date, incrementing view count). The worker processes up to 100 items per cron run and respects the configured sampling rate when estimating totals.
  • The report reads from `page_analytics_daily` and uses the configured retention so that old rows are removed on cron.

Similar modules

  • Statistics — Counts entity views (nodes only, full page mode). Tracks a running grand total and daily subtotal per node with no historical data. Lightweight and privacy-friendly (no PII collected). Moved out of Drupal core into a contributed module as of Drupal 10.3.
  • Visitors — Comprehensive visitor analytics with detailed user tracking (IP, location, browser, device, OS) and server/browser performance metrics. Integrates with Views and Charts for reporting. Collects more data than Page Analytics but includes personally identifiable information.

Activity

Total releases
8
First release
Feb 2026
Latest release
1 month ago
Release cadence
5 days
Stability
0% stable

Release Timeline

Releases

Version Type Release date
1.0.0-beta7 Pre-release Mar 9, 2026
1.0.0-beta6 Pre-release Feb 12, 2026
1.0.0-beta5 Pre-release Feb 8, 2026
1.0.0-beta4 Pre-release Feb 5, 2026
1.0.0-beta3 Pre-release Feb 4, 2026
1.0.0-beta2 Pre-release Feb 4, 2026
1.0.0-beta1 Pre-release Feb 4, 2026
1.x-dev Dev Feb 4, 2026