Linux 软件免费装
Banner图

Waymender – Broken Link Checker, 404 Monitor & Redirects

开发者 emtiazzahid
更新时间 2026年10月13日 18:21
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

redirects broken links broken link checker 404 monitor dead links

下载

1.0.0

详情介绍:

https://www.youtube.com/watch?v=mSS2SbXDBOs Broken links cost you readers, rankings and trust. Most link checkers either hammer your server and the sites you link to, or leave you with a spreadsheet and no way to fix anything. Waymender does three things, and does them gently: 1. Scan. Links and images in your posts, pages, custom post types, custom fields, custom-link menu items, Block, Text and Custom HTML widgets, term descriptions and page-builder content (Elementor, Bricks, Beaver Builder, Divi, WPBakery) are collected and checked in the background, in small batches with a politeness delay between link checks on the same domain, so no host is hammered and your own site never waits on a check. Menu items that point to a page, post or category are not scanned. Known anti-bot sites (LinkedIn, Instagram, Amazon…) are never requested; they are listed for manual review instead. A failure has to happen twice, at least six hours apart, before a link is called broken, so a hiccup never wakes you up. The exception is "Recheck now" on a link that has already failed once: that check confirms it immediately, so if it fails again the link is marked broken straight away. 2. Fix. From the Links screen you can: The editor sidebar lists the problem links in the post you are editing and offers Unlink and Remove right there; its "More options" link opens the Links screen for the other fixes. In the classic editor, a "Waymender: link problems" box links to the Links screen filtered to that post. Fixes to post content and excerpts are saved through WordPress, so they create a normal post revision when the post type supports revisions. Menus, widgets, term descriptions, comments, custom fields and page-builder data have no revisions. For every fix, wherever the link is, Waymender's fix log (the waymender_fix_log database table) records the old URL, the new URL (empty for Unlink and Remove), the action, the ID of the user who made it and the time, plus the revision ID when a revision was created. The log is only stored in the database: there is no screen for it and no undo. A menu item cannot be unlinked (edit or remove it under Appearance → Menus). A custom field that holds nothing but the URL gets the new URL, or is emptied when you unlink or remove it (you are told when that happens); an ACF link field keeps its title and target when its URL is replaced. When an archived copy replaces a link, rel="nofollow" (on by default) is added to the link's existing rel value, never duplicated. That applies to HTML links in post content, excerpts, widgets, term descriptions, comments and HTML custom fields; menu items, custom fields that hold only a URL, and page-builder data keep their rel unchanged. 3. 404 log and redirects. Pages visitors could not find are logged with hit counts, referrers and a suggested target (fuzzy slug matching, date-prefix and case rules). One click turns an entry into a 301/302/307/410 rule. Wildcards, CSV import/export, and automatic hand-off when the Redirection plugin is active. Hit counts are sampled: each rule counts at most one hit per minute. To keep a flood of random URLs from filling the database, the 404 log records at most 120 hits per clock minute across the whole site (filterable with waymender_404_writes_per_minute); further 404s in that minute are not logged or counted. Built to be light Hooks for developers waymender_http_args, waymender_excluded_hosts, waymender_antibot_hosts, waymender_extract_sources, waymender_extracted_links, waymender_status_for_response, waymender_before_fix, waymender_after_fix, waymender_404_ignore, waymender_suggestions, waymender_scan_started, waymender_scan_complete, waymender_url_checked, waymender_capability, waymender_404_writes_per_minute, waymender_redirection_active. More plugins by Emtiaz Zahid

安装:

  1. Upload the plugin to /wp-content/plugins/waymender or install it from the Plugins screen.
  2. Activate it.
  3. Open Waymender → Links and click Scan now. The 404 log starts recording on activation.

屏幕截图:

  • Link detail: edit, unlink, use an archived copy or redirect, with instant verification.
  • 404 log with hit counts, referrers and suggested redirect targets.
  • Redirects: exact and wildcard rules, hit counts, CSV import/export.
  • Editor sidebar showing link problems in the post you are editing.
  • Settings: what to scan, politeness, exclusions, 404 log and notifications.

常见问题:

Will scanning slow down my site?

No. Scans run in the background in small batches with a delay between link checks on the same domain, and the batch size adapts to how fast your server answers. Working links are cached for seven days and not re-requested.

Why is a link "blocked" instead of "broken"?

The destination refuses automated requests (LinkedIn, Instagram, Cloudflare challenges…). Waymender does not pretend to know; it lists these separately so you can check them by hand. A link that answers 429 (rate limited) or 503 (temporarily unavailable) is listed as blocked too, but it is checked again automatically: the hourly re-check picks it up once the site's Retry-After time has passed (never sooner than 5 minutes or later than 7 days), or after 3 hours when the site sends no Retry-After. Its status line says when, for example "HTTP 429 (rate limited, rechecks after 3h)".

Does it work with page builders?

Yes. Elementor, Bricks and Beaver Builder data is read from post meta (Settings → What to scan → "Page builder data stored in post meta"). Divi and WPBakery shortcodes live in the post content and are read with it: every attribute whose name ends in url, src, image, link, href or logo, plus Divi's src_webm, audio, background_video_mp4 and background_video_webm and WPBakery's custom_links (a comma- or newline-separated list, also when WPBakery stores it #E-8_-encoded). WPBakery's encoded link format (url:…|title:…) is read too. Numeric image attributes are attachment IDs, not URLs, and are not checked. Divi's _et_pb_old_content backup of the pre-builder content is not scanned, because the page does not show it. For Elementor, Bricks and Beaver Builder, fixes are written into the stored builder data: Edit URL, Use archived copy and Replace image put the new address in place of the old one wherever it appears in that page's builder data, and Unlink and Remove empty it there. For Divi and WPBakery, Edit URL, Use archived copy and Replace image rewrite the URL inside that one shortcode attribute (WPBakery links keep their title and target; in a custom_links list only that entry changes, and an encoded list stays encoded); Unlink and Remove are refused with a message, because taking a link or image out of a builder element has to be done in the page builder. Page-builder links keep their rel attribute; no nofollow is added. After a fix, the builder's generated CSS/asset cache is cleared for Elementor, Beaver Builder and Divi through their own functions. Waymender does not clear Bricks' generated files.

What about the Redirection plugin?

If Redirection is active and Settings → Redirects → Redirect engine is on "Automatic" (the default), every redirect you create, edit, switch off or delete in Waymender is written to a Redirection group called "Waymender", and Waymender stops serving redirects itself, so each rule runs exactly once. Rules you made before Redirection was activated can be copied across with one button on the Redirects screen. Wildcard rules become Redirection regular-expression rules. Choose "Always on" to serve redirects from Waymender instead, or "Off" to switch its redirects off entirely. When you switch from "Automatic" to "Always on" or "Off" while Redirection is active, Waymender deletes the redirects it wrote to Redirection (rules you made in Redirection itself are not touched), so no rule is served twice or left behind there. Switch back to "Automatic" and the Redirects screen shows the "Copy N existing redirects to Redirection" button again, N being the number of rules waiting to be copied.

Does the plugin send anything to its author?

No. Waymender has no server of its own and sends no usage statistics or telemetry. It contacts nothing until you start a scan, and then only the addresses listed under "External services" above: the sites your own content links to, one WordPress.org request if a check fails with a DNS error, and the Internet Archive when you ask for an archived replacement.

Does the bundled Action Scheduler conflict with other plugins?

No. Waymender loads Action Scheduler 3.9.3 from lib/action-scheduler/. Action Scheduler is built for this: each copy registers its version with ActionScheduler_Versions behind function_exists() and class_exists() guards, and only the newest copy on the site boots. WooCommerce and other plugins that bundle it share the same mechanism.

Where is the JavaScript source?

The admin app and the editor integration ship un-minified in assets/src/; the files in assets/build/ are produced from them with npm install && npm run build (the package.json is included). The bundled Action Scheduler library in lib/ is unmodified upstream code under its own GPL licence. Nothing else is compiled or obfuscated.

Can editors fix links?

Anyone who can edit a post can fix the links in that post's content and excerpt (Edit URL, Use archived copy, Replace image, Unlink and Remove) and dismiss them. The editor sidebar lists the post's problem links and offers Unlink and Remove; the plugin's REST route for a single fix (POST /wp-json/waymender/v1/fix/<id>) accepts the other fixes from the same users. Fixing links anywhere else (custom fields, page-builder data, menus, widgets, term descriptions, comments), fixing every occurrence of a URL at once, creating a redirect, and the Links, 404 log and Redirects screens need the manage_options capability (administrators by default). Every one of these checks goes through the waymender_capability filter, which receives a context: rest for the fix and other REST routes, redirects for creating redirects and the Redirects screen, and menu for the admin menu.

更新日志:

1.0.0