Benchmarks
Plugin footprint 63% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲9.11MB] [CPU: ▲54.86ms] 25% from 4 tests
Analyzing server-side resources used by GamiPress - The #1 gamification plugin to reward points, achievements, badges & ranks in WordPress
It is recommended to improve the following
- RAM: You should keep total memory usage under 10MB (currently 12.19MB on /wp-admin/admin.php?page=edit_gamipress_user_earnings)
- CPU: Try to keep total CPU usage under 500.00ms (currently 1,297.40ms on /wp-admin/admin.php?page=gamipress_licenses)
- Extra RAM: Extra memory usage must be kept under 5MB (currently 9.11MB on /wp-admin/admin.php?page=edit_gamipress_user_earnings)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 12.36 ▲8.90 | 87.60 ▲40.01 |
Dashboard /wp-admin | 12.51 ▲9.20 | 114.69 ▲64.14 |
Posts /wp-admin/edit.php | 12.55 ▲9.20 | 96.68 ▲52.39 |
Add New Post /wp-admin/post-new.php | 15.70 ▲9.81 | 162.79 ▲80.92 |
Media Library /wp-admin/upload.php | 12.38 ▲9.15 | 95.44 ▲62.88 |
Edit Log /wp-admin/admin.php?page=edit_gamipress_logs | 12.47 | 91.84 |
Help / Support /wp-admin/admin.php?page=gamipress_help_support | 12.32 | 85.16 |
Logs /wp-admin/edit.php?post_type=gamipress-log | 12.21 | 83.24 |
Achievement Types /wp-admin/edit.php?post_type=achievement-type | 12.42 | 123.17 |
Licenses /wp-admin/admin.php?page=gamipress_licenses | 15.55 | 1,297.40 |
Add-ons /wp-admin/admin.php?page=gamipress_add_ons | 14.86 | 97.55 |
Logs /wp-admin/admin.php?page=gamipress_logs | 12.37 | 86.68 |
Points Types /wp-admin/edit.php?post_type=points-type | 12.42 | 90.86 |
Rank Types /wp-admin/edit.php?post_type=rank-type | 12.42 | 93.87 |
Edit User Earning /wp-admin/admin.php?page=edit_gamipress_user_earnings | 12.19 | 76.45 |
Server storage [IO: ▲10.58MB] [DB: ▲0.41MB] Passed 3 tests
Filesystem and database footprint
This plugin installed successfully
Filesystem: 1,374 new files
Database: 4 new tables, 32 new options
New tables |
---|
wp_gamipress_logs_meta |
wp_gamipress_logs |
wp_gamipress_user_earnings_meta |
wp_gamipress_user_earnings |
New WordPress options |
---|
widget_gamipress_inline_rank_widget |
gamipress_version |
widget_gamipress_rank_widget |
widget_gamipress_youtube_widget |
widget_gamipress_inline_achievement_widget |
wpdb_gamipress_logs_meta_version |
widget_gamipress_user_rank_widget |
gamipress_settings |
widget_gamipress_points_widget |
gamipress_install_date |
... |
Browser metrics 75% from 4 tests
A check of browser resources used by GamiPress - The #1 gamification plugin to reward points, achievements, badges & ranks in WordPress
It is time to focus on the following
- Nodes: Try to keep the DOM nodes under 25,000 (currently 25,232 on /wp-admin/admin.php?page=gamipress_add_ons)
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,192 ▲430 | 13.77 ▼0.62 | 11.22 ▲8.78 | 36.12 ▼8.08 |
Dashboard /wp-admin | 2,439 ▲262 | 6.01 ▲0.38 | 101.42 ▲6.38 | 43.68 ▲1.53 |
Posts /wp-admin/edit.php | 2,257 ▲157 | 2.32 ▲0.38 | 38.09 ▼2.13 | 33.62 ▼4.67 |
Add New Post /wp-admin/post-new.php | 1,655 ▲129 | 22.91 ▼0.28 | 616.08 ▲2.13 | 36.45 ▼26.02 |
Media Library /wp-admin/upload.php | 1,560 ▲157 | 4.48 ▲0.29 | 98.17 ▲3.31 | 42.28 ▲0.24 |
Edit Log /wp-admin/admin.php?page=edit_gamipress_logs | 1,295 | 1.93 | 31.34 | 47.66 |
Help / Support /wp-admin/admin.php?page=gamipress_help_support | 4,471 | 1.84 | 31.38 | 30.96 |
Logs /wp-admin/edit.php?post_type=gamipress-log | 28 | 0.41 | 0.07 | 3.54 |
Achievement Types /wp-admin/edit.php?post_type=achievement-type | 1,259 | 2.24 | 45.24 | 39.39 |
Licenses /wp-admin/admin.php?page=gamipress_licenses | 964 | 2.18 | 32.49 | 26.55 |
Add-ons /wp-admin/admin.php?page=gamipress_add_ons | 25,232 | 2.44 | 46.95 | 72.46 |
Logs /wp-admin/admin.php?page=gamipress_logs | 1,295 | 1.92 | 29.66 | 35.54 |
Points Types /wp-admin/edit.php?post_type=points-type | 1,269 | 2.28 | 39.78 | 50.66 |
Rank Types /wp-admin/edit.php?post_type=rank-type | 1,259 | 2.22 | 37.68 | 35.60 |
Edit User Earning /wp-admin/admin.php?page=edit_gamipress_user_earnings | 1,226 | 1.91 | 31.51 | 30.07 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.41MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
The following items require your attention
- Zombie tables were found after uninstall: 4 tables
- wp_gamipress_logs_meta
- wp_gamipress_logs
- wp_gamipress_user_earnings
- wp_gamipress_user_earnings_meta
- Zombie WordPress options were found after uninstall: 32 options
- widget_gamipress_achievements_widget
- theysaidso_admin_options
- widget_gamipress_inline_user_rank_widget
- widget_gamipress_earnings_widget
- wpdb_gamipress_logs_meta_version
- widget_gamipress_email_settings_widget
- widget_theysaidso_widget
- widget_gamipress_points_types_widget
- widget_gamipress_rank_widget
- gamipress_install_date
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Smoke test failed, please fix the following
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=edit_gamipress_user_earnings
- > User notice in wp-includes/functions.php+5905
Function wpdb::prepare was called incorrectly. The query argument of wpdb::prepare() must have a placeholder. Please see Debugging in WordPress for more information. (This message was added in version 3.9.0.)
- 59 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=gamipress_help_support
- > Notice in wp-includes/class-wp-list-util.php+170
Undefined index: default
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Almost there! Just fix the following items
- 2× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/gamipress/templates/inline-ranks.php
- > /wp-content/plugins/gamipress/templates/inline-achievements.php
- 159× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Multicheck' not found in wp-content/plugins/gamipress/libraries/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function absint() in wp-content/plugins/gamipress/libraries/ct/init.php:87
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/gamipress/integrations/armember/armember.php:170
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/gamipress/integrations/fluentform/fluentform.php:166
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/gamipress/libraries/cmb2/includes/types/CMB2_Type_Radio.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/gamipress/integrations/modern-events-calendar/modern-events-calendar.php:131
- > PHP Fatal error
Uncaught Error: Class 'WP_REST_Controller' not found in wp-content/plugins/gamipress/includes/api/class-wp-rest-gamipress-posts-controller.php:11
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/gamipress/integrations/restrict-content-pro/restrict-content-pro.php:158
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/gamipress/integrations/woocommerce-shipstation/woocommerce-shipstation.php:161
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Radio' not found in wp-content/plugins/gamipress/libraries/cmb2/includes/types/CMB2_Type_Taxonomy_Radio_Hierarchical.php:13
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
These are user-side errors you should fix
- > GET request to /wp-admin/edit.php?post_type=gamipress-log
- > Network (severe)
wp-admin/edit.php?post_type=gamipress-log - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need to be fixed:
- Tags: You are using too many tags: 13 tag instead of maximum 10
gamipress/gamipress.php Passed 13 tests
"GamiPress - The #1 gamification plugin to reward points, achievements, badges & ranks in WordPress" version 6.4.0's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
65 characters long description:
The most flexible and powerful gamification system for WordPress.
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
No dangerous file extensions were detected150,591 lines of code in 1,196 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 800 | 29,289 | 54,474 | 75,692 |
PO File | 120 | 14,315 | 18,502 | 32,323 |
JavaScript | 189 | 6,194 | 2,976 | 22,722 |
CSS | 41 | 1,009 | 1,352 | 8,193 |
JSON | 3 | 0 | 0 | 6,619 |
SVG | 18 | 9 | 9 | 2,554 |
Sass | 17 | 306 | 29 | 1,411 |
Markdown | 8 | 381 | 0 | 1,077 |
PHP code Passed 2 tests
An overview of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.51 |
Average class complexity | 16.75 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 188.00 |
Average method complexity | 3.23 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 64.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 202 | |
▷ Abstract classes | 9 | 4.46% |
▷ Concrete classes | 193 | 95.54% |
▷ Final classes | 85 | 44.04% |
Methods | 1,429 | |
▷ Static methods | 182 | 12.74% |
▷ Public methods | 941 | 65.85% |
▷ Protected methods | 110 | 7.70% |
▷ Private methods | 378 | 26.45% |
Functions | 2,696 | |
▷ Named functions | 2,694 | 99.93% |
▷ Anonymous functions | 2 | 0.07% |
Constants | 296 | |
▷ Global constants | 287 | 96.96% |
▷ Class constants | 9 | 3.04% |
▷ Public constants | 9 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
15 compressed PNG files occupy 0.02MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
libraries/cmb2/images/ico-delete.png | 0.70KB | 0.72KB | 0.00% |
libraries/cmb2/images/ui-icons_222222_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
libraries/cmb2/images/ui-icons_cd0a0a_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
libraries/cmb2/images/ui-bg_glass_55_fbf9ee_1x400.png | 0.12KB | 0.14KB | 0.00% |
libraries/cmb2/images/ui-bg_glass_75_e6e6e6_1x400.png | 0.11KB | 0.14KB | 0.00% |