10% premium-seo-pack-light-version

Code Review | Premium Seo Pack - Light Version

WordPress plugin Premium Seo Pack - Light Version scored10%from 54 tests.

About plugin

  • Plugin page: premium-seo-pack-...
  • Plugin version: 2.3.1 Lite...
  • PHP version: 7.4.16
  • WordPress compatibility: 5.5-5.5
  • WordPress version: 6.3.1
  • First release: Feb 19, 2014
  • Latest release: Aug 20, 2020
  • Number of updates: 28
  • Update frequency: every 84.8 days
  • Top authors: AA-Team (100%)

Code review

54 tests

User reviews

3 reviews

Install metrics

100+ active /14,263 total downloads

Benchmarks

Plugin footprint 23% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
It is recommended to fix the following installer errors
  • Install procedure had errors
    • > Notice in wp-content/plugins/premium-seo-pack-light-version/aa-framework/framework.class.php+3281
    Undefined variable: value

Server metrics [RAM: ▼0.38MB] [CPU: ▼47.68ms] Passed 4 tests

An overview of server-side resources used by Premium Seo Pack - Light Version
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /3.60 ▲0.1410.82 ▼31.30
Dashboard /wp-admin3.62 ▲0.3211.94 ▼41.33
Posts /wp-admin/edit.php3.62 ▲0.2716.76 ▼30.33
Add New Post /wp-admin/post-new.php3.62 ▼2.2612.74 ▼87.77
Media Library /wp-admin/upload.php3.62 ▲0.3910.38 ▼22.83

Server storage [IO: ▲11.39MB] [DB: ▲0.01MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 757 new files
Database: 7 new tables, 11 new options
New tables
wp_psp_serp_reporter2rank
wp_psp_post_planner_cron
wp_psp_serp_reporter
wp_psp_monitor_404
wp_psp_link_builder
wp_psp_link_redirect
wp_psp_web_directories
New WordPress options
psp_integrity_check
psp_cronjobs
psp_cronjobs_clean
widget_theysaidso_widget
widget_recent-comments
theysaidso_admin_options
can_compress_scripts
psp_db_version
db_upgraded
widget_recent-posts
...

Browser metrics Passed 4 tests

This is an overview of browser requirements for Premium Seo Pack - Light Version
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,860 ▲12513.36 ▼1.021.68 ▼0.2445.66 ▼2.09
Dashboard /wp-admin2,266 ▲815.02 ▲0.1599.18 ▼18.3395.21 ▲51.75
Posts /wp-admin/edit.php2,137 ▲482.46 ▲0.4348.97 ▲12.8147.31 ▲8.07
Add New Post /wp-admin/post-new.php1,595 ▲6718.06 ▼0.29626.95 ▲16.86175.65 ▲118.42
Media Library /wp-admin/upload.php1,439 ▲514.33 ▲0.1198.21 ▲0.8994.84 ▲48.77

Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 25% 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
  • Uninstall procedure validation failed for this plugin
    • > Notice in wp-content/plugins/premium-seo-pack-light-version/aa-framework/framework.class.php+3281
    Undefined variable: value
  • Zombie tables were found after uninstall: 7 tables
    • wp_psp_monitor_404
    • wp_psp_serp_reporter2rank
    • wp_psp_post_planner_cron
    • wp_psp_web_directories
    • wp_psp_link_redirect
    • wp_psp_serp_reporter
    • wp_psp_link_builder
  • This plugin did not uninstall successfully, leaving 11 options in the database
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • psp_fix_backlinkbuilder
    • db_upgraded
    • widget_recent-posts
    • psp_db_version
    • psp_cronjobs_clean
    • psp_cronjobs
    • theysaidso_admin_options
    • ...

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Good news, no errors were detected

SRP 0% 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
Almost there! Just fix the following items
  • 7× PHP files output non-empty strings when accessed directly via GET requests:
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/depedencies/server-stats.php
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/W3C_HTMLValidator/options.php
    • > /wp-content/plugins/premium-seo-pack-light-version/aa-framework/shortcodes/tinymce.popup.php
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/Backlink_Builder/backlink.php
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/facebook_planner/app.cron.class.php
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/dashboard/server-stats.php
    • > /wp-content/plugins/premium-seo-pack-light-version/modules/cronjobs/options.php
  • 204× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Facebook\\Exceptions\\FacebookSDKException' not found in wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook-v5-5.0.0/Exceptions/FacebookResumableUploadException.php:31
    • > PHP Fatal error
      Uncaught Error: Interface 'Facebook\\HttpClients\\FacebookHttpClientInterface' not found in wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook-v5-5.0.0/HttpClients/FacebookCurlHttpClient.php:34
    • > PHP Fatal error
      Uncaught Error: Class 'Facebook\\GraphNodes\\GraphEdge' not found in wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook-v5-5.0.0/GraphNodes/GraphList.php:34
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/premium-seo-pack-light-version/modules/sitemap/init.php on line 98
    • > PHP Fatal error
      Uncaught Error: Class 'Facebook\\Helpers\\FacebookSignedRequestFromInputHelper' not found in wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook-v5-5.0.0/Helpers/FacebookJavaScriptHelper.php:31
    • > PHP Fatal error
      Uncaught Error: Call to undefined function __() in wp-content/plugins/premium-seo-pack-light-version/modules/seo_friendly_images/config.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Facebook\\FacebookResponse' not found in wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook-v5-5.0.0/FacebookBatchResponse.php:35
    • > PHP Fatal error
      require(): Failed opening required 'modules/rich_snippets/lists.inc.php' (include_path='.:/usr/share/php') in wp-content/plugins/premium-seo-pack-light-version/modules/rich_snippets/shortcodes/article/options.php on line 5
    • > PHP Notice
      Undefined variable: tryed_module in wp-content/plugins/premium-seo-pack-light-version/modules/sitemap/options.php on line 393
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/premium-seo-pack-light-version/modules/rich_snippets/shortcodes/recipe/options.php on line 5

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser errors were detected

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 94% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that need to be fixed: Please take inspiration from this readme.txt

premium-seo-pack-light-version/plugin.php 69% from 13 tests

The entry point to "Premium Seo Pack - Light Version" version 2.3.1 Lite... is a PHP file that has certain tags in its header comment area
Please make the necessary changes and fix the following:
  • Version: The version number should be digits and periods (ex. "1.0.3" instead of "2.3.1 Lite...")
  • Main file name: Please rename the main PHP file in this plugin to the plugin slug ("premium-seo-pack-light-version.php" instead of "plugin.php")
  • Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
  • Description: Please don't use more than 140 characters for the plugin description (currently 307 characters long)

Code Analysis 3% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
These items require your attention
  • Do not include executable or dangerous files in your plugin
    • .crt - Security Certificate in Firefox, IE, Chrome, Safari
      • wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook/_fb_ca_chain_bundle.crt
      • wp-content/plugins/premium-seo-pack-light-version/lib/scripts/facebook/fb_ca_chain_bundle.crt
102,220 lines of code in 379 files:
LanguageFilesBlank linesComment linesLines of code
PHP24012,11718,45059,136
JavaScript473,6322,79814,971
Sass424683710,965
CSS3930417510,952
PO File11,5703,9263,406
XML1001,554
XSLT3130505
JSON200430
SQL12028119
SVG20095
HTML122687

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 210)
Cyclomatic complexity
Average complexity per logical line of code0.51
Average class complexity58.12
▷ Minimum class complexity1.00
▷ Maximum class complexity873.00
Average method complexity5.25
▷ Minimum method complexity1.00
▷ Maximum method complexity210.00
Code structure
Namespaces11
Interfaces6
Traits1
Classes175
▷ Abstract classes52.86%
▷ Concrete classes17097.14%
▷ Final classes00.00%
Methods2,459
▷ Static methods1967.97%
▷ Public methods1,67568.12%
▷ Protected methods36915.01%
▷ Private methods41516.88%
Functions52
▷ Named functions4994.23%
▷ Anonymous functions35.77%
Constants292
▷ Global constants15653.42%
▷ Class constants13646.58%
▷ Public constants136100.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
263 PNG files occupy 6.07MB with 2.39MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
aa-framework/images/dt-arrow-right.png0.16KB0.27KB0.00%
modules/cronjobs/images/wpcron-current-cron-job.png8.06KB7.95KB▼ 1.39%
modules/serp/assets/menu_icon.png18.86KB0.37KB▼ 98.06%
aa-framework/images/submenu-shadow.png0.07KB0.10KB0.00%
modules/file_edit/assets/menu_icon.png19.93KB0.57KB▼ 97.14%