GUIDES / MOVING TO WEBFLOW FROM

Wix to Webflow: the redirect map for /post, /product-page and the copy-of pages

one folder per Wix app, one wildcard per folder, and a list of pages nobody meant to publish.

by Max Lorenz, Goodaim · updated 10 sep 2026

wix → webflow
  • /product-page/(.*)wildcard
    /product/%1
  • /single-post/(.*)wildcard
    /blog/%1
  • /copy-of-pricing301
    /pricing

SHORT ANSWER

A Wix site is easier to redirect than it looks, because Wix puts every app into its own url folder: blog posts under /post/, products under /product-page/, services under /service-page/. Each of those folders becomes one wildcard rule on Webflow, provided the slugs were kept. The work that remains is the pages outside the folders, the legacy blog urls, the pages Wix named itself, and the rules already sitting in the redirect manager.

What do Wix urls look like?

/about · /contact · /our-team — pages, at the root. No trailing slash. Wix builds the slug from the page name at creation time and does not change it when the page is renamed.

/copy-of-about · /blank · /blank-1 · /untitled — the slugs of duplicated and untitled pages. They stay as they are unless somebody edits the url by hand, and many sites have a few of them live and indexed.

/post/slug — blog posts. /blog is the listing page, /blog/categories/name and /blog/tags/name the archives, /blog/page/2 the pagination.

/single-post/slug — posts on the old Wix blog, which many sites migrated from years ago. Both patterns can be live at once.

/product-page/slug · /category/name — Wix Stores. Products and store categories.

/service-page/slug · /event-details/slug · /forum/… — bookings, events and the forum app, each with its own folder.

/de/… · /fr/… — Wix Multilingual puts the language code first. A localized Webflow site does the same, with its own code list.

EXAMPLE

a photography business has 25 pages, a blog of 90 posts under /post/, 12 older ones under /single-post/, a shop with 40 products, and three pages called /copy-of-pricing, /blank-2 and /pricing-old that the owner had forgotten.

Where do I get the complete list of old urls?

  • The sitemap index. /sitemap.xml on a Wix site points at one sitemap per app: pages-sitemap.xml, blog-posts-sitemap.xml, blog-categories-sitemap.xml, store-products-sitemap.xml and so on. Silentfrog follows the index and reads all of them when the run starts.
  • Search Console. Unpublished pages leave the sitemap but not the index. The pages export brings back the ones that still get clicks, and Silentfrog lists the urls the crawl did not reach so they can be added (traffic data).
  • The redirect manager. In the SEO settings, the url redirect manager holds every rule the site has, and it can be exported as a csv. Do that before the plan is cancelled.
start a crawl

extra old-site urls the crawl might not reach — one per line, or a csv export with the url in the first column (crawler export, search console, server logs). paths like /blog/post work too.

free up to 50 pages per site

the crawl form with the old site url, the new site url, the page cap, the sitemap option and the field for your own url list.

the crawl form: the sitemap is read automatically, and the url list field takes the search console export and the old redirect sources.

EXAMPLE

the index lists 170 urls across five sitemaps. Search Console adds 9 unpublished pages with traffic and the redirect manager 22 rules from an earlier redesign.

What changes on the Webflow side?

the folders are yours to name — a Webflow collection has whatever folder you give it: /blog, /post, /journal. Keep /post and the blog becomes exact matches; rename it and it becomes one wildcard row.

ecommerce folders are fixed — Webflow Ecommerce uses /product/slug and /category/slug. /product-page/ always moves, /category/ may stay.

no tag pages, no pagination urls — Webflow paginates with a query string and has no tag archive unless you build one.

the accidental pages are gone — nobody rebuilds /blank-1. Which is right, but the url still needs an answer.

EXAMPLE

/product-page/linen-shirt becomes /product/linen-shirt; /category/shirts stays /category/shirts. One wildcard row and one exact match.

Which sections map how?

each app folder — a directory rule with keep sub-paths: /post/(.*) to /blog/%1, /product-page/(.*) to /product/%1, /service-page/(.*) to /services/%1. The preview shows the slugs the new site does not have; those go to needs review instead of being exported into a 404 (directory rules).

the legacy blog — /single-post/(.*) to /blog/%1, as a second rule. If the slugs changed when the blog was migrated inside Wix, the matcher handles them per row on the title instead.

categories and tags — /blog/categories/name to the matching Webflow category page if one exists, otherwise all of /blog/categories and /blog/tags to /blog with all to one page.

the accidental pages — per page, by hand. /copy-of-pricing that was the live pricing page for a year redirects to /pricing. /blank-2 with no content and no backlinks is a 410. Sorting the table by clicks tells you which is which.

languages — each language folder is its own directory rule if the codes changed, and exact matches if they did not.

redirect a directory

redirect a whole directory

map every crawled page below a directory at once — optionally as a single webflow wildcard rule that also covers urls the crawl missed.

→

3 pages · 3 targets exist on the new site · + wildcard /blog/(.*) → /magazin/%1

  • /blog/relaunch-checkliste → /magazin/relaunch-checkliste
  • /blog/301-vs-302 → /magazin/301-vs-302
  • /blog/ladezeit → /magazin/ladezeit

the directory rule form mapping /blog to /magazin with sub-paths kept, exported as a wildcard, and a live preview of how many pages it affects.

a directory rule moving a whole folder with sub-paths kept, exported as one wildcard row, with the live preview of targets that do not exist.

EXAMPLE

90 posts under /post/: 84 exist with the same slug on the new site and are covered by the wildcard, 6 were retitled and land in needs review with the right target suggested at 0.7.

The redirect manager's rules

Every source url in the exported csv is a url that still gets requests. Do not copy the rules as they are: a rule from /old to /post/middle followed by your new wildcard from /post/ to /blog/ is a two-hop chain. Paste the source column into the url list when starting the run; each source then resolves against the new site directly and the exported row is /old,/blog/final.

EXAMPLE

22 rules exported. 20 sources resolve to a page on the new site by slug, 2 point at products that were discontinued and become 410.

Doing it in one pass

  • Export the redirect manager csv and the Search Console pages report while the site is live.
  • Start a run with the Wix domain and the Webflow staging domain; the sitemap index is followed automatically. Paste the redirect sources and the Search Console urls into the url list (starting a run).
  • Add one directory rule per Wix app folder, with export as wildcard rule ticked, and one for /single-post if it exists.
  • Send /blog/categories and /blog/tags to the blog index with all to one page.
  • Sort by clicks and decide the copy-of and blank pages by hand.
  • Download the Webflow csv and import it (importing into Webflow), connect the domain, publish, and crawl the old url list against the live site.
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 two downloads at the end: the webflow csv for the import, the generic csv as the audit trail.

In short

  • Every Wix app has its own url folder, and each folder is one wildcard row on Webflow if the slugs were kept.
  • The sitemap is an index of one file per app; follow all of them.
  • The old /single-post/ blog and the new /post/ blog can both be live; each gets a rule.
  • Pages named copy-of-… and blank-… are real urls; sort by clicks and decide each one.
  • Export the redirect manager first and resolve its sources against the new site directly.