Last updated March 14, 2013. Created by baff on April 28, 2011.
Edited by manish_mics, LeeHunter, sfbob, stieglitz. Log in to edit this page.

It is always good to think it over before installing a module; too many modules can slow down your site and are tricky when updating especially on shared servers as their maximum allowed hardware resource usage is much lower than VPS and dedicated servers. Additionally, modules that are poorly maintained and contain bugs can be detrimental to the security and stability of your site.

Each website's needs and resources vary widely so the following numbers are offered as rough advice, not strict guidelines in any sense:

  • For a small website on a shared hosting service: 20 or less well chosen contributed modules should provide plenty of flexibility and functionality while keeping a lean well performing site.
  • For moderately complex sites: 20-50 modules may be more adequate, though a good site builder may be able to get more functionality out of less modules. You might start to feel the shortcomings of a shared host and might consider moving to a VPS.
  • If your website is very complex and must satisfy many, many different use cases: 50 - 100 modules may be necessary. A shared hosting service may serve the site, but performance could be inadequate.
  • If you have 100 - 150 modules enabled on your site, you either have a very complex website or there are more efficient ways to build your site - consider removing modules and finding simpler solutions for your use cases.
  • If you have over 150 modules enabled on your site - either your drupal site powers NASA or you have a serious module addiction, get help.

It is important to investigate the most well-maintained contributed modules, such as Views, Rules, Panels, and others before installing a large number of different modules on your site. The functionality of these modules can often mitigate the need to install slews of other modules on your Drupal site.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

This is a good, common-sense advice, I believe. However, how many modules are too many, i.e. are we talking tens, hundreds...?

I appreciate there isn't a standard for this as each website will be different, but what is an average, or expected number of modules?

Thanks
fadrupal

P.S. I see this applies to Drupal 6.x - I take it this is applicable to all versions, including 7.x and the upcoming 8.x .

The advice to use as few modules as possible is sound advice. Some modules/themes cause more of a degradation in performance than others. It does apply to all versions, however many of the contributed modules that were necessary to download in D6 were moved into core eliminating the need to download them separately (image, much of CCK etc.). Rest assured, if it is in core, performance has at least been considered. While it is impossible to specify an acceptable number (some shared hosting runs drupal core poorly...while others my run a site with many modules quite well), it seems you want an estimated number. In my opinion the number of contrib modules for most of the smaller sites I have built average in the 20's. I would say hundreds would be excessive.

Thanks stieglitz

I appreciate the info on module counts. These numbers help when negotiating with site builders who want to install unlimited modules. :)

What's a rough guideline to determine the number of modules on a site? As of May 2013, this doc recommends about 20 modules for small sites. However, installing Drupal 7.22 in the standard configuration downloads 48 core modules, 31 of which are installed by default.

Do you just subtract 31 from the outcome of drush pm-list? Do you include custom modules? Features?

Thanks,
John

Actually I do not know where to post this idea (if this is not the right place please help me)
I suggest for module page to have anchor of module names. so whene you see dependency of one module, you can click on that module and going to the line of that module.
I mean for example:
module context is required by chaos tools (with link to the chaos tools module line).
it will help for fast navigation (as browsers search does not help)

For folks who are comfortable running drush:

There is a drush command that can count your enabled modules:

drush pml --type=module --status=enabled | wc -l

It should return a number, note that this will include every module from core as well as modules you have added, many of which contain multiple add on modules themselves.

For RealLifeEnglish.com, a very complex site with all sorts of functionality, the count is 525, which corresponds to around "200" drupal projects. Of course this could be lowered, but many of these modules work well for specific tasks and are being maintained, and the site has the memory and other resources to run with this complexity.

drush pml --type=module --status=enabled --no-core | wc -l

By adding option --no-core you should get only contrib' module, isn't it ?