Page Builder by SiteOrigin

Build responsive page layouts using the widgets you know and love using this simple drag and drop page builder.

v2.34.3Greg - SiteOriginUpdated 2026-05-23Added Apr 13, 2013500k+ installs96% rating0% support resolved
32
Score
224
Errors
212
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance93
Maintainability36

Top Issues by Category

security254
maintainability130
i18n39
performance5

Issues Details

436 issues found in latest scan

ERROR112
WordPress.Security.EscapeOutput.OutputNotEscaped

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

WARNING43
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

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

ERROR41
missing_direct_file_access_protection

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

ERROR33
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.

WARNING32
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

WARNING30
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['_panelsnonce'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING26
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING19
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

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

WARNING15
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_enqueue_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.

WARNING14
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_GET['_panelsnonce']. Check that the array index exists before using it.

WARNING11
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

ERROR8
wp_function_not_compatible_with_requires_wp

Function "has_blocks()" requires WordPress 5.0.0, but your plugin minimum supported version is WordPress 4.7.0.

ERROR7
WordPress.DB.PreparedSQL.NotPrepared

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

ERROR6
WordPress.Security.EscapeOutput.ExceptionNotEscaped

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

WARNING5
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "lessc".

ERROR5
WordPress.WP.I18n.UnorderedPlaceholdersText

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'Display a %sSiteOrigin Page Builder%s post state in the admin lists of posts/pages to indicate Page Builder is active.'.

WARNING5
WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in

Using exclusionary parameters, like post__not_in, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.

WARNING4
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

ERROR4
WordPress.Security.EscapeOutput.UnsafePrintingFunction

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

WARNING2
WordPress.DB.DirectDatabaseQuery.NoCaching

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

ERROR2
WordPress.WP.AlternativeFunctions.parse_url_parse_url

parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.

WARNING1
PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound

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.

ERROR1
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $include_private used in $wpdb->get_results()\n$include_private assigned unsafely at line 384.

ERROR1
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING1
WordPress.PHP.DevelopmentFunctions.error_log_trigger_error

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

Latest Snapshot

Findings

436

Errors

224

Warnings

212

Score History

First score snapshot

First scan completed Jun 19, 2026

v2.34.3 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 19, 2026

v2.34.3

32

Latest

Findings
436
Errors
224
Warnings
212
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins