Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning

Smart WordPress security that blocks bots automatically, guides you to what matters, and repairs problems — without drowning you in noise.

v22.1.3PaulUpdated 2026-06-09Added Jul 9, 201340k+ installs96% rating100% support resolved
23
Score
1,118
Errors
202
Warnings
+0
Change

Category Scores

Security0
Repo85
Performance100
Maintainability0

Top Issues by Category

i18n685
security414
maintainability179

Issues Details

1,320 issues found in latest scan

ERROR658
WordPress.WP.I18n.MissingTranslatorsComment

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.

ERROR332
WordPress.Security.EscapeOutput.ExceptionNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$ae'.

WARNING54
WordPress.PHP.DevelopmentFunctions.error_log_error_log

error_log() found. Debug code should not normally be used in production.

ERROR48
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$args['after_title']'.

WARNING25
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$con->prefix( 'after_pre_options_store' )".

WARNING21
WordPress.NamingConventions.PrefixAllGlobals.InvalidPrefixPassed

The "shield/2fa" prefix is not a valid namespace/function/class/variable/constant prefix in PHP.

WARNING19
WordPress.PHP.DevelopmentFunctions.error_log_var_dump

var_dump() found. Debug code should not normally be used in production.

WARNING15
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "login_body_class".

ERROR13
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $dbCon

WARNING13
WordPress.PHP.DevelopmentFunctions.error_log_var_export

var_export() found. Debug code should not normally be used in production.

ERROR13
WordPress.WP.I18n.NonSingularStringLiteralText

The $text parameter must be a single text string literal. Found: $cfg->properties[ 'name' ]

WARNING12
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

ERROR8
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING5
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING5
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

ERROR5
WordPress.WP.I18n.NonSingularStringLiteralPlural

The $plural parameter must be a single text string literal. Found: $tabKey === 'plugins' ? '%s plugins need review.' : '%s themes need review.'

ERROR5
WordPress.WP.I18n.NonSingularStringLiteralSingle

The $single parameter must be a single text string literal. Found: $tabKey === 'plugins' ? '%s plugin needs review.' : '%s theme needs review.'

WARNING4
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$oICWP_Wpsf".

ERROR4
WordPress.WP.AlternativeFunctions.strip_tags_strip_tags

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

ERROR4
WordPress.WP.I18n.MissingSingularPlaceholder

Missing singular placeholder, needed for some languages. See https://codex.wordpress.org/I18n_for_WordPress_Developers#Plurals

WARNING3
WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber

Incorrect number of replacements passed to $wpdb->prepare(). Found 2 replacement parameters, expected 0.

WARNING3
WordPress.DB.SlowDBQuery.slow_db_query_meta_key

Detected usage of meta_key, possible slow query.

ERROR3
WordPress.DateTime.RestrictedFunctions.date_date

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNING3
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING3
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_FILES['import_file']['tmp_name']

Latest Snapshot

Findings

1,320

Errors

1,118

Warnings

202

Score History

First score snapshot

First scan completed Jun 20, 2026

v22.1.3 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v22.1.3

23

Latest

Findings
1,320
Errors
1,118
Warnings
202
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins