GUIDES / IMPORTING THE MAP INTO

How to add 301 redirects to Squarespace in bulk (URL mappings from a csv)

a text box instead of an importer, one line per rule, and a size limit that folder rules keep you under.

by Max Lorenz, Goodaim · updated 10 sep 2026

squarespace url mappings
  • /blog/[name] -> /news/[name] 301wildcard
    every url under /blog
  • /blog/pricing-2024 -> /news/pricing-2024 301301
    one page

SHORT ANSWER

Squarespace does not import a redirect file. It has a text box, settings, then developer tools, then URL mappings, and every line in it is one rule: /old-path -> /new-path 301. A redirect csv becomes that text with one find-and-replace, the whole block is pasted in at once, and it is live on save. The two things to get right are the order, because the first matching line wins, and the size, because the box holds about 2 500 lines.

Which file do I start from?

In Silentfrog, pick squarespace under for in the export and the download is already this file: the mappings text, one /old -> /new 301 line per redirect, wildcard rules as [name] lines at the bottom, ready to paste into the box. Pages that kept their url, rows still unmatched and unverified needs-review rows are left out of it, so nothing gets imported that nobody looked at (the two downloads). The rest of this page says what is in the file and how the import behaves, and it works just as well for a two-column csv of path pairs from anywhere else.

The generic csv next to it is the audit trail: absolute urls, confidence, match type, the unmatched rows with an empty target. Keep it with the project, do not import it.

export

site settings → publishing → 301 redirects, or the data api

the two export buttons — webflow csv and generic csv — next to the option that includes needs-review matches.

the export: the importer picker, the redirects file it produces, and the generic csv next to it.

From a csv to mappings text

Only needed for a path-pair csv from somewhere else; Silentfrog’s squarespace format is already the text below. The csv has lines like this:

fromUrl,toUrl
/blog/(.*),/news/%1
/about-us,/about
/services/web-design,/services/design

Squarespace wants this:

/about-us -> /about 301
/services/web-design -> /services/design 301
/blog/[name] -> /news/[name] 301

Four edits in any text editor turn one into the other:

  • delete the header line,
  • replace every comma with -> , spaces included,
  • add 301 to the end of every line,
  • rewrite wildcard rows: (.*) becomes [name] on the left and %1 becomes [name] on the right.

In a spreadsheet the same thing is one formula in a third column, =A2&" -> "&B2&" 301", copied down and pasted as text.

Order matters

Mappings are read top to bottom and the first line that matches wins. A folder rule near the top swallows every specific rule below it for the same folder. Silentfrog writes wildcard rows first in the csv, which is right for Webflow, where wildcard rows are listed above the specific ones and the specific ones are already omitted. For Squarespace, move the [name] lines to the bottom of the block, so a specific rule for one post can still point somewhere else.

EXAMPLE

/blog/[name] -> /news/[name] 301 at the top would send /blog/pricing-2024 to /news/pricing-2024 even though the line below it says /blog/pricing-2024 -> /pricing 301. Swapped, both work.

Limits and what does not work

  • 400 KB, about 2 500 lines. If the block is longer, more folders need to become [name] rules, and rules from earlier redesigns that no longer get hits can go.
  • Paths only. No domain on the left side. On the right, a full url to another domain is accepted.
  • No regular expressions. [name] stands for one segment; there is no way to reorder segments or drop a date from the middle of a path. Those urls need one line each.
  • Query strings are ignored for matching. /blog?category=x follows whatever /blog does.
  • The site’s own pages win. A mapping for a path that still exists as a live page does nothing; disable or delete the page first.

What is already in the box

Anything already in URL mappings stays, and it was put there for a reason. Read it before pasting: a line whose left side also appears in your new block should be replaced by the new one, and a line whose right side is now a left side in your block is a chain. Change its right side to the final target.

After saving

  • Open three old urls in a private window: one exact rule, one folder rule with a real slug, one folder rule with a slug that does not exist on the new site. The third one will land on a 404, which tells you what a wildcard cannot check.
  • Crawl the old url list against the live site and look for 404s and chains.
  • Watch Search Console: pages with redirect up, not found flat.

In short

  • Squarespace redirects are text, one line per rule: /old -> /new 301, pasted into settings, developer tools, URL mappings.
  • Pick squarespace in the export and paste the file; from any other path-pair csv, delete the header, replace the comma with the arrow, append 301.
  • Wildcards are [name] on both sides; move those lines to the bottom, because the first match wins.
  • About 2 500 lines fit; folder rules and pruning old rules keep you under.
  • Check one url of each kind by hand, then crawl the old list against the live site.