Bulk CSV Import

Create up to 500 redirect rules at once by uploading a CSV file. All rule types are supported — exact paths, wildcards, named parameters, and catch-alls.

How to import

1Open your domain in the dashboard.
2Click "Import CSV" next to the "Add rule" button.
3Select your CSV file. The file is validated immediately — no waiting.
4Review the results. Valid rows are imported right away. Invalid rows are listed with a row number and error message.
5Fix any errors in your CSV and re-upload if needed. Re-importing the same file is safe — existing rules are not duplicated if the same source path already has a rule.

Rules go live globally within about 60 seconds of import.

CSV format

Columns

ColumnRequiredNotes
source_pathYesMust start with /. Leave blank for a catch-all rule. Supports wildcards (/blog/*) and named params (/posts/[slug]).
destinationYesMust be a full URL including https://. Use http:// only when explicitly needed. Named param tokens (e.g. [slug]) are substituted at request time.
typeNo301 or 302. Defaults to 301 when omitted or blank.

Example file

source_path,destination,type
/old-page,https://example.com/new-page,301
/blog/*,https://example.com/posts,301
/posts/[slug],https://example.com/articles/[slug],301
/docs/[section]/[...rest],https://example.com/help/[section]/[...rest],301
,https://example.com,301

The last row has a blank source_path — this creates a catch-all rule that matches any request with no other matching rule.

Formatting notes

Header rowOptional. If the first cell does not start with /, the first row is treated as a header and skipped automatically.
Quoted fieldsStandard CSV quoting is supported. Wrap a field in double quotes if it contains a comma.
WhitespaceLeading and trailing whitespace is trimmed from all fields.
Line endingsBoth Unix (LF) and Windows (CRLF) line endings are accepted.
EncodingUTF-8 required. UTF-8 BOM (added automatically by Excel) is stripped before parsing.

Supported rule types

Every rule type available in the dashboard can also be defined in CSV.

Exact match
/old-page,https://example.com/new-page,301

Matches only the exact path. Fastest match type — checked first.

Wildcard
/blog/*,https://example.com/posts,301

Matches any path starting with the prefix. The * matches one or more segments but the value is not passed to the destination.

Named parameter
/posts/[slug],https://example.com/articles/[slug],301

Captures a path segment and substitutes it into the destination. Use multiple tokens for multiple segments. Use [...rest] to capture everything including slashes.

Catch-all
,https://example.com,301

Blank source_path matches any request that has no other matching rule. Useful for full-domain redirects.

For full pattern matching documentation see the redirect rules reference.

Validation & errors

Each row is validated independently. Invalid rows are skipped and reported — valid rows in the same file are still imported.

ErrorCause
must start with /source_path is not blank and does not begin with /. Check for extra spaces or a missing leading slash.
Missing destination URLThe destination column is empty.
Invalid destination URLThe destination is not a valid URL. Make sure it includes https://.
must use http or httpsThe destination uses a non-http scheme such as ftp:// or mailto:.
must be 301 or 302The type column contains a value other than 301 or 302.
exceeds the 500 row limitThe file has more than 500 data rows. Split into multiple files.
1 MB limitThe file is larger than 1 MB.
Each error includes the 1-based row number from your file (counting the header as row 1 if present), so you can jump straight to the problem in your spreadsheet.

Exporting from Excel or Google Sheets

Google Sheets

File → Download → Comma Separated Values (.csv). The exported file is UTF-8 without BOM and imports cleanly.

Microsoft Excel

File → Save As → CSV UTF-8 (Comma delimited) (.csv). Excel adds a UTF-8 BOM to the file — this is stripped automatically before parsing, so no manual cleanup is needed.

Avoid "CSV (MS-DOS)" or "CSV (Macintosh)" export options in Excel — these use non-UTF-8 encodings that may cause character corruption in URLs with special characters. Use CSV UTF-8 instead.

Limits

PlanTotal rules per domainMax rows per CSV
Free33 (plan limit applies)
Hobby ($2/mo)100100 (plan limit applies)
ProUnlimited500
AgencyUnlimited500

For migrations larger than 500 rules, split your CSV into multiple files and import them one at a time. Max file size is 1 MB per upload.

Migrating from other tools

Cloudflare Page Rules

Export your Page Rules from the Cloudflare dashboard. Forwarding URL rules map directly — convert the match URL to source_path (path only, no domain) and the destination URL to destination. Cloudflare uses $1 for wildcard capture; our format uses named params like [slug] instead. See the Cloudflare migration guide for a full field comparison.

.htaccess

RewriteRule and Redirect directives can usually be converted directly. Simple Redirect 301 /old /new lines map to exact-match rows. Regex-based RewriteRules with back-references ($1) are best rewritten as named param rules.

Ahrefs / Screaming Frog / SEMrush exports

These tools export broken link reports with source URLs and suggested destinations. Copy the path column to source_path, fill in the destination column, settype to 301, and import.

Have questions not covered here?

Contact us →