Broken Link Checker helps you catch broken links & images fast, before they hurt your SEO or UX. Scan and bulk-fix issues from one easy dashboard.
Prioritized issue groups from the latest Plugin Check scan
Maintainability
505
12 issue groups
Security
450
10 issue groups
I18n
263
3 issue groups
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" (<span class='current-link-count'>{$current_filter['count']}</span>)"'.
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.
Sample message
Use of a direct database call is discouraged.
Sample message
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Sample message
Mismatched text domain. Expected 'broken-link-checker' but got 'brocken-link-checker'.
Sample message
All output should be run through an escaping function (like echo esc_html_x() or echo esc_attr_x()), found '_ex'.
Sample message
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "TransactionManager".
Sample message
Missing $domain parameter in function call to __().
Sample message
Processing form data without nonce verification.
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$activation_start".
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Sample message
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "add_screen_meta_link".
Sample message
Detected usage of a non-sanitized input variable: $_COOKIE[$cookie_name]
Sample message
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'blc-module-settings-' . $module_id".
Sample message
$_COOKIE[$cookie_name] not unslashed before sanitization. Use wp_unslash() or similar
Sample message
Unescaped parameter $db_name used in $wpdb->get_var()\n$db_name assigned unsafely at line 170.
Sample message
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "BLC_ACTIVE".
Sample message
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
Sample message
Using cURL functions is highly discouraged. Use wp_remote_get() instead.
Sample message
trigger_error() found. Debug code should not normally be used in production.
Sample message
Use placeholders and $wpdb->prepare(); found interpolated variable {$db_name} at "SELECT count(*) FROM information_schema.TABLES WHERE (TABLE_SCHEMA = '{$db_name}') AND (TABLE_NAME = '{$wpdb->prefix}blc_links')"
Sample message
Processing form data without nonce verification.
Sample message
Use placeholders and $wpdb->prepare(); found $current_instance_ids
Sample message
Detected usage of a possibly undefined superglobal array index: $_POST['check_threshold']. Check that the array index exists before using it.
Sample message
The use of function set_time_limit() is discouraged
Potential connections found in static code analysis.
Outbound calls
288
External assets
11
Incoming endpoints
1
No public endpoints detected.
wp_ajax
2 score snapshots
v2.4.9
24
Latest
v2.4.8
25
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 24 | 1,314 | 693 | 621 | v2.4.9 | 2.0.0 |
| 25 | 1,327 | 727 | 600 | v2.4.8 | 2.0.0 |
Author, categories, issues, domains, and nearby plugins.