All 18 Redirects sections

See every section

Broken links

Updated Redirects 1.8.1Tested with WordPress 7.1

Redirects → Broken links.

Every address somebody asks this site for and does not find is listed here, busiest first, with the page that linked to it. That last column is what turns "something is broken" into "the link in last March's newsletter is broken".

Probably meant#

Where the plugin can see an obvious candidate, the row offers it: a published page whose name is close enough to the broken address that it is almost certainly the one. Clicking it opens the redirect form with both halves filled in.

Most rows show nothing in that column, and that is the point. A confident wrong suggestion is worse than none — somebody working down a list at speed will take it — so it stays quiet unless the match is a good one and clearly better than the runner-up. Two pages that fit about as well get no suggestion, because picking one of them would be a coin toss dressed up as an answer.

A page, post or product you deleted shows where it lived there first, when it had such a place: Where it lived: Shoes (product category). See Pages you delete, below.

Redirect this opens the redirect form with the address already filled in. Two buttons take a row off the list without making a redirect, and they are different answers:

  • Remove from the list deletes the row. If somebody asks for the address again it comes back, which is right for a link you have just fixed at the other end.
  • Never list this again deletes the row and adds the address to Never list these addresses under Settings → Watching for broken links, so it stays off however often it is asked for. This is the one for an address a bot keeps trying, which would otherwise be back at the top within hours.

When any addresses are kept off this way, a line above the table says how many lines that list holds, with a link to it.

Saving a redirect for an address takes that address off the list, whichever way it was made: the form, the editor's panel, a renamed page, an imported file, or wp trrd add and wp trrd import. That holds for a redirect saved switched off as well. A section rule such as /blog/* names no one address, so the addresses under it stay on the list: remove them, or let them age out.

Tick several and use With the ones ticked… at the top to remove them, never list them again, or redirect each to where it lived, together. The same bar on the Redirects screen switches several redirects on or off, deletes them, or points each straight at its final address. The last of each asks first.

Pages you delete#

Deleting or binning a published page is the other way to make a dead end, and unlike a rename there is nothing to work out a destination from. So the page's address goes straight onto this list, marked you deleted this page and carrying its title — with no hits, because nobody has asked for it yet.

It sits at the top rather than at the bottom, which is where a busiest-first list would otherwise put something with no hits. The day you delete a page is the day you are thinking about it.

If the page had been renamed, its older addresses go onto the list with it, under the same title, and the redirects the renames made for them are deleted, because they led to the address that is now gone. That leaves one place to decide where all of its visitors should go, as for a deleted category. This happens only while Keep a list of addresses that were not found is on under Settings, and not when you have a redirect of your own for the page's last address: that already catches its visitors, the older addresses' included. Posts and products are treated the same way as pages here.

A page that was already in the bin when you updated to this version, or that you binned while the list was switched off, still has those redirects. They are dealt with in the same way when the bin is emptied, by you or by WordPress after 30 days (unless your site sets another number), as long as the list is on by then.

Binning a page is not final, so the redirects it lost are remembered. Restore it from the bin and publish it again, and they come back, pointing at the address it has then, with their visit counts, and the page's addresses leave Broken links. WordPress restores a page as a draft, and nothing comes back until it is published: a redirect to a draft would be another dead end. WooCommerce restores a product already published, so its redirects come back straight away. Published under a different address from the one it was binned at, that address redirects to the new one alongside them, as a rename would, while Keep the old address working when a page is renamed is on.

An old address that something else answers by then is left alone: a redirect you wrote for it while the page was in the bin, or a page, post or category published there since. Nothing comes back that would send visitors round in circles. Deleting a page permanently, or emptying the bin, forgets what binning took away.

Where a deleted page lived#

The usual answer for a product you have stopped selling is its own category, and the same answer fits the rest: a post's category, a child page's parent, a category's parent. So that is worked out the moment you delete or bin it, while it still has its categories, and shown on its row under Probably meant: Where it lived: Shoes (product category), Where it lived: About us (page). One click opens the redirect form with both halves filled in, the deleted address and the category's, exactly as WordPress writes it, with its trailing slash, so visitors land on the category in one step. Nothing is saved until you save the form.

  • A product offers its product category: the one Yoast SEO or Rank Math was told is its primary category, while it still has it, and otherwise the first category it was given. A post offers its category in the same way. WooCommerce's and WordPress's default category, Uncategorized, is never offered, since it says nothing about where something belonged: a post filed only there offers nothing.
  • A page under another page offers its parent. A top-level page offers nothing.
  • A category offers its parent category. A tag has no parent, so it offers nothing.

Only the item's own category or parent is ever offered, never your home page, which search engines can treat as a page that was not found. The place is shown as it is now: renamed since, it is offered at its new address; deleted, unpublished or binned since, it is not offered at all. If a similar-named page would be suggested as well, it is shown after it.

To do several at once, tick them and choose Redirect each to where it lived under With the ones ticked…. Nothing is saved when you press Apply: the screen asks first, Redirect 12 deleted items to where they lived?, lists them, and says how many of those you ticked have no known home and are left as they are. Your answer saves each as a permanent (301) redirect and takes it off the list, and the sentence afterwards says how many had no known home. An address that already has a redirect of yours is never written over, even one switched off, and one that would send visitors round in a circle with your other redirects is left alone. If where it lived is itself redirected now, such as a category you sent to a sale page, each points straight at the address visitors end up at, so no chain is made; one whose way there passes a temporary redirect, or one that answers 410 or leaves your site, is left as it is and counted with the rest. If the ticked rows change in another tab before you answer, such as one being removed or redirected by hand, nothing is saved and the screen says the list changed. Opening the address of that action in a new tab asks again and saves nothing.

Where something lived is worked out only for what you delete from this version on. Rows already on the list from before have no home recorded, and the column stays empty for them, as it always was.

What is left out#

Two kinds of noise are skipped, both switchable under Settings:

  • Addresses scanners ask every site for — /.env, /wp-config.php.bak and a handful of others. They were never links on your site, and a list full of them hides the one that was.
  • Missing files — images, stylesheets, scripts. A missing file is a different job from a moved page, and mixing the two makes the list unreadable.

Never list these addresses#

Settings → Watching for broken links, below those two switches. One address per line; Never list this again on Broken links adds to it, and you can type or delete lines yourself.

  • A line ending in covers a section, cut at a slash the way a section redirect is: /feed/ keeps /feed and /feed/x off the list and still lets /feedback through.
  • Lines are tidied the way addresses are everywhere else in the plugin, so https://example.com/Old-Feed/ is kept as /old-feed, and a line already on the list is dropped.
  • An address with a ?, a #, a % or a space inside it, which bots often ask for, is kept written the way a browser sends it. Never list this again on the row for /product?id=5 adds /product%3Fid=5, which hides that address and not /product.
  • /* is refused, because it would hide every address, and so is /, because the home page is never listed anyway. The sentence after saving says what was left out and why.
  • The list holds 500 addresses, each up to 191 characters, which is the longest address the list records.

Adding an address takes whatever is already listed under it off Broken links at once, however it arrives: typed here, from the Broken links buttons, from wp trrd ignore, or in an imported settings file. Taking a line away does not bring old rows back: the address is listed again the next time somebody asks for it. A page or category you delete is not added either while its address is on the list.

On a site in a subfolder (example.com/shop/), an address that begins with the subfolder's own name again (/shop/…) cannot be kept as itself, so Never list this again leaves that row where it is and says so. Remove from the list still works on it.

This only decides what Broken links writes down. It changes nothing a visitor sees, and it does not redirect anything.

What is recorded#

Which address was asked for, how many times, when it was last asked, and the page that linked to it. Nothing about the visitor: no addresses, no names, no fingerprints, nothing that follows anybody anywhere.

The linking page is kept as its address up to the path, without anything after a question mark or a #. What follows a question mark is often about the person on the page rather than the page: a help-desk link's access key, an order's key, an email campaign's tag for one subscriber. On a site with plain permalinks, where a page of your own site is named by its query (?p=12), the parts that name the page are kept and the rest are not. Linking pages already in the list are cut down the same way, once, the first time a wp-admin page is opened after updating to this version. On a network that happens for each site the first time its own wp-admin is opened.

The list keeps itself to the size and the age you set — by default a thousand addresses and sixty days, oldest first. An address nobody has asked for in two months is either fixed or was never worth fixing.

Still stuck? Ask the developers who wrote it. We aim to reply within one business day.