The best anti-spam protection to block spam comments and spam in a contact form. The most trusted antispam solution for WordPress and WooCommerce.
Category Scores
Top Issues by Category
maintainability100
security31
supply_chain1
Issues Details
132 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$at_least_one_comment_in_moderation".
Processing form data without nonce verification.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Use placeholders and $wpdb->prepare(); found $comment_type_where
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "comment_add_author_url".
mt_rand() is discouraged. Use the far less predictable wp_rand() instead.
Function "did_filter()" requires WordPress 6.1.0, but your plugin minimum supported version is WordPress 5.8.0.
Unescaped parameter $comment_type_where used in $wpdb->get_var()\n$comment_type_where assigned unsafely at line 998.
Replacement variables found, but no valid placeholders found in the query.
Detected usage of meta_key, possible slow query.
error_log() found. Debug code should not normally be used in production.
print_r() found. Debug code should not normally be used in production.
Processing form data without nonce verification.
In footer ($in_footer) is not set explicitly wp_register_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
The plugin name includes a restricted term. Your chosen plugin name - "Akismet Anti-spam: Spam Protection" - contains the restricted term "akismet" and cannot be used to begin your plugin name. We disallow the use of certain terms in ways that are abused, or potentially infringe on and/or are misleading with regards to trademarks. You may use the term "akismet" elsewhere in your plugin name, such as "... for akismet".
Detected usage of meta_value, possible slow query.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "redirect_old_akismet_urls".
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'apply_filters'.
wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$at_least_one_comment_in_moderation". | 25 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 19 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 19 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 18 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 14 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $comment_type_where | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "comment_add_author_url". | 4 |
| WordPress.WP.AlternativeFunctions.rand_mt_rand | ERROR | mt_rand() is discouraged. Use the far less predictable wp_rand() instead. | 4 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "did_filter()" requires WordPress 6.1.0, but your plugin minimum supported version is WordPress 5.8.0. | 3 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $comment_type_where used in $wpdb->get_var()\n$comment_type_where assigned unsafely at line 998. | 2 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 2 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_key | WARNING | Detected usage of meta_key, possible slow query. | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 2 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 2 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_register_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header. | 2 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "Akismet Anti-spam: Spam Protection" - contains the restricted term "akismet" and cannot be used to begin your plugin name. We disallow the use of certain terms in ways that are abused, or potentially infringe on and/or are misleading with regards to trademarks. You may use the term "akismet" elsewhere in your plugin name, such as "... for akismet". | 2 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_value | WARNING | Detected usage of meta_value, possible slow query. | 1 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "redirect_old_akismet_urls". | 1 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'apply_filters'. | 1 |
| WordPress.Security.SafeRedirect.wp_redirect_wp_redirect | WARNING | wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed. | 1 |
| badly_named_files | ERROR | File and folder names must not contain spaces or special characters. | 1 |
| hidden_files | ERROR | Hidden files are not permitted. | 1 |
Latest Snapshot
Findings
132
Errors
33
Warnings
99
Score History
First score snapshot
First scan completed Jun 19, 2026
v5.7 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 19, 2026
v5.7
35
Latest
- Findings
- 132
- Errors
- 33
- Warnings
- 99
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 19, 2026Latest | 35 | 132 | 33 | 99 | v5.7 | 2.0.0 | 2026.06-mvp-static-v2 |