# Redirects

Send an old address on your site to a new URL, pause or delete it, and read how many hits it gets.
Page: https://docs.linkmanagerpro.com/features/redirects
Use when someone asks: wordpress redirects; 301 vs 302 vs 307 redirect; pause a redirect; redirect hits report
Intent: How-to / Info

A redirect sends anyone who opens an old address on your site to a new URL, with no short link in between. Use these WordPress redirects when you move, rename or delete a page, so visitors and search engines don't land on a 404. You'll find them under Link Manager › Link Intelligence › Redirects. Each redirect counts its hits and has its own report.

## Short link or redirect: which one do you need?

Pick a redirect when an old address on your site must keep working exactly as it was, like `yoursite.com/old-blog-post` after you moved that post. Pick a short link when you want a new address to share or put in posts, like `yoursite.com/link/deal`. A short link has more options, and a redirect is simpler.

| | Redirect | Short link |
|---|---|---|
| Address | Any path on your site you choose, for example `/old-blog-post` | Your **Short link prefix** plus a slug, for example `/link/deal`. Links to your affiliates can use the **Affiliate link prefix** ([General settings](https://docs.linkmanagerpro.com/guides/settings/general#affiliate-link-prefix)) |
| Typical use | A page that moved or was deleted | An affiliate or campaign link you share or put in posts |
| What it counts | **Hits** | **Clicks** |
| Extras | **Redirect type** and an on or off switch | Routing rules, passwords, UTM parameters, forwarded query parameters, auto-linking |

Redirects don't show in **Short Links**, and their hits aren't counted as clicks ([how hits are counted](#how-are-redirect-hits-counted)). To keep an old link address from another plugin working, you usually don't need a redirect: the import keeps it as an [other address](https://docs.linkmanagerpro.com/guides/other-addresses) of the short link.

## Create a redirect

You create a redirect in the **New redirect** dialog: an old address on your site, where it goes, and the redirect type. Anyone who can open Link Manager can create, edit and delete redirects.

Link Manager › Link Intelligence › Redirects

Select **New redirect**, fill in the fields, and select **Create redirect**. The new redirect shows at the top of the list. To check it, open the old address: you land on the destination, and the list's **Hits** goes up by one (unless your visit is filtered as a bot or blocked IP, or repeats more than 30 times in 5 minutes). The report can take a few minutes to catch up. For the full walk, see [Redirect an old URL](https://docs.linkmanagerpro.com/tutorials/redirect-links).

- **Source URL**: the old path, like `/old-page`, or a full address on your site. On a site installed in a folder, such as `yoursite.com/blog/`, include the folder: `/blog/old-page`.
- **Destination URL**: the full address to send visitors to, starting with `https://` or `http://`. It can be on your site or on another site.
- **Redirect type**: starts with your **Default redirect type** (301 unless you or a WP-CLI import with `--items=settings` or a browser import with **Settings** ticked changed it; see [Migrate to Link Manager Pro](https://docs.linkmanagerpro.com/migration/)).
- **Active**: on redirects straight away. Turn it off to save the redirect paused.

If you close the dialog after typing, it asks whether to discard what you entered. Problems show under their field, for example:

| Message | Why |
|---|---|
| "The source URL must be on this site." | The source is on another domain. Your own domain with or without `www.` is fine |
| "You can’t redirect the home page." | The source is `/` |
| "An active redirect for this source URL already exists." | Another active redirect uses the same source. Edit that one instead |
| "The source and target URLs cannot be the same." | The destination is the source itself |
| "The target_url format is invalid." | The destination has no `https://` or `http://` in front, like `example.com/page`. Add it |
| "Enter a full URL, starting with https://" | The destination is another kind of address, like `ftp://example.com/file` |

When an active redirect takes an address that another short link had as an other address, a warning names it. A redirect saved paused gives none. For example "/deal also opened deal-2; it now opens this redirect."

## 301 vs 302 vs 307: which redirect type?

Choose 301 (permanent) when the old address is gone for good, for example a post you moved or merged. Choose 302 or 307 (temporary) when the old address is coming back, for example a page that's offline for a few weeks. The **Redirect type** list adds the word to each number, like Permanent or Temporary. The dialog's own advice: "301 for a permanent move (search engines update). 302 or 307 while it’s temporary."

- 301, permanent: the page moved for good.
- 302, temporary: the old page returns later, for example during a short sale or maintenance.
- 307, temporary and keeps the method: like 302, but a browser repeats the same kind of request, so a form sent to the old address is sent again to the new one.

Every redirect sends visitors with its own type. The **Default redirect type** under Link Manager › Settings › Redirection only picks the type a new redirect starts with ([Redirection settings](https://docs.linkmanagerpro.com/guides/settings/redirection)).

## Which visits does a redirect match?

A redirect matches one exact path on your site, on `http` or `https` and with or without `www.`. It ignores a slash at the end and, when its source has no query string, anything after `?`. Letter case counts, and there are no wildcards, so `/old-page` doesn't cover the pages below it.

| Visit to | Source `/old-page` | Why |
|---|---|---|
| `/old-page` | Matches | |
| `/old-page/` | Matches | A slash at the end is ignored |
| `/old-page?utm_source=mail` | Matches | A source without `?` matches any query string |
| `https://www.yoursite.com/old-page` | Matches | `http` and `https`, with or without `www.`, all count |
| `/Old-Page` | No match | Letter case counts |
| `/old-page/part-2` | No match | Only the exact path matches. There are no wildcards |

- A source with a query string, like `/index.php?page_id=12`, matches only visits with exactly those parameters, in any order. A visit with an extra parameter doesn't match it.
- Redirects imported from BetterLinks with an all-lowercase source are the one exception to letter case: they also answer `/Old-Blog-Post` ([BetterLinks](https://docs.linkmanagerpro.com/migration/betterlinks#import-betterlinks-301-redirects)).
- Characters like `ö` or `ж` can be typed as they are or pasted percent-encoded. Both are the same source.
- The visitor's query string isn't passed on to the destination.
- Your **Site-wide UTM parameters** are added when the destination is on another site. For a destination on your own site, only with **Add them to redirects within this site** turned on ([Redirection settings](https://docs.linkmanagerpro.com/guides/settings/redirection)).

### What answers first?

An active redirect answers before the WordPress page at the same path. It also answers before WordPress's own guesses, such as an old post slug or its guess at what a missing address meant. A live short link's own address, like `/link/deal`, still wins over a redirect. A paused redirect doesn't answer at all. The full order, with short links and other addresses, is in [How is a visit to an other address answered?](https://docs.linkmanagerpro.com/guides/other-addresses#how-is-a-visit-to-an-other-address-answered)

So a redirect can hide a live page. The Redirects screen warns you when that happens ([review panels](#review-panels-on-the-redirects-screen)).

## The Redirects list

The list shows every redirect with its **Source**, **Destination URL**, **Redirect type**, **Hits** and **Status**. Select a row to open its report.

[Screenshot: The Redirects list with the first 10 of 22 redirects, marked: 1 the Paused tab, 2 the Hits column]

- **All**, **Active** and **Paused** (1) filter the list by **Status**.
- The search box finds a redirect by part of its source or destination, for example `old` or `example.com`.
- **Hits** (2) is each redirect's total hit count ([how hits are counted](#how-are-redirect-hits-counted)).
- A destination on your site shows as its path, like `/sample-page/`. One on another site shows in full.
- The icons at the end of each row are **View report**, **Edit** and **Delete**. Point at one to see its name.

The newest redirect comes first, 10 to a page.

## Pause a redirect

Pausing switches a redirect off without deleting it. Its hit history stays, and you can turn it back on at any time.

1. Open the redirect: select **Edit** on its row, or the pencil button (**Edit redirect**) in its report.
2. Turn off **Active**. The note under it changes to "Paused: visitors see the page at the source URL (or your 404) until you turn it on."
3. Select **Save changes**.

To turn it on again, do the same and turn **Active** back on. In the report, a paused redirect also has a **Turn on** button under **Health**, and an unused one a **Pause redirect** button ([Read a redirect's report](#read-a-redirect-s-report)). Those two buttons work straight away and show **Undo** for a moment. **Turn on** also shows the address warning when it takes an other address.

While a redirect is paused:

- Nobody is sent on, and no hits are counted.
- WordPress answers the old address: the page there, or your 404 page.
- If a short link has that path as an [other address](https://docs.linkmanagerpro.com/guides/other-addresses), that short link opens instead, as long as no page is at that path and the plugin the address came from is off ([the full order](https://docs.linkmanagerpro.com/guides/other-addresses#how-is-a-visit-to-an-other-address-answered)). Address conflict counts are checked again the moment you save.
- You can create another active redirect for the same source. Turning the paused one back on is then refused, because only one active redirect can use a source. In the **Edit redirect** dialog, the message "An active redirect for this source URL already exists." says why. The report's **Turn on** button shows the same reason. It shows "The redirect couldn’t be changed. Try again." only when the server gives none.

## Edit or delete a redirect

Edit a redirect to change its source, destination or type. Delete it only when you no longer need its hit history.

- To edit, select **Edit** on its row, change the fields, and select **Save changes**. The hits stay with the redirect.
- After you create, edit or delete a redirect, Link Manager Pro asks your page cache to clear, so visitors get the new answer. That works with WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache and WP Fastest Cache, while **Clear page cache when links change** is on (the default).

::: warning
Deleting a redirect also deletes every hit it recorded, and it can't be undone. The old address stops redirecting at once. To keep the history, pause the redirect instead. A backup brings a redirect back when you restore **Short links** and **Redirects**, and its hits when you also restore **Clicks**. A restore replaces all your current data in each item you tick ([Back up and restore](https://docs.linkmanagerpro.com/guides/backup-restore)).
:::

To delete one, select **Delete** on its row, or **Delete** at the bottom left of the **Edit redirect** dialog. The confirmation names the source and says "Visitors get whatever your site has at that address, or its 404 page." When the redirect has hits, it adds "Also deleted: its hit count (N) and hit history. To keep them, pause the redirect instead." N is the list's **Hits** column, which can be more than the report shows. With no hits it says "To keep it for later, pause the redirect instead." Select **Delete** to go ahead.

If a short link has the source as an other address, the conflict counts catch up at the daily check, not at once ([when conflicts are checked again](https://docs.linkmanagerpro.com/guides/other-addresses#when-conflicts-are-checked-again)).

## Read a redirect's report

A redirect's report answers one question: is the old address still in use? Open it by selecting the redirect in the list. It covers every hit recorded since the redirect was created.

[Screenshot: At a glance in the report of the redirect /docs/old-page, marked: 1 Hits 13 total, 2 From search 8%, 3 Health Keep with 11 hits in the last 30 days]

**At a glance** sums it up:

- **Hits** (1) and **Unique hits**: recorded hits, and first hits per visitor.
- **From search** (2): the share of hits whose referrer is a search engine, such as Google or Bing. A high share means the old address still shows in search results. Only the 10 biggest referrers are checked, so the share can come out low.
- **Where hits come from**: **Your content**, **Your other pages**, **Other sites** and **Direct or unknown**.
- **Old address** with its redirect type, **Goes to**, **Last hit**, **Created** and **Status**.
- **Health** (3): a verdict from the daily hits, below.

| Health | When | Button |
|---|---|---|
| **Keep** | At least one hit in the last 30 days | |
| **Review** | The last hit was 30 to 89 days ago | |
| **Retire** | No hit for 90 days or more, or no hit ever in at least 90 days of history | **Pause redirect** |
| **New** | Never a hit, and less than 90 days of history | |
| **Unclear** | No recent hits, but some of the last 90 days may not be recorded | |
| **Paused** | The redirect is off | **Turn on** |

**Unclear** shows instead of **Review** or **Retire** when the report can't be sure the address went unused. That's the case, for example, while **Click tracking** is off or **Keep click data for** is shorter than 90 days. It's also the case when, in the last 90 days, tracking was turned back on, that setting changed or clicks were restored from a backup. On a site where Link Manager Pro has run for less than 90 days, one 30-day stretch without any recorded click on the whole site does it too.

Below **At a glance**:

- **Hits over time**: hits and unique hits per day, week or month.
- **Where hits start**: three tabs. **Referring sites** lists the 5 sites that sent the most hits, then the rest in one row (for example "Other sites · 3 more"), with **Direct or unknown** last. Visits from your own pages show as a **Your other pages** row. **Recent hits** lists each hit with its time, where it came from, country and device.
- **Visitors by country** and **Devices & browsers**.

The **Posts** tab, with its **Post (still links to the old address)** column, lists hits credited to a post on your site. A visit through a redirect is never credited to a post, though. So for hits a redirect counts itself, the tab shows "No hits from your posts yet." and **Your content** stays at 0%. A visit from one of your own pages or posts shows as a **Your other pages** row under **Referring sites**, and in the **Your other pages** slice under **Where hits come from**.

## How are redirect hits counted?

A hit is one visit that an active redirect sends on to its destination. Hits are counted the way short link clicks are, with the same bot filter and the same unique-visitor rule. They're kept apart from clicks everywhere, so your short link numbers never include them.

- Separate from clicks. The Dashboard's **Clicks** and every short link report leave redirect hits out. The Dashboard's **All time** card shows them on their own row, **Redirect hits**.
- Bots don't count. With **Ignore bots** on (the default), visits from known bots and crawlers are sent on but not counted. That's the built-in list, or your **Extra bot patterns** in its place when you enter any. Neither are visits from your **Blocked IP addresses**.
- Repeat visits are capped. More than 30 hits from the same IP address on one redirect within 5 minutes aren't counted. Those visitors are still sent on.
- **Unique hits** are first visits per visitor. A hit is unique when neither its tracking cookie nor its IP address and browser have reached this redirect before. With **Anonymize IP addresses** on, "the same IP address" means the same network.
- Two numbers. **Hits** in the list is a lifetime counter. It keeps counting while **Click tracking** is off, and deleting old click data doesn't lower it. The report counts only hits recorded with their details, so it can show fewer.

An example: a redirect shows 17 **Hits** in the list and 13 in its report. Four of its hits were counted without details, for example while **Click tracking** was off, so the report and its Health check leave them out.

## Review panels on the Redirects screen

Above the list, Link Manager Pro shows a panel when some redirects need a look. Each panel lists the redirects concerned, and nothing changes until you act.

| Panel | What it means | What you can do |
|---|---|---|
| "1 redirect covers a live page", or the number of redirects that do | An active redirect's source is a published post or page, so visitors never see it | Select the source to open its report. Edit or delete the redirect if the page should stay reachable |
| **Redirects saved under another address** | Redirects saved while your site had a different domain. They don't work now | If that domain was this site, select **Adopt address** (administrators only). They then work again, unchanged |
| **Redirects to save again** | The stored address was changed outside Link Manager Pro, for example by a site migration tool, so it no longer matches visits | Select **Save again** on each one |
| **Redirects without a target** | The redirect lost what it sends visitors to, for example after restoring only part of a backup, so it doesn't redirect. It doesn't appear in the list below | Select its source in the panel. Its report says "This redirect has no destination" with an **Edit redirect** button. In the dialog, enter a destination and save: the redirect gets a new hidden link, and its hits start from 0. Or select **Delete** at the bottom left, then **Delete** again to confirm |

The live-page panel lists up to 50 redirects. A long check keeps its place and continues each time you open the page. While part is unchecked, the page says "Checked part of your redirects. Open this page again in 10 minutes to check the rest." When no match turned up in the part checked so far, an info alert with the title "Checked part of your redirects" says "No redirect checked so far covers a live page." A partial result is kept for 10 minutes and a finished one for a day. Any change to a redirect refreshes it.

## Other ways to create redirects

Besides **New redirect**, four features add redirects to the same list.

- Link Health: **Fix with a redirect** on a broken address of your own site creates a redirect ([Link Health](https://docs.linkmanagerpro.com/features/health-monitoring)). For an address on another site, it makes a short link instead. The source is kept exactly as Link Health found it, so the slash and query string rules above apply only after you edit and save the redirect.
- BetterLinks import: redirects from its Simple 301 Redirects importer ([BetterLinks](https://docs.linkmanagerpro.com/migration/betterlinks#import-betterlinks-301-redirects)).
- Rank Math and SEOPress import: under Link Manager › Settings › Integrations ([Import SEO plugin redirects](https://docs.linkmanagerpro.com/migration/seo-plugin-redirects)).
- Restoring a backup with **Short links** and **Redirects** ticked, plus **Clicks** for their hits ([Back up and restore](https://docs.linkmanagerpro.com/guides/backup-restore)). **Redirects** alone gives redirects without a target.

WP-CLI has no command to add or list redirects. `wp link-manager-pro import --source=betterlinks` brings BetterLinks redirects along with its links ([WP-CLI commands](https://docs.linkmanagerpro.com/guides/wp-cli)).

## Details

| Field or rule | Default | Choices or limit | What it does |
|---|---|---|---|
| **Source URL** | | A path or full address on your site, up to 2,048 characters. Not the home page | The address that's redirected |
| **Destination URL** | | A full `http` or `https` address, up to 2,048 characters | Where visitors are sent |
| **Redirect type** | Your **Default redirect type** (301) | 301, 302, 307 | The status code visitors get |
| **Active** | On | On or off | Off pauses the redirect |
| Active redirects per source | | 1 | |
| Page cache clearing | On | At most once every 30 seconds, plus one more clear after a burst | **Clear page cache when links change**, Link Manager › Settings › Integrations |

## Get more out of it

A few habits keep your redirects useful and your list short.

- Use the Health check before you clean up. **Retire** means nobody used the old address for 90 days. Select **Pause redirect** rather than deleting it: the history stays, and **Turn on** brings it back in one click.
- Watch From search after a move. A 301 that still gets a high **From search** share means search engines still list the old address. Keep it active.
- Fix the links you control. When **Referring sites** shows your own domain, some page on your site, such as a post, still links to the old address. Update those links, so the visit skips the redirect.
- Send 404s to a real page. Under [Link Health](https://docs.linkmanagerpro.com/features/health-monitoring), **Visitor 404s** lists addresses people hit that don't exist. **Fix with a redirect** turns one into a redirect in one step.
- Use 302 for a short campaign: point `/summer-sale` at your sale page with the redirect type 302, then pause it when the sale ends so the address is ready for next time ([Redirect an old URL](https://docs.linkmanagerpro.com/tutorials/redirect-links)).

## If something goes wrong

- If a redirect doesn't send you anywhere, then check that its **Status** is **Active** and that the letter case and path match the source exactly, including any folder your site is installed in.
- If a page opens instead of the redirect, then clear your page cache. A cache plugin that Link Manager Pro doesn't clear can keep serving the old page.
- If the old address shows a short link instead, then that path is a short link's own address, like `/link/deal`. The short link wins: pick another source, or change the link's slug.
- If saving says an active redirect already exists, or **Turn on** shows the same message, then another active redirect has that source. **Turn on** shows "An active redirect for this source URL already exists." in that case. Search the list for it and edit or pause that one.
- If the report shows fewer hits than the list, then some hits were counted without details, for example while **Click tracking** was off ([how hits are counted](#how-are-redirect-hits-counted)).

More fixes are on [Troubleshooting](https://docs.linkmanagerpro.com/troubleshooting).

## Related

- [Redirect an old URL](https://docs.linkmanagerpro.com/tutorials/redirect-links)
- [Link Health](https://docs.linkmanagerpro.com/features/health-monitoring)
- [Other addresses and conflicts](https://docs.linkmanagerpro.com/guides/other-addresses)
- [Redirection settings](https://docs.linkmanagerpro.com/guides/settings/redirection)
- [Troubleshooting](https://docs.linkmanagerpro.com/troubleshooting)
