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
The plugin installed successfully, without throwing any errors or notices
Server metrics [RAM: ▲1.57MB] [CPU: ▲14.14ms] Passed 4 tests
Server-side resources used by WP Cookie Consent ( for GDPR, CCPA & ePrivacy )
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.29 ▲2.83 | 74.77 ▲35.49 |
Dashboard /wp-admin | 4.86 ▲1.56 | 62.65 ▲12.82 |
Posts /wp-admin/edit.php | 4.98 ▲1.62 | 62.22 ▲19.95 |
Add New Post /wp-admin/post-new.php | 7.45 ▲1.56 | 102.85 ▲8.89 |
Media Library /wp-admin/upload.php | 4.77 ▲1.54 | 49.92 ▲14.88 |
Import Policies /wp-admin/admin.php?page=gdpr-policies-import | 4.76 | 47.84 |
Dashboard /wp-admin/admin.php?page=gdpr-cookie-consent | 4.92 | 48.15 |
Wizard /wp-admin/admin.php?page=gdpr-cookie-consent-wizard | 5.59 | 53.10 |
Policy Data /wp-admin/edit.php?post_type=gdprpolicies | 4.84 | 48.80 |
Cookie Settings /wp-admin/admin.php?page=gdpr-cookie-consent-settings | 5.39 | 51.78 |
Server storage [IO: ▲13.02MB] [DB: ▲0.01MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 1,261 new files
Database: 2 new tables, 11 new options
New tables |
---|
wp_gdpr_cookie_post_cookies |
wp_gdpr_cookie_scan_categories |
New WordPress options |
---|
db_upgraded |
theysaidso_admin_options |
gdpr_version_number |
widget_theysaidso_widget |
can_compress_scripts |
GDPRCookieConsent-9.0 |
widget_recent-comments |
widget_recent-posts |
gdpr_public_modules |
analytics_activation_redirect_gdpr-cookie-consent |
... |
Browser metrics Passed 4 tests
WP Cookie Consent ( for GDPR, CCPA & ePrivacy ): an overview of browser usage
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,308 ▲546 | 15.33 ▲0.62 | 24.47 ▲22.58 | 57.04 ▲8.81 |
Dashboard /wp-admin | 2,352 ▲172 | 6.14 ▲0.50 | 105.34 ▲16.83 | 84.50 ▲44.84 |
Posts /wp-admin/edit.php | 2,298 ▲198 | 3.34 ▲1.19 | 53.44 ▲17.13 | 65.69 ▲33.16 |
Add New Post /wp-admin/post-new.php | 6,387 ▲4,861 | 27.53 ▲4.59 | 900.70 ▲276.70 | 38.23 ▼10.37 |
Media Library /wp-admin/upload.php | 1,429 ▲35 | 4.01 ▼0.28 | 81.05 ▼13.94 | 82.11 ▲39.35 |
Import Policies /wp-admin/admin.php?page=gdpr-policies-import | 1,029 | 2.96 | 41.60 | 59.41 |
Dashboard /wp-admin/admin.php?page=gdpr-cookie-consent | 2,173 | 7.85 | 225.03 | 129.92 |
Wizard /wp-admin/admin.php?page=gdpr-cookie-consent-wizard | 3,999 | 12.40 | 328.18 | 147.36 |
Policy Data /wp-admin/edit.php?post_type=gdprpolicies | 1,276 | 3.33 | 50.66 | 77.93 |
Cookie Settings /wp-admin/admin.php?page=gdpr-cookie-consent-settings | 8,702 | 17.92 | 498.52 | 111.42 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
You still need to fix the following
- Zombie tables detected upon uninstall: 2 tables
- wp_gdpr_cookie_scan_categories
- wp_gdpr_cookie_post_cookies
- Zombie WordPress options detected upon uninstall: 11 options
- analytics_activation_redirect_gdpr-cookie-consent
- widget_recent-comments
- theysaidso_admin_options
- gdpr_version_number
- can_compress_scripts
- gdpr_public_modules
- widget_recent-posts
- GDPRCookieConsent-9.0
- gdpr_admin_modules
- db_upgraded
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected
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
Please fix the following items
- 2× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/gdpr-cookie-consent/vendor/timber/timber/tests/bootstrap.php
- > /wp-content/plugins/gdpr-cookie-consent/vendor/timber/timber/tests/assets/my-sidebar.php
- 465× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Twig\ode\\IncludeNode' not found in wp-content/plugins/gdpr-cookie-consent/vendor/twig/twig/src/Node/EmbedNode.php:23
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\\Tests\\Parser\\Handler\\AbstractHandlerTest' not found in wp-content/plugins/gdpr-cookie-consent/vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php:19
- > PHP Fatal error
Uncaught Error: Class 'Twig\\Error\\Error' not found in wp-content/plugins/gdpr-cookie-consent/vendor/twig/twig/src/Error/SyntaxError.php:20
- > PHP Fatal error
Uncaught Error: Interface 'Twig\\Loader\\LoaderInterface' not found in wp-content/plugins/gdpr-cookie-consent/vendor/twig/twig/src/Loader/ChainLoader.php:21
- > PHP Fatal error
Uncaught Error: Interface 'DeepCopy\\Matcher\\Matcher' not found in wp-content/plugins/gdpr-cookie-consent/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php:16
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/gdpr-cookie-consent/vendor/symfony/css-selector/Tests/Parser/ReaderTest.php:17
- > PHP Fatal error
Uncaught Error: Interface 'Twig\odeVisitor\odeVisitorInterface' not found in wp-content/plugins/gdpr-cookie-consent/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php:24
- > PHP Fatal error
Uncaught Error: Class 'Timber_UnitTestCase' not found in wp-content/plugins/gdpr-cookie-consent/vendor/timber/timber/tests/test-timber-gettext.php:3
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\CssSelector\\Tests\\Parser\\Handler\\AbstractHandlerTest' not found in wp-content/plugins/gdpr-cookie-consent/vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php:19
- > PHP Fatal error
Uncaught Error: Class 'DeepCopy\\f008\\A' not found in wp-content/plugins/gdpr-cookie-consent/vendor/myclabs/deep-copy/fixtures/f008/B.php:5
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Please fix the following browser errors
- > GET request to /wp-admin/admin.php?page=gdpr-cookie-consent-wizard
- > Console-api (severe) in unknown
/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9 1:2177368 Error: ace.edit can't find div #aceEditorFreeat ace.define.t.edit (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:646345)at Gr.mounted (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2421699)at Yt (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2177047)at $t (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2175935)at /wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2232060at Gr.$mount (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2232079)at Gr.$mount (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2259339)at t._init (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2194889)at new Gr (/wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2192521)at /wp-content/plugins/gdpr-cookie-consent/admin/js/vue/gdpr-cookie-consent-admin-main.js?ver=2.3.9:2:2345186
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
These attributes need your attention:
- Tags: You are using too many tags: 19 tag instead of maximum 10
gdpr-cookie-consent/gdpr-cookie-consent.php Passed 13 tests
This is the main PHP file of "WP Cookie Consent ( for GDPR, CCPA & ePrivacy )" version 2.3.9, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
140 characters long description:
Cookie Consent will help you put up a subtle banner in the footer of your website to showcase compliance status regarding the EU Cookie law.
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | An overview of files in this plugin; executable files are not allowed
Everything looks great! No dangerous files found in this plugin102,626 lines of code in 1,129 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 837 | 9,394 | 17,874 | 57,501 |
JavaScript | 21 | 2,477 | 3,122 | 18,803 |
PO File | 11 | 2,598 | 3,936 | 6,843 |
CSS | 11 | 406 | 118 | 5,660 |
JSON | 15 | 3 | 0 | 4,221 |
Markdown | 46 | 1,735 | 0 | 4,188 |
reStructuredText | 114 | 2,491 | 2,474 | 2,959 |
Twig | 51 | 13 | 0 | 1,389 |
HTML | 2 | 0 | 0 | 356 |
XML | 12 | 22 | 52 | 351 |
Bourne Shell | 4 | 58 | 19 | 332 |
SVG | 5 | 0 | 0 | 23 |
PHP code 50% from 2 tests
An overview of cyclomatic complexity and code structure
The following items need your attention
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 303)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.27 |
Average class complexity | 6.17 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 496.00 |
Average method complexity | 2.30 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 303.00 |
Code structure | ||
---|---|---|
Namespaces | 82 | |
Interfaces | 31 | |
Traits | 33 | |
Classes | 740 | |
▷ Abstract classes | 21 | 2.84% |
▷ Concrete classes | 719 | 97.16% |
▷ Final classes | 53 | 7.37% |
Methods | 3,267 | |
▷ Static methods | 438 | 13.41% |
▷ Public methods | 2,934 | 89.81% |
▷ Protected methods | 218 | 6.67% |
▷ Private methods | 115 | 3.52% |
Functions | 257 | |
▷ Named functions | 119 | 46.30% |
▷ Anonymous functions | 138 | 53.70% |
Constants | 105 | |
▷ Global constants | 21 | 20.00% |
▷ Class constants | 84 | 80.00% |
▷ Public constants | 84 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
76 PNG files occupy 0.32MB with 0.14MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/images/dashboard-icons/summary/next-scan.png | 0.69KB | 0.45KB | ▼ 34.42% |
admin/js/vue/14ce045648bca89e5cf98a4507d2380d.png | 0.60KB | 0.33KB | ▼ 44.32% |
admin/images/tick.png | 0.70KB | 0.43KB | ▼ 37.78% |
admin/js/vue/c626db757429d64e1491d3a30cdbd2f9.png | 1.86KB | 1.13KB | ▼ 39.21% |
admin/js/vue/2e395b177a3d703290d8b03d1d0ea62e.png | 16.43KB | 6.74KB | ▼ 58.96% |