Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▼0.08MB] [CPU: ▼23.05ms] Passed 4 tests
Server-side resources used by Kawuda UTM source tracker
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.61 ▲0.14 | 26.94 ▼10.38 |
Dashboard /wp-admin | 3.22 ▼0.12 | 27.09 ▼36.80 |
Posts /wp-admin/edit.php | 3.36 ▲0.00 | 33.75 ▼11.06 |
Add New Post /wp-admin/post-new.php | 5.61 ▼0.28 | 64.57 ▼33.96 |
Media Library /wp-admin/upload.php | 3.31 ▲0.08 | 30.09 ▼2.44 |
Dashboard /wp-admin/admin.php?page=kawuda_options | 3.21 | 26.89 |
Setting /wp-admin/admin.php?page=kawuda_setting | 3.21 | 29.11 |
Server storage [IO: ▲0.28MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
No storage issues were detected
Filesystem: 20 new files
Database: 2 new tables, 6 new options
New tables |
---|
wp_kawuda_link |
wp_kawuda_user |
New WordPress options |
---|
widget_recent-comments |
can_compress_scripts |
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-posts |
db_upgraded |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Kawuda UTM source tracker
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,833 ▲72 | 14.39 ▲0.19 | 2.18 ▲0.54 | 44.13 ▼1.02 |
Dashboard /wp-admin | 2,215 ▲41 | 5.69 ▲0.19 | 88.20 ▼3.49 | 88.95 ▲49.38 |
Posts /wp-admin/edit.php | 2,135 ▲35 | 2.00 ▲0.01 | 34.72 ▼1.53 | 32.71 ▼4.34 |
Add New Post /wp-admin/post-new.php | 1,710 ▲184 | 22.48 ▼0.76 | 688.76 ▲16.13 | 51.94 ▲2.78 |
Media Library /wp-admin/upload.php | 1,429 ▲29 | 4.12 ▼0.08 | 97.21 ▲3.79 | 68.83 ▲25.94 |
Dashboard /wp-admin/admin.php?page=kawuda_options | 1,078 | 2.19 | 34.53 | 30.15 |
Setting /wp-admin/admin.php?page=kawuda_setting | 870 | 1.66 | 25.27 | 23.76 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- This plugin did not uninstall without warnings or errors
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/controllers/class-kawudas-tracking.php+28
Undefined index: kawuda_cookie
- Zombie WordPress options detected upon uninstall: 6 options
- widget_recent-posts
- db_upgraded
- theysaidso_admin_options
- widget_theysaidso_widget
- can_compress_scripts
- widget_recent-comments
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Please fix the following server-side errors
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/controllers/class-kawudas-tracking.php+183
Undefined index: HTTP_SEC_CH_UA_PLATFORM
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/controllers/class-kawudas-tracking.php+184
Undefined index: HTTP_SEC_CH_UA_MOBILE
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/controllers/class-kawudas-tracking.php+185
Undefined index: HTTP_REFERER
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/controllers/class-kawudas-tracking.php+186
Undefined index: HTTP_SEC_CH_UA
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/models/class-kawuda-tracking.php+191
Undefined index: fromDate
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/models/class-kawuda-tracking.php+192
Undefined index: toDate
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/views/dashboard-view-admin.php+85
Undefined variable: fromDate
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/views/dashboard-view-admin.php+90
Undefined variable: toDate
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > POST request to /wp-admin/admin-ajax.php
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/models/class-kawuda-tracking.php+61
Undefined variable: newStatTbl
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > POST request to /wp-admin/admin-ajax.php
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/models/class-kawuda-tracking.php+32
Undefined index: kawuda_id
- > GET request to /wp-admin/admin.php?page=kawuda_options
- > POST request to /wp-admin/admin-ajax.php
- > Notice in wp-content/plugins/kawuda-utm-source-tracker/models/class-kawuda-tracking.php+34
Undefined variable: id
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
The following issues need your attention
- 2× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/kawuda-utm-source-tracker/deactivate.php
- > /wp-content/plugins/kawuda-utm-source-tracker/activate.php
- 1× PHP files trigger server errors when accessed directly:
- > PHP Fatal error
Uncaught Error: Call to undefined function plugin_dir_url() in wp-content/plugins/kawuda-utm-source-tracker/kawuda.php:17
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Please take a look at the following user-side issues
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Console-api (warning) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28609 "jQuery.Deferred exception: jQuery(...).datepicker is not a function" "TypeError: jQuery(...).datepicker is not a function\n at HTMLDocument.\u003Canonymous> (/wp-content/plugins/kawuda-utm-source-tracker/assets/js/common.js?ver=0.1.0:2:33)\n at e (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:26990)\n at t (/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1:2:27292)" undefined
- > GET request to /wp-admin/admin.php?page=kawuda_setting
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.3.1 1:28721 Uncaught TypeError: jQuery(...).datepicker is not a function
Optimizations
Plugin configuration 96% 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
9 plugin tags: utm codes, analytic, tracker, utm tracking, gclid...
kawuda-utm-source-tracker/kawuda.php 92% from 13 tests
Analyzing the main PHP file in "Kawuda UTM source tracker" version 1.4.1
Please take the time to fix the following:
- Main file name: Name the main plugin file the same as the plugin slug ("kawuda-utm-source-tracker.php" instead of "kawuda.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Success! There were no dangerous files found in this plugin1,736 lines of code in 15 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 9 | 291 | 91 | 1,116 |
JavaScript | 3 | 63 | 40 | 310 |
CSS | 2 | 66 | 8 | 272 |
Markdown | 1 | 25 | 0 | 38 |
PHP code Passed 2 tests
Analyzing cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.30 |
Average class complexity | 39.33 |
▷ Minimum class complexity | 4.00 |
▷ Maximum class complexity | 79.00 |
Average method complexity | 5.42 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 47.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 3 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 3 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 26 | |
▷ Static methods | 2 | 7.69% |
▷ Public methods | 26 | 100.00% |
▷ Protected methods | 0 | 0.00% |
▷ Private methods | 0 | 0.00% |
Functions | 3 | |
▷ Named functions | 3 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 2 | |
▷ Global constants | 2 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
3 PNG files occupy 0.12MB with 0.08MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/icon.png | 1.19KB | 0.23KB | ▼ 81.03% |
assets/icon-128x128.png | 5.90KB | 2.66KB | ▼ 54.87% |
assets/banner-772x250.png | 118.48KB | 55.62KB | ▼ 53.06% |