DOCS / REDIRECTS

redirects

Your Vercel redirect list, editable from a UI. Load the live list, change it, publish it back - no config file, no redeploy.

The edit and publish cycle

The tab loads the live list from Vercel when you open the project, and Refresh reloads it. Everything you do after that - adding, importing, removing - happens locally, and an Unpublished changes badge appears while your list differs from what is live.

Publish writes the list to Vercel. It publishes the whole list, not just your edits, so a redirect you removed is genuinely deleted on publish. The publish button is disabled while there is nothing to publish.

Refreshing before you publish discards local changes in favour of the live list, so publish first if you want to keep them.

Adding one redirect

  • Source path - must start with /, no spaces, no double slashes, up to 2048 characters.
  • Destination - either a path starting with / or a full http(s) URL, with the same length and spacing rules.
  • Status code - 301 or 308 for permanent, 302 or 307 for temporary. 301 is the default.

Validation runs as you type and again when you leave a field. Errors in red block the add; warnings in orange do not. An identical source and destination is treated as an error, since it is a redirect loop, and a duplicate source is rejected against the rows already in the list.

Case sensitivity

Vercel matches paths case-insensitively by default and stores them lowercased. If your paths contain uppercase characters and that matters, tick Match case exactly before adding them - the setting is recorded on each redirect as you add it, and rows added while it was off keep the old behaviour. A warning appears on any path with uppercase characters while the box is unticked.

Bulk import

Expand BULK IMPORT and paste rows from a spreadsheet, CSV or TSV. Tab separated is tried first, then comma:

/old-path      /new-path      301
/another-old   /another-new   302

The status column is optional and defaults to 301. A live preview shows every parsed row with counts for valid, invalid and duplicate. Invalid rows carry the reason; duplicates are sources already in the list or repeated within the paste. Add valid rows imports only the clean ones and leaves the rest for you to fix. Imported rows still need publishing.

The live list

Rows show source, destination and status code, with new unpublished rows tagged new. Click a row to expand a long source and destination onto separate lines. Remove appears on hover and deletes locally until you publish.

The filter box narrows the view by source or destination. It is a view filter only, so publishing while a filter is active still publishes the entire list.

Things worth knowing

  • Query strings in a source may not match - bulk redirects match on path only.
  • Hash fragments are stripped from sources by Vercel.
  • Spaces have to be percent encoded as %20.
  • Publishing stages the list as a new version of your project's Vercel bulk redirects and promotes it, so it takes effect without a redeploy.

Requirements

Vercel project ID and token, plus the Vercel team ID - Vercel's bulk redirects API is team scoped, so publishing fails with a message asking for it if the field is empty.