The all-in-one WordPress image optimization plugin. Disable thumbnails, compress images, convert to WebP & AVIF, clean your media library, and more.
Category Scores
Top Issues by Category
maintainability189
security187
Issues Details
390 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_cropped".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
$_GET['menu'] not unslashed before sanitization. Use wp_unslash() or similar
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Detected usage of a non-sanitized input variable: $_GET['menu']
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$feature['free']'.
Processing form data without nonce verification.
Detected usage of a possibly undefined superglobal array index: $_POST['_nonce']. Check that the array index exists before using it.
Use placeholders and $wpdb->prepare(); found $attachment_ids
Use placeholders and $wpdb->prepare(); found interpolated variable $data at "SELECT $data FROM $tablename WHERE action_id = %d"
Unescaped parameter $data used in $wpdb->get_var()\n$data used without escaping.
SQL wildcards for a LIKE query should be passed in through a replacement parameter. Found: LIKE 'image%%'.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writable().
Processing form data without nonce verification.
Writing files using ABSPATH may be problematic. Consider using wp_upload_dir() instead if storing user data or generated files.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "is_year_end_campaign_active".
print_r() found. Debug code should not normally be used in production.
var_dump() found. Debug code should not normally be used in production.
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.
Unescaped parameter $log_schema_table used in $wpdb->get_var()
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_cropped". | 96 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 35 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 35 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['menu'] not unslashed before sanitization. Use wp_unslash() or similar | 28 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 26 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['menu'] | 26 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$feature['free']'. | 24 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 20 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['_nonce']. Check that the array index exists before using it. | 19 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $attachment_ids | 16 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $data at "SELECT $data FROM $tablename WHERE action_id = %d" | 9 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $data used in $wpdb->get_var()\n$data used without escaping. | 8 |
| WordPress.DB.PreparedSQLPlaceholders.LikeWildcardsInQuery | ERROR | SQL wildcards for a LIKE query should be passed in through a replacement parameter. Found: LIKE 'image%%'. | 7 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 6 |
| WordPress.WP.AlternativeFunctions.file_system_operations_is_writable | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writable(). | 4 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 3 |
| five_star_reviews_detected | ERROR | Linking directly to 5 stars reviews is not allowed. | 3 |
| PluginCheck.CodeAnalysis.WriteFile.ABSPATHDetected | WARNING | Writing files using ABSPATH may be problematic. Consider using wp_upload_dir() instead if storing user data or generated files. | 2 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "is_year_end_campaign_active". | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_var_dump | WARNING | var_dump() found. Debug code should not normally be used in production. | 2 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders. | 2 |
| badly_named_files | ERROR | File and folder names must not contain spaces or special characters. | 2 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed. | 1 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $log_schema_table used in $wpdb->get_var() | 1 |
Latest Snapshot
Findings
390
Errors
101
Warnings
289
Score History
First score snapshot
First scan completed Jun 20, 2026
v6.3.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v6.3.0
33
Latest
- Findings
- 390
- Errors
- 101
- Warnings
- 289
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 33 | 390 | 101 | 289 | v6.3.0 | 2.0.0 | 2026.06-mvp-static-v2 |