Guides → bulk-redirect-creation

Bulk redirect creation

How to move hundreds of URLs at once without breaking SEO or losing visitors

When a site migrates from one platform to another — or when a large content restructure changes fifty page slugs in a single afternoon — you cannot hand-enter every redirect one at a time. The redirect manager in SGEN accepts a CSV import that can cover the entire move in one pass, and it supports pattern rules that handle whole directory trees without listing every URL individually.

This recipe covers the full sequence: preparing your CSV, choosing between row-by-row import and pattern rules, running the import, verifying the result, and fixing the small set that does not pass on the first try.

What is this for?

Use this recipe when you need to redirect more than ten URLs at once. Common triggers:

  • You are completing a migration from WordPress, Webflow, or Shopify and the old URL structure does not match the new one.
  • A site restructure renamed a section (for example, /news/ became /insights/).
  • You discontinued a product line and need the old product URLs to land on the new alternatives or a landing page.
  • A URL naming convention changed across the board (for example, all slugs moved from hyphen-delimited to underscore-delimited).

The redirect manager supports 301 (permanent) (permanent) and 302 (temporary) redirects. This recipe focuses on 301s — the correct choice for permanent content moves.

Good use cases

Platform migration. The clearest use case. WordPress slugs like /2022/04/12/post-title/ do not match SGEN's /blog/post-title/. A CSV maps every old path to its new home. Pattern rules handle the entire /wp-content/uploads/ tree with a single rule.

Section rename. When /resources/ becomes /library/, one pattern rule covers every URL in that section. Add a small CSV for the handful of pages whose slugs also changed within the section.

Discontinued product redirect. Map each discontinued product URL to either the closest live alternative or a "this product has been discontinued" landing page. The CSV keeps the list auditable — product managers can review it before import.

Seasonal or campaign URL cleanup. Redirect old campaign landing pages (/summer-2024/) to the current campaign or the main product page. Prevents orphaned campaign URLs from accumulating 404s over time.

What NOT to use this for

  • Fixing a single broken link. Use the redirect manager's manual add form for one-off fixes — importing a CSV for a single row adds unnecessary overhead.
  • Redirecting your homepage to another domain. Domain-level redirects are handled at the DNS and hosting layer, not inside SGEN's redirect manager.
  • Redirecting between staging and production. Redirect rules are environment-specific. A rule set up in staging does not migrate to production automatically — you export and re-import.
  • Chained redirects. Avoid setting up a redirect where the destination URL is itself a redirect. SGEN resolves the first hop only. Chained redirects cause extra latency and can break if the middle URL changes.

How this connects to other features

  • SEO settings — The redirect manager is part of the SEO surface in SGEN. The same panel also controls canonical tags and sitemap inclusion.
  • Migrations guide — The migration guide references this recipe for the redirect step. Read both together when running a platform migration.
  • SEO health — After importing redirects, use SEO health to confirm no 404s remain and that the redirect chains have not stacked.
  • Pages — If new destination pages do not exist yet, create them first. A redirect to a 404 destination passes the import but fails at the browser.

Before you start

Before opening the redirect manager:

Gather your old URL list. The most reliable source is your current server logs or your existing site's sitemap. Export all indexed URLs before the migration starts — that list becomes your redirect source column. If you are migrating from WordPress, the Yoast SEO plugin exports a redirect CSV in a compatible format.

Map each old URL to a destination. For a section rename, the destination is usually mechanical (find /old-section/ and replace with /new-section/). For a product discontinuation, the mapping requires a human decision per URL. Assign this to the team member who knows the content.

Decide: row-by-row CSV or pattern rule? Use a pattern rule when a whole directory or URL prefix maps to a single destination or a parallel destination. Use row-by-row CSV when each URL has a unique destination. You can use both in the same import session.

Confirm destination pages exist. A redirect to a destination that returns 404 is worse than no redirect — visitors land on an error page instead of staying on a relevant page. Verify every destination URL returns 200 before importing.

Back up your current redirect list. Export the existing redirect list from the redirect manager before importing. If the import introduces a conflict, you want a restore point.

SG-Admin / SEO / Redirects

Before you import

Four checks before touching the redirect manager

Where to go

Open SG-Admin → SEO → Redirects. The panel has two tabs: Redirect rules (the active list) and Import / export (the CSV interface). The import interface is on the Import / export tab.

Redirect manager

SG-Admin → SEO → Redirects
+ Add New
Source URLDestination URLTypeStatus
/old-blog/post-1//blog/post-1/301Active
/resources//library/ (pattern)301Active
/products/discontinued-widget//products/widget-pro/301Active

Steps — Import bulk redirects from CSV

1. Prepare your CSV file

The import accepts a two-column CSV with headers source and destination. A third optional column type accepts 301 or 302 — it defaults to 301 if omitted.

source,destination,type/old-blog/post-one/,/blog/post-one/,301/old-blog/post-two/,/blog/post-two/,301/resources/ebook-download/,/library/ebook-download/,301/products/legacy-widget/,/products/widget-pro/,301

Rules for the CSV:

  • Source column: path only, starting with /. No protocol, no hostname. Trailing slash is optional but must be consistent — if your old site used trailing slashes, include them.
  • Destination column: path or full URL. Use a path for same-domain redirects. Use a full URL (including https://) for cross-domain redirects.
  • No duplicates: if the same source appears twice, the second row wins. Check for duplicates before importing.
  • No circular redirects: do not create a row where source and destination are the same URL, and do not create a loop (A → B and B → A).
  • UTF-8 encoding: save the file as UTF-8. Other encodings cause import errors on accented characters.
SG-Admin / SEO / Redirects / Import

CSV format

Two required columns, one optional

2. Set pattern rules for entire directory trees

For a section rename (for example, /news//insights/), use a pattern rule instead of listing every URL. Pattern rules use a wildcard suffix to match any path under a given prefix.

In the redirect manager, add a pattern rule before importing your CSV:

  • Source pattern: /news/*
  • Destination: /insights/$1 (the $1 capture passes the slug through)
  • Type: 301

Pattern rules run before row-by-row rules. If a URL matches both a pattern rule and a CSV row, the CSV row wins (more specific rules take priority).

SG-Admin / SEO / Redirects / Add rule

Add pattern rule

Covers entire directories with one entry

3. Run the CSV import

Go to SEO → Redirects → Import / export. Click Import CSV. Select your prepared file. The import dialog shows a preview of the first ten rows — confirm the source and destination columns are mapped correctly before proceeding.

Click Import. SGEN processes the file row by row. When complete, the dialog shows a summary: rows imported, rows skipped (duplicate sources), and rows rejected (malformed). Download the error report if any rows were rejected.

⚠ JSON parse error in embed: admin-list-view
Expected ',' or ']' after array element in JSON at position 354 (line 1 column 355)

4. Verify a sample of the imported redirects

Do not assume the import is correct. Test a sample of at least ten redirects — more if the CSV was large or complex.

For each sampled URL:

  1. Open an incognito browser window (to avoid cached responses).
  2. Navigate to the old source URL on your live or staging site.
  3. Confirm the browser lands on the destination URL and the browser address bar shows the destination.
  4. Confirm the page returns the expected content (not a 404).

For automated verification, use the redirect checker under SEO → Site health → Redirect audit. It crawls your imported rules and reports the HTTP status code for each destination.

https://your-site.example

Custom public-site preview.

5. Fix rejected rows

Download the rejection report from the import summary screen. Each rejected row includes an error reason:

  • Malformed source: the source column did not start with / or contained a full URL. Fix: strip the protocol and hostname, leave the path only.
  • Circular redirect: the source and destination are the same URL, or they form a loop with an existing rule. Fix: remove the row (for same-URL) or reverse the destination (for loops).
  • Duplicate source: the source appears in the existing redirect list with a different destination. Fix: either remove the import row (keep the existing rule) or delete the existing rule first and re-import.
  • Invalid destination: the destination could not be parsed as a path or URL. Fix: confirm the destination column is properly quoted if it contains commas.

Fix the rejection list in your CSV and re-import only the rejected rows. Do not re-import the full CSV — it will create duplicates.

6. Export the final redirect list and archive it

After the import passes verification, export the full redirect list from the Import / export tab. Store the export in your team's documentation with the date and the reason for the redirect set (for example, "2026-05-27 — Migration from WordPress, 247 URL moves").

This export is your restore point if a future import introduces a conflict, and it is the audit trail if a search ranking question arises months later.

What success looks like

  • Every old URL in your source list redirects to its destination with a 301 status.
  • The redirect manager shows the correct total count with no flagged conflicts.
  • A spot-check of ten sampled redirects lands on a 200 page at the destination.
  • The SEO site health audit shows zero 404s for the paths covered by your import.
  • Your team has the exported redirect list on file with date and context.
https://your-site.example

Custom public-site preview.

What to do if it does not work

Import dialog shows no preview rows. The CSV is likely not UTF-8 or the columns are not named source and destination. Open the file in a plain text editor, confirm the first line is source,destination (or source,destination,type), and re-save as UTF-8.

Rows import but redirects do not fire. Check that the source path in the redirect manager exactly matches the URL your visitors are requesting. A redirect for /blog/post-one/ (trailing slash) will not fire for /blog/post-one (no trailing slash). Add both variants, or confirm your site's slash behavior is consistent.

Pattern rule fires but destination is wrong. Confirm the $1 capture is in the destination field. Without $1, the entire source matches but the destination receives no slug — visitors land on the root of the destination pattern rather than the specific page.

Browser still shows old URL after redirect. The browser cached the old response before the redirect was in place. Test in incognito mode. If a visitor is stuck, they can clear their browser cache or you can set the redirect to 302 temporarily (which browsers cache less aggressively), then switch back to 301 after a week.

Google Search Console still shows 404s for redirected paths. Google has not re-crawled those paths yet. Submit the old URLs to the URL Inspection tool in Search Console to request re-crawl. Expect 24-72 hours for the 404 warnings to clear.

Destination page returns 404. The destination page does not exist. Create or confirm the destination page first, then retry. A redirect to a missing page is not a redirect — it is a two-step error.


Reference — CSV format quick sheet

ColumnRequiredFormatExample
sourceYesPath starting with //old-blog/post-one/
destinationYesPath or full URL/blog/post-one/
typeNo301 or 302301

Common mistakes and fixes:

MistakeResultFix
Source includes hostnameRow rejectedStrip to path only: /old-path/
Trailing slash mismatchRedirect does not fireMatch exactly what your server sends
Duplicate source rowsSecond row silently winsDe-duplicate before import
Circular A→B, B→ABoth redirects loopRemove one; keep the canonical direction
UTF-16 or Windows-1252 encodingImport error on special charactersRe-save as UTF-8

Reference — Pattern rule syntax

Pattern rules use * as a wildcard in the source and $1 as a capture reference in the destination.

Pattern sourcePattern destinationWhat it does
/news/*/insights/$1Rewrites every /news/slug/ to /insights/slug/
/products/legacy-*/products/$1Strips legacy- prefix from product slugs
/en/blog/*/blog/$1Removes language prefix from blog URLs
/category/*/page/2//category/$1/Collapses paginated category pages to the first page

Pattern rules are processed before row-by-row rules. If both match the same URL, the row-by-row rule wins (more specific takes priority). Use pattern rules for structural moves and row-by-row CSV for exceptions.

Reference — Redirect type guide

TypeHTTP codeWhen to useSEO effect
Permanent301Content moved permanently — migration, rename, restructurePasses link equity to destination
Temporary302Content moved temporarily — A/B test, maintenance pageDoes not pass link equity; crawler returns to source

For all migration and permanent restructure use cases in this recipe, use 301. Use 302 only for documented temporary situations with a planned end date.

https://your-site.example

Custom public-site preview.

Maintenance — keeping the redirect list clean over time

Redirect lists grow and rarely shrink. After six months of a live site, a redirect manager with no maintenance discipline can have hundreds of entries — some still active, some pointing to destinations that have since moved again (creating chained redirects), some for content that was re-published at the original URL.

A quarterly redirect audit takes 20-30 minutes and prevents the list from becoming a liability:

  1. Export the full redirect list.
  2. For each entry, confirm the destination returns 200 (not another redirect, not a 404).
  3. For entries where the destination is itself a redirect, update the source entry to point directly to the final destination.
  4. For entries where the destination is a 404, decide: restore the destination page, update the redirect to a live alternative, or remove the redirect (if the source URL has no remaining traffic or link equity worth preserving).
  5. Remove any entries that no longer serve a purpose (source URL had no visits in the past 90 days per your analytics, and no inbound links per Search Console).

Reference — Redirect manager operator FAQ

Can I redirect a URL to a URL on a different domain? Yes. Use a full URL in the destination column of your CSV. Same-domain redirects use a path (/new-path/); cross-domain redirects use a full URL. The redirect manager handles both.

Can I have more than one pattern rule for the same source prefix? No. Pattern rules match on the source prefix. If two rules share the same prefix, the first one wins. Use the most specific prefix for each case and avoid overlapping patterns.

What is the maximum number of redirect rules? SGEN does not publish a hard cap, but redirect lookup time increases with list size. Sites with more than 2,000 rules should audit regularly and remove unused entries. The lookup overhead is measured in milliseconds, but it compounds across every page request.

Do redirects affect page speed? Each redirect adds one HTTP round-trip. For visitors arriving at a redirected URL, the browser requests the source URL, receives the 301, then requests the destination. This adds 50-150ms depending on latency. For pages linked internally, fix the link to point directly to the destination — redirects are for incoming external links and indexed URLs you do not control.

Does SGEN pass the Referer header through a redirect? Yes. The browser sends the Referer header on the second request (to the destination). Analytics tools use this to attribute the session correctly.

Can I test a redirect without it going live? Use the redirect testing tool in SEO → Redirects → Test. Enter the source URL and the tool shows which rule would match and what the destination would be, without affecting live traffic.

How long does it take for a 301 redirect to be picked up by Google? Google re-crawls redirected URLs on its own schedule — typically within days to weeks, depending on crawl frequency for your site. Use Google Search Console's URL Inspection tool to request a re-crawl for specific high-priority URLs.

Quarterly redirect audit — sample findings

Export, check destinations, resolve chain and 404 cases
+ Add New
SourceDestinationDestination statusAction
/old-about//about/200 — OKKeep
/resources/ebook//library/ebook/301 → /docs/ebook/Update: point to /docs/ebook/ directly
/products/widget-v1//products/widget-v2/404Restore or redirect to /products/
/summer-2023//200 — OKConsider removing — 0 visits in 90 days

Reference — Redirect priority and resolution order

When a URL matches multiple rules, SGEN resolves in this order:

  1. Exact-match row-by-row rules (most specific). A CSV row for /resources/specific-ebook/ overrides any pattern rule covering /resources/*.
  2. Pattern rules (by specificity). A pattern /resources/ebook- takes priority over /resources/ because it is more specific.
  3. Catch-all pattern rules (least specific). A pattern /* (if present) matches everything not covered by a more specific rule.

This resolution order means you can use pattern rules for entire sections and CSV rows for exceptions within those sections — the exceptions always win.

Reference — Redirect impact on site analytics

Redirects affect analytics data in ways that are useful to understand before and after a migration:

Session attribution. When a visitor arrives via a redirected URL, the analytics session is attributed to the redirect's destination. The source URL appears in server logs but not in standard analytics session reports.

Campaign parameter preservation. UTM parameters in the incoming URL (?utm_source=email&utm_campaign=launch) are preserved through 301 redirects in most browsers. Confirm this is working by testing a redirected UTM URL with your analytics real-time report.

Referral paths. Internal links that go through a redirect add a referral loop — the redirect URL appears as a referring page for the destination in your internal referral report. Fix internal links to point directly to the destination to clean up referral data.

Search Console data continuity. After a 301 redirect, Google Search Console will eventually consolidate performance data (clicks, impressions) under the destination URL. This takes several weeks. Do not interpret the initial drop in impressions for old URLs as a ranking loss — it is data migration within Search Console.

Related resources

  • Pre-migration backup recipe — take a verified backup before any URL restructure or migration. Run this before the redirect import if you are also moving content.
  • Sitemap audit and fix — after creating redirects, run a sitemap audit to confirm old URLs are no longer in the sitemap and new destination URLs are included correctly.
  • SEO health — the ongoing health monitor that surfaces redirect chain issues between quarterly audits. A clean redirect list here contributes to a higher SEO health score.
  • WordPress migration guide — the platform migration guide that references this recipe for the redirect step. Run through it alongside this recipe for a complete migration.

For redirect-related support questions, the community board redirect thread is one of the highest-traffic troubleshooting threads. Post your CSV structure and the import log error — common failure modes are well-documented there.

Checklist — redirect import complete

Run through this after importing to confirm everything is in order:

  • [ ] CSV prepared: UTF-8, source and destination columns, no duplicate source rows.
  • [ ] Pattern rules added for any section-level moves (before the CSV import).
  • [ ] CSV imported — import summary shows correct counts.
  • [ ] No rejected rows (or rejected rows resolved and re-imported).
  • [ ] Spot-check of at least 10 redirects — each lands on a 200 page at the destination.
  • [ ] Automated redirect audit run — zero chained redirects, zero 404 destinations.
  • [ ] Full redirect list exported and stored in team documentation.
  • [ ] Sitemap audit scheduled (remove old URLs from sitemap, add new destination URLs).
  • [ ] Search Console notified: old URLs submitted for re-crawl via URL Inspection tool.

All nine items checked: the redirect import is complete, verified, and the SEO handover to the new URL structure is in progress.

https://your-site.example

Custom public-site preview.


This recipe is maintained as part of the SGEN operator documentation. If you find a step that does not match your SGEN admin, the platform may have been updated. Post in the community to flag the gap.

On this page