Speed Demon Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
A powerful bundle of lightweight tweaks that drastically improve the loading speed of WordPress by reducing bloat and improving overall efficiency.
- Join our FREE Facebook group for support!
- Worth a 5-star review? Thank you!
- Plugin Homepage
- Plugin GitHub
Our related OSS projects:
The Long Version
1.0.0 = BETA VERSION (we will be adding more features gradually). The purpose of this plugin is to bundle several of our popular performance plugins into one single plugin for easier installation and management. In order to do this efficiently, however, Speed Demon maintains our popular “no settings page” approach to avoid database queries and instability/setup requirements. The most stable functions (sub-plugins) are enabled by default, while less predictable functions (sub-plugins) such as Inline Styles are disabled by default. In order to enable or disable any given function (sub-plugin) simply use the defined constants below inside your wp-config.php file or using our free Custom Functions plugin instead.
Note: these defined constants are ONLY supported within Speed Demon. If you have one of these installed as a standalone plugin already, that function WILL REMAIN ENABLED until you disable the standalone version of the function. For example, if you disable Index Autoload in Speed Demon using a defined constant, but you still have our other Index Autoload plugin installed + enabled, then that function will continue to function until you disable or delete the standalone Index Autoload plugin. This allows for web hosts or other agencies to force-control their WordPress environment using our standalone plugins.
Below are all included sub-plugins along with their default values:
- define(‘REMOVE_QUERY_STRINGS’, ‘true’);
- define(‘DISABLE_EMBEDS’, ‘true’);
- define(‘DISABLE_EMOJIS’, ‘true’);
- define(‘DISABLE_XML_RPC’, ‘true’);
- define(‘INDEX_AUTOLOAD’, ‘true’);
- define(‘DELETE_EXPIRED_TRANSIENTS’, ‘true’);
- define(‘DISABLE_POST_VIA_EMAIL’, ‘true’);
- define(‘INLINE_STYLES’, ‘true’);
Developer notes 1.0.0
-
The constant that controls the plugin (the one with the same plugin/module name) when it does not exists or has the value
true
is when it allows the module execution, and with afalse
value it prevents the execution -
Each module checks some constant(s) and class(es) from the original plugin release, and if some are detected then aborts the module execution. this is the sequence when a module ask if can continue the execution:
-
First check the existence of the corresponding module constants (REMOVE_QUERY_STRINGS, DISABLE_XML_RPC) and stops the module execution if defined with a false value.
- Next step looks for a inherent constant of the original plugin to check if is running (RMQRST_FILE for Remove Query Strings, LittleBizzyDisableEmojisFILE for Disable Emojis, etc.), aborting if detect the previous plugin.
- Sometimes the original plugin does not have a constant (code from other developers), so just in case checks the plugin class existence (LB_Disable_XML_RPC etc.)
-
But these checks do not do anything with the original plugin optional constants: REMOVE_QUERY_STRINGS_ARGS, DELETE_EXPIRED_TRANSIENTS_HOURS, etc.)
-
These checks of existing constants and classes are performed as late as possible, in order to give time to execute these constants/classes from different locations: wp-config.php, other plugins, functions.php from theme, etc.
- Some modules code have changes from the original due the common module/plugin adaptation mechanisms, but I tried to keep the original code fragments (Always will need small changes: namespaces, a separated main module folder, calls to check if the module is enabled, unified activation/deactivacion/uninstall hooks, etc.)
Regarding the modules:
-
Remove Query Strings
The cancellation check works right on the style and loader filters. -
Disable XML-RPC
The last minute check occurs after the WP init hook. I have reorganized the plugin structure to fit the common module mechanism. -
Disable Embeds
Checks constants/classes at the beginning and after the init hook. Tested the correct execution on activation/deactivation hooks. -
Disable Emojis
Checks constants/classes at first and also after the init hook. -
Index Autoload
Checks constants/classes after the init hook. Tested the index removal and internal option deleted (used to save the timestamp) on plugin uninstall. -
Delete Expired Transients
Checking on start and under cron event execution. -
Disable Post Via Email
Just checks on start, it is not possible to check the module later due the early execution in wp-mail.php -
Inline Styles
Checks on start, and on thewp_loaded
hook.
Compatibility
This plugin has been designed for use on LEMP (Nginx) web servers with PHP 7.0 and MySQL 5.7 to achieve best performance. All of our plugins are meant for single site WordPress installations only; for both performance and security reasons, we highly recommend against using WordPress Multisite for the vast majority of projects.
Note: Any WordPress plugin may also be loaded as “Must-Use” by using the Autoloader script within the mu-plugins
directory.
Defined Constants
The following defined constants are supported by this plugin:
- define(‘DISABLE_NAG_NOTICES’, true);
- define(‘REMOVE_QUERY_STRINGS’, ‘true’);
- define(‘REMOVE_QUERY_STRINGS_ARGS’, ‘v,ver,version’);
- define(‘DISABLE_EMBEDS’, ‘true’);
- define(‘DISABLE_EMBEDS_ALLOWED_SOURCES’, ‘twitter, youtube’);
- define(‘DISABLE_EMOJIS’, ‘true’);
- define(‘DISABLE_XML_RPC’, ‘true’);
- define(‘INDEX_AUTOLOAD’, ‘true’);
- define(‘INDEX_AUTOLOAD_REGENERATE’, true);
- define(‘DELETE_EXPIRED_TRANSIENTS’, ‘true’);
- define(‘DELETE_EXPIRED_TRANSIENTS_HOURS’, ‘6’);
- define(‘DELETE_EXPIRED_TRANSIENTS_MAX_EXECUTION_TIME’, ’10’);
- define(‘DELETE_EXPIRED_TRANSIENTS_MAX_BATCH_RECORDS’, ’50’);
- define(‘DISABLE_POST_VIA_EMAIL’, ‘true’);
- define(‘INLINE_STYLES’, ‘true’);
Plugin Features
- Premium Version: Speed Demon
- Settings Page: No
- PHP Namespaces: Yes
- Object-Oriented Code: Yes
- Includes Media (images, icons, etc): No
- Includes CSS: No
- Database Storage: Yes
- Transients: No
- Options: Yes
- Table Data: Yes
- Creates New Tables: No
- Database Queries: Backend Only
- Query Types: Options API
- Multisite Support: No
- Uninstalls Data: Yes
Nag Notices
This plugin generates multiple Admin Notices in the WP Admin dashboard. The first is a notice that fires during plugin activation which recommends several related free plugins that we believe will enhance this plugin’s features; this notice will re-appear approximately once every 6 months as our code and recommendations evolve. The second is a notice that fires a few days after plugin activation which asks for a 5-star rating of this plugin on its WordPress.org profile page. This notice will re-appear approximately once every 9 months. These notices can be dismissed by clicking the (x) symbol in the upper right of the notice box. These notices may annoy or confuse certain users, but are appreciated by the majority of our userbase, who understand that these notices support our free contributions to the WordPress community while providing valuable (free) recommendations for optimizing their website.
If you feel that these notices are too annoying, than we encourage you to consider one or more of our upcoming premium plugins that combine several free plugin features into a single control panel, or even consider developing your own plugins for WordPress, if supporting free plugin authors is too frustrating for you. A final alternative would be to place the defined constant mentioned below inside of your wp-config.php
file to manually hide this plugin’s nag notices:
define('DISABLE_NAG_NOTICES', true);
Note: This defined constant will only affect the notices mentioned above, and will not affect any other notices generated by this plugin or other plugins, such as one-time notices that communicate with admin-level users.
Inspiration
- n/a
Free Plugins
- 404 To Homepage
- Autoloader
- CloudFlare
- Custom Functions
- Delete Expired Transients
- Disable Admin-AJAX
- Disable Author Pages
- Disable Cart Fragments
- Disable Embeds
- Disable Emojis
- Disable Empty Trash
- Disable Image Compression
- Disable jQuery Migrate
- Disable Search
- Disable WooCommerce Status
- Disable WooCommerce Styles
- Disable XML-RPC
- Download Media
- Download Plugin
- Download Theme
- Duplicate Post
- Enable Subtitles
- Export Database
- Facebook Pixel
- Force HTTPS
- Force Strong Hashing
- Google Analytics
- Header Cleanup
- Index Autoload
- Maintenance Mode
- Profile Change Alerts
- Remove Category Base
- Remove Query Strings
- Server Status
- StatCounter
- View Defined Constants
- Virtual Robots.txt
Premium Plugins
Special Thanks
- Alex Georgiou
- Automattic
- Brad Touesnard
- Daniel Auener
- Delicious Brains
- Greg Rickaby
- Matt Mullenweg
- Mika Epstein
- Mike Garrett
- Samuel Wood
- Scott Reilly
- Jan Dembowski
- Jeff Starr
- Jeff Chandler
- Jeff Matson
- Jeremy Wagner
- John James Jacoby
- Leland Fiegel
- Paul Irish
- Rahul Bansal
- Roots
- rtCamp
- Ryan Hellyer
- WP Chat
- WP Tavern
Disclaimer
We released this plugin in response to our managed hosting clients asking for better access to their server, and our primary goal will remain supporting that purpose. Although we are 100% open to fielding requests from the WordPress community, we kindly ask that you keep the above-mentioned goals in mind… thanks!
Screenshots
No screenshots provided