Module Control for Jetpack

Plugin Banner

Module Control for Jetpack

by Rolf Allard van Hagen

Download
Description

Jetpack adds powerful features, but sometimes we don’t want them all… This light-weigth but effective plugin brings additional control over Jetpack.

Features

  1. Blacklist / remove individual Jetpack modules.
  2. Optionally prevent module auto-activation on connection or after an upgrade.
  3. Optionally run Jetpack “unplugged”, without a WordPress.com connection.
  4. Single site and Multisite compatible.

Examples

In most use cases, a carefully considered combination of Jetpack modules can be a really good thing. But not always is much consideration being done beforehand. Or site admins just don’t know all the implications…

  • Using Jetpack on a network? Then network incompatible WAF (Web Application Firewall) module should be blacklisted to prevent accidental activation!
  • Do you already use a light box provided by your theme or another plugin? Then blacklist the Carousel module to prevent accidental activation.
  • Or you’re running a Multisite and do not want any admins monitoring uptime with the Monitor module just to call you every time their site is briefly inaccessible?
  • Offer your own backup service? Backlist VaultPress if you do not care for VaultPress competition.
  • You’re running a school network and sites are managed by minors who are not allowed to sign up for an account at WordPress.com? Then use the Jetpack Offline Mode option to allow usage of modules that do not require a connection.

Any one of Jetpack’s modules can bring overlapping or even conflicting functionality. In such cases, being able to prevent (accidental) activation is a good thing.

Single site and Multisite

Although the original idea arose on a multisite installation, Module Control for Jetpack is developed for both single and multisite installations.

On multisite, it can only be network activated and allows global rules for Jetpack on all sites. At this point it also allows per-site changes by Super Admin only. Jetpack itself can, but does not need to be network activated. In that case, activate Jetpack on the main site and then network-activate Module Control.

For single site installations, plugin settings can be locked down by adding define('JETPACK_MC_LOCKDOWN', true) to wp-config.php for complete security. This can be useful to prevent other admins being able to reactivate blacklisted modules.

Development

The project can be forked and or contributed to on Github.

All contributions — be it in the form of feature requests, bug reports, translations or code — are welcome!

  1. Install Module Control for Jetpack either via the WordPress.org plugin directory, or by uploading the files to your server.
  2. After activating the plugin, go to either Settings > General (on single site) or Network Admin > Settings (on multisite) you can find the new Module Control for Jetpack section.
  3. Select any module you wish to remove and save settings.
  4. If you are on a single site installation and you wish to prevent other admins from reactivating any blacklisted modules, add define('JETPACK_MC_LOCKDOWN', true); to your wp-config.php to lock down settings.
  5. That’s it.
  1. Options section with Blacklist.

    Options section with Blacklist.

A nitpicky review 🙂

By jqz on November 25, 2021

The latest version (1.6) requires JetPack >= 8.8.0 for using JetPack without a connected wordpress.com account. I think it would have been (and still could be) better if you test the JetPack version and use the jetpack_development_mode or jetpack_offline_mode filter as appropriate (though I don’t see why Automattic decided to rename it). If already using a plugin such as Unplug JetPack, 'Use Jetpack modules without a WordPress.com connection' is checked but greyed out. However, the setting from the other plugin is overwritten by your filter which actually sets it to false (unless it has been previously saved as checked whilst not greyed out). You need to respect the previously set value passed to your Jetpack_Module_Control::development_mode() filter instead of using false as the default (and pass that value to get_option('jetpack_mc_development_mode') as the default). It would also be nice if that setting was initialized on the basis of other installed plugins that affect it, so after deactiviting other plugins it retained its value. I think you’d actually need to invoke the jetpack_offline_mode (or jetpack_development_mode) filter (or perhaps use the Automattic\Jetpack\Status::is_offline_mode()/is_development_mode() method) to find out what other plugins are actually setting. Otherwise looks very good and slimline (just one PHP file with fewer than 1,000 lines).

Functional addon)

By hmnkdmtr on March 22, 2020

thanks

great plugin

By Eduard Doloc (rwky) on October 31, 2019

like the fact that you can ban(blacklist) features in jetpack! Very good considering that jetpacks tends to do what it wants on your website.

Works Great

By Peter Gossett (peterg23) on September 30, 2019

Thanks!

目前為止我最愛的插件!

By TAKA (taka0208) on August 24, 2019

超強!

Tames the beast

By G (gnetworkau) on August 13, 2018

Tames the beast known as Jetpack. Jetpack just seems to be getting worse all the time... This plugin works pretty good at getting some control back over it. Thanks, Ravan

Very useful but one request

By Yakti-R (yakti-ruud) on March 8, 2017

This plugin is very useful. The only thing I don't like is that it ads all the option to the general settings page. Imho it would be better to create a specific options page as a submenu in the Jetpack menu. Similar to what SO Hide SEO Bloat does with the Yoast SEO plugin.

thx from me and my users

By Daniel (dhoffmann) on January 23, 2017

for this great idea. it helps me reducing confusion/uncertainty of my clients in our multisite.

Wow. This is magic!

By Ada (adaphobic) on January 8, 2017

I stopped using Jetpack for a while because it made my site very slow. Until I discovered this plugin. This is the bomb. So useful!

Very useful

By Jose Luis Cruz (joseluiscruz) on September 3, 2016

This plugin fits perfectly with my needs. For example when installing the Jetpack's gallery in a client's website I prefer not to setup a wordpress.com account just for that.

1.7.2

Date: 2025/06/25
* Remove Search and Social submenus when related module is blacklisted
* FIX: Manual control failing

1.7.1

Date: 2025/06/20
* FIX: Save empty blacklist as empty, not false (relevant for options cache)
* FIX: Allow autoload filter to return null
* Split up admin class

1.7

Date: 2025/06/16
* Updated fallback and icons list
* Namespace and autloading
* Coding standards
* Network settings nonce verification
* NEW: filter jmc_get_available_modules
* FIX: jetpack_offline_mode filter added too late, thanks @jqz

1.6

Date: 2020/08/19
* Replace jetpack_development_mode with jetpack_offline_mode filter
* New module icons
* Shorter list when Offline Mode is activated

1.5

Date: 2016/12/07
* NEW: option to allow site admins override contributed by @harshit_ps https://github.com/RavanH/jetpack-module-control/pull/8

1.4.2

Date: 2016/04/14
* Text domain name change to correspond with plugin slug

1.4.1

Date: 2016/04/01
* Added FR/NL translation files

1.4

Date: 2016/03/29
* Allow per site settings by Super Admin
* Added Sitemaps to known modules

1.3

Date: 2015/09/02
* Module names now translated using jetpack.mo
* BUGFIX options not saving deactivation
* BUGFIX translation files not found

1.2

Date: 2015/08/01
* Fix “Missing argument 1 for Jetpack_Module_Control::add_settings_section()” https://github.com/RavanH/jetpack-module-control/issues/2

1.1

Date: 2015/05/11
* Detect the Unplug Jetpack plugin

1.0

Date: 2015/05/05
* Jetpack Debug Mode to allow modules without connection
* Show which modules require a connection

0.4

Date: 2015/05/01
* Settings action link on Network plugins page

0.3

Date: 2015/04/27
* Added dashicons

0.2

Date: 2015/04/26
* Added network options

0.1

Date: 2015/04/25
* Initial release

Back to top