Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully
Server metrics [RAM: ▲0.33MB] [CPU: ▼7.84ms] Passed 4 tests
Analyzing server-side resources used by crosswordsearch
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.81 ▲0.34 | 37.34 ▼5.69 |
Dashboard /wp-admin | 3.62 ▲0.28 | 49.67 ▼14.92 |
Posts /wp-admin/edit.php | 3.74 ▲0.38 | 48.47 ▲5.60 |
Add New Post /wp-admin/post-new.php | 6.26 ▲0.37 | 89.40 ▼16.35 |
Media Library /wp-admin/upload.php | 3.55 ▲0.32 | 42.11 ▲7.76 |
Crosswordsearch /wp-admin/options-general.php?page=crw_options | 3.62 | 34.15 |
Server storage [IO: ▲2.67MB] [DB: ▲0.00MB] Passed 3 tests
Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 63 new files
Database: 3 new tables, 11 new options
New tables |
---|
wp_crw_crosswords |
wp_crw_projects |
wp_crw_editors |
New WordPress options |
---|
crw_db_version |
crw_custom_dimensions |
widget_recent-comments |
widget_recent-posts |
crw_dimensions |
crw_subscribers |
can_compress_scripts |
crw_roles_caps |
theysaidso_admin_options |
db_upgraded |
... |
Browser metrics Passed 4 tests
A check of browser resources used by crosswordsearch
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,793 ▲47 | 14.77 ▲0.41 | 1.56 ▼0.32 | 36.41 ▼10.24 |
Dashboard /wp-admin | 2,193 ▲13 | 5.58 ▲0.02 | 82.38 ▼7.55 | 35.16 ▼3.21 |
Posts /wp-admin/edit.php | 2,104 ▲4 | 2.00 ▲0.05 | 33.31 ▼7.10 | 38.05 ▲1.12 |
Add New Post /wp-admin/post-new.php | 2,710 ▲1,173 | 19.37 ▲1.01 | 691.07 ▲62.37 | 46.91 ▼21.93 |
Media Library /wp-admin/upload.php | 1,407 ▲10 | 4.19 ▲0.02 | 94.93 ▼9.07 | 42.73 ▼0.78 |
Crosswordsearch /wp-admin/options-general.php?page=crw_options | 1,897 | 3.87 | 105.49 | 33.85 |
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_crw_editors
- wp_crw_projects
- wp_crw_crosswords
- The uninstall procedure has failed, leaving 11 options in the database
- widget_recent-comments
- crw_subscribers
- widget_theysaidso_widget
- crw_dimensions
- can_compress_scripts
- crw_custom_dimensions
- crw_roles_caps
- crw_db_version
- db_upgraded
- widget_recent-posts
- ...
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)
Good news, no errors were detected
SRP 50% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please take a closer look at the following
- 24× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Notice
Undefined variable: mode in wp-content/plugins/crosswordsearch/immediate.php on line 115
- > PHP Notice
Undefined variable: mode in wp-content/plugins/crosswordsearch/immediate.php on line 126
- > PHP Notice
Undefined variable: mode in wp-content/plugins/crosswordsearch/immediate.php on line 51
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/crosswordsearch/badgeos.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_create_nonce() in wp-content/plugins/crosswordsearch/editorsTab.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function plugins_url() in wp-content/plugins/crosswordsearch/crosswordsearch.php:55
- > PHP Notice
Undefined variable: mode in wp-content/plugins/crosswordsearch/immediate.php on line 72
- > PHP Notice
Undefined variable: mode in wp-content/plugins/crosswordsearch/immediate.php on line 136
- > PHP Notice
Undefined variable: is_single in wp-content/plugins/crosswordsearch/app.php on line 24
- > PHP Fatal error
Uncaught Error: Call to undefined function add_thickbox() in wp-content/plugins/crosswordsearch/wizzard.php:1
- > PHP Notice
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please take a look at the following user-side issues
- > GET request to /wp-admin/options-general.php?page=crw_options
- > Console-api (severe) in wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6+116:400
TypeError: Cannot read properties of undefined (reading 'click')\n at Object.link (/wp-content/plugins/crosswordsearch/js/crosswordsearch.min.js?ver=1.1.0:23:12237)\n at /wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:16:230\n at ia (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:81:35)\n at n (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:66:176)\n at g (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:58:429)\n at n (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:66:115)\n at g (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:58:429)\n at g (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:58:446)\n at g (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:58:446)\n at g (/wp-content/plugins/crosswordsearch/js/angular.min.js?ver=1.5.6:58:446)" "\u003Cdiv class=\"thickbox open-plugin-details-modal ng-hide\" crw-catch-thickbox-link=\"\">
Optimizations
Plugin configuration 96% from 29 tests
readme.txt Passed 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
5 plugin tags: crossword, shortcode, gamification, educational, game
crosswordsearch/crosswordsearch.php 92% from 13 tests
Analyzing the main PHP file in "crosswordsearch" version 1.1.0
The following require your attention:
- Description: Keep the plugin description shorter than 140 characters (currently 265 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Good job! No executable or dangerous file extensions detected28,070 lines of code in 34 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 15 | 4,878 | 29,671 | 23,803 |
PHP | 14 | 374 | 837 | 2,840 |
PO File | 2 | 494 | 523 | 1,285 |
JSON | 1 | 0 | 0 | 140 |
CSS | 2 | 0 | 0 | 2 |
PHP code Passed 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.51 |
Average class complexity | 56.25 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 171.00 |
Average method complexity | 8.89 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 42.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 4 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 4 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 29 | |
▷ Static methods | 8 | 27.59% |
▷ Public methods | 13 | 44.83% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 16 | 55.17% |
Functions | 65 | |
▷ Named functions | 55 | 84.62% |
▷ Anonymous functions | 10 | 15.38% |
Constants | 45 | |
▷ Global constants | 45 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
24 PNG files occupy 0.05MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/bullet-blue.png | 0.50KB | 0.40KB | ▼ 19.06% |
images/markers-violet.png | 4.33KB | 2.68KB | ▼ 38.25% |
images/markers-grey.png | 4.38KB | 2.68KB | ▼ 38.70% |
images/handle-horizontal-active.png | 0.22KB | 0.16KB | ▼ 27.07% |
images/markers-blue.png | 4.24KB | 2.68KB | ▼ 36.75% |