Benchmarks
Plugin footprint 64% 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: ▲7.76MB] [CPU: ▲70.79ms] 50% from 4 tests
Server-side resources used by WordLift - AI powered SEO - Schema
Please fix the following
- RAM: The total memory usage must be kept under 10MB (currently 11.12MB on /wp-admin/admin.php?page=wl_google_addon_import)
- Extra RAM: The extra memory usage should kept under 5MB (currently 7.76MB on /wp-admin/admin.php?page=wl_google_addon_import)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 11.34 ▲7.87 | 124.18 ▲88.63 |
Dashboard /wp-admin | 11.22 ▲7.91 | 133.08 ▲82.25 |
Posts /wp-admin/edit.php | 11.44 ▲8.07 | 148.73 ▲98.72 |
Add New Post /wp-admin/post-new.php | 13.32 ▲7.42 | 138.91 ▲42.65 |
Media Library /wp-admin/upload.php | 11.10 ▲7.86 | 107.08 ▲69.63 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=entity | 11.09 | 106.44 |
Entity Types /wp-admin/edit-tags.php?taxonomy=wl_entity_type&post_type=entity | 11.12 | 105.33 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 11.27 | 107.61 |
Add New Entity /wp-admin/post-new.php?post_type=entity | 13.32 | 143.28 |
Settings /wp-admin/admin.php?page=wl_configuration_admin_menu | 11.60 | 117.62 |
WordLift /wp-admin/admin.php?page=wl_admin_menu | 11.07 | 98.38 |
Download Your Data /wp-admin/admin.php?page=wl_download_your_data | 11.07 | 97.46 |
All Entities /wp-admin/edit.php?post_type=entity | 11.17 | 103.28 |
Edit Entity term /wp-admin/admin.php?page=wl_entity_type_settings | 10.81 | 86.34 |
Google Addon Import /wp-admin/admin.php?page=wl_google_addon_import | 11.12 | 94.17 |
Server storage [IO: ▲71.97MB] [DB: ▲0.36MB] 67% from 3 tests
A short overview of filesystem and database impact
It is recommended to fix the following issues
- Total filesystem usage should be limited to 25MB (currently using 71.97MB)
Filesystem: 4,420 new files
Database: 10 new tables, 24 new options
New tables |
---|
wp_wl_mapping_property |
wp_actionscheduler_groups |
wp_wl_mapping_rule |
wp_wl_relation_instances |
wp_wl_mapping |
wp_actionscheduler_claims |
wp_actionscheduler_actions |
wp_wl_mapping_rule_group |
wp_actionscheduler_logs |
wp_wl_entities |
New WordPress options |
---|
action_scheduler_lock_async-request-runner |
category_children |
widget_recent-comments |
action_scheduler_hybrid_store_demarkation |
wl_entity_type_children |
widget_wl_geo_widget |
wl_mappings |
widget_wl_related_entities_cloud |
widget_wl_timeline_widget |
widget_recent-posts |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for WordLift - AI powered SEO - Schema
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,183 ▲421 | 13.83 ▼0.41 | 2.02 ▲0.56 | 27.38 ▼10.48 |
Dashboard /wp-admin | 2,578 ▲398 | 5.21 ▼0.41 | 105.12 ▲7.39 | 84.69 ▲37.27 |
Posts /wp-admin/edit.php | 2,284 ▲187 | 2.50 ▲0.54 | 43.90 ▲6.10 | 38.15 ▼0.82 |
Add New Post /wp-admin/post-new.php | 1,853 ▲327 | 25.77 ▲2.68 | 726.23 ▲109.80 | 64.35 ▲16.40 |
Media Library /wp-admin/upload.php | 1,558 ▲164 | 4.64 ▲0.47 | 120.25 ▲21.70 | 53.10 ▲11.21 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=entity | 1,625 | 2.62 | 39.91 | 42.48 |
Entity Types /wp-admin/edit-tags.php?taxonomy=wl_entity_type&post_type=entity | 1,549 | 2.53 | 38.19 | 35.61 |
Scheduled Actions /wp-admin/tools.php?page=action-scheduler | 1,428 | 2.46 | 33.97 | 31.78 |
Add New Entity /wp-admin/post-new.php?post_type=entity | 6,537 | 23.53 | 978.34 | 44.06 |
Settings /wp-admin/admin.php?page=wl_configuration_admin_menu | 2,050 | 4.30 | 96.94 | 88.98 |
WordLift /wp-admin/admin.php?page=wl_admin_menu | 952 | 2.32 | 36.20 | 31.76 |
Download Your Data /wp-admin/admin.php?page=wl_download_your_data | 983 | 2.44 | 32.48 | 26.09 |
All Entities /wp-admin/edit.php?post_type=entity | 1,365 | 2.65 | 43.86 | 36.63 |
Edit Entity term /wp-admin/admin.php?page=wl_entity_type_settings | 28 | 0.41 | 0.10 | 3.44 |
Google Addon Import /wp-admin/admin.php?page=wl_google_addon_import | 1,008 | 2.31 | 34.92 | 40.18 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.36MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
Please fix the following items
- This plugin does not fully uninstall, leaving 9 tables in the database
- wp_actionscheduler_groups
- wp_wl_mapping_rule_group
- wp_wl_mapping_rule
- wp_wl_mapping
- wp_actionscheduler_logs
- wp_wl_entities
- wp_actionscheduler_actions
- wp_wl_mapping_property
- wp_actionscheduler_claims
- Zombie WordPress options detected upon uninstall: 21 options
- action_scheduler_migration_status
- wl_entity_type_settings
- wl_mappings
- wl_admin_dashboard_top_entities_option
- widget_wl_geo_widget
- action_scheduler_lock_async-request-runner
- widget_wl_related_entities_cloud
- theysaidso_admin_options
- widget_wl_chord_widget
- _wl_blog_url
- ...
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
These server-side errors were triggered
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=entity
- > User deprecated in wp-includes/functions.php+5828
Hook block_categories is deprecated since version 5.8.0! Use block_categories_all instead.
- > GET request to /wp-admin/post-new.php?post_type=entity
- > User deprecated in wp-includes/functions.php+5828
Hook allowed_block_types is deprecated since version 5.8.0! Use allowed_block_types_all instead.
SRP 0% 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
- 5× PHP files output non-empty strings when accessed directly via GET requests:
- > /wp-content/plugins/wordlift/admin/partials/wordlift-admin-mappings-edit.php
- > /wp-content/plugins/wordlift/admin/partials/wordlift-admin-mappings-admin.php
- > /wp-content/plugins/wordlift/admin/partials/wordlift-admin-display.php
- > /wp-content/plugins/wordlift/public/partials/wordlift-public-display.php
- > /wp-content/plugins/wordlift/admin/partials/wordlift-admin-google-addon-import.php
- 681× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Wordlift\\Modules\\Common\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AbstractServiceConfigurator' not found in wp-content/plugins/wordlift/modules/common/third-party/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php:19
- > PHP Fatal error
Uncaught Error: Class 'Wordlift_Entity_Property_Service' not found in wp-content/plugins/wordlift/includes/properties/class-wordlift-required-property-service.php:7
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wordlift/install/class-wordlift-install-3-42-0.php on line 3
- > PHP Fatal error
Uncaught Error: Interface 'Wordlift\\Modules\\Plugin_Diagnostics\\Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' not found in wp-content/plugins/wordlift/modules/plugin-diagnostics/third-party/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php:25
- > PHP Fatal error
Uncaught Error: Class 'ActionScheduler_Abstract_RecurringSchedule' not found in wp-content/plugins/wordlift/libraries/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php:6
- > PHP Fatal error
Uncaught Error: Class 'Wordlift\\Videoobject\\Provider\\Api_Provider' not found in wp-content/plugins/wordlift/classes/videoobject/provider/class-youtube.php:12
- > PHP Fatal error
Uncaught Error: Class 'Wordlift\\Modules\\Plugin_Diagnostics\\Symfony\\Component\\Config\\Definition\\Builder\odeDefinition' not found in wp-content/plugins/wordlift/modules/plugin-diagnostics/third-party/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php:19
- > PHP Fatal error
Uncaught Error: Interface 'Wordlift\\Relation\\Relations_Interface' not found in wp-content/plugins/wordlift/classes/relation/class-relations.php:13
- > PHP Fatal error
Uncaught Error: Interface 'Wordlift\\Modules\\Common\\Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' not found in wp-content/plugins/wordlift/modules/common/third-party/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php:20
- > PHP Fatal error
Uncaught Error: Class 'Wordlift\\Modules\\Common\\Symfony\\Component\\DependencyInjection\\Dumper\\Dumper' not found in wp-content/plugins/wordlift/modules/common/third-party/vendor/symfony/dependency-injection/Dumper/PhpDumper.php:41
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Please fix the following user-side errors
- > GET request to /wp-admin/post-new.php?post_type=entity
- > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a+1:627
wp.data.registerGenericStore is deprecated since version 5.9. Please use wp.data.register( storeDescriptor ) instead.
- > GET request to /wp-admin/post-new.php?post_type=entity
- > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a+1:627
wp.compose.withState is deprecated since version 5.8. Please use wp.element.useState instead.
- > GET request to /wp-admin/admin.php?page=wl_entity_type_settings
- > Network (severe)
wp-admin/admin.php?page=wl_entity_type_settings - Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Optimizations
Plugin configuration 93% 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: Please reduce the number of tags, currently 19 tag instead of maximum 10
wordlift/wordlift.php 92% from 13 tests
The principal PHP file in "WordLift - AI powered SEO - Schema" v. 3.51.3 is loaded by WordPress automatically on each request
It is important to fix the following:
- Description: Keep the plugin description shorter than 140 characters (currently 174 characters long)
Code Analysis 3% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
It is important to fix the following items
- Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/wordlift/ssl/ca-bundle.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,449 | 16,434 | 53,265 | 85,937 |
JavaScript | 1,001 | 10,780 | 34,582 | 63,595 |
CSS | 88 | 282 | 884 | 31,506 |
JSON | 101 | 14 | 0 | 23,162 |
LESS | 42 | 481 | 278 | 4,527 |
SVG | 787 | 7 | 12 | 4,379 |
CoffeeScript | 25 | 1,216 | 1,045 | 3,797 |
PO File | 7 | 1,626 | 1,989 | 3,644 |
Sass | 22 | 144 | 163 | 2,543 |
HTML | 18 | 108 | 71 | 1,600 |
YAML | 19 | 84 | 22 | 982 |
Markdown | 19 | 482 | 0 | 871 |
XSD | 1 | 25 | 0 | 256 |
XML | 2 | 7 | 3 | 45 |
make | 1 | 3 | 0 | 12 |
Ruby | 1 | 2 | 0 | 8 |
PHP code 50% from 2 tests
An overview of cyclomatic complexity and code structure
The following items need your attention
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 113)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.44 |
Average class complexity | 10.62 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 434.00 |
Average method complexity | 3.01 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 113.00 |
Code structure | ||
---|---|---|
Namespaces | 214 | |
Interfaces | 129 | |
Traits | 42 | |
Classes | 1,130 | |
▷ Abstract classes | 76 | 6.73% |
▷ Concrete classes | 1,054 | 93.27% |
▷ Final classes | 21 | 1.99% |
Methods | 6,371 | |
▷ Static methods | 859 | 13.48% |
▷ Public methods | 4,994 | 78.39% |
▷ Protected methods | 472 | 7.41% |
▷ Private methods | 905 | 14.20% |
Functions | 718 | |
▷ Named functions | 245 | 34.12% |
▷ Anonymous functions | 473 | 65.88% |
Constants | 440 | |
▷ Global constants | 40 | 9.09% |
▷ Class constants | 400 | 90.91% |
▷ Public constants | 398 | 99.50% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
552 compressed PNG files occupy 6.01MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
js/leaflet/images/layers.png | 0.68KB | 1.05KB | 0.00% |
images/flags/16/Nagorno-Karabakh.png | 0.14KB | 0.16KB | 0.00% |
images/flags/32/Switzerland.png | 0.12KB | 0.12KB | 0.00% |
images/flags/16/Mozambique.png | 0.31KB | 0.32KB | 0.00% |
images/flags/32/Uzbekistan.png | 0.36KB | 0.37KB | 0.00% |