Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲3.07MB] [CPU: ▼287.82ms] Passed 4 tests
Analyzing server-side resources used by Hummingbird – Optimize Speed, Enable Cache, Minify CSS & Defer Critical JS
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.74 ▲2.22 | 62.04 ▲9.72 |
Dashboard /wp-admin | 6.77 ▲3.37 | 51.69 ▲13.18 |
Posts /wp-admin/edit.php | 6.99 ▲3.35 | 55.03 ▲15.33 |
Add New Post /wp-admin/post-new.php | 10.30 ▲3.34 | 106.20 ▼1,189.38 |
Media Library /wp-admin/upload.php | 6.72 ▲3.42 | 41.52 ▲15.20 |
Gzip Compression /wp-admin/admin.php?page=wphb-gzip | 6.58 | 36.81 |
Hummingbird Pro /wp-admin/admin.php?page=wphb-upgrade | 6.58 | 36.39 |
Settings /wp-admin/admin.php?page=wphb-settings | 6.72 | 39.98 |
Performance Test /wp-admin/admin.php?page=wphb-performance | 6.58 | 35.54 |
Advanced Tools /wp-admin/admin.php?page=wphb-advanced | 6.58 | 35.41 |
Tutorials /wp-admin/admin.php?page=wphb-tutorials | 6.58 | 33.70 |
Caching /wp-admin/admin.php?page=wphb-caching | 6.64 | 41.72 |
Uptime /wp-admin/admin.php?page=wphb-uptime | 6.58 | 35.52 |
/wp-admin/admin.php?page=wphb-setup | 6.88 | 170.82 |
Dashboard /wp-admin/admin.php?page=wphb | 7.16 | 109.59 |
Server storage [IO: ▲15.35MB] [DB: ▲0.00MB] 67% from 3 tests
A short overview of filesystem and database impact
Please try to fix the following items
- You have illegally modified 1 file (0.00KB) outside of "wp-content/plugins/hummingbird-performance/" and "wp-content/uploads/"
- (new file) wp-content/wphb-logs/.empty
Filesystem: 879 new files
Database: no new tables, no new options
Browser metrics Passed 4 tests
This is an overview of browser requirements for Hummingbird – Optimize Speed, Enable Cache, Minify CSS & Defer Critical JS
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 4,100 ▲356 | 16.80 ▲1.14 | 9.17 ▲3.25 | 2.88 ▲0.68 |
Dashboard /wp-admin | 3,083 ▲225 | 6.30 ▼0.01 | 116.44 ▼12.25 | 186.35 ▲29.11 |
Posts /wp-admin/edit.php | 2,795 ▲104 | 3.39 ▲0.04 | 66.32 ▲3.50 | 137.92 ▼1.71 |
Add New Post /wp-admin/post-new.php | 1,715 ▲25 | 15.75 ▼5.13 | 400.30 ▼3.09 | 172.29 ▲16.63 |
Media Library /wp-admin/upload.php | 1,806 ▲105 | 5.54 ▲0.07 | 136.44 ▼5.77 | 187.37 ▼1.23 |
Gzip Compression /wp-admin/admin.php?page=wphb-gzip | 1,120 | 5.28 | 107.07 | 135.17 |
Hummingbird Pro /wp-admin/admin.php?page=wphb-upgrade | 1,120 | 5.31 | 96.09 | 110.36 |
Settings /wp-admin/admin.php?page=wphb-settings | 1,120 | 5.28 | 93.39 | 108.56 |
Performance Test /wp-admin/admin.php?page=wphb-performance | 1,120 | 5.06 | 89.31 | 108.28 |
Advanced Tools /wp-admin/admin.php?page=wphb-advanced | 1,120 | 5.02 | 88.06 | 106.16 |
Tutorials /wp-admin/admin.php?page=wphb-tutorials | 1,120 | 5.04 | 86.71 | 108.93 |
Caching /wp-admin/admin.php?page=wphb-caching | 1,120 | 5.29 | 87.42 | 105.69 |
Uptime /wp-admin/admin.php?page=wphb-uptime | 1,120 | 5.02 | 90.75 | 110.70 |
/wp-admin/admin.php?page=wphb-setup | 1,120 | 5.05 | 88.95 | 108.13 |
Dashboard /wp-admin/admin.php?page=wphb | 1,120 | 5.28 | 86.67 | 105.42 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
- Zombie WordPress options were found after uninstall: 1 option
- wphb_settings
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Even though no errors were found, this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following
- 16× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/dispatcher_loop.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/replication_simple.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/monitor_consumer.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/key_prefixing.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/replication_complex.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/lua_scripting_abstraction.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/executing_redis_commands.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/redis_collections_iterators.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/debuggable_connection.php
- > /wp-content/plugins/hummingbird-performance/vendor/predis/predis/examples/pubsub_consumer.php
- 251× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Predis\\Command\\Command' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Command/TransactionMulti.php:19
- > PHP Fatal error
Uncaught Error: Class 'Predis\\Command\\Command' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Command/ListPopFirst.php:19
- > PHP Fatal error
Uncaught Error: Class 'Predis\\Response\\Iterator\\MultiBulkIterator' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Response/Iterator/MultiBulk.php:21
- > PHP Fatal error
Uncaught Error: Interface 'Predis\\Connection\\ConnectionInterface' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Connection/AggregateConnectionInterface.php:22
- > PHP Fatal error
Uncaught Error: Interface 'Predis\\Configuration\\OptionInterface' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Configuration/ProfileOption.php:24
- > PHP Fatal error
Uncaught Error: Class 'Predis\\Command\\Command' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Command/ServerSlowlog.php:19
- > PHP Fatal error
Uncaught Error: Class 'Predis\\PredisException' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/NotSupportedException.php:20
- > PHP Fatal error
Uncaught Error: Interface 'Predis\\Connection\odeConnectionInterface' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Connection/CompositeConnectionInterface.php:20
- > PHP Fatal error
Uncaught Error: Class 'Predis\\Command\\Command' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Command/SetIsMember.php:19
- > PHP Fatal error
Uncaught Error: Class 'Predis\\CommunicationException' not found in wp-content/plugins/hummingbird-performance/vendor/predis/predis/src/Connection/ConnectionException.php:21
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side
Optimizations
Plugin configuration 86% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need to be fixed:
- Tags: You are using too many tags: 15 tag instead of maximum 10
hummingbird-performance/wp-hummingbird.php 77% from 13 tests
"Hummingbird – Optimize Speed, Enable Cache, Minify CSS & Defer Critical JS" version 3.3.2's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
Please take the time to fix the following:
- Main file name: Name the main plugin file the same as the plugin slug ("hummingbird-performance.php" instead of "wp-hummingbird.php")
- Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 199 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Everything looks great! No dangerous files found in this plugin55,739 lines of code in 692 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 538 | 9,327 | 21,672 | 40,474 |
JSX | 42 | 580 | 1,275 | 4,627 |
JavaScript | 43 | 745 | 1,308 | 4,318 |
Sass | 31 | 656 | 30 | 3,702 |
Markdown | 7 | 542 | 0 | 1,498 |
SVG | 15 | 0 | 1 | 463 |
CSS | 9 | 24 | 13 | 408 |
JSON | 2 | 0 | 0 | 114 |
diff | 4 | 8 | 68 | 111 |
INI | 1 | 6 | 6 | 24 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 12.33 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 296.00 |
Average method complexity | 3.15 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 68.00 |
Code structure | ||
---|---|---|
Namespaces | 38 | |
Interfaces | 25 | |
Traits | 3 | |
Classes | 334 | |
▷ Abstract classes | 17 | 5.09% |
▷ Concrete classes | 317 | 94.91% |
▷ Final classes | 1 | 0.32% |
Methods | 1,988 | |
▷ Static methods | 188 | 9.46% |
▷ Public methods | 1,571 | 79.02% |
▷ Protected methods | 243 | 12.22% |
▷ Private methods | 174 | 8.75% |
Functions | 65 | |
▷ Named functions | 17 | 26.15% |
▷ Anonymous functions | 48 | 73.85% |
Constants | 50 | |
▷ Global constants | 21 | 42.00% |
▷ Class constants | 29 | 58.00% |
▷ Public constants | 29 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
130 PNG files occupy 2.12MB with 1.39MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/assets/image/summary-graphic-uptime@2x.png | 33.73KB | 11.42KB | ▼ 66.16% |
admin/assets/image/tour/tour-grey-compress@2x.png | 7.99KB | 3.46KB | ▼ 56.70% |
admin/assets/image/hb-graphic-reports-disabled@2x.png | 25.95KB | 8.62KB | ▼ 66.79% |
admin/assets/image/hero@2x.png | 115.29KB | 28.73KB | ▼ 75.08% |
_src/images/summary-graphic-dash.png | 16.08KB | 5.82KB | ▼ 63.78% |