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
Hobby (free)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 →