Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully
Server metrics [RAM: ▲6.92MB] [CPU: ▼262.13ms] 50% from 4 tests
This is a short check of server-side resources used by BAVOKO SEO Tools - All-in-One WordPress SEO
Please have a look at the following items
- RAM: Total memory usage must be kept under 10MB (currently 10.19MB on /wp-admin/admin.php?page=wsko_iframe)
- Extra RAM: Try to keep extra memory usage under 5MB (currently 6.92MB on /wp-admin/admin.php?page=wsko_iframe)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 10.28 ▲6.76 | 92.36 ▲33.72 |
Dashboard /wp-admin | 10.42 ▲7.01 | 74.27 ▲40.88 |
Posts /wp-admin/edit.php | 10.65 ▲7.01 | 76.32 ▲39.27 |
Add New Post /wp-admin/post-new.php | 13.89 ▲6.91 | 138.00 ▼1,159.36 |
Media Library /wp-admin/upload.php | 10.30 ▲7.00 | 65.01 ▲37.84 |
Safe Download /wp-admin/admin.php?page=wsko_safe_download | 10.19 | 56.83 |
Update /wp-admin/admin.php?page=wsko_updated | 10.19 | 58.33 |
Freemius Debug [v.2.3.0] /wp-admin/admin.php?page=freemius | 10.55 | 61.59 |
Search /wp-admin/admin.php?page=wsko_search | 10.19 | 63.93 |
Tools /wp-admin/admin.php?page=wsko_tools | 10.19 | 56.39 |
Settings /wp-admin/admin.php?page=wsko_settings | 10.19 | 56.96 |
Dashboard /wp-admin/admin.php?page=wsko_dashboard | 10.18 | 61.94 |
Onpage /wp-admin/admin.php?page=wsko_onpage | 10.19 | 57.63 |
Knowledge Base /wp-admin/admin.php?page=wsko_knowledge | 10.19 | 56.89 |
Iframe /wp-admin/admin.php?page=wsko_iframe | 10.19 | 59.21 |
Server storage [IO: ▲19.60MB] [DB: ▲0.01MB] 67% from 3 tests
Filesystem and database footprint
Just a few items left to fix
- Illegal file modification found: 2 files (0.11KB) outside of "wp-content/plugins/wp-seo-keyword-optimizer/" and "wp-content/uploads/"
- (new file) wp-content/bst/session/global_timespan_.cache
- (new file) wp-content/bst/.htaccess
Filesystem: 2,132 new files
Database: 5 new tables, 6 new options
New tables |
---|
wp_wsko_cache_data_se |
wp_wsko_options |
wp_wsko_cache_days |
wp_wsko_cache_data_onpage |
wp_wsko_cache_data_se_d |
New WordPress options |
---|
fs_accounts |
fs_active_plugins |
fs_api_cache |
wsko_init |
fs_debug_mode |
fs_gdpr |
Browser metrics Passed 4 tests
A check of browser resources used by BAVOKO SEO Tools - All-in-One WordPress SEO
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,863 ▲109 | 16.08 ▼0.30 | 6.16 ▼0.80 | 2.42 ▼1.34 |
Dashboard /wp-admin | 2,971 ▲87 | 6.34 ▼0.12 | 128.80 ▼10.26 | 171.40 ▲8.14 |
Posts /wp-admin/edit.php | 2,897 ▲206 | 3.45 ▲0.02 | 68.26 ▲6.93 | 219.21 ▲74.55 |
Add New Post /wp-admin/post-new.php | 1,721 ▼52 | 19.29 ▼2.17 | 457.70 ▼2.49 | 159.95 ▲4.23 |
Media Library /wp-admin/upload.php | 1,764 ▲66 | 5.81 ▲0.11 | 149.18 ▲4.84 | 203.63 ▲1.21 |
Safe Download /wp-admin/admin.php?page=wsko_safe_download | 2,681 | 9.94 | 175.79 | 155.81 |
Update /wp-admin/admin.php?page=wsko_updated | 2,678 | 9.40 | 161.30 | 155.14 |
Freemius Debug [v.2.3.0] /wp-admin/admin.php?page=freemius | 1,478 | 2.69 | 56.27 | 130.87 |
Search /wp-admin/admin.php?page=wsko_search | 2,678 | 9.43 | 155.83 | 161.62 |
Tools /wp-admin/admin.php?page=wsko_tools | 2,683 | 9.35 | 151.64 | 146.04 |
Settings /wp-admin/admin.php?page=wsko_settings | 2,681 | 9.41 | 152.47 | 152.86 |
Dashboard /wp-admin/admin.php?page=wsko_dashboard | 2,677 | 9.42 | 159.97 | 151.90 |
Onpage /wp-admin/admin.php?page=wsko_onpage | 2,681 | 9.44 | 160.04 | 161.35 |
Knowledge Base /wp-admin/admin.php?page=wsko_knowledge | 2,678 | 9.43 | 154.73 | 148.86 |
Iframe /wp-admin/admin.php?page=wsko_iframe | 2,681 | 9.45 | 151.33 | 167.19 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- The plugin did not uninstall successfully, leaving 5 tables in the database
- wp_wsko_cache_days
- wp_wsko_cache_data_se_d
- wp_wsko_cache_data_se
- wp_wsko_cache_data_onpage
- wp_wsko_options
- Zombie WordPress options were found after uninstall: 6 options
- fs_accounts
- fs_active_plugins
- fs_debug_mode
- fs_api_cache
- fs_gdpr
- wsko_init
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)
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Almost there! Just fix the following items
- 6× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/wp-seo-keyword-optimizer/admin/templates/search/header.php
- > /wp-content/plugins/wp-seo-keyword-optimizer/admin/templates/tools/notifications.php
- > /wp-content/plugins/wp-seo-keyword-optimizer/includes/AJAX-Autocomplete-Bootstrap-Select/example/php/ajax.php
- > /wp-content/plugins/wp-seo-keyword-optimizer/includes/AJAX-Autocomplete-Bootstrap-Select/example/php/index.php
- > /wp-content/plugins/wp-seo-keyword-optimizer/includes/freemius/templates/ajax-loader.php
- > /wp-content/plugins/wp-seo-keyword-optimizer/includes/forceutf8/test/ForceUTF8Test.php
- 512× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php:26
- > PHP Fatal error
Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/SearchConsole/RunMobileFriendlyTestRequest.php:18
- > PHP Fatal error
Uncaught Error: Class 'phpseclib\\Crypt\\Base' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php:64
- > PHP Fatal error
Uncaught Error: Class 'Google_Service_Resource' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/Analytics/Resource/ManagementAccountSummaries.php:26
- > PHP Fatal error
Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/AnalyticsReporting/Segment.php:18
- > PHP Fatal error
Uncaught Error: Class 'Google\\Auth\\CredentialsLoader' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php:32
- > PHP Fatal error
Uncaught Error: Class 'Google_Collection' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/Analytics/CustomDataSource.php:18
- > PHP Fatal error
Uncaught Error: Class 'Google_Collection' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/Analytics/RemarketingAudiences.php:18
- > PHP Fatal error
Uncaught Error: Class 'Google_Model' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/Analytics/RemarketingAudienceStateBasedAudienceDefinition.php:18
- > PHP Fatal error
Uncaught Error: Class 'Google_Service_Resource' not found in wp-content/plugins/wp-seo-keyword-optimizer/includes/google-api-php-client-2.2.2/vendor/google/apiclient-services/src/Google/Service/Analytics/Resource/UserDeletionUserDeletionRequest.php:26
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please fix the following browser errors
- 9 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wsko_iframe
- > Network (severe)
wp-content/plugins/wp-seo-keyword-optimizer/includes/sigma.js/sigma.min.js?ver=2.1.9.12 - Failed to load resource: the server responded with a status of 404 (Not Found)
- 9 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=wsko_iframe
- > Network (severe)
wp-content/plugins/wp-seo-keyword-optimizer/includes/sigma.js/plugins/sigma.layout.forceAtlas2.min.js?ver=2.1.9.12 - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
5 plugin tags: onpage analysis, seo, google search console, keywords, content optimization
wp-seo-keyword-optimizer/wsko.php 85% from 13 tests
"BAVOKO SEO Tools - All-in-One WordPress SEO" version 2.1.9.12's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
It is important to fix the following:
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
- Main file name: It is recommended to name the main PHP file as the plugin slug ("wp-seo-keyword-optimizer.php" instead of "wsko.php")
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
There were no executable files found in this plugin211,947 lines of code in 1,327 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 897 | 20,789 | 55,252 | 128,497 |
JavaScript | 237 | 5,305 | 7,900 | 28,160 |
CSS | 93 | 2,049 | 1,509 | 24,499 |
PO File | 11 | 5,973 | 7,307 | 13,115 |
JSON | 13 | 0 | 0 | 6,217 |
Markdown | 40 | 1,679 | 0 | 5,659 |
SVG | 2 | 0 | 0 | 2,959 |
Sass | 28 | 399 | 77 | 2,515 |
HTML | 3 | 29 | 7 | 292 |
Handlebars | 1 | 1 | 0 | 16 |
LESS | 1 | 0 | 0 | 11 |
YAML | 1 | 0 | 0 | 7 |
PHP code 0% from 2 tests
This is a very shot review of cyclomatic complexity and code structure
It is recommended to fix the following
- Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 2,609)
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 204)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 20.83 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 2,609.00 |
Average method complexity | 3.14 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 204.00 |
Code structure | ||
---|---|---|
Namespaces | 52 | |
Interfaces | 31 | |
Traits | 6 | |
Classes | 730 | |
▷ Abstract classes | 13 | 1.78% |
▷ Concrete classes | 717 | 98.22% |
▷ Final classes | 15 | 2.09% |
Methods | 7,038 | |
▷ Static methods | 769 | 10.93% |
▷ Public methods | 6,200 | 88.09% |
▷ Protected methods | 248 | 3.52% |
▷ Private methods | 590 | 8.38% |
Functions | 496 | |
▷ Named functions | 172 | 34.68% |
▷ Anonymous functions | 324 | 65.32% |
Constants | 533 | |
▷ Global constants | 169 | 31.71% |
▷ Class constants | 364 | 68.29% |
▷ Public constants | 364 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
312 compressed PNG files occupy 0.79MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/famfamfam_flags/lc.png | 0.51KB | 0.70KB | 0.00% |
includes/famfamfam_flags/io.png | 0.64KB | 0.76KB | 0.00% |
includes/famfamfam_flags/er.png | 0.64KB | 0.75KB | 0.00% |
includes/famfamfam_flags/na.png | 0.63KB | 0.72KB | 0.00% |
includes/AJAX-Autocomplete-Bootstrap-Select/api-docs/resources/images/icons.png | 11.66KB | 3.96KB | ▼ 66.06% |