Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The following installer errors require your attention
- The plugin did not install without errors
- > Warning in wp-content/plugins/googlyzer/inc/DataFeed.php+191
Declaration of googlyzer_DataFeed::buildPostRequest($args) should be compatible with googlyzer_GoogleFeed::buildPostRequest($args = Array)
Server metrics [RAM: ▼1.78MB] [CPU: ▼56.13ms] Passed 4 tests
Analyzing server-side resources used by Googlyzer
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 2.21 ▼1.25 | 5.62 ▼35.85 |
Dashboard /wp-admin | 2.23 ▼1.07 | 6.94 ▼49.38 |
Posts /wp-admin/edit.php | 2.23 ▼1.12 | 8.64 ▼48.12 |
Add New Post /wp-admin/post-new.php | 2.23 ▼3.66 | 7.39 ▼91.15 |
Media Library /wp-admin/upload.php | 2.23 ▼1.00 | 7.24 ▼29.83 |
Googlyzer Dashboard /wp-admin/index.php?page=googlyzer-dashboard | 2.23 | 7.72 |
Googlyzer /wp-admin/options-general.php?page=googlyzer | 2.23 | 7.35 |
Server storage [IO: ▲1.44MB] [DB: ▲0.01MB] Passed 3 tests
A short overview of filesystem and database impact
No storage issues were detected
Filesystem: 92 new files
Database: no new tables, 12 new options
New WordPress options |
---|
googlyzer-options |
db_upgraded |
widget_recent-comments |
theysaidso_admin_options |
widget_recent-posts |
widget_theysaidso_widget |
googlyzer-linecharts |
googlyzer-tables |
googlyzer-piecharts |
can_compress_scripts |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Googlyzer
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,970 ▲209 | 13.60 ▼0.68 | 10.75 ▲9.06 | 41.61 ▲2.40 |
Dashboard /wp-admin | 2,271 ▲94 | 5.76 ▲0.16 | 92.19 ▼2.93 | 44.24 ▼0.28 |
Posts /wp-admin/edit.php | 2,116 ▲16 | 2.17 ▲0.14 | 36.74 ▼1.23 | 29.76 ▼7.59 |
Add New Post /wp-admin/post-new.php | 1,537 ▲10 | 23.03 ▼0.11 | 678.32 ▲52.88 | 57.07 ▲9.24 |
Media Library /wp-admin/upload.php | 1,416 ▲19 | 4.33 ▲0.17 | 114.03 ▲4.78 | 47.71 ▲0.10 |
Googlyzer Dashboard /wp-admin/index.php?page=googlyzer-dashboard | 814 | 2.01 | 27.63 | 23.13 |
Googlyzer /wp-admin/options-general.php?page=googlyzer | 1,320 | 2.09 | 31.41 | 28.96 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 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 gracefully
- > Warning in wp-content/plugins/googlyzer/inc/DataFeed.php+191
Declaration of googlyzer_DataFeed::buildPostRequest($args) should be compatible with googlyzer_GoogleFeed::buildPostRequest($args = Array)
- This plugin does not fully uninstall, leaving 6 options in the database
- widget_theysaidso_widget
- db_upgraded
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-posts
- widget_recent-comments
Smoke tests 25% 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)
Almost there, just fix the following server-side errors
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Warning in wp-content/plugins/googlyzer/inc/DataFeed.php+191
Declaration of googlyzer_DataFeed::buildPostRequest($args) should be compatible with googlyzer_GoogleFeed::buildPostRequest($args = Array)
- 88 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Notice in wp-content/plugins/googlyzer/inc/Options.php+782
Array to string conversion
- 36 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/Options.php+1287
Non-static method googlyzer_Utilities::getSelections() should not be called statically
- 36 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/Utilities.php+646
Non-static method googlyzer_Utilities::isAssociative() should not be called statically
- 40 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/Options.php+1397
Non-static method googlyzer_Utilities::validCheckbox() should not be called statically
- 46 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/Options.php+1484
Non-static method googlyzer_Utilities::validHexColor() should not be called statically
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/Options.php+1380
Non-static method googlyzer_Utilities::validGoogleAnalyticsTableId() should not be called statically
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Notice in wp-content/plugins/googlyzer/inc/Options.php+782
Undefined property: googlyzer_options::$Array
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Notice in wp-content/plugins/googlyzer/inc/Options.php+782
Trying to access array offset on value of type null
- > GET request to /wp-admin/index.php?page=googlyzer-dashboard
- > Deprecated in wp-content/plugins/googlyzer/inc/Dashboard.php+484
Non-static method googlyzer_Utilities::getOptions() should not be called statically
- > GET request to /wp-admin/index.php?page=googlyzer-dashboard
- > Deprecated in wp-content/plugins/googlyzer/inc/Dashboard.php+486
Non-static method googlyzer_Utilities::validateSetup() should not be called statically
- > GET request to /wp-admin/index.php?page=googlyzer-dashboard
- > Deprecated in wp-content/plugins/googlyzer/inc/Utilities.php+1087
Non-static method googlyzer_Utilities::isAuthorized() should not be called statically
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Deprecated in wp-content/plugins/googlyzer/inc/AdminPage.php+444
Non-static method googlyzer_Utilities::getFilteredHtml() should not be called statically
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Warning in wp-content/plugins/googlyzer/inc/AdminPage.php+169
ob_start(): non-static method googlyzer_Utilities::bufferFilter() should not be called statically
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
- 5× GET requests to PHP files have triggered server-side errors or warnings:
- > PHP Fatal error
Uncaught Error: Call to undefined function network_site_url() in wp-content/plugins/googlyzer/googlyzer.php:47
- > PHP Fatal error
Uncaught Error: Class 'googlyzer_GoogleFeed' not found in wp-content/plugins/googlyzer/inc/ClientLogin.php:45
- > PHP Fatal error
Uncaught Error: Class 'googlyzer_GoogleFeed' not found in wp-content/plugins/googlyzer/inc/DataFeed.php:45
- > PHP Fatal error
Uncaught Error: Class 'googlyzer_GoogleFeed' not found in wp-content/plugins/googlyzer/inc/AccountFeed.php:45
- > PHP Fatal error
Uncaught Error: Call to undefined function is_admin() in wp-content/plugins/googlyzer/uninstall.php:16
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Please take a look at the following user-side issues
- 2 occurences, only the last one shown
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Javascript (severe) in unknown
/wp-content/plugins/googlyzer/js/jquery.sparkline.js?ver=2.2 1041:18 Uncaught TypeError: Cannot read properties of undefined (reading 'msie')
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > Network (severe)
wp-admin/[INSERT_CAPTCHA_IMG_SRC] - Failed to load resource: the server responded with a status of 404 (Not Found)
- > GET request to /wp-admin/options-general.php?page=googlyzer
- > 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: Cannot read properties of undefined (reading 'value')" "TypeError: Cannot read properties of undefined (reading 'value')\n at googlyzer_CheckFields (/wp-content/plugins/googlyzer/js/googlyzer.options.js?ver=6.3.1:170:63)\n at HTMLDocument.\u003Canonymous> (/wp-admin/options-general.php?page=googlyzer:300:8)\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/options-general.php?page=googlyzer
- > 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: Cannot read properties of undefined (reading 'value')
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
Please fix the following attributes:
- Screenshots: These screenshots require images: #1 (Main Googlyzer dashboard with sample data (Googlyzer Basic + Pro).), #2 (Googlyzer widget for the WordPress Home Dashboard with sample data (Googlyzer Basic + Pro).), #3 (GA tracking code configuration options (Googlyzer Basic + Pro).), #4 (Sparkline Chart sidebar multi-widget with sample data (Googlyzer Pro).), #5 (Sparkline Chart sidebar multi-widget options (Googlyzer Pro).), #6 (Most Popular Content sidebar multi-widget with sample data (Googlyzer Pro).), #7 (Most Popular Content sidebar multi-widget options (Googlyzer Pro).), #8 (Google Service Authentication section on General Settings tab.), #9 (Custom date selection on General Settings tab.), #10 (Color selection on Composite Chart tab.), #11 (Line Chart settings.), #12 (Pie Chart settings.), #13 (Table settings.), #14 (About and instructions.)
googlyzer/googlyzer.php 85% from 13 tests
The main PHP file in "Googlyzer" ver. 2.2 adds more information about the plugin and also serves as the entry point for this plugin
Please take the time to fix the following:
- Text Domain: Please use dashes and lowercase characters for text domains
- Description: Keep the plugin description shorter than 140 characters (currently 395 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
No dangerous file extensions were detected8,481 lines of code in 55 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 15 | 481 | 2,155 | 4,476 |
JavaScript | 4 | 258 | 572 | 2,118 |
CSS | 17 | 78 | 372 | 1,029 |
HTML | 19 | 6 | 15 | 858 |
PHP code Passed 2 tests
Analyzing cyclomatic complexity and code structure
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 38.12 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 182.00 |
Average method complexity | 3.87 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 79.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 17 | |
▷ Abstract classes | 2 | 11.76% |
▷ Concrete classes | 15 | 88.24% |
▷ Final classes | 0 | 0.00% |
Methods | 220 | |
▷ Static methods | 0 | 0.00% |
▷ Public methods | 155 | 70.45% |
▷ Protected methods | 2 | 0.91% |
▷ Private methods | 63 | 28.64% |
Functions | 4 | |
▷ Named functions | 4 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 46 | |
▷ Global constants | 46 | 100.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
30 PNG files occupy 0.89MB with 0.20MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
themes/smoothness/images/ui-icons_454545_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
js/jscolor/hv.png | 2.80KB | 7.32KB | 0.00% |
themes/smoothness/images/ui-icons_cd0a0a_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
screenshot-8.png | 13.95KB | 6.39KB | ▼ 54.17% |
screenshot-6.png | 27.82KB | 14.22KB | ▼ 48.89% |