# Create and import redirects

> Send visitors from an old address to a new one, by hand or many at once from a spreadsheet, and export what you have.

Source: https://docs.bifrostorbit.com/cms/editors/redirects/

Open **SEO › Redirects**. Redirects belong to an environment, and the list shows the one chosen in the top bar. Everyone can see redirects; Editors and above can create and change them. A redirect works as soon as it is saved.

## Create one by hand

1. Choose **New redirect**.
2. In **From**, type the old address as a path from the site root, such as `/old-page`.
3. In **To**, start typing to pick a live page, or paste a full address for another site, such as `https://shop.example.com/`. A redirect to a page follows it if the page's address changes later.
4. Choose a **Status code**, then **Create redirect**.

| Status code | Use it when |
| --- | --- |
| **301, moved permanently** | The page has moved for good. Search engines move the old address's ranking to the new one. |
| **302, found (temporary)** | The page is away for a while and will come back. |
| **307, temporary, keeps the method** | As 302, for addresses that receive forms. |
| **308, permanent, keeps the method** | As 301, for addresses that receive forms. |

Browsers remember permanent redirects, sometimes for a long time, so use a temporary one if you may change your mind.

## Chains and loops

A redirect to an address that is itself redirected goes straight to the end, so visitors never hop twice. A redirect that would send visitors in a circle, or make a chain longer than ten steps, is refused when you save it.

If a redirect and a published page share an address, the page is shown.

## Pages that move

When a published page gets a new address, a 301 from the old one is added for you, marked **Created automatically when a URL changed**. Turn this off in the space's [settings](https://docs.bifrostorbit.com/cms/editors/space-settings/) with **Keep the old URL working when a page moves**.

## Turn off or delete

Use the **Enabled** switch to stop a redirect without losing it. To remove one, open the menu at the end of its row and choose **Delete**. Visitors following it then get a not found page. **Hits** shows how often each redirect has been followed.

## Import many at once

1. Choose **Import CSV**.
2. Not sure of the format? Choose **Download a template**: it has the columns and a few example rows. Delete the example rows before importing.
3. Choose your **File**. Nothing is saved yet: the dialog checks every row and lists what would change.
4. Check the list. **New** rows are added, **Changed** rows update a redirect that is already here, **Same** rows are left alone, and **Skipped** rows show why they could not be used.
5. Choose **Import**, followed by the number of redirects.

A file can hold up to 5,000 redirects. Redirects go into the environment chosen in the top bar.

## The CSV columns

The first row names the columns. Only **Source** and **Destination** are required.

| Column | What to put in it |
| --- | --- |
| **Source** | The old address, such as `/old-page`. A full address, such as `https://www.example.com/old-offer`, is cut to its path. |
| **Destination** | A path on this site, such as `/offers`, or a full address on another site. |
| **Status** | 301, 302, 307 or 308. Empty means 301. |
| **Region** | A region key, to redirect in that region only. Empty covers every region. |
| **Locale** | A locale code, such as de-DE, to redirect in that language only. Empty covers every language. |
| **Enabled** | `no`, `false`, `0` or `off` adds the redirect switched off. Anything else, or empty, switches it on. |
| **Note** | Anything you want to remember about it. |

**From**, **Old URL**, **To**, **New URL** and **Status code** are accepted as column names too, so a list from another system often imports as it is.

## Export

Choose **Export CSV** to download every redirect in the environment, in the same columns plus **Hits**. Edit the file and import it again to change many redirects at once.
