Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF

Unlimited automatic image optimization for WordPress. Compress images, convert to WebP, and improve site speed without losing image quality.

v2.0.5ThemeisleUpdated 2026-05-19Added Aug 12, 2018100k+ installs88% rating
20
Score
557
Errors
541
Warnings
+0
Change

Category Scores

Security0
Repo66
Performance100
Maintainability0

Top Issues by Category

security653
maintainability375

Issues Details

1,098 issues found in latest scan

ERROR211
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<li class='directory collapsed'>{$checkbox}<a rel=' "'.

ERROR127
WordPress.Security.EscapeOutput.UnsafePrintingFunction

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

WARNING89
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING85
WordPress.DB.DirectDatabaseQuery.NoCaching

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

WARNING76
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: &quot;$avif_enabled&quot;.

WARNING55
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb-&gt;prepare(); found interpolated variable $clause at &quot;DELETE FROM {$wpdb-&gt;postmeta} WHERE post_id=&#039;%d&#039; AND meta_key IN ($clause)&quot;

ERROR55
WordPress.DB.PreparedSQL.NotPrepared

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

ERROR52
WordPress.Security.EscapeOutput.ExceptionNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Class {$class_name} is not found!"'.

WARNING33
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET[&#039;_wpnonce&#039;] not unslashed before sanitization. Use wp_unslash() or similar

WARNING30
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET[&#039;_wpnonce&#039;]

ERROR28
PluginCheck.Security.DirectDB.UnescapedDBParameter

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

WARNING26
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: &quot;RIOP_WebP_Extra_Data&quot;.

WARNING24
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING18
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;&#039;themeisle_sdk_license_process_&#039; . $namespace&quot;.

WARNING18
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING16
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;$tag&quot;.

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

WARNING12
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_POST[&#039;id&#039;]. Check that the array index exists before using it.

ERROR12
WordPress.WP.AlternativeFunctions.curl_curl_setopt

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERROR12
WordPress.WP.AlternativeFunctions.unlink_unlink

unlink() is discouraged. Use wp_delete_file() to delete a file.

ERROR9
missing_direct_file_access_protection

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

WARNING8
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $io_db_table used in $wpdb-&gt;query()\n$io_db_table assigned unsafely at line 21.

WARNING7
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: &quot;_sanitize_text_fields&quot;.

ERROR6
WordPress.DateTime.RestrictedFunctions.date_date

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

WARNING6
WordPress.WP.EnqueuedResourceParameters.MissingVersion

Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.

Latest Snapshot

Findings

1,098

Errors

557

Warnings

541

Score History

First score snapshot

First scan completed Jun 20, 2026

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

Jun 20, 2026

v2.0.5

20

Latest

Findings
1,098
Errors
557
Warnings
541
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins