650 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.


This module provides the display of AWStats web statistics data (generally collected from web server logs).

The BAWStats module integrates the third party betterAWStats system into drupal. The betterAWStats project is a PHP library and CGI that displays AWStats web statistics data in a convenient and customizable way.


Login Activity

This module logs user login activity for every user on a Drupal installation. This can be used to provide important user information about when and from where their user account was used to login to the website. If a user notices unusual activity, the user might take required action to protect the account from getting compromised.

The module logs the following information about a login activity;

  • User's UID.
  • $_SERVER['HOST_USER_AGENT'] string.
  • IP address of the host being used for the login activity.
  • UNIX timestamp.

Further, it also provides a report page at admin/reports/login_activity where login activity related information of all the users is displayed in the form of a report.


Views Crosstab

This views style plugin displays the results of a view as a crosstab (also commonly called a pivot table) - grouping rows by one field, columns by another, and using an aggregate function (count, sum etc) of a third field for the table data.

For example, this module will take a table view with linear output like:

User Content Type Node ID
Anita Blog 1
Anita Page 3
Barak Page 5
Jamila Blog 2
Jamila Blog 4
Jamila Page 6

And turn it into a crosstab that counts the number of each type of content for each author:

User Blog Page Total
Anita 1 1 2
Barak 1 1
Jamila 2 1 3

A default view "content type count by user" that does just this is included with this module.

Security note: A security vulnerability was discovered and has been fixed. Users of previous versions are strongly advised to update to version 6.x-1.0-alpha2 or higher, 7.x-1.0-alpha1 or higher, or a dev release dated on or after November 14, 2013.


Baidu Analytics

Logo of the Baidu Analytics web statistics online tracking service.

Adds the Baidu Analytics web statistics tracking system to your website.
Baidu Analytics (百度统计 Baidu Tongji, in Chinese) is Baidu search engine's web analytics platform.

It provides users with many reports about visitors to their website, such as a report on the source of visitors, user demographics, reports on content viewed on site, a heat map, and many other features.


The module allows you to add the following statistics features to your site:

  • Selectively track/exclude certain users, roles and pages
  • Monitor what type of links are tracked (downloads, outgoing and mailto)
  • Monitor what files are downloaded from your pages
  • Custom variables support with tokens
  • Custom code snippets
  • Site Search support
  • DoNotTrack support (non-cached content only)
  • Drupal messages tracking
  • Modal dialog tracking (Colorbox)
  • Access denied (403) and Page not found (404) tracking
  • Cache the Baidu Analytics code on your local server for improved page loading times



Google Analytics Per-Page

Google Analytics Per-Page adds a local menu task to the google analytics configuration to allow extra tracking snippets to be inserted on a per-path basis.

Depends on Google Analytics module.



Google Analytics real time events report

The Intelligence module integrates advanced analytics directly into your Drupal site. It extends Google Analytics tracking with configurable events, page attributes and visitor attributes. It leverages this data to provide a set an enhanced analytics reports integrated into Drupal's admin. The goal is to help web teams truly understand what web efforts are effective what which are not.

To learn more visit the LevelTen Intelligence overview.

How it works

Intelligence is essentially a module that integrates data and features from several different sources. It’s primary source of data is Google Analytics that is enhanced via LevelTen Intelligence (L10Intel). L10Intel is an API and code library that encodes extended data into Google Analytics and produces reports from that data.

The Intelligence module acts as an interface between Drupal and L10Intel. It provides default configuration and facilitates customization via Drupal’s admin and programming hooks. It also provides the wrapper to bring L10Intel reports into Drupal.


The installation instructions can be found here.


Intelligence requires the following Drupal modules:


Like & Dislike

This module provides "like" and "dislike" widgets for contents inside Drupal, making it easiers to promote features as the one seem on many social network websites.

Technically speaking, the module provides 2 tags for Voting API, "like" and "dislike", working in a different way from Vote Up/Down, that is like a "plus or minus" approach. Likes are separate from Dislikes here.


Google Website Optimizer

Google Website Optimizer has been retired by Google and is no longer available. This module is obsolete.


Bit.ly for Drupal

Bit.ly logo, (c) bit.ly.

Bit.ly for Drupal provides a rich API that other modules can use to access bit.ly functionality. This module integrates with bit.ly's OAuth 2.0 implementation, and requires a simple application to bit.ly for access.

This release contains only basic functionality, I am looking to the community to help with extending and expanding this module.



gRafaël graph samples

This is an API module, exposing some of the functionality of the Raphaël JavaScript vector graphics library.

Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you can achieve it simply and easily with this library.


FileField Track

A simple module that tracks downloads of files added through CCK/Fields by asking anonymous users to enter their email address. Returning anonymous users are tracked using a cookie. A tracking interface shows email address and user account information for tracked files downloaded on the site.

Why only have users enter their email address? Email addresses are a unique and easy way to identify users, and the barrier for entry is lower than actually registering for the site.

Set up is easy:


Time Spent


This module tracks, by Ajax, how long a registered user took to read a page and the amount of time he spent on the entire site.

You can configure which content type and role should be tracked and view the report, exhibiting the total hours (or minutes/seconds) a user spent reading a page and at the entire site.

This module just track node pages and registered users. Taxonomy or views pages aren't tracked, but can be if the code is edited.
If you need to track anonymous visits, consider using Google Analytics (GA can't track registered users by its privacy terms).


Bounce Convert

An example Bounce Convert modal popup


Bounce Convert allows you to run "exit-intent" campaigns to show modal webforms to visitors who are leaving your website (determined by mouse cursor position and velocity). This allows you to get an extra pageview from visitors that would otherwise have been lost, and provides an opportunity to make offers, collect email addresses, poll visitors, or ask them why they are leaving. One common technique is to provide a special offer which requires the user to sign up for your newsletter, thereby "capturing" the visitor as they are leaving, instead of losing them.


User Visits Advanced

The User Visits Advanced module is a contrib module for the User Visits module. It is extremely useful for social networking sites who wish to provide their users with statistics about the number of times a the users profile page is being viewed and by which other users. See the provided screen shot how the block of this module can look like.

This module comes with its own database table to store statistics per user profile (uid). At cron time, the data from the user_visits table is collected, aggregated and stored in the user_visits_adv table. It stores

  • the total number of visits per uid
  • the number of visits of the X past days per uid
  • the most recent visitors uids of the past Y hours


  • Enable the user_visits_adv module
  • Go to admin/user/user_visits and the advanced fieldset
  • You can choose to enable the two blocks: My recent visitors adv & My visitors history adv
  • Configure each block for the amount of data which should be handed over to the theming functions


The My visitors history adv block can be themed by overriding the following function
* Theme function for history block
* @param $history is array with the views data of the past X days.


Statistics AJAX

Statistics_ajax in action


This module provides a way to programmatically update the {node_counter} table (provided by the core statistics module).

This module listens to a URL in the format of /statistics/ajax/[nid] where [nid] is the id of the node you are looking to update the statistics for.


Yandex Webmaster

Yandex Webmaster module integrates the Yandex Webmaster tools with your Drupal site via Yandex.Webmaster API.




  • Download and unpack the IDNA Converter PHP class into sites/all/libraries/idna_convert so that the path to the idna_convert.class.php file is sites/all/libraries/idna_convert/idna_convert.class.php
  • Download and install Yandex Services Authorization API
  • Download and install this module



jStats allows you to aggregate statistics about visitors on your site, without breaking the cache-ability of your pages.

At its core, jStats could be seen as a bridge between the core Statistics module, that stores its data in Drupal but is incompatible with aggressive and external caching, and Google Analytics, that only adds a small JS fragment to the page and thus makes them perfectly cachable, but can't easily be accessed by Drupal modules (in order for example to sort a listing of node by the number of node views): it's a lightweight way to keep your statistic data in your database, that still works when the page you want to have statistics on is stored in cache.


Mail Tracking

Mail Tracking statistics

The Mail Tracking module tracks the number of recipients that read your e-mail message, click on a link in it or unsubscribe (if used in combination with Simplenews).

And there's even more: if the Simplenews and Google Analytics module have been installed you can define a source for your newsletters. This source (and some other values) will be added as utm_ parameters to all website links in your newsletter.



Graph from the Mixpanel dashboard

Provides integration with the Mixpanel real-time analytics service.

Unlike Google Analytics, Mixpanel isn't for tracking aggregate data about page views. Instead, you send specific events to Mixpanel when users perform certain actions. This allows you to examine how users interact with your site in real-time and connects all events to the individual user who performed them (so you can contact them).

Mixpanel is great for finding ways to improve usability, studying how existing features are actually used and is especially good for startups who are trying to refine their MVP (Minimum Viable Product).

Click here to learn more about Mixpanel!

Support Mixpanel's development by donating on TopShelfModules.com!


  1. Install this module in the normal Drupal way
  2. Sign-up for a free account on Mixpanel.com
  3. Obtain your Mixpanel token



LiveInternet module admin interface

English version

The LiveInternet module integrates Drupal with LiveInternet statistic service, which most popular in Russia and post-Soviet states. This service allows to track visitors, page views, referring sites, the most popular pages, etc. The image with LiveInternet logotype have to be on every tracking page in free version of counter.


Word count

View word counts stats for each user: total words, total nodes, total comments, average words per node, etc.

Version 7.x-1.1 is out. It includes some very important bug fixes [release notes]. Please upgrade ASAP.


Node Type count

This module is used to Show a count of nodes of a particular content-type
and also number of Users of particular role type.
This module will be used for statistical and dev purposes only.


You can view the report of the count for Node and count of user in the following relative URL after installation of Node Type count module

Node Count
: "/admin/reports/node-type-count"
User Count : "/admin/reports/node-type-count/user"

Similar projects and how they are different


Click HeatMap

ClickHeat generated heatmap.

The Click Heatmap module provides integration between Drupal and the ClickHeat library. The module itself does not record any data or generate click heatmaps. Instead the module provides a limited Drupal related scope and injects the the Javascript necessary to record the click data.


Syslog Access

Syslog Access compliments the core Syslog module by routing access statistics and logs to syslog (in addition to Syslog's routing of Watchdog), allowing you to use your favorite log management software or service (like Splunk, Loggly, etc.) to visualize, analyze, and manage your access log.

You can also disable database logging to help scale your Drupal installation.



Notify 404

Notify 404 provides the ability for notification emails to be sent to a user when a specific volume / frequency of 404 (page not found) errors have occurred on the website. This module allows for configurable email settings and volume / frequency settings. It also provides help via pointing the user to the Redirect Module to fix the issue.

Required Modules: