Skip to content

Commit c09c6a8

Browse files
authored
Release/1.4.3 rc1 (#350)
* Bumped to 1.4.3-RC1 and updated all docs and readmes * Stop tracking .claude/settings.json and add it to .gitignore Also tweak the built-in exclusion list wording (currently includes LinkedIn). * Fix Stable tag typo in readme.txt (1.4.3.-RC1 -> 1.4.3-RC1)
1 parent ba81627 commit c09c6a8

4 files changed

Lines changed: 48 additions & 11 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,4 +403,7 @@ $RECYCLE.BIN/
403403
pack
404404
wayback-link-fixer.zip
405405

406+
# Local Claude Code config
407+
.claude/settings.json
408+
406409
# End of https://www.toptal.com/developers/gitignore/api/node,yarn,linux,macos,windows,sublimetext,phpstorm+all,visualstudiocode

README.md

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
**Requires at least:** 6.4
66
**Tested up to:** 6.9
77
**Requires PHP:** 7.4
8-
**Stable tag:** 1.4.2
8+
**Stable tag:** 1.4.3-RC1
99
**License:** GPL-3.0-or-later
1010
**License URI:** https://www.gnu.org/licenses/gpl-3.0.html
1111

@@ -102,6 +102,14 @@ Specify links to exclude from being checked. This is useful for links known to b
102102
* `https://example.com/*` - Excludes all links starting with `https://example.com/`
103103
* `https://x.com*` - Excludes all links containing `x/twitter` in the domain name
104104

105+
#### Built-in Exclusion List
106+
107+
Some domains are known to block automated link checkers, which would cause their links to be wrongly reported as broken. The plugin ships with a small built-in ("global") exclusion list covering these known offenders (currently includes LinkedIn), applied automatically on top of your own [Link Exclusions](#link-exclusions) list.
108+
109+
Links matched by the built-in list are never checked, fixed, or archived, and this cannot be overridden from an individual link's report. The list is maintained by the plugin and is not editable from the admin UI; if one of these domains is important to you, exclude it another way or reach out so it can be reviewed.
110+
111+
See [Handling False Positives](#handling-false-positives) for guidance on when to use a rule versus excluding a single link.
112+
105113
#### Post Exclusions
106114

107115
![Post Exclusions](./_docs/settings--fixer-post-exclusions.png)
@@ -126,15 +134,17 @@ Specify the number of consecutive failed checks before a link is marked as broke
126134
![Fixer Option](./_docs/settings--fixer-option.png)
127135

128136
You can choose what outcome you want to happen when a link is found to be broken. The options are:
129-
* **Redirect broken links to snapshots on the Wayback Machine** - This will replace the broken link with the archived version, if one exists. If no archived version exists, the link will not be changed. No notice will be given to the user that the link has been replaced.
130-
* **Check broken links but do not redirect them** - Links are still checked and their status recorded internally (so the link report stays up to date), but the link shown to visitors is never changed. Useful for monitoring content without altering the frontend.
137+
* **Redirect broken links to snapshots on the Wayback Machine** - Replaces the broken link with the archived version, if one exists. If no archived version exists, the link is left unchanged. No notice is given to the visitor that the link was swapped.
138+
* **Check broken links but do not redirect them** - Links are still checked and their status recorded in the [Link Table](#link-fixer) (so your reports stay up to date), but the link shown to visitors is never changed. Useful for monitoring link health without altering the frontend.
131139
* **Do not auto check links** - Links are not automatically checked from the frontend and are never changed.
132140

141+
> A link can be wrongly reported as broken when the destination blocks automated checkers. See [Handling False Positives](#handling-false-positives) for how to deal with these.
142+
133143
#### Link Icon
134144

135145
![Link Icon](./_docs/settings--link-icon.png)
136146

137-
When the Fixer Option is set to **Replace Link**, you can optionally display a small icon next to fixed links on the frontend. This lets visitors know the link points to an archived version.
147+
When the Fixer Option is set to **Redirect broken links to snapshots on the Wayback Machine**, you can optionally display a small icon next to fixed links on the frontend. This lets visitors know the link points to an archived version.
138148

139149
The available options are:
140150
* **None** - No icon is displayed (default).
@@ -247,7 +257,7 @@ This will trigger a check of the link to see if it is still active.
247257

248258
This will verify if a link allows checking. If it does not, the link will be excluded from being checked.
249259

250-
> Please note some urls do not allow bots to check the status of the link, this will often result in links being reported as a 403 even if still active and result in false positives.
260+
> Please note some urls do not allow bots to check the status of the link, this will often result in links being reported as a 403 even if still active and result in false positives. See [Handling False Positives](#handling-false-positives).
251261
252262
## Link Report
253263

@@ -277,6 +287,12 @@ This lists all checks, with the date/time plus the resulting http status code. I
277287

278288
This list all posts which the link appears.
279289

290+
### Link Exclusion
291+
292+
Each link report has a **Link Exclusion** panel with an **"Exclude this link"** toggle. Excluding a link stops it from being checked for broken status, fixed automatically, or having snapshots created — useful for a single URL that is a [false positive](#handling-false-positives).
293+
294+
If the link is already matched by your [Link Exclusions](#link-exclusions) settings list or the [built-in exclusion list](#built-in-exclusion-list), the toggle is shown but disabled: those list-based rules take precedence and must be changed in their respective place instead.
295+
280296
## Post/Page List Table
281297

282298
The number of links and how many are broken is shown on the post list table.
@@ -305,6 +321,17 @@ The link count is clickable, this will access a filtered link list for that post
305321
![Link Details](./_docs/link-details.png)
306322
> The link details page.
307323
324+
## Handling False Positives
325+
326+
Some websites block automated bots from reading their pages. When that happens the link checker can receive a `403 Forbidden` (or similar) response and mark the link as **broken even though it works fine in a browser** — a false positive.
327+
328+
There are two ways to deal with this, depending on how widespread the problem is:
329+
330+
1. **Exclude an individual link** — open the link's report and use the [Exclude this link](#link-exclusion) toggle. Best for a one-off URL.
331+
2. **Exclude by rule** — if a whole domain blocks checkers (e.g. a social network), add a wildcard pattern to your [Link Exclusions](#link-exclusions) list, such as `*example.com*`. This covers every current and future link to that domain at once. Some common offenders are already handled by the [built-in exclusion list](#built-in-exclusion-list).
332+
333+
> **Tip:** raising the [Failure Threshold](#failure-threshold) helps avoid *temporary* outages being treated as broken, but it will not help with sites that consistently block bots — for those, exclude the link or add a rule.
334+
308335
## Developer Documentation
309336

310337
### Dependencies
@@ -717,7 +744,7 @@ add_filter( 'iawmlf_link_checker_timeout', function( int $timeout ): int {
717744

718745
#### `iawmlf_should_render_html_link_output`
719746

720-
This filter allows you to control whether the HTML link output should be rendered in the frontend for post loops. By default, this is only enabled when the fixer option is set to "Replace Link".
747+
This filter allows you to control whether the HTML link output should be rendered in the frontend for post loops. By default, this is enabled when the fixer option is set to **Redirect broken links to snapshots on the Wayback Machine** or **Check broken links but do not redirect them** (both need the frontend checker to run), and disabled for **Do not auto check links**.
721748

722749
```php
723750
add_filter( 'iawmlf_should_render_html_link_output', function( bool $allowed, string $option ): bool {
@@ -950,7 +977,7 @@ These filters allow advanced customization of URLs, timeouts, and client impleme
950977

951978
#### `iawmlf_link_icons`
952979

953-
This filter allows you to add custom icons to the link icon selector in settings. The Link Icon setting is only available when the Fixer Option is set to **Replace Link**. Each icon should be an array with `id`, `name`, and `css_rule` keys. The `css_rule` should be a complete CSS rule including selector and braces.
980+
This filter allows you to add custom icons to the link icon selector in settings. The Link Icon setting is only available when the Fixer Option is set to **Redirect broken links to snapshots on the Wayback Machine**. Each icon should be an array with `id`, `name`, and `css_rule` keys. The `css_rule` should be a complete CSS rule including selector and braces.
954981

955982
```php
956983
add_filter( 'iawmlf_link_icons', function( array $icons ): array {

internet-archive-wayback-machine-link-fixer.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* The wayback-link-fixer bootstrap file.
44
*
55
* @since 1.0.0
6-
* @version 1.4.2
6+
* @version 1.4.3-RC1
77
* @author Internet Archive
88
* @license GPL-3.0-or-later
99
*
@@ -12,7 +12,7 @@
1212
* @wordpress-plugin
1313
* Plugin Name: Internet Archive Wayback Machine Link Fixer
1414
* Description: This plugin scans your content for links, replacing broken ones with archived versions from the Wayback Machine. It also features Auto Archiving, which automatically creates snapshots of your own pages and any other links on your site that aren’t yet archived, ensuring long-term accessibility.
15-
* Version: 1.4.2
15+
* Version: 1.4.3-RC1
1616
* Requires at least: 6.4
1717
* Tested up to: 7.0
1818
* Requires PHP: 7.4
@@ -30,7 +30,7 @@
3030
define( 'IAWMLF_BASENAME', plugin_basename( __FILE__ ) );
3131
define( 'IAWMLF_PATH', plugin_dir_path( __FILE__ ) );
3232
define( 'IAWMLF_URL', plugin_dir_url( __FILE__ ) );
33-
define( 'IAWMLF_VERSION', '1.4.2' );
33+
define( 'IAWMLF_VERSION', '1.4.3-RC1' );
3434
define(
3535
'IAWMLF_MINIMUM_VERSIONS',
3636
array(

readme.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Contributors: waybackmachineplugin, wpspecialprojects, cagrimmett, glynnquelch
33
Tags: wayback machine, internet archive, broken links, archive links
44
Requires at least: 6.4
55
Tested up to: 6.9
6-
Stable tag: 1.4.2
6+
Stable tag: 1.4.3-RC1
77
Requires PHP: 7.4
88
License: GPL-3.0-or-later
99
License URI: https://www.gnu.org/licenses/gpl-3.0.html
@@ -46,6 +46,9 @@ Yes, you can enable the Auto Archiver and this will create new snapshots every t
4646
= What happens to broken links? =
4747
When we find a broken link, we update the src on the fly; this means the base content is not edited and remains as created.
4848

49+
= Why is a working link being reported as broken? =
50+
Some websites block automated bots, so the checker can receive a "403 Forbidden" and flag the link as broken even though it works fine in a browser. If this happens you can exclude that single link from its report page, or add a URL rule (with a * wildcard) to the Link Exclusions setting to cover a whole domain.
51+
4952
= How long does this take? =
5053
This all depends on how many links there are within your content. This is all handled in the background but can take many weeks if a site has thousands of links. It is best used as a tool you setup and leave running in the background.
5154

@@ -116,6 +119,10 @@ The Internet Archive is a non-profit organization dedicated to preserving digita
116119

117120
== Changelog ==
118121

122+
= 1.4.3 =
123+
* Adds a global set of excluded urls that will never be archived or checked due to the sites blocking the internet archive.
124+
* Reintroduces a Scan but do nothing outcome for broken links.
125+
119126
= 1.4.2 =
120127
* Fix: Manually excluded links sometimes revert to unexcluded and can still be run through the link checker process. Now fully respects manual exclusions.
121128

0 commit comments

Comments
 (0)