Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully
Server metrics [RAM: ▲0.55MB] [CPU: ▲5.12ms] Passed 4 tests
This is a short check of server-side resources used by Poll | Vote | Contest - Best Poll Plugin for WordPress
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.00 ▲0.54 | 45.44 ▲8.23 |
Dashboard /wp-admin | 3.89 ▲0.59 | 57.13 ▲8.63 |
Posts /wp-admin/edit.php | 3.94 ▲0.59 | 55.95 ▲6.10 |
Add New Post /wp-admin/post-new.php | 6.43 ▲0.54 | 99.74 ▼2.48 |
Media Library /wp-admin/upload.php | 3.74 ▲0.52 | 48.90 ▲17.19 |
Presets /wp-admin/edit.php?post_type=poll&page=presets | 3.73 | 42.08 |
Extensions /wp-admin/edit.php?post_type=poll&page=extensions | 3.76 | 43.57 |
Onboarding /wp-admin/edit.php?post_type=poll&page=onboarding | 3.86 | 192.68 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 3.92 | 52.30 |
Dashboard /wp-admin/edit.php?post_type=poll&page=dashboard | 3.33 | 21.64 |
Logs /wp-admin/edit.php?post_type=poll&page=log | 3.82 | 44.18 |
Templates /wp-admin/edit.php?post_type=poll&page=templates | 3.75 | 44.13 |
Create Poll /wp-admin/post-new.php?post_type=poll | 4.37 | 74.78 |
Entries /wp-admin/edit.php?post_type=poll&page=entries | 3.78 | 46.31 |
Insights /wp-admin/edit.php?post_type=poll&page=insights | 3.74 | 43.28 |
Server storage [IO: ▲6.06MB] [DB: ▲0.01MB] 67% from 3 tests
Filesystem and database footprint
These are issues you should consider
- Illegal file modification found: 2 files (0.00KB) outside of "wp-content/plugins/totalpoll-lite/" and "wp-content/uploads/"
- (new file) wp-content/exports/totalpoll/index.html
- (new file) wp-content/cache/totalpoll/css/.empty
Filesystem: 731 new files
Database: 7 new tables, 15 new options
New tables |
---|
wp_actionscheduler_claims |
wp_totalpoll_votes |
wp_totalpoll_log |
wp_actionscheduler_logs |
wp_actionscheduler_actions |
wp_actionscheduler_groups |
wp_totalpoll_entries |
New WordPress options |
---|
widget_recent-comments |
db_upgraded |
schema-ActionScheduler_StoreSchema |
widget_totalpoll_poll |
can_compress_scripts |
totalpoll_first_usage |
totalpoll_tracking |
totalpoll_db_version |
widget_recent-posts |
widget_theysaidso_widget |
... |
Browser metrics Passed 4 tests
Poll | Vote | Contest - Best Poll Plugin for WordPress: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,874 ▲139 | 13.16 ▼1.21 | 1.50 ▼0.13 | 41.61 ▼3.87 |
Dashboard /wp-admin | 2,277 ▲89 | 5.85 ▲0.81 | 105.96 ▲1.32 | 38.50 ▼3.65 |
Posts /wp-admin/edit.php | 2,163 ▲74 | 2.02 ▼0.03 | 39.96 ▼1.37 | 36.86 ▲1.71 |
Add New Post /wp-admin/post-new.php | 1,589 ▲53 | 23.47 ▲0.41 | 663.90 ▲18.41 | 51.02 ▲1.22 |
Media Library /wp-admin/upload.php | 1,453 ▲65 | 4.17 ▼0.05 | 94.89 ▼6.95 | 39.49 ▼2.86 |
Presets /wp-admin/edit.php?post_type=poll&page=presets | 1,336 | 2.16 | 29.44 | 39.12 |
Extensions /wp-admin/edit.php?post_type=poll&page=extensions | 1,148 | 3.39 | 71.62 | 29.43 |
Onboarding /wp-admin/edit.php?post_type=poll&page=onboarding | 1,364 | 3.56 | 69.30 | 75.68 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,305 | 1.83 | 23.40 | 29.09 |
Dashboard /wp-admin/edit.php?post_type=poll&page=dashboard | 1,349 | 3.56 | 67.40 | 62.39 |
Logs /wp-admin/edit.php?post_type=poll&page=log | 2,474 | 4.51 | 120.53 | 37.80 |
Templates /wp-admin/edit.php?post_type=poll&page=templates | 1,134 | 3.37 | 73.95 | 28.04 |
Create Poll /wp-admin/post-new.php?post_type=poll | 24,762 | 14.51 | 1,038.72 | 53.96 |
Entries /wp-admin/edit.php?post_type=poll&page=entries | 2,129 | 5.51 | 108.21 | 28.10 |
Insights /wp-admin/edit.php?post_type=poll&page=insights | 2,120 | 3.03 | 39.46 | 32.34 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
The following items require your attention
- The uninstall procedure failed, leaving 7 tables in the database
- wp_actionscheduler_actions
- wp_actionscheduler_logs
- wp_totalpoll_entries
- wp_totalpoll_log
- wp_totalpoll_votes
- wp_actionscheduler_claims
- wp_actionscheduler_groups
- Zombie WordPress options detected upon uninstall: 15 options
- can_compress_scripts
- totalpoll_db_version
- widget_totalpoll_poll
- widget_theysaidso_widget
- widget_totalpoll_latest_poll
- widget_totalpoll_random_poll
- widget_recent-posts
- widget_recent-comments
- totalpoll_first_usage
- action_scheduler_hybrid_store_demarkation
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
The smoke test was a success, however most plugin functionality was not tested
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
The following issues need your attention
- 29× PHP files output text when accessed directly (only 10 are shown):
- > /wp-content/plugins/totalpoll-lite/src/Admin/Poll/views/design/tabs/advanced.php
- > /wp-content/plugins/totalpoll-lite/modules/templates/Basic/views/preview/vote.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Poll/views/form/field-textarea.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Poll/views/form/index.php
- > /wp-content/plugins/totalpoll-lite/modules/templates/Basic/views/preview/results.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Poll/views/choices/choice-video.php
- > /wp-content/plugins/totalpoll-lite/modules/templates/Basic/views/vote/other.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Onboarding/views/steps/menu.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Poll/views/quick-action-menu.php
- > /wp-content/plugins/totalpoll-lite/src/Admin/Plugins/views/uninstall-feedback.php
- 380× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/totalpoll-lite/src/Admin/Log/views/index.php:2
- > PHP Fatal error
Uncaught Error: Class 'TotalPollVendors\\League\\Container\\ServiceProvider\\AbstractServiceProvider' not found in wp-content/plugins/totalpoll-lite/vendor/league/container/src/ServiceProvider/AbstractSignatureServiceProvider.php:5
- > PHP Fatal error
Uncaught Error: Interface 'TotalPoll\\Contracts\\Migrations\\Poll\\Template\\Template' not found in wp-content/plugins/totalpoll-lite/src/Contracts/Migrations/Poll/Template/Poll.php:9
- > PHP Notice
Undefined variable: product in wp-content/plugins/totalpoll-lite/src/Admin/Plugins/views/uninstall-feedback.php on line 165
- > PHP Fatal error
Uncaught Error: Interface 'TotalPoll\\Contracts\\Migrations\\Poll\\Transform' not found in wp-content/plugins/totalpoll-lite/src/Migrations/Polls/WPPolls/Transform.php:16
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/totalpoll-lite/src/Admin/Options/views/tabs/migration.php:11
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/totalpoll-lite/modules/templates/Basic/views/vote/choice.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/totalpoll-lite/modules/templates/Basic/views/settings.php:2
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_DBStore' not found in wp-content/plugins/totalpoll-lite/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php:10
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Store' not found in wp-content/plugins/totalpoll-lite/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:6
- > 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 fix the following user-side errors
- > GET request to /wp-admin/post-new.php?post_type=poll
- > Javascript (severe) in unknown
/wp-content/plugins/totalpoll-lite/assets/dist/scripts/poll-editor.js?ver=1696569242 2872:52 Uncaught TypeError: Cannot read properties of undefined (reading 'pollId')
Optimizations
Plugin configuration 80% 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
Attributes that require attention:
- Tags: Too many tags (51 tag instead of maximum 10); only the first 5 tags are used in your directory listing
totalpoll-lite/plugin.php 62% from 13 tests
Analyzing the main PHP file in "Poll | Vote | Contest - Best Poll Plugin for WordPress" version 4.9.8
The following require your attention:
- Requires at least: The required version number must match the one declared in readme.txt ("4.6.0" instead of "4.8")
- Domain Path: The domain path should use only dashes and lowercase characters ("languages")
- Domain Path: Please prefix the domain path with a forward slash character ("/languages")
- Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
- Main file name: It is recommended to name the main PHP file as the plugin slug ("totalpoll-lite.php" instead of "plugin.php")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
No dangerous file extensions were detected72,215 lines of code in 556 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 474 | 6,533 | 17,730 | 30,519 |
PO File | 13 | 7,848 | 11,132 | 17,308 |
JavaScript | 19 | 116 | 2,271 | 12,346 |
CSS | 16 | 1,432 | 40 | 11,574 |
SVG | 28 | 0 | 4 | 378 |
SQL | 3 | 0 | 0 | 44 |
JSON | 2 | 0 | 0 | 41 |
XML | 1 | 0 | 0 | 5 |
PHP code Passed 2 tests
Analyzing logical lines of code, cyclomatic complexity, and other code metrics
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.26 |
Average class complexity | 8.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 140.00 |
Average method complexity | 2.34 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 79.00 |
Code structure | ||
---|---|---|
Namespaces | 98 | |
Interfaces | 73 | |
Traits | 5 | |
Classes | 260 | |
▷ Abstract classes | 42 | 16.15% |
▷ Concrete classes | 218 | 83.85% |
▷ Final classes | 1 | 0.46% |
Methods | 2,243 | |
▷ Static methods | 200 | 8.92% |
▷ Public methods | 2,023 | 90.19% |
▷ Protected methods | 174 | 7.76% |
▷ Private methods | 46 | 2.05% |
Functions | 240 | |
▷ Named functions | 56 | 23.33% |
▷ Anonymous functions | 184 | 76.67% |
Constants | 85 | |
▷ Global constants | 7 | 8.24% |
▷ Class constants | 78 | 91.76% |
▷ Public constants | 78 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
5 PNG files occupy 0.26MB with 0.07MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/dist/images/general/onboarding-slider-02.png | 125.43KB | 78.77KB | ▼ 37.20% |
assets/dist/images/migration/wp-polls.png | 11.63KB | 9.69KB | ▼ 16.69% |
assets/dist/images/migration/yop-poll.png | 16.91KB | 13.49KB | ▼ 20.21% |
assets/dist/images/migration/totalpoll-3.png | 20.85KB | 16.00KB | ▼ 23.29% |
assets/dist/images/general/onboarding-slider-01.png | 96.00KB | 53.97KB | ▼ 43.78% |