Guides

HubSpot CMS to Webflow: Keep the CRM, Move the Site, Lose Nothing in Attribution

How to move a site from HubSpot CMS to Webflow while HubSpot stays your CRM: exports, the URL map, form connections, tracking code and the attribution checks.

Summarize with AI
Octo Agency cover: HubSpot CMS to Webflow, with a purple hexagon pattern

HubSpot's help centre states the rule that shapes every HubSpot to Webflow migration: "URL redirects only work for domains connected to and hosted in HubSpot." The day your domain points at Webflow, every redirect you built in HubSpot stops firing. The second rule is just as quiet. HubSpot marks form submissions from a domain you have not added to its tracking settings as spam (HubSpot Knowledge Base, August 2026).

This guide covers the common case: the website moves to Webflow, HubSpot stays as the CRM and marketing platform, and nobody loses the contact history or the source reports. Every limit below comes from HubSpot's or Webflow's own documentation, read in October 2026.

What moves, what stays in HubSpot and what you rebuild

Keeping HubSpot as the CRM means contacts, deals, emails, workflows and lists never move. Only content and pages do.

HubSpot assets and where each one ends up after the move
HubSpot assetAfter the moveHow it gets there
Contacts, deals, workflows, lists, emailsStay in HubSpotNo action
Website pagesWebflow static pagesRebuilt from the HTML export as a visual reference
Blog postsWebflow CMS CollectionBlog export as CSV, then CSV import
HubSpot formsEmbedded in Webflow, or replaced by mapped Webflow formsSee the forms section
Landing pagesRebuilt in Webflow, or kept in HubSpot on a subdomainA decision per campaign
URL redirectsWebflow 301 redirectsExported as CSV from HubSpot
Live chat, pop-up CTAsStay in HubSpot, loaded by the tracking codeTracking code on every Webflow page
Smart content rulesNo equivalentRebuild as separate pages or drop
Blog subscription emailsHubSpot RSS email reading the Webflow feedMarketing Hub Professional or Enterprise

Sources: HubSpot Knowledge Base, export, redirects and RSS email articles; Webflow Help Center, HubSpot App; read 2026-10-21

Landing pages are the real decision. Rebuilding them in Webflow puts everything on one platform. Keeping them in HubSpot keeps the marketing team's editor, but they need a subdomain, such as go.example.com, once the main domain leaves.

Smart content is the quiet loss. HubSpot's smart content rules are set inside HubSpot's own page editor, so nothing about them comes across to Webflow. If a page changes by lifecycle stage or country, write that down now and decide whether it becomes two pages or one.

Export everything before you touch DNS

HubSpot's export article lists two content exports and one data export. From Content, then Website Pages, Landing Pages or Blog, the Actions menu offers "Export all pages and blog posts (HTML)". The files arrive as a download link by email. The blog has its own export, Actions then Export blog posts, as CSV, XLS or XLSX. Page-level traffic data can be exported from the web traffic analysis report on Marketing Hub or Content Hub Professional or Enterprise.

Add a fourth: the URL Redirects tab under Domains and URLs has an Export button that writes every redirect to a CSV file. It is the only record of years of URL changes.

Keep the dates. Map the blog CSV's publish date to its own Webflow date field and sort by it, otherwise every post looks as if it was written on import day.

Check for HubDB. If the site uses HubDB tables for team pages or office lists, export each table separately and model it as a Webflow Collection.

The URL map: HubSpot paths into Webflow Collections

HubSpot's own help examples show a blog at /blog, a tag page at /blog/tag/news and an author page at /blog/author/john-smith, each with an rss.xml feed beneath it. Webflow serves every CMS item under one Collection folder followed by the item slug. That makes HubSpot blogs easier to move than WordPress blogs with root-level posts, which our WordPress to Webflow migration checklist covers.

Common HubSpot URL patterns and the Webflow rule for each
HubSpot URLWebflow URLRedirect rule
/blog/post-name/blog/post-name (Collection "blog", same slug)None
/blog/tag/news/tag/news (a Tags Collection)Old path /blog/tag/(.*) to /tag/%1
/blog/author/john-smith/author/john-smith (an Authors Collection)Old path /blog/author/(.*) to /author/%1
/blog/page/2No equivalentOld path /blog/page/(.*) to /blog
/blog/rss.xmlThe Collection's RSS feedOne rule if the paths differ
Website page, for example /pricingStatic page at the same pathNone
Landing page kept in HubSpotSame page on a HubSpot subdomainOne rule per page, tested
Every row in HubSpot's redirect CSVWebflow 301 redirectRewritten with escaped old paths

Sources: HubSpot Knowledge Base, RSS feed URLs and URL redirects; Webflow Help Center, redirects; read 2026-10-21

Four Webflow rules decide whether those redirects fire.

Escape the old path. Webflow requires a % before special characters in old paths, including the hyphen, the underscore, the question mark and the equals sign. /blog/old-post becomes /blog/old%-post. The target path needs no escaping.

Order is age. Webflow runs redirects in the order they were added, oldest first, so add specific rules before the wildcards that would catch them.

Wildcards over volume. Webflow sets no hard limit but recommends 1,000 rules at most, because every rule is written to a file browsers download. A HubSpot redirect export that has grown for years can be close to that on its own.

Kill the chains. Rewrite each old HubSpot rule to point straight at its final Webflow URL.

If the blog lived on a subdomain such as blog.example.com, Webflow lets you connect more than one domain to a site and set one as the default. We would connect the old subdomain and test that every post lands on its new path.

Forms: three ways to connect, and what each does to attribution

The form decides whether a submission becomes a contact with history or an orphan with an email address.

Ways to send Webflow site forms to HubSpot
MethodWhere the submission goesStylingWatch for
Embedded HubSpot formStraight to HubSpot, bypassing WebflowHubSpot's style editor, or your CSS with developer codeDeveloper code needs Marketing Hub or Content Hub Professional or Enterprise
Native Webflow form mapped through the HubSpot AppWebflow first, then a copy to HubSpotWebflow DesignerPlain text inputs only, per Webflow's guide; counts towards Webflow form limits
Non-HubSpot forms (collected forms)Captured by the tracking codeWebflow DesignerNo hidden fields, no iframes; same cookie means one contact

Sources: Webflow Help Center, HubSpot App; Webflow Blog, April 2026; HubSpot Knowledge Base, external forms and non-HubSpot forms

Embedded forms keep the most. Submissions post directly to HubSpot and, per Webflow's help centre, do not count towards your Site plan's form limits. HubSpot still requires its tracking code on the page and the domain in your tracking settings, otherwise the submission is flagged as spam.

Mapped forms are pretty but narrow. Webflow's own guide says only plain text inputs map. Dropdowns, radio buttons and checkboxes do not. Every field also needs a real Label element. If your demo form asks for company size from a dropdown, either rebuild that field as text or embed the HubSpot form instead.

Collected forms drop hidden fields. HubSpot's requirements are strict: a static form in form tags, an email input, a standard submit button, no iframe, no script bound to the submit event, and no hidden fields collected. Teams that pass UTM parameters or ad click IDs through hidden fields lose them on this route.

Watch for duplicates. Webflow's help article for the legacy HubSpot App notes that once the tracking code is on, HubSpot captures every form on the site, mapped or not, into a new form named after the Webflow form ID. With mapping and collection both on, test whether one submission becomes two.

Attribution: what keeps Original Traffic Source intact

HubSpot defines Original Traffic Source as the first known web source through which a contact interacted with your business. On a website, that link runs through cookies. hubspotutk identifies the visitor and is passed to HubSpot on form submission; __hstc holds first, last and current visit timestamps. Both expire after six months.

The practical reading: keep the same domain and the same HubSpot account's tracking code, and a visitor who first arrived on the HubSpot site should still be the same visitor on the Webflow site. We would confirm it in a clean browser before launch rather than assume it.

Attribution checks for the week before and the week after launch
CheckHowWhat failure looks like
One tracking code per pageSearch the published source for the HubSpot loader scriptTwo copies, so only the first fires
Domain added under Advanced TrackingTracking and Analytics settingsEmbedded form submissions marked as spam
Consent banner covers the Webflow domainSubmit a test form with consent declined, then acceptedContacts with no page views on their timeline
Test contact shows its first visitArrive from a tagged link, browse, then submitSource shows Direct traffic or nothing at all
Page views carry a content typeAdd the setContentType snippet to blog templatesCredit lands in "Pages without asset type"
Live chat and pop-up CTAs loadVisit three page typesNothing appears, because the code is missing

Sources: HubSpot Knowledge Base, tracking code, site tracking, external forms, source properties and attribution reports; Webflow Blog, April 2026

Add the domain, once. HubSpot asks you to add externally hosted domains under Advanced Tracking. Adding the top-level domain covers its subdomains; cross-domain linking is only needed for distinct domains, such as a separate product domain.

Tell HubSpot what the pages are. By default, attribution credit for an externally hosted page lands under "Pages without asset type". HubSpot documents a one-line setContentType snippet, with values for blog-post, landing-page, standard-page and knowledge-article. Put it in each Webflow Collection template. It is not retroactive, so add it before launch.

Consent changes the timeline. Webflow's guide notes that submissions without tracking consent still reach HubSpot, but without page view history.

The cutover sequence

  1. Export the HTML, blog CSV, traffic data and redirect CSV.
  2. Crawl the live site and mark every URL with search traffic or backlinks.
  3. Build the URL map and decide where each landing page lives.
  4. Import authors and tags first, then posts.
  5. Pick a form method per form.
  6. Install the tracking code once, add the domain and the setContentType snippet.
  7. Write the Webflow redirects and test every row on staging.
  8. Move HubSpot landing pages to their subdomain, then point the main domain at Webflow.
  9. Repoint the RSS email and run the attribution checks.
  10. Keep redirects for at least a year, Google's guidance.

Google says a small to medium site can take a few weeks for most pages to move in search, and recommends permanent redirects such as 301 or 308.

What this means for a HubSpot team moving to Webflow

We build marketing sites in Webflow and applications in Next.js, so we are not neutral about the destination. If you are still deciding whether to move at all, our Webflow vs HubSpot CMS comparison covers cost, speed and lock-in; this page assumes the decision is made and the CRM stays.

The parts that decide whether sales trusts the new site are the redirect file, the form method and the attribution checks. In our four-week marketing-site process we would put the exports and the URL map in week one, before design, and the attribution checks in the final week with a named owner on the HubSpot side. Our marketing website service page explains how we scope a migration build.

Frequently asked questions

Can I move my website from HubSpot to Webflow and keep HubSpot as my CRM?

Yes. Contacts, deals, workflows and emails stay in HubSpot; only pages and blog content move. You install the HubSpot tracking code on the Webflow site, add the domain under Advanced Tracking, and connect forms by embedding HubSpot forms or mapping Webflow forms through the HubSpot App. Without the domain in your tracking settings, HubSpot marks embedded form submissions from it as spam, so that setting comes before launch.

Do my HubSpot URL redirects carry over to Webflow?

No. HubSpot says its URL redirects only work for domains connected to and hosted in HubSpot, so they stop when the domain points at Webflow. Export them as a CSV from the URL Redirects tab, rewrite each old path with Webflow's escaping, where a hyphen becomes %-, and point every rule at its final URL. Webflow recommends 1,000 redirect rules at most, so use wildcards for tag and author folders.

Will I lose attribution data when I leave HubSpot CMS?

Not if the tracking is set up before launch. Original Traffic Source is the first known web source tied to HubSpot's visitor cookie, which lasts six months. Keep the same domain and one tracking code per page, add the domain in HubSpot, and test a contact end to end. Add HubSpot's setContentType snippet to Webflow templates, or attribution credit lands under "Pages without asset type".

Which is better, embedding HubSpot forms or mapping Webflow forms?

Embedding keeps the most data: submissions go straight to HubSpot and do not count towards Webflow form limits. Mapping native Webflow forms keeps your design but, per Webflow's April 2026 guide, only plain text inputs map, so dropdowns, radios and checkboxes do not. HubSpot's collected forms also ignore hidden fields, which matters if you pass UTM parameters. Most B2B demo forms with dropdowns are better embedded.

How long does a HubSpot to Webflow migration take?

It depends on page count, landing pages and how many forms there are. We run marketing sites on a four-week process and our own Webflow builds take two to three weeks per site, but a migration adds the exports, the URL map and attribution testing on top. Google says a small to medium site can take a few weeks for most pages to move in search after launch.

Sources

  1. Export web content and data HubSpot Knowledge Base, 2026
  2. Create and manage URL redirects HubSpot Knowledge Base, 2026
  3. Generate RSS feed URLs for blogs, authors, and tags HubSpot Knowledge Base, 2026
  4. Install the HubSpot tracking code HubSpot Knowledge Base, 2026
  5. Set up site tracking in HubSpot HubSpot Knowledge Base, 2026
  6. Cookies set in your visitor's browser by HubSpot HubSpot Knowledge Base, 2026
  7. Understand Original and Latest traffic source properties HubSpot Knowledge Base, 2026
  8. Understand attribution report definitions HubSpot Knowledge Base, 2026
  9. Use non-HubSpot forms HubSpot Knowledge Base, 2026
  10. Style and embed HubSpot forms on an external site HubSpot Knowledge Base, 2026
  11. Send blog subscription emails for external blogs using RSS feeds HubSpot Knowledge Base, 2026
  12. Install and use the legacy HubSpot App Webflow Help Center, 2025
  13. How to link Webflow forms to HubSpot without losing your form design Webflow Blog, Colin Lateano, 2026
  14. How do I set up redirects in Webflow? Webflow Help Center, 2026
  15. Site moves with URL changes Google Search Central, 2026

Tags

  • Webflow
  • HubSpot
  • Migration
  • Attribution
Mihajlo Stojanovic

Mihajlo Stojanovic

Co-founder, Octo Agency

Mihajlo runs the technical side of Octo Agency: Webflow builds, custom backends and the systems that keep a site editable after launch. He has shipped more than twenty Webflow sites a year as a white-label partner and writes about what survives contact with a real marketing team.

Veljko Nikolic

Reviewed by

Veljko Nikolic

Co-founder, Octo Agency

Veljko runs the build side of Octo Agency. He has shipped marketing sites for B2B teams in legal tech, health and manufacturing, and writes about what survives contact with a real review cycle.