Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully
Server metrics [RAM: ▲1.68MB] [CPU: ▲6.58ms] Passed 4 tests
An overview of server-side resources used by WordPress Backup & Migration
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.16 ▲1.69 | 51.34 ▲13.52 |
Dashboard /wp-admin | 4.99 ▲1.64 | 55.50 ▼3.88 |
Posts /wp-admin/edit.php | 5.04 ▲1.68 | 53.12 ▲5.63 |
Add New Post /wp-admin/post-new.php | 7.59 ▲1.70 | 100.54 ▲11.03 |
Media Library /wp-admin/upload.php | 4.92 ▲1.68 | 50.38 ▲15.58 |
Logs /wp-admin/admin.php?page=wp-migration-duplicator-log | 4.83 | 40.40 |
Upgrade to premium /wp-admin/admin.php?page=wp-migration-duplicator-premium | 4.82 | 42.03 |
Backup & Migration /wp-admin/admin.php?page=wp-migration-duplicator | 4.98 | 52.72 |
Settings /wp-admin/admin.php?page=wp-migration-duplicator-settings | 4.87 | 55.13 |
Server storage [IO: ▲5.46MB] [DB: ▲0.00MB] 67% from 3 tests
How much does this plugin use your filesystem and database?
These are issues you should consider
- The plugin illegally modified 2 files (0.04KB) outside of "wp-content/plugins/wp-migration-duplicator/" and "wp-content/uploads/"
- (new file) wp-content/webtoffee_migrations/.htaccess
- (new file) wp-content/webtoffee_migrations/index.php
Filesystem: 639 new files
Database: 3 new tables, 8 new options
New tables |
---|
wp_wtmgdp_log |
wp_wt_mgdp_action_history |
wp_wt_mgdp_ftp |
New WordPress options |
---|
widget_recent-posts |
db_upgraded |
wtmigrator_start_date |
theysaidso_admin_options |
wt_mgdp_admin_modules |
widget_recent-comments |
can_compress_scripts |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
WordPress Backup & Migration: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,873 ▲112 | 14.19 ▼0.37 | 1.55 ▼0.06 | 42.70 ▲5.52 |
Dashboard /wp-admin | 2,276 ▲96 | 5.51 ▼0.13 | 86.62 ▲0.68 | 38.44 ▼4.11 |
Posts /wp-admin/edit.php | 2,184 ▲84 | 2.01 ▲0.02 | 35.64 ▲1.15 | 32.53 ▼1.22 |
Add New Post /wp-admin/post-new.php | 1,551 ▲16 | 23.38 ▲4.97 | 626.76 ▼13.98 | 52.06 ▼13.03 |
Media Library /wp-admin/upload.php | 1,491 ▲91 | 4.24 ▲0.05 | 95.33 ▼2.78 | 41.09 ▼4.53 |
Logs /wp-admin/admin.php?page=wp-migration-duplicator-log | 872 | 2.03 | 23.53 | 25.66 |
Upgrade to premium /wp-admin/admin.php?page=wp-migration-duplicator-premium | 5,082 | 4.20 | 95.98 | 139.36 |
Backup & Migration /wp-admin/admin.php?page=wp-migration-duplicator | 3,697 | 9.41 | 298.14 | 57.39 |
Settings /wp-admin/admin.php?page=wp-migration-duplicator-settings | 2,100 | 2.19 | 43.67 | 42.22 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
- Zombie tables detected upon uninstall: 3 tables
- wp_wtmgdp_log
- wp_wt_mgdp_ftp
- wp_wt_mgdp_action_history
- Zombie WordPress options were found after uninstall: 8 options
- db_upgraded
- widget_theysaidso_widget
- widget_recent-comments
- wtmigrator_start_date
- wt_mgdp_admin_modules
- widget_recent-posts
- theysaidso_admin_options
- can_compress_scripts
Smoke tests 25% 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 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/wp-migration-duplicator/public/partials/wp-migration-duplicator-public-display.php
- 247× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractSyslogHandler' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php:29
- > PHP Fatal error
Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/google/apiclient-services/src/Google/Service/Drive/DriveFileImageMediaMetadataLocation.php:18
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php:44
- > PHP Fatal error
Uncaught Error: Class 'phpseclib\et\\SSH2' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php:47
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php:19
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php:24
- > PHP Fatal error
Uncaught Error: Interface 'Monolog\\Formatter\\FormatterInterface' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php:21
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php:34
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractHandler' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php:30
- > PHP Fatal error
Uncaught Error: Class 'GuzzleHttp\\Cookie\\CookieJar' not found in wp-content/plugins/wp-migration-duplicator/admin/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php:7
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Please fix the following browser errors
- > GET request to /wp-admin/admin.php?page=wp-migration-duplicator
- > Rendering (warning) in unknown
/wp-admin/admin.php?page=wp-migration-duplicator 814 The specified value "/" cannot be parsed, or is out of range.
- > GET request to /wp-admin/admin.php?page=wp-migration-duplicator
- > Rendering (warning) in unknown
/wp-admin/admin.php?page=wp-migration-duplicator 818 The specified value "onchange=\"if(parseInt(this.value,10)\u003C10)this.value='0'+this.value;\"" cannot be parsed, or is out of range.
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Please fix the following attributes:
- Tags: Please reduce the number of tags, currently 14 tag instead of maximum 10
wp-migration-duplicator/wp-migration-duplicator.php Passed 13 tests
Analyzing the main PHP file in "WordPress Backup & Migration" version 1.4.5
58 characters long description:
Migrate WordPress contents and database quickly with ease.
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
There were no executable files found in this plugin85,805 lines of code in 536 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 441 | 12,837 | 40,378 | 72,798 |
Markdown | 44 | 1,873 | 0 | 5,289 |
PO File | 5 | 1,137 | 1,543 | 2,990 |
JavaScript | 10 | 211 | 44 | 2,201 |
JSON | 17 | 0 | 0 | 1,571 |
CSS | 4 | 90 | 56 | 718 |
SVG | 10 | 0 | 2 | 166 |
YAML | 2 | 6 | 0 | 42 |
XML | 1 | 0 | 0 | 11 |
Dockerfile | 1 | 8 | 0 | 10 |
make | 1 | 4 | 0 | 9 |
PHP code 50% from 2 tests
This is a very shot review of cyclomatic complexity and code structure
Please fix the following
- Method cyclomatic complexity should be reduced to less than 100 (currently 106)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.39 |
Average class complexity | 27.02 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 633.00 |
Average method complexity | 3.70 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 106.00 |
Code structure | ||
---|---|---|
Namespaces | 41 | |
Interfaces | 32 | |
Traits | 9 | |
Classes | 387 | |
▷ Abstract classes | 13 | 3.36% |
▷ Concrete classes | 374 | 96.64% |
▷ Final classes | 14 | 3.74% |
Methods | 4,231 | |
▷ Static methods | 247 | 5.84% |
▷ Public methods | 3,715 | 87.80% |
▷ Protected methods | 189 | 4.47% |
▷ Private methods | 327 | 7.73% |
Functions | 188 | |
▷ Named functions | 68 | 36.17% |
▷ Anonymous functions | 120 | 63.83% |
Constants | 581 | |
▷ Global constants | 57 | 9.81% |
▷ Class constants | 524 | 90.19% |
▷ Public constants | 505 | 96.37% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
29 compressed PNG files occupy 0.04MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/modules/export/assets/css/images/html.png | 0.72KB | 0.75KB | 0.00% |
admin/modules/export/assets/css/images/zip.png | 0.38KB | 0.53KB | 0.00% |
admin/modules/export/assets/css/images/java.png | 0.62KB | 0.65KB | 0.00% |
admin/modules/export/assets/css/images/db.png | 0.57KB | 0.58KB | 0.00% |
admin/modules/export/assets/css/images/code.png | 0.59KB | 0.59KB | 0.50% |