10% all-in-one-seo-agency-toolbox

Code Review | All-in-One SEO Agency ToolBox

WordPress plugin All-in-One SEO Agency ToolBox scored10%from 54 tests.

About plugin

  • Plugin page: all-in-one-seo-ag...
  • Plugin version: 3.0.6
  • PHP version: 7.4.16
  • WordPress compatibility: 4.0.0-5.2.4
  • WordPress version: 6.3.1
  • First release: Oct 2, 2014
  • Latest release: Oct 31, 2019
  • Number of updates: 60
  • Update frequency: every 31.2 days
  • Top authors: georanker (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /3,292 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
It is recommended to fix the following installer errors
  • Install procedure had errors
    • > User deprecated in wp-includes/functions.php+5453
    Function get_page_by_title is deprecated since version 6.2.0! Use WP_Query instead.

Server metrics [RAM: ▲0.06MB] [CPU: ▼1.87ms] Passed 4 tests

Server-side resources used by All-in-One SEO Agency ToolBox
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /3.53 ▲0.0742.03 ▼3.37
Dashboard /wp-admin3.36 ▲0.0555.12 ▼0.49
Posts /wp-admin/edit.php3.47 ▲0.1251.80 ▲3.03
Add New Post /wp-admin/post-new.php5.96 ▲0.0786.93 ▼6.63
Media Library /wp-admin/upload.php3.28 ▲0.0547.77 ▲10.96
Local Rank Checker /wp-admin/admin.php?page=sat_page_localrankchecker3.3944.91
G+ Review Request /wp-admin/admin.php?page=sat_page_googleplusreviewrequest3.2934.29
/wp-admin/admin.php?page=sat_page_settings3.3937.48
First Page /wp-admin/admin.php?page=sat_page_googlefirstpage3.2732.61
Advertisers Report /wp-admin/admin.php?page=sat_page_advertisersreport3.2733.58
Website Report /wp-admin/admin.php?page=sat_page_erankerreport3.3234.80
Citations Source Tool /wp-admin/admin.php?page=sat_page_citationssourcetool3.2733.87

Server storage [IO: ▲1.89MB] [DB: ▲0.00MB] Passed 3 tests

How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 623 new files
Database: 1 new table, 11 new options
New tables
wp_sat_reports
New WordPress options
sat_settings
db_upgraded
widget_theysaidso_widget
sat_db_version
widget_recent-comments
widget_recent-posts
widget_sat_create_report_widget
theysaidso_admin_options
sat_pageid
can_compress_scripts
...

Browser metrics Passed 4 tests

This is an overview of browser requirements for All-in-One SEO Agency ToolBox
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,047 ▲28614.36 ▲0.0113.43 ▲11.4442.04 ▼2.06
Dashboard /wp-admin2,274 ▲1065.92 ▲0.3588.02 ▼17.4790.42 ▲46.02
Posts /wp-admin/edit.php2,202 ▲992.33 ▲0.3637.23 ▼0.5540.68 ▲5.77
Add New Post /wp-admin/post-new.php1,764 ▲23823.00 ▼0.07702.84 ▲7.3337.45 ▼20.73
Media Library /wp-admin/upload.php1,491 ▲914.56 ▲0.32143.19 ▲30.7157.01 ▲7.71
Local Rank Checker /wp-admin/admin.php?page=sat_page_localrankchecker1,2142.9364.5548.40
G+ Review Request /wp-admin/admin.php?page=sat_page_googleplusreviewrequest9682.2832.4931.69
/wp-admin/admin.php?page=sat_page_settings1,1222.1827.3731.69
First Page /wp-admin/admin.php?page=sat_page_googlefirstpage1,1992.9354.0737.55
Advertisers Report /wp-admin/admin.php?page=sat_page_advertisersreport1,1962.9357.2734.59
Website Report /wp-admin/admin.php?page=sat_page_erankerreport1,1192.5454.5039.89
Citations Source Tool /wp-admin/admin.php?page=sat_page_citationssourcetool1,1942.7656.6735.55

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
  • This plugin does not fully uninstall, leaving 1 table in the database
    • wp_sat_reports
  • Zombie WordPress options were found after uninstall: 10 options
    • can_compress_scripts
    • sat_db_version
    • widget_theysaidso_widget
    • db_upgraded
    • theysaidso_admin_options
    • widget_recent-posts
    • sat_settings
    • widget_sat_view_report_widget
    • widget_sat_create_report_widget
    • widget_recent-comments

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
  • 8 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=sat_page_citationssourcetool
    • > Notice in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport.php+21
    Undefined index: is_limetfreereport_islogged
  • 5 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=sat_page_citationssourcetool
    • > Warning in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport.php+66
    Invalid argument supplied for foreach()
  • 8 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=sat_page_citationssourcetool
    • > Notice in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport.php+175
    Trying to get property 'plan' of non-object
  • 8 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=sat_page_citationssourcetool
    • > Notice in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport.php+175
    Trying to get property 'maxlocations' of non-object

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
Please fix the following
  • 10× PHP files output text when accessed directly:
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/views/sitereport.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/settings.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/erankerreportform-init.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/settings-init.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/seo-agency-toolbox.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/erankerreportform.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/includes/formnewreport-init.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/views/keyworddensity.php
    • > /wp-content/plugins/all-in-one-seo-agency-toolbox/views/pending-status.php
  • 17× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/googlefirstpage.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'SATGeoRankerAPI' not found in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/googleplusreviewrequest-init.php:9
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_post() in wp-content/plugins/all-in-one-seo-agency-toolbox/views/pending.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/widget-shortcodes_create_report.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/localrankchecker.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'WP_Widget' not found in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/widget-shortcodes_view_report.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/topauthorsreport.php:7
    • > PHP Warning
      Invalid argument supplied for foreach() in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/erreport.lib.php on line 22
    • > PHP Fatal error
      Uncaught Error: Call to undefined function _e() in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/newreporteranker.php:7
    • > PHP Fatal error
      Uncaught Error: Class 'SATGeoRankerAPI' not found in wp-content/plugins/all-in-one-seo-agency-toolbox/includes/googleplusreviewrequest-init.php:9

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
No browser issues were found

Optimizations

Plugin configuration 87% from 29 tests

readme.txt 88% from 16 tests

The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Attributes that require attention:
  • Tags: You are using too many tags: 11 tag instead of maximum 10
  • Screenshots: These screenshots do not have images: #1 (Wordpress Admin Plugin Page), #2 (Local Rank Checker), #3 (WebSite SEO Report Form), #4 (WebSite SEO Report Result)
The official readme.txt might help

all-in-one-seo-agency-toolbox/seo-agency-toolbox.php 85% from 13 tests

The main PHP file in "All-in-One SEO Agency ToolBox" ver. 3.0.6 adds more information about the plugin and also serves as the entry point for this plugin
Please take the time to fix the following:
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("all-in-one-seo-agency-toolbox.php" instead of "seo-agency-toolbox.php")
  • Description: The description should be shorter than 140 characters (currently 453 characters long)

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
There were no executable files found in this plugin7,896 lines of code in 47 files:
LanguageFilesBlank linesComment linesLines of code
PHP343933233,750
JavaScript64691872,258
CSS6206271,384
SVG100504

PHP code Passed 2 tests

Analyzing cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.55
Average class complexity57.67
▷ Minimum class complexity17.00
▷ Maximum class complexity98.00
Average method complexity9.50
▷ Minimum method complexity1.00
▷ Maximum method complexity53.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes3
▷ Abstract classes00.00%
▷ Concrete classes3100.00%
▷ Final classes00.00%
Methods20
▷ Static methods15.00%
▷ Public methods1995.00%
▷ Protected methods00.00%
▷ Private methods15.00%
Functions67
▷ Named functions6597.01%
▷ Anonymous functions22.99%
Constants4
▷ Global constants4100.00%
▷ Class constants00.00%
▷ Public constants00.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
555 compressed PNG files occupy 0.71MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
images/flags/16/SV.png0.38KB0.42KB0.00%
images/flags/16/MV.png0.38KB0.45KB0.00%
images/flags/16/CV.png0.33KB0.38KB0.00%
images/flags/16/BW.png0.29KB0.33KB0.00%
images/flags/24/VC.png0.92KB1.12KB0.00%