Get notifications when a visitor loads a page with broken links
The “Broken Link Notifier” WordPress plugin is a vigilant guardian for your website’s links, monitoring and alerting you to broken or dead links as users visit your site. This ensures a seamless user experience and helps prevent search engine ranking penalties. Unlike other broken link checker plugins that can cause performance and timeout issues with full site scans, this plugin focuses on notification, making it a great complement to offsite services that handle full site scans.
This plugin:
With “Broken Link Notifier”, you can:
This plugin is a must-have for website owners, developers, and SEO enthusiasts who want to guarantee a smooth and error-free browsing experience for their audience!
Broken Link Notifier > Settings
in your admin menu.Broken Link Notifier > Omitted Pages
, and add any pages that you don’t want to scan, such as pages you know won’t have any links on them. This will speed up the multi-scan option.Broken Link Notifier > Results
page, and notify you if you have enabled email, Discord, or Microsoft Teams notifications. Reloading the page will not submit them twice. For testing, you should delete them from the results so they get reported again.Broken Link Notifier > Omitted Links
to add a domain with a wildcard (*), which will omit all links starting with that domain. See screenshots for examples.Page load scan results on back-end
Page load scan results on front-end in dev console
Omitted links
Omitted pages
Detailed single page scan
Multi-Scan running scans on multiple pages in WP List Tables
Find broken links easily on front-end with a glowing animation and red border
Settings
Developer hooks on Help tab
Join my Discord support server
If the link works fine and it’s still being flagged as broken, then it is likely either redirecting to another page or there is an issue with the page’s response headers, and there’s nothing we can do about it. If it is a redirect on your own site due to permalink modification, then it’s better to fix the link instead of unnecessarily redirecting. You may use the Omit option to omit false positives from future scans as well. If you are seeing a pattern with multiple links from the same domain, you can go to Broken Link Notifier > Omitted Links
to add a domain with a wildcard (*), which will omit all links starting with that domain.
Warnings mean the link was found, but they may be unsecure or slow to respond. If you are getting too many warnings due to timeouts, try increasing your timeout in Settings. This will just result in longer wait times, but with more accuracy. You can also disable warnings if you have too many of them.
A status code of 666
is a code we use to force invalid URL code 0
to be a broken link in case warnings are disabled. It is not an official status code.
Yes, you can omit links from being checked for validity by using the “Omit” link in the scan results, or by entering them in manually under Omitted Links. Likewise, you can omit pages from being scanned from the results page or Omitted Pages. Wildcards (*) are accepted.
Sometimes links are hidden with CSS or inside modals/popups. To find hidden links, go to the page and either open your developer console or view the page source and search for the link. This will show you where it is and which element to look in. Then you can edit the page accordingly. This is more advanced and may require some assistance, so feel free to reach out to me for help.
The Multi-Scan link count does not include links that are filtered out from the pre-check.
We skip links that start with #
(anchor tags and JavaScript) or ?
(query strings), non-http url schemes (such as mailto:
, tel:
, data:
, etc. ), and any links you have omitted.
There are other plugins such as Better Search Replace by WP Engine that will quickly replace URLs on your entire site at once.
Yes, there are plenty. The following hooks are available:
* blnotifier_html_link_sources
( Array $sources ) — Filter where the links are found in the content’s HTML
* blnotifier_bad_status_codes
( Array $codes ) — Filter which status codes to signal as bad
* blnotifier_warning_status_codes
( Array $codes ) — Filter which status codes to signal as warning only
* blnotifier_omitted_links
( Array $links ) — Filter your omitted links
* blnotifier_omitted_pages
( Array $pages ) — Filter your omitted pages
* blnotifier_omitted_pageload_post_types
( Array $post_types ) — Filter the post types that you don’t want to scan on page load
* blnotifier_omitted_multiscan_post_types
( Array $post_types ) — Filter the post types that you don’t want to allow for Multi-Scan option
* blnotifier_link_before_prechecks
( String|Array|False $link ) — Filter the link before checking anything
* blnotifier_status
( Array $status ) — Filter the status that is returned when checking a link for validity after all pre-checks are done
* blnotifier_http_request_args
( Array $args, String $link ) — Filter the http request args
* blnotifier_remove_source_qs
( Array $query_strings ) — Filter the query strings to remove from source url on page load scans
* blnotifier_url_schemes
( Array $schemes ) — Filter the URL Schemes skipped during pre-checks
* blnotifier_capability
( String $capability ) — Change the user capability for viewing the plugin reports and settings on the back-end
* blnotifier_suggested_offsite_checkers
( Array $checkers ) — Filter the list of suggested offsite checkers on Multi-Scan page
* blnotifier_notify
( Array $flagged, Int $flagged_count, Array $all_links, String $source_url ) — Action hook that fires when notifying you of new broken links and warning links that are found on page load
* blnotifier_email_emails
( String|Array $emails, Array $flagged, String $source_url ) — Filter the emails that the email notifications are sent to
* blnotifier_email_subject
( String $subject, Array $flagged, String $source_url ) — Filter the subject that the email notifications are sent with
* blnotifier_email_message
( String $message, Array $flagged, String $source_url ) — Filter the message that the email notifications are sent with
* blnotifier_email_headers
( Array $headers, Array $flagged, String $source_url ) — Filter the headers used in the email notifications
* blnotifier_discord_args
( Array $args, Array $flagged, String $source_url ) — Filter the Discord webhook args
* blnotifier_msteams_args
( Array $args, Array $flagged, String $source_url ) — Filter the Microsoft Teams webhook args
* blnotifier_strings_to_replace
( Array $strings_to_replace ) — Filter the strings to replace on the link
"×" => "x"
, which is being converted in images with sizes (ie _100x66.png)blnotifier_strings_to_replace
for replacing simple characters