Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully
Server metrics [RAM: ▲1.69MB] [CPU: ▲5.61ms] Passed 4 tests
Analyzing server-side resources used by WP Ad Guru - Banner ad, Responsive popup, Popup maker, Ad rotator & More
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.59 ▲1.13 | 52.63 ▲12.19 |
Dashboard /wp-admin | 5.18 ▲1.88 | 64.90 ▲15.78 |
Posts /wp-admin/edit.php | 5.29 ▲1.94 | 56.04 ▲8.78 |
Add New Post /wp-admin/post-new.php | 7.78 ▲1.90 | 90.36 ▼14.31 |
Media Library /wp-admin/upload.php | 5.08 ▲1.85 | 53.08 ▲18.86 |
Banners /wp-admin/admin.php?page=adguru_ad_banner | 5.19 | 48.52 |
Settings /wp-admin/admin.php?page=adguru_settings | 5.08 | 44.79 |
Setup Ads /wp-admin/admin.php?page=adguru_setup_ads | 5.11 | 43.99 |
Window Popups /wp-admin/admin.php?page=adguru_ad_window_popup | 5.19 | 45.06 |
Zones /wp-admin/admin.php?page=adguru_zone | 5.14 | 47.48 |
Modal Popups /wp-admin/admin.php?page=adguru_ad_modal_popup | 5.19 | 46.88 |
Ad Guru /wp-admin/admin.php?page=adguru | 5.10 | 43.62 |
Server storage [IO: ▲5.67MB] [DB: ▲0.01MB] Passed 3 tests
Analyzing filesystem and database footprints of this plugin
The plugin installed successfully
Filesystem: 249 new files
Database: 1 new table, 11 new options
New tables |
---|
wp_adguru_ad_links |
New WordPress options |
---|
adguru_mp_default_theme_id |
widget_theysaidso_widget |
widget_adguru-zone-widget |
adguru_mp_builtin_theme_id_list |
widget_recent-posts |
widget_recent-comments |
db_upgraded |
can_compress_scripts |
theysaidso_admin_options |
adguru_version |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for WP Ad Guru - Banner ad, Responsive popup, Popup maker, Ad rotator & More
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,079 ▲318 | 15.34 ▲1.05 | 5.78 ▲4.22 | 42.56 ▲1.60 |
Dashboard /wp-admin | 2,395 ▲218 | 6.37 ▲0.59 | 120.08 ▲34.36 | 98.01 ▲55.21 |
Posts /wp-admin/edit.php | 2,326 ▲226 | 3.59 ▲1.62 | 49.06 ▲7.93 | 72.17 ▲34.46 |
Add New Post /wp-admin/post-new.php | 6,243 ▲4,717 | 23.51 ▲0.43 | 908.33 ▲234.52 | 94.83 ▲38.77 |
Media Library /wp-admin/upload.php | 1,457 ▲60 | 4.36 ▲0.18 | 86.66 ▼20.28 | 79.88 ▲33.83 |
Banners /wp-admin/admin.php?page=adguru_ad_banner | 1,392 | 3.67 | 55.67 | 81.56 |
Settings /wp-admin/admin.php?page=adguru_settings | 1,082 | 3.51 | 42.33 | 67.01 |
Setup Ads /wp-admin/admin.php?page=adguru_setup_ads | 1,096 | 3.64 | 38.39 | 72.72 |
Window Popups /wp-admin/admin.php?page=adguru_ad_window_popup | 1,392 | 3.64 | 58.49 | 68.72 |
Zones /wp-admin/admin.php?page=adguru_zone | 1,321 | 3.63 | 54.51 | 88.84 |
Modal Popups /wp-admin/admin.php?page=adguru_ad_modal_popup | 1,401 | 3.54 | 55.05 | 75.83 |
Ad Guru /wp-admin/admin.php?page=adguru | 1,417 | 3.88 | 50.36 | 131.22 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
- The uninstall procedure failed, leaving 1 table in the database
- wp_adguru_ad_links
- This plugin did not uninstall successfully, leaving 11 options in the database
- widget_recent-comments
- adguru_version
- widget_adguru-zone-widget
- can_compress_scripts
- adguru_mp_default_theme_id
- adguru_mp_builtin_theme_id_list
- db_upgraded
- widget_theysaidso_widget
- theysaidso_admin_options
- adguru_settings
- ...
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Even though no errors were found, this is by no means an exhaustive test
SRP 50% 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
Please fix the following items
- 65× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function adguru() in wp-content/plugins/wp-ad-guru/includes/admin/ad-setup-manager/ad-setup-manager-page.php:3
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Model\\AbstractModel' not found in wp-content/plugins/wp-ad-guru/libs/geoip/GeoIP2-php/vendor/geoip2/geoip2/src/Model/AnonymousIp.php:21
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/wp-ad-guru/modules/modal_popup/editor/form-closing.php:11
- > PHP Fatal error
Uncaught Error: Class 'ADGURU_Helper' not found in wp-content/plugins/wp-ad-guru/includes/admin/zone-manager/editor/form-inserter.php:228
- > PHP Fatal error
Uncaught Error: Call to a member function get_themes() on null in wp-content/plugins/wp-ad-guru/modules/modal_popup/editor/edit_form_after_content.php:3
- > PHP Fatal error
Uncaught Error: Class 'MaxMind\\Exception\\WebServiceException' not found in wp-content/plugins/wp-ad-guru/libs/geoip/GeoIP2-php/vendor/maxmind/web-service-common/src/Exception/HttpException.php:8
- > PHP Fatal error
Uncaught Error: Call to undefined function _e() in wp-content/plugins/wp-ad-guru/modules/window_popup/editor/edit_form_after_content.php:3
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Exception\\GeoIp2Exception' not found in wp-content/plugins/wp-ad-guru/libs/geoip/GeoIP2-php/vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php:8
- > PHP Fatal error
Uncaught Error: Class 'GeoIp2\\Model\\AbstractModel' not found in wp-content/plugins/wp-ad-guru/libs/geoip/GeoIP2-php/vendor/geoip2/geoip2/src/Model/Country.php:30
- > PHP Fatal error
Uncaught Error: Call to undefined function __() in wp-content/plugins/wp-ad-guru/modules/window_popup/editor/form-popup-options.php:11
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
No browser issues were found
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
Attributes that need to be fixed:
- Tags: There are too many tags (13 tag instead of maximum 10)
wp-ad-guru/wp_ad_guru.php 85% from 13 tests
The main file in "WP Ad Guru - Banner ad, Responsive popup, Popup maker, Ad rotator & More" v. 2.5.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
You should first fix the following items:
- Description: Please don't use more than 140 characters for the plugin description (currently 218 characters long)
- Main file name: Name the main plugin file the same as the plugin slug ("wp-ad-guru.php" instead of "wp_ad_guru.php")
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Everything looks great! No dangerous files found in this plugin28,204 lines of code in 197 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 153 | 3,900 | 5,127 | 17,441 |
CSS | 10 | 691 | 77 | 4,743 |
JavaScript | 12 | 596 | 226 | 3,109 |
Markdown | 9 | 435 | 0 | 1,146 |
HTML | 1 | 59 | 1 | 781 |
C | 1 | 86 | 14 | 523 |
JSON | 6 | 0 | 0 | 374 |
Bourne Shell | 1 | 20 | 0 | 40 |
m4 | 1 | 8 | 0 | 32 |
C/C++ Header | 1 | 4 | 12 | 8 |
SVG | 2 | 0 | 0 | 7 |
PHP code 50% from 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
These items need your attention
- Please reduce cyclomatic complexity of methods to less than 100 (currently 180)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.45 |
Average class complexity | 21.78 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 429.00 |
Average method complexity | 4.37 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 180.00 |
Code structure | ||
---|---|---|
Namespaces | 13 | |
Interfaces | 2 | |
Traits | 0 | |
Classes | 95 | |
▷ Abstract classes | 4 | 4.21% |
▷ Concrete classes | 91 | 95.79% |
▷ Final classes | 3 | 3.30% |
Methods | 602 | |
▷ Static methods | 28 | 4.65% |
▷ Public methods | 473 | 78.57% |
▷ Protected methods | 27 | 4.49% |
▷ Private methods | 102 | 16.94% |
Functions | 97 | |
▷ Named functions | 93 | 95.88% |
▷ Anonymous functions | 4 | 4.12% |
Constants | 34 | |
▷ Global constants | 16 | 47.06% |
▷ Class constants | 18 | 52.94% |
▷ Public constants | 18 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
32 PNG files occupy 0.26MB with 0.14MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/css/jquery-ui-themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png | 0.20KB | 0.09KB | ▼ 57.49% |
assets/css/jquery-ui-themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png | 0.27KB | 0.18KB | ▼ 35.00% |
assets/images/close-icons/close-cross-double-white-red.png | 15.77KB | 6.02KB | ▼ 61.81% |
assets/images/close-icons/close-cross-fancy-1-red.png | 15.62KB | 5.71KB | ▼ 63.41% |
assets/images/close-icons/close-default.png | 10.92KB | 5.23KB | ▼ 52.07% |