Redirection
Slug: redirection · John Godley · 2,000,000+
Overall Score
Some areas need attention
What this score means
Scores are calculated on a 100-point scale by analysing six weighted categories: Security, WP.org Readiness, Performance, Code Quality, Accessibility, and Vulnerabilities. Open vulnerabilities are weighted by severity, CVSS, and patch availability, and incomplete source data can reduce confidence slightly.
-
Excellent The plugin follows best practices across every measured category. It is well-maintained, low-risk, and recommended for production use.
-
Good Strong overall quality with minor areas for improvement. Generally safe to use on most sites.
-
Needs Review Some areas of concern detected. Review the full issues report and weigh the risks before installing on production.
-
High Risk Significant quality or security problems found. Exercise caution — check the details carefully before using this plugin.
High confidence (100/100) based on metadata completeness and vulnerability evidence quality.
Open vulnerabilities are weighted by severity, CVSS, and patch availability, then adjusted slightly when the source data is incomplete.
- Wordfence: June 28, 2026 7:47 pm (51 minutes ago)
AI-Generated Summary
Redirection currently scores 71/100 (needs review). Latest scan findings include 1 errors and 25 warnings.
Strengths
- No open vulnerabilities are currently recorded in tracked sources.
Risks
- 1 error-level issue was detected in the latest scan.
- Tested-up-to metadata is behind the current WordPress version.
Recommended Next Actions
- Resolve error-level findings first because they usually carry the highest impact.
- Address warning-level findings to improve maintainability and reduce future risk.
- Validate compatibility against the latest WordPress core and refresh tested-up-to metadata.
Generated from latest scan and metadata signals. Validate in staging before production changes.
Score Breakdown
Why this score?
Top deductions are based on 1 affected rules, reducing this category by 96 total points.
| Rule | Hits | Impact | Share |
|---|---|---|---|
| Security issue: Warning | 24 | -96 | 100% |
Why this score?
Top deductions are based on 2 affected rules, reducing this category by 4 total points.
| Rule | Hits | Impact | Share |
|---|---|---|---|
| Tested up to version is behind current WordPress | 1 | -3 | 75% |
| Repo issue: Notice | 1 | -1 | 25% |
Why this score?
Top deductions are based on 1 affected rules, reducing this category by 3 total points.
| Rule | Hits | Impact | Share |
|---|---|---|---|
| Performance issue: Warning | 1 | -3 | 100% |
Why this score?
Top deductions are based on 2 affected rules, reducing this category by 10 total points.
| Rule | Hits | Impact | Share |
|---|---|---|---|
| Code Quality issue: Error | 1 | -8 | 80% |
| Code Quality issue: Notice | 2 | -2 | 20% |
Why this score?
Top deductions are based on 0 affected rules, reducing this category by 0 total points.
No deductions were applied for this category in the latest score run.
Why this score?
Top deductions are based on 0 affected rules, reducing this category by 0 total points.
No deductions were applied for this category in the latest score run.
Plugin Details
- Version: 5.7.5
- Active Installs: 2,000,000+
- Last Updated: 2026-03-01 07:42:00
- Tested up to: 6.9.4
- Requires PHP: 7.4
- Rating: 4.4/5 (699 ratings)
- Support: 4/23 resolved (17%)
- View on WordPress.org
- Download Plugin
Scan Summary
- Errors: 1
- Warnings: 25
- Notices: 3
- Last Scanned: 2026-05-22 21:31:20
- Score confidence: 100/100
What Changed Since Last Scan
New Issues
No items in this category.
Resolved Issues
No items in this category.
Worsened Issues
No items in this category.
Detected Issues
| Severity | Category | Message | File | Fix Guidance |
|---|---|---|---|---|
| ERROR | CODE_QUALITY | Support thread resolution rate is very low (17% resolved). |
Quick
Triage unresolved support threads and post status updates for affected users.
Moderate
Create weekly support triage workflows and assign ownership for unresolved topics.
Advanced
Set support SLAs, automate inbox routing, and measure resolution performance in dashboards.
|
|
| NOTICE | REPO | Main plugin file does not declare a Domain Path header. | redirection.php |
Quick
Add a Domain Path header if language files are stored in a languages directory.
Moderate
Apply the same remediation pattern across repo findings and re-scan to confirm notice issues drop.
Advanced
Add automated linting, CI checks, and team review guidance so this issue class is prevented in future releases.
|
| WARNING | SECURITY | Main plugin file does not appear to guard direct access with an ABSPATH check. | redirection.php |
Quick
Add an ABSPATH guard near the top of the main plugin file to prevent direct execution.
Moderate
Apply the same remediation pattern across security findings and re-scan to confirm warning issues drop.
Advanced
Add automated linting, CI checks, and team review guidance so this issue class is prevented in future releases.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | actions/random.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Raw superglobal access detected. | redirection-admin.php |
Quick
Wrap direct request values with sanitization and nonce verification in the affected code path.
Moderate
Centralize request normalization in helper methods so handlers consume validated input only.
Advanced
Adopt typed request DTOs and automated security lint checks for unsanitized superglobal access.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | database/database-upgrader.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | database/schema/420.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | database/schema/240.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | database/schema/400.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | database/schema/latest.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/group.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/fixer.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/log/log.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Use of unserialize() detected. | models/importer/rank-math.php |
Quick
Switch the flagged payload to JSON decoding where practical.
Moderate
If serialization is required, enforce allowed_classes=false and strict input validation before parsing.
Advanced
Move state transfer to signed/typed schemas and add security tests for malformed payloads.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/importer/rank-math.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/importer/seo-redirection.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/importer/pretty-links.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/importer/wordpress-old-slugs.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/importer/safe-redirect-manager.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/flusher.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/redirect/redirect.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | PERFORMANCE | query_posts() detected. | models/permalinks.php |
Quick
Use WP_Query or pre_get_posts instead of query_posts() to avoid altering the main query unexpectedly.
Moderate
Apply the same remediation pattern across performance findings and re-scan to confirm warning issues drop.
Advanced
Add automated linting, CI checks, and team review guidance so this issue class is prevented in future releases.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | models/htaccess.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| NOTICE | CODE_QUALITY | Short PHP opening tags or inline template tags may reduce compatibility across environments. | models/htaccess.php |
Quick
Prefer full <?php opening tags for maximum portability.
Moderate
Apply the same remediation pattern across code quality findings and re-scan to confirm notice issues drop.
Advanced
Add automated linting, CI checks, and team review guidance so this issue class is prevented in future releases.
|
| WARNING | SECURITY | Direct database query detected without an immediately visible $wpdb->prepare() wrapper. | api/api-plugin.php |
Quick
Wrap dynamic SQL arguments with $wpdb->prepare() in the flagged query.
Moderate
Refactor repeated SQL into repository/helper methods that enforce prepared statements by default.
Advanced
Add integration tests and static checks that fail builds when direct dynamic SQL is introduced.
|
| WARNING | SECURITY | Use of unserialize() detected. | matches/login.php |
Quick
Switch the flagged payload to JSON decoding where practical.
Moderate
If serialization is required, enforce allowed_classes=false and strict input validation before parsing.
Advanced
Move state transfer to signed/typed schemas and add security tests for malformed payloads.
|
| WARNING | SECURITY | Use of unserialize() detected. | matches/from-notfrom.php |
Quick
Switch the flagged payload to JSON decoding where practical.
Moderate
If serialization is required, enforce allowed_classes=false and strict input validation before parsing.
Advanced
Move state transfer to signed/typed schemas and add security tests for malformed payloads.
|
| WARNING | SECURITY | Use of unserialize() detected. | matches/from-url.php |
Quick
Switch the flagged payload to JSON decoding where practical.
Moderate
If serialization is required, enforce allowed_classes=false and strict input validation before parsing.
Advanced
Move state transfer to signed/typed schemas and add security tests for malformed payloads.
|
| NOTICE | CODE_QUALITY | Short PHP opening tags or inline template tags may reduce compatibility across environments. | fileio/rss.php |
Quick
Prefer full <?php opening tags for maximum portability.
Moderate
Apply the same remediation pattern across code quality findings and re-scan to confirm notice issues drop.
Advanced
Add automated linting, CI checks, and team review guidance so this issue class is prevented in future releases.
|
Score History
No history available yet. · All-Time High: N/A
All Past Vulnerabilities
Showing all known historical vulnerabilities for this plugin, including open and closed records.
| Vulnerability | CVE | Severity | Status | Affected Versions | Patched Version | Updated | Source |
|---|---|---|---|---|---|---|---|
| Redirection <= 3.6.3 - Cross-Site Request Forgery to Remote Code Execution | N/A | LOW | Closed | *-3.6.3 | 3.6.4 | 2018-11-14 00:00:00 | Wordfence |
| Redirection <= 2.2.9 - Cross-Site Scripting | N/A | LOW | Closed | [*, 2.2.10) | 2.2.10 | 2014-08-01 00:00:00 | Wordfence |
| Redirection <= 2.2.8 - Reflected Cross-Site Scripting | N/A | LOW | Closed | [*, 2.2.9) | 2.2.9 | 2014-08-01 00:00:00 | Wordfence |
| Redirection < 2.2.12 - Reflected Cross-Site Scripting | N/A | LOW | Closed | [*, 2.2.12) | 2.2.12 | 2012-05-04 00:00:00 | Wordfence |
| Redirection <= 2.7.3 - Local File Inclusion | N/A | LOW | Closed | *-2.7.3 | 2.8 | 2018-07-12 00:00:00 | Wordfence |