Frank Dead Link Checker Pro v3.1.4
Last scan: 5 mins ago Action Scheduler| Status | URL | Source | Type | Last Check | Actions |
|---|
Link Stats by Post Type
View the total internal, external, and broken links grouped by each Post Type or source.
| Post Type / Source | Total Links | Internal | External | Broken | Warnings | Actions |
|---|
Frank Dead Link Checker Settings
| Scan Type | |
|---|---|
| Scan Frequency | |
| Request Timeout |
seconds
Maximum time to wait for a response from a link. |
| Content to Scan |
Hold Ctrl/Cmd to select multiple post types. |
|---|---|
| Link Types |
|
| Excluded Domains |
Enter one domain per line (e.g., example.com). Links to these domains will be ignored. |
|---|
| Email Notifications |
One email per line. |
|---|
| Concurrent Requests |
Number of links to check simultaneously. Higher values are faster but may overload your server. |
|---|---|
| User Agent |
User agent string sent with HTTP requests. |
Reset & Maintenance Options
| Force Stop Scan | Forcefully stops all running/pending scans, clears the scan queue, and resets the scan state. Use when a scan appears stuck. | |
| Clear Scan History | Deletes all scan history records but keeps your link data intact. | |
| Reset Settings | Resets all plugin settings to their default values without affecting link data or scan history. | |
| Cleanup Exports | Deletes all exported CSV/JSON files from the uploads directory to free up disk space. | |
| Full Plugin Reset | Resets EVERYTHING — link data, scan history, settings, and export files — back to factory defaults. Use with caution! |
Scan History
| ID | Type | Status | Started | Completed | Links | Broken |
|---|
Help & Documentation
How Plugin Works?
Frank Dead Link Checker scans your entire WordPress website to find broken links, redirects, and other link issues. It checks links inside posts, pages, menus, widgets, comments, custom fields, and even page builder content (Elementor, Divi, WPBakery, Gutenberg). Here is how it works:
Scanning Modes
1. Manual Scan (Scan Now)
Click the "Scan Now" button on the Dashboard to start a full scan manually. The plugin will:
- Discover all links from your selected content types (Posts, Pages, Menus, Widgets, Comments, Custom Fields).
- Parse page builder content (Elementor, Divi, WPBakery, Gutenberg blocks) to find embedded links.
- Check each link by sending HTTP HEAD/GET requests to verify if the URL responds correctly.
- Categorize links as Working (200 OK), Broken (4xx/5xx errors), or Warning (redirects, slow responses).
- Display results on the Dashboard with filters for easy review.
2. Automatic Scan (Scheduled)
When Scan Type is set to "Automatic" in Settings, the plugin will automatically scan your website at the frequency you choose (Hourly, Twice Daily, Daily, or Weekly). This runs in the background using WordPress Cron — no manual action needed. Set Scan Type to "Manual" to disable automatic scanning entirely.
3. Auto-Recheck (Broken Links Only)
A lightweight background task that automatically rechecks links already marked as broken or warning every 6 hours. This helps detect when a previously broken link has been fixed — without running a full scan. It checks up to 50 links at a time and skips dismissed links.
4. Fresh Scan
Use the "Fresh Scan" button to clear ALL existing link data and scan history, then start a completely new scan from scratch. This is useful when you want a clean slate — for example, after making major changes to your website structure.
Post Type Statistics & Link Audits (v3.1.4)
Version 3.1.4 introduces powerful visual and analytical tools to break down your website's links by content type and audit individual posts, pages, custom post types, menus, attachments, or comments:
- Post Type Stats Page: Go to Link Checker → Post Type Stats to view a clean breakdown of total, internal, external, and broken links aggregated by each individual post type (including Pages, Posts, Attachments, Navigation Menus, Widgets, Comments, ACF Custom Fields, and registered Custom Post Types).
- Individual Item Details: Click "View Items" next to any post type to drill down into a paginated list of all posts or items of that type. You can search by title to find specific items and view their respective link counts.
- Dashboard Redirection & Filter Notices: Clicking "View Links" on any individual item redirects you to the main Dashboard, automatically filtering the links list to display only that item's links. A clear notice banner is shown at the top with a quick "Clear Filter" button.
- Source Column Metadata: The "Source" column in the dashboard and stats detail tables now displays the item's Creation and Modification dates for better context.
- Attachments Scanning: You can now scan links inside media attachments (descriptions and captions) by enabling "Attachments" in Settings → Scan Scope.
- Performance Optimizations: Database queries are optimized using new MySQL indexes on source columns and transient caching, preventing admin area slowdowns.
What If a Scan Gets Stuck?
Sometimes a scan may appear stuck due to slow server responses, timeout issues, or server restarts. Here is what the plugin does to handle this:
- Stop Scan Button: Click "Stop Scan" on the Dashboard to gracefully stop a running scan.
- Force Stop: If the Stop button does not work, use "Force Stop" from the Dashboard Tools section. This forcefully cancels all running scans, clears the scan queue, and resets the scan state.
- Auto-Recovery: The plugin automatically detects scans that have been running for over 30 minutes without progress and marks them as "timed out". This prevents stuck scans from blocking new ones.
Settings Explained
General Tab
| Scan Type | Choose "Manual" (scan only when you click the button) or "Automatic" (scan runs on a schedule automatically). |
| Scan Frequency | How often automatic scans run: Hourly, Twice Daily, Daily, or Weekly. Only applies when Scan Type is "Automatic". |
| Request Timeout | Maximum time (in seconds) to wait for a URL response before marking it as timed out. Default: 30 seconds. Range: 5–120 seconds. |
Scan Scope Tab
| Content Types | Select which content types to scan: Posts, Pages, Attachments, Comments, Widgets, Menus, Custom Fields, and Custom Post Types (if any registered). |
| Link Types | Choose to check Internal Links (your own site), External Links (other websites), and/or Image URLs. |
Exclusions Tab
| Excluded Domains | Enter domain names (one per line) that should be skipped during scanning. For example: facebook.com, twitter.com. Links to these domains will not be checked. |
Notifications Tab
| Email Notifications | Enable to receive email alerts when broken links are found. |
| Email Frequency | How often to send notification emails: Immediately, Daily, or Weekly digest. |
| Recipients | Email addresses to receive notifications (one per line). Defaults to the admin email. |
Advanced Tab
| Concurrent Requests | Number of links to check simultaneously (1–10). Higher values speed up scanning but use more server resources. Default: 3. |
| Delay Between Requests | Milliseconds to wait between checking each link (0–5000). Helps prevent overloading your server or getting rate-limited by external sites. Default: 500ms. |
| User Agent | The User-Agent string sent with HTTP requests. Some websites may block requests from unknown user agents. The default mimics a standard browser. |
| Verify SSL | When enabled, the plugin verifies SSL certificates. Disable only if you are experiencing SSL-related false positives. |
| Auto Cleanup | Automatically delete old scan history records after a specified number of days. Default: 90 days. |
Understanding Link Status
| ● Broken | HTTP 4xx or 5xx error. The link is dead or the server returned an error. Common codes: 404 (Not Found), 403 (Forbidden), 500 (Server Error). |
| ● Warning | The link works but has issues: it redirects (301/302), responds slowly (over 5 seconds), or returned a suspicious status code. Review these to decide if action is needed. |
| ● Working | HTTP 200 OK. The link is working perfectly — no action needed. |
| ● Dismissed | Manually ignored by admin. These links are excluded from broken/warning counts and are not rechecked automatically. |
Common HTTP Status Codes
| 200 | OK — Link is working. |
| 301 | Moved Permanently — The URL has been permanently redirected to a new location. |
| 302 | Found — Temporary redirect. The URL is temporarily pointing elsewhere. |
| 401 | Unauthorized — Authentication is required. The server needs valid credentials to access this URL. |
| 403 | Forbidden — Access denied. The server refuses to serve this URL. |
| 404 | Not Found — The page does not exist. This is the most common broken link. |
| 405 | Method Not Allowed — The HTTP method used is not supported by this URL. |
| 406 | Not Acceptable — The server cannot produce a response matching the request headers. |
| 410 | Gone — The page has been permanently removed. Unlike 404, the server knows it was intentionally deleted. |
| 429 | Too Many Requests — Rate limit exceeded. The server is blocking requests due to too many in a short time. |
| 500 | Server Error — Something went wrong on the target server. |
| 503 | Service Unavailable — The server is temporarily down, often for maintenance. |
| Timeout | No response — The server did not respond within the configured timeout period. |
| DNS Error | Domain does not exist — The domain name could not be resolved. |
| SSL Error | SSL certificate issue — The website has an invalid or expired SSL certificate. |
| Error | Connection Error — A generic error occurred while trying to reach the URL (e.g., connection refused, reset, or unknown failure). |
Tips & Best Practices
- Start with a Manual Scan: Run your first scan manually to see how long it takes on your site before enabling automatic scanning.
- Adjust Concurrent Requests: If your server is slow or shared hosting, reduce concurrent requests to 1–2. For dedicated servers, you can increase to 5–10.
- Use Exclusions: Add domains that frequently block automated checks (like social media sites) to your exclusion list to reduce false positives.
- Review Warnings: Warning links (redirects) are not broken, but you may want to update them to point directly to the final URL for better SEO.
- Export Regularly: Export your broken link reports as CSV for record-keeping or to share with your team.
- Use Bulk Actions: Select multiple links with checkboxes and use bulk Dismiss, Delete, or Recheck to manage them efficiently.
How to Translate This Plugin
Frank Dead Link Checker is fully translation-ready. You can translate it into your language using Poedit or Loco Translate.
Method 1: Using Loco Translate Plugin (Recommended)
- Install and activate the Loco Translate plugin from the WordPress plugin repository.
- Go to Loco Translate → Plugins in your WordPress admin menu.
- Find "Frank Dead Link Checker" in the list and click on it.
- Click "New Language" and select your desired language.
- Translate the strings one by one using the visual editor.
- Click "Save" when done. Your translations will take effect immediately.
Method 2: Using Poedit (Manual PO/MO Files)
- Download and install Poedit on your computer (free desktop application).
- Open the POT template file located at:
wp-content/plugins/dead-link-checker-pro/languages/dead-link-checker.pot - In Poedit, go to "Create New Translation" and select your language.
- Translate each string, then save the file.
- Poedit will generate two files (e.g.,
dead-link-checker-fr_FR.poanddead-link-checker-fr_FR.mo). Upload both to:wp-content/languages/plugins/
Method 3: Contribute on translate.wordpress.org
You can also contribute translations to the official WordPress translation platform. Your translations will be available to all users of this plugin who speak your language.
Visit translate.wordpress.org