GEO Plugin by Squirrly SEO

Become the brand AI recommends. SEO + AEO + GEO so your WordPress ranks on Google and gets cited by ChatGPT, Perplexity, Gemini & AI Overviews.

v14.0.1SEO SquirrlyUpdated Added 30k+ installs92% rating100% support resolved
24
Score
1,196
Errors
224
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance94
Maintainability0

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

1,420 findings

I18n

925

5 issue groups

Security

286

11 issue groups

Maintainability

155

9 issue groups

ERRORI18nMissing Translators CommentA 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.453
Category
I18n
Occurrences
453
Severity
error

Sample message

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.

ERRORI18nUnordered Placeholders TextMultiple placeholders in translatable strings should be ordered. Expected "%1\$s, %2\$s", but got "%s, %s" in "%s Important: %s if a modification was made to a focus page, please request a new focus pages re-audit before asking the AI Consultant to run a new test and re-configure the goals.".345
Category
I18n
Occurrences
345
Severity
error

Sample message

Multiple placeholders in translatable strings should be ordered. Expected "%1\$s, %2\$s", but got "%s, %s" in "%s Important: %s if a modification was made to a focus page, please request a new focus pages re-audit before asking the AI Consultant to run a new test and re-configure the goals.".

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$adminPost'.140
Category
Security
Occurrences
140
Severity
error

Sample message

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

ERRORI18nMissing Arg DomainMissing $domain parameter in function call to esc_attr__().86
Category
I18n
Occurrences
86
Severity
error

Sample message

Missing $domain parameter in function call to esc_attr__().

ERRORMaintainabilityparse url parse urlparse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.41
Category
Maintainability
Occurrences
41
Severity
error

Sample message

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

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.40
Category
Maintainability
Occurrences
40
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.35
Category
Security
Occurrences
35
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORI18nText Domain MismatchMismatched text domain. Expected 'squirrly-seo' but got 'hide-my-wp'.35
Category
I18n
Occurrences
35
Severity
error

Sample message

Mismatched text domain. Expected 'squirrly-seo' but got 'hide-my-wp'.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().33
Category
Maintainability
Occurrences
33
Severity
warning

Sample message

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

WARNINGSecurityRequest data is not unslashed$_COOKIE['sq_country'] not unslashed before sanitization. Use wp_unslash() or similar21
Category
Security
Occurrences
21
Severity
warning

Sample message

$_COOKIE['sq_country'] not unslashed before sanitization. Use wp_unslash() or similar

Show 15 more
ERRORSecuritySQL query is not prepared19
Category
Security
Occurrences
19
Severity
error

Sample message

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

WARNINGSecurityInput is not sanitized18
Category
Security
Occurrences
18
Severity
warning

Sample message

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

WARNINGSecurityInterpolated SQL is not prepared13
Category
Security
Occurrences
13
Severity
warning

Sample message

Use placeholders and $wpdb->prepare(); found interpolated variable $table at "ALTER TABLE `$table` ADD COLUMN post VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''"

ERRORMaintainabilitydate date12
Category
Maintainability
Occurrences
12
Severity
error

Sample message

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

WARNINGSecurityNonce verification recommended11
Category
Security
Occurrences
11
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput is not validated10
Category
Security
Occurrences
10
Severity
warning

Sample message

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

WARNINGSecuritywp redirect wp redirect8
Category
Security
Occurrences
8
Severity
warning

Sample message

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.

ERRORSecurityDatabase parameter is not escaped7
Category
Security
Occurrences
7
Severity
error

Sample message

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

ERRORMaintainabilityfile system operations fopen7
Category
Maintainability
Occurrences
7
Severity
error

Sample message

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen().

ERRORMaintainabilitystrip tags strip tags6
Category
Maintainability
Occurrences
6
Severity
error

Sample message

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

ERRORMaintainabilityNon Enqueued Script6
Category
Maintainability
Occurrences
6
Severity
error

Sample message

Scripts must be registered/enqueued via wp_enqueue_script()

ERRORI18nNon Singular String Literal Domain6
Category
I18n
Occurrences
6
Severity
error

Sample message

The $domain parameter must be a single text string literal. Found: _SQ_PLUGIN_NAME_

ERRORMaintainabilityfile system operations readfile5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: readfile().

WARNINGMaintainabilityNot In Footer5
Category
Maintainability
Occurrences
5
Severity
warning

Sample message

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.

WARNINGSecurityDatabase parameter is not escaped4
Category
Security
Occurrences
4
Severity
warning

Sample message

Unescaped parameter $table used in $wpdb->get_results()

External Connections

Potential connections found in static code analysis.

53 domains

Outbound calls

289

External assets

8

Incoming endpoints

3

Notable Domains

howto12.squirrly.co160 · outbound
squirrly.co35 · outbound
plugin.squirrly.co13 · outbound
google.com6 · outbound
sitemaps.org4 · outbound
ogp.me3 · outbound

Platform / Reference Domains

wordpress.org7 · platform/reference
w3.org4 · platform/reference
downloads.wordpress.org2 · platform/reference
schema.org2 · platform/reference
gnu.org1 · platform/reference

External Asset Domains

facebook.com4 · asset + outbound
s.gravatar.com2 · asset + outbound

Incoming Endpoints

/wp-json/get/squirrly/REST

register_rest_route

/wp-json/save/squirrly/REST

register_rest_route

/wp-json/test/squirrly/REST

register_rest_route

Score History

3 score snapshots

-1
1007550250Jun 20, 2026, 02:50 AM UTC Score 25/100 Plugin v12.4.18 Plugin Check 2.0.0 1,130 errors, 222 warningsJun 23, 2026, 09:31 AM UTC Score 24/100 Plugin v14.0.0 Plugin Check 2.0.0 1,196 errors, 224 warningsJun 25, 2026, 11:51 AM UTC Score 24/100 Plugin v14.0.1 Plugin Check 2.0.0 1,196 errors, 224 warningsJun 20, 2026Jun 25, 2026

v14.0.1

24

Latest

Findings
1,420
Errors
1,196
Warnings
224
Check
2.0.0

v14.0.0

24

Score

Findings
1,420
Errors
1,196
Warnings
224
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

37 nodes

Related Plugins

100
AI Content Signals

500 active installs

100
Extend Link

1k+ active installs

100
Magic robots.txt

1k+ active installs

100
Meta Keywords for Each Page

800 active installs

100