264 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.


Metatag | Drupal 7 test site.png

The Metatag module allows you to automatically provide structured metadata, aka "meta tags", about a website. In the context of search engine optimization, when people refer to meta tags they are usually referring to the meta description tag and the meta keywords tag that may help improve the rankings and display of a site in search engine results. In addition, the module provides support for meta tags (Open Graph Protocol from Facebook, Twitter Cards from Twitter) that allow control of how content appears when shared on social networks.


Search 404

Instead of showing a standard "404 Page not found", this module performs a search on the keywords in the URL, e.g. if a user goes to http://example.com/does/not/exist, this module will do a search for "does not exist" and shows the result of the search instead of the 404 page. This should help retain visitors coming in from old URLs linked from other sites or from search indices.

It also includes search engine keywords detections as well as regular expression based term filtering from the URL.


SEO Checklist

SEO Checklist tasks

Drupal SEO Checklist - What is it?

The Drupal SEO Checklist uses >Drupal SEO best practices to check your website for proper search engine optimization. It eliminates guesswork by creating a functional to-do list of modules and tasks that remain. Updated regularly with the latest techniques, it makes on-page Drupal search engine optimization hassle-free.

It breaks the tasks down into functional needs like Title Tags, Paths, Content and many more. Next to each task is a link to download the module from D.o and a link to the proper admin screen of your website so that you can configure the settings perfectly.

Drupal SEO Checklist also keeps track of what has already been done. It places a date and time stamp next to each item (when you click save). That provides a simple report that you can share with others showing what's been done.

You need Drupal SEO Checklist if

  • You know SEO basics pretty well
  • You work on a lot of different websites and need help keeping track of what you've done on each
  • You know how to properly configure modules for SEO needs
  • You are a list-maker! Or, you simply enjoy checking things off when they're done.

Drupal SEO Checklist does not:

  • Provide good SEO strategy


Share Buttons by AddToAny

AddToAny Logo

Share buttons for Drupal including AddToAny's universal sharing button, Facebook, Twitter, Google+, Pinterest, WhatsApp and many more.

Large vector share buttons use AddToAny SVG sharing icons. AddToAny vector icons load efficiently, are mathematically precise, scalable to any size, and stunning on High-PPI screens such as Retina and Retina HD displays.

Share buttons

  • Universal sharing button
  • Modern SVG sharing buttons
  • Traditional PNG sharing buttons
  • Elegant Drupal integration
  • AJAX support
  • Display on articles
  • Display on article teasers
  • Display on pages
  • Display in blocks
  • Display in custom nodes



Crumbs, the Breadcrumbs suite

Crumbs calculates breadcrumbs for your site.
It does so by finding the parent of the current page, then the parent of the parent, etc, until it arrives at the home page.

Crumbs comes with a bunch of built-in plugins, that can be individually enabled, disabled and prioritized, and some of which provide further configuration options.

Built-in plugins

Crumbs plugins have two responsibilities: (1) to determine the parent path for a given path, and (2) to determine the title for a specific breadcrumb link.

Built-in plugins exist for: Menu, Taxonomy, Entity reference, Organic groups, Path aliases, Entityreference prepopulate, Text fields, Forum, Commerce checkout, etc.

Besides, there are configurable token-based patterns to find the parent for entity pages per bundle.

As a fallback behavior, it will always try to find a parent by chopping off the last part of the path. And for the link title, the fallback is whatever was specified with hook_menu().

Fine-grained priority control

Most plugin priorities are further subdivided, to allow even more fine-grained control: By menu name (menu), vocabulary name (taxonomy), field name and entity bundle (entity reference), group content type (organic groups), etc.


Easy Breadcrumb

Easy Breadcrumb Screenshot

The Easy Breadcrumb module provides a plug-and-play block to be embedded in your pages, typically at some place near the page's header. Easy Breadcrumb takes advantage of the work you've already done for generating your paths' alias, while it naturally encourages the creation of semantic and consistent paths. This modules is currently available for Drupal 6.x, 7.x, and 8.x.x.

Easy Breadcrumb uses the current URL (path alias) and the current page's title to automatically extract the breadcrumb's segments and its respective links. Easy Breadcrumb is really a plug and play module, it auto-generates the breadcrumb by using the current URL, the user needs to do anything to get it working.

For example, having an URL like gallery/videos/once-a-time-in-cartagena, Easy Breadcrumb will automatically produces the breadcrumb Home >> Gallery >> Videos >> Once a time in Cartagena or Home >> Videos >> Once a Time in Cartagena. Again, the breadcrumb presentation will vary depending on your module's settings.

Drupal 8

Easy Breadcrumb replaces core breadcrumbs with configurable crumbs that lets you add the current page to the crumbs, display titles instead of urls, edit home link, exclude paths, and more.


Recommended modules



    Yandex.Metrics Logo

    The Yandex.Metrics project helps to integrate a website with Yandex.Metrica.


    Facet API Pretty Paths

    Facet API Pretty Paths illustration

    Enables pretty paths for searches with Facet API. You will likely use this module in combination with either Search API or Apache Solr Search Integration.

    Functionality overview

    • Pretty paths will be generated as "search/url/segment1/segment2/".
    • By default, a segment will look like: "<alias>/<value>".
    • Custom coder plugins, allow to override the default segment representation.
    • The taxonomy coder outputs the id: "<alias>/<term-name>-<term-id>".
    • The taxonomy pathauto coder leverages pathauto aliases to create even prettier paths: "<alias>/<term-alias>".
    • Pager & breadcrumbs supported.
    • Supports the optional Current Search Blocks "current_search" module of Facet API.



    Visitors module

    This module used for displaying a visitors info.


    • View pages that have recently been visited.
    • View pages that have been hit frequently.
    • View pages count per month.
    • View pages count per day of month.
    • View pages count per day of week.
    • View pages count per hour.
    • View pages count per host.
    • View access log.
    • View user activity report (hits, nodes, comments).
    • View referer list.

    Integration with whois lookup module.

    Visitors Block

    • Total Visitors.
    • Unique Visitor.
    • Registered Users.
    • Last Registered User.
    • Published Nodes.
    • Your IP.

    Visitors GeoIP module

    Add country reports.

    1. Countries report. View pages count per country.
    2. City report. View pages count per city.
    3. City visitors report. View city hits.

    GeoIP installation

    1. Install geoip pecl extension. For installation instructions see http://www.php.net/manual/en/geoip.installation.php.

    2. Download Geo Lite City database.
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
    gunzip GeoLiteCity.dat.gz
    mv GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat


    Path redirect import

    Import redirects from CSV

    This module allows to include path redirection in a simple way. Provides a simple way to bulk import redirects for Redirect (Drupal 7) or Path Redirect (Drupal 6) modules from a CSV file.

    All the necessary redirections can be done at the same time from a CSV file.
    Very useful module for moving your website from one path structure to another.

    Drupal 6

    CSV structure:
    'old url', 'new_url', 'redirect_code' = 301


    Google Analytics Tokenizer

    Google Analytics information appended to the bottom of a Contact Form email

    Haven't you always wanted immediate access to the Google Analytics information about your visitors? Now you can! This module will extract the information found in the __utmz and __utma cookies and neatly package them into tasty little tokens.

    Installation Instructions:
    1. Enable Google Analytics. (Duh!)
    2. Enable the Token module. (It is a token-izer, remember?)
    3. Enable this module. (Wow, could it be any simpler?)

    List of Tokens:

    Token ID Purpose
    D6: [ga-source]
    D7: [ga_tokenizer:ga-source]
    Search engine, domain name, newsletter name, or other source.
    D6: [ga-campaign]
    D7: [ga_tokenizer:ga-campaign]
    To identify a specific product promotion or strategic campaign.
    D6: [ga-medium]
    D7: [ga_tokenizer:ga-medium]
    A medium such as organic, referral, twitter, email, feed, or cost-per-click.
    D6: [ga-content]
    D7: [ga_tokenizer:ga-content]
    Used for A/B testing. To differentiate ads or links that point to the same URL


    Alternate hreflang


    Search engines use <link rel="alternate" hreflang="x" /> tags to serve the correct language or regional URL in search results.

    Alternate hreflang is a simple module that automatically adds these tags to your pages. It has no dependencies, but works well with Entity Translation.

    More info about hreflang can be found at the article Use hreflang for language and regional URLs.


    Image Lazyloader

    Lazyloader Settings

    This is a small helper module which will automatically lazyload all images for sites with multiple images, which will make the site load faster.

    All images will only load when it's visible to the browser window.

    Available Settings:
    1) Enable/Disable
    2) Distance - image distance from the viewable browser window before the actual image loads
    3) Placeholder Image - stand-in image
    4) Loader Icon - animating icon (shamelessly borrowed from ajaxblocks module)
    5) Excluded Pages - page paths to be excluded from image lazyload

    For other images:
    You can also manually lazyload your other images not processed by Drupal image module by formatting your img markup to this:

    1) src = path to placeholder image
    2) data-src = path to actual image
    3) width = add width for best result
    4) height = add height for best result
    5) Add a container block


    <div class="image-container"><img src"/sites/default/files/image_placeholder.gif" data-src="/sites/default/files/actual_image.jpg" alt="Image" /></div>


    Internal Links

    Enable the filter(s) for an input type and run filters in appropriate order.

    The Internal Links module, Intlinks, is a simple set (currently two) of input filters which modify the output of internal, root-relative links in any text input format for which they are enabled. The title filter allows you to have the node titles of linked content automatically inserted into the link as the HTML "title" attribute, with "node/123" -type href paths converted to URL aliases, too. It is especially useful for streamlining the editorial workflow and improving SEO. You can also use the "Hide bad" filter to "unlink" unpublished content so visitors don’t encounter "page not found" errors.


    Maintainer and Author: Lowell Montgomery.


    Internationalization contributions

    Internationalization contributions is a set of modules that are add ons for Internationalization module to provide compatibility with other contributed modules or some other features.


    i18n page views


    This module provides a new display of views, where you can select different paths for each language enabled on your site, so a view has a localized route for each language.

    6.x-1.x initial development sponsored by Alquimia Proyectos Digitales and Emergya Consultoría.

    7.x-1.x initial port sponsored by ymbra.


    Yoast SEO for Drupal

    Yoast Logo

    Improve your Drupal SEO: write better content using Yoast SEO for Drupal module.

    This module is written from the ground up by joined forces of Yoast and GoalGorilla to improve your site's SEO on all critical aspects.


    Simple XML sitemap

    Every webpage needs an automatic XML sitemap generator for SEO reasons. This module aims to be a replacement for the currently broken xmlsitemap module for Drupal 8.
    Simple xml sitemap is lighter than xmlsitemap in terms of resources and usability. Its functionality differs from xmlsitemap, see this post for details.

    Sitemaps generated by this module adhere to the new Google standard regarding multilingual content by creating hreflang sitemaps. Googlebots will thank you later.


    Smart Paging

    Smart Paging settings

    Provides splitting up long Drupal content into sub pages by number of characters/words or by a placeholder HTML tag for node, user and taxonomy term entities.


    Responsive Favicons

    Settings screen

    Responsive Favicons

    This module adds the favicons generated by http://realfavicongenerator.net/ to your site. The responsive name comes from the fact that many devices are catered for including iPhone, Android, iPad, other tablets and desktops.


    Views 404

    Are your views returning a 200 when it should return a 404? Views404 is the answer! This is very helpful for any caching layer and it will help SEO.

    Do I Really Need This?

    In short yes, you do.
    Live Example
    http://drupal.org/project/modules/google.com <- This should return a 404; 200 given. Duplicate content penalty!


    Semantic Fields

    Semantic Fields lets you add more logic to the output of the fields

    Semantic Fields (formerly Semantic CCK in Drupal 6) was created to give users the abilility of customizing and enhancing the HTML output of a field. With Semantic Fields enabled, users can specify the HTML wrapper element and classes for:

    • The entire field
    • The labels -- above and inline
    • All field items
    • Each individual field item

    This allows users to quickly create semantically rich and meaningful HTML markup for fields, such as:


    Shareaholic | share buttons, related posts, social analytics & more

    Shareaholic for Drupal

    The easiest, most effective way to grow your website traffic, effectively engage your audience, monetize, and gain insights for free.

    Shareaholic is an all-in-one content amplification and monetization platform, that includes related content recommendations, promoted content, social sharing, following, site monetization apps such as affiliate linking, and social analytics. This module makes it a snap for any website — big or small — to engage and grow their traffic, market their content, gain insights, and monetize their traffic, all from one powerful but easy-to-use dashboard.

    This module is actively developed (GitHub), maintained and supported with much love by Shareaholic.

    Recent Updates:


    Metatag Views Overview

    Metatag provides the Metatag Views submodule which enables a views plugin for users to add metatags to views pages. However, those metatags are not exposed to the Metatags Overview page (admin/config/search/metatags) and users are required to have the permisson to "administer views" in order to set the metatags in the views_ui.

    This module exposes views metatags on the overview page and allows users with the "administer metatags" permission to update the metatag specific portion of the view.


    CRM Core

    CRM Core

    CRM Core is a set of modules for managing contacts, activities and relationships within your Drupal website. It is designed to provide a basic framework for managing these items and interacting with other components of Drupal.


    CRM Core allows you to manage contacts, activities and relationships in your Drupal website. It provides extensive support for these entities, and includes a number of tools to make them easier to support in your Drupal website.

    • User Sync allows contacts to be paired with user accounts.
    • Match provides support for deduplication.
    • Reports provides a central repository for reports.
    • CRM Core Settings allows administrators to control the UI for managing contacts.

    In addition to these basic features, CRM Core integrates with a number of other components within Drupal, including views, VBO, ctools, rules, solr, services, field api and search api.

    Why use CRM Core?

    An extensive discussion of why you would want to use CRM Core can be found in the handbook. This page details the design philosophy behind CRM Core and other things to consider when trying to make the case for why you would want (or not want) to use it.