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

AddToAny Share Buttons

AddToAny Logo

Share buttons for Drupal including AddToAny's universal sharing button, Facebook, Twitter, Pinterest, WhatsApp, Reddit, Google+ 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 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 views


Menu Breadcrumb

menu breadcrumb settings screen

This module allows you to use the menu the current page belongs to for the breadcrumb, generating breadcrumbs from the titles of parent menus. In the Drupal 6 and 7 version, you may also:

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

Drupal SEO Checklist checks for installed modules.

Drupal SEO Checklist - What is it?

The Drupal SEO Checklist uses 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

Simple XML sitemap

Every webpage needs an automatic XML sitemap generator for SEO reasons. This module aims to be a replacement for the 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 and image sitemaps. Googlebots will thank you later.

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 7 and 8.

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 this 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

    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.

    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

    Real-time SEO for Drupal

    Real-time SEO for Drupal - Snippet Preview

    Improve your Drupal SEO: this module helps you optimize content around keywords in a fast, natural, non-spam way.

    Disclaimer: Although build using YoastSEO.js, this module is not affiliated with Yoast.

    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


    Visitors module

    This module records various data about (anonymous or authenticated) visitors of a Drupal site, and shows these data in the format of either Reports (with charts) or Blocks.

    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.


    Yandex.Metrics Logo

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


    This is the Drupal 8 version of Site map.

    This module provides a site map that gives visitors an overview of your site. It can also display the RSS feeds for all blogs and categories.

    Drupal generates the RSS feeds automatically but few seems to be aware that they exist.

    The site map can display the following items:



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

    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.

    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.

    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.

    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.

    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.

    Ridiculously Responsive Social Sharing Buttons

    Social sharing buttons that you can drop into any website with attractive SVG-based icons, small download, and browser compatibility. No 3rd-party scripts.

    You can choose to add the buttons to the end of certain node types or use the block to put them wherever you want.

    Originally designed as share buttons (visitor is encouraged to share your page on their social stream), the buttons can equally be used as follow buttons, where the visitor is encouraged to visit your social stream.

    Schema.org Metatag

    This project extends Drupal's Metatag module to display structured data as JSON LD in the head of web pages. Read more about Schema.org, JSON LD, and how this module works in an article on Lullabot.com, Create SEO Juice From JSON LD Structured Data in Drupal.

    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!

    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.