A Pardot to HubSpot migration rarely breaks your contact database. The records import fine. What breaks is the plumbing around them: form handlers, the tracking cookie that ties a visit to a lead, UTM attribution, and old landing-page URLs that still rank and still convert. Sequence those wrong and you lose weeks of pipeline data no export can rebuild.
The short version
- Your records are the easy part. The tracking, forms, attribution, and URLs are what actually break.
- HubSpot identifies visitors with its own cookie, so the day you swap the script, your known audience looks anonymous again.
- Pardot form handlers do not port to HubSpot. Plan a deliberate cutover, not a copy and paste.
- Old Pardot landing-page URLs need 301 redirects, or you forfeit the rankings and links they earned.
- Run both platforms in parallel for a short window, then sunset Pardot on a date you choose, not one a deadline chooses for you.
Your data is not the risk. Your tracking is.
The silent failure in a marketing automation migration is the tracking layer, not the import. HubSpot tracks visitors with its own browser cookie and logs page views anonymously until a person identifies themselves. According to HubSpot's own documentation, a visitor's earlier page views only attach to a contact record when that person submits a HubSpot form or clicks a tracked marketing email, and the submitted email is the primary identifier used to match them. Imported and synced contacts are not connected to their browsing until they take one of those actions.
Read that twice, because it is the whole problem. The moment you install HubSpot's tracking code and turn Pardot's off, every known lead reverts to an anonymous cookie. Their HubSpot history starts at zero until each one re-identifies. Flip the switch the week before a campaign, and your activity reports will look like a brand-new site with no audience.
Form handlers do not come across. Cut them over on purpose.
Forms are where a migration actually goes dark, so treat them as a staged cutover rather than a rebuild. Pardot commonly processes submissions through form handlers, where your existing HTML form posts to a Pardot-hosted endpoint. That endpoint is Pardot infrastructure. It stops creating leads the moment Pardot is decommissioned, even if the form still renders perfectly on the page. Nothing visibly errors. Leads just stop arriving.
HubSpot gives you two paths, and you want both running before you sunset anything. You can rebuild forms as native HubSpot forms, or you can let HubSpot's tracking code capture submissions from your existing non-HubSpot forms, a feature HubSpot documents under converting non-HubSpot forms. The second path matters during a migration because it lets you keep current forms live and still record conversions in HubSpot while you rebuild the native versions. What you cannot do is assume a form that posts only to a Pardot form handler will keep working after the account is gone. Inventory every form, confirm where each one posts, and verify leads land in HubSpot before you touch Pardot.
Attribution resets the day you swap the script
First-touch attribution breaks on cutover day because HubSpot sets original source when it first sees a contact, not when Pardot first saw them. Historical Pardot first-touch does not become HubSpot's original source. Combine that with the fresh-cookie problem above, and a returning lead who first found you through organic search a year ago can be logged as a direct visit the next time they land, until they re-identify.
If your pipeline reporting runs on first-touch channel, and most B2B SaaS boards want exactly that view, you will see a discontinuity. You cannot fully prevent it, but you can shrink it. Install the HubSpot tracking code well before you cut over forms so HubSpot is already building session history on live traffic. Agree a clean break date with revops, and annotate every dashboard on that date so nobody reads the reset as a traffic collapse in Q1.
When I ran this cutover for a B2B SaaS client consolidating two stacks after a merger, the import went smoothly. What nearly cost us a quarter of clean reporting was attribution: we had scheduled the tracking-code swap and the form cutover for the same weekend. Splitting them by three weeks, tracking first and forms second, kept the original-source data readable.
The old landing-page URLs are an SEO liability if you forget them
Pardot landing pages usually live on a separate domain or subdomain, and those URLs carry ranking signals you do not want to throw away. A go.yourbrand.com address, or a Pardot vanity domain, can hold rankings and backlinks earned over years. When you rebuild those pages in HubSpot at new URLs, 301-redirect each old URL to its closest new equivalent.
Google is specific about the timeline. Its Change of Address guidance says to keep 301 redirects in place for at least 180 days, and longer if the old URLs still receive Search traffic, because after 180 days Google no longer recognizes the relationship between the old and new locations. If you are moving an entire domain or subdomain rather than individual paths, use the Change of Address tool, which Google says applies only to domain and subdomain moves, not to path changes within the same site. This is the same discipline a site migration demands, so score your pages before you move them. I have written separately on how to score pages for a domain migration and on the broader replatform checklist.
Email authentication is the quiet one
Sending moves last, and it fails quietly when the domain is not authenticated. When your nurtures and broadcasts move to HubSpot, you authenticate the sending domain so SPF and DKIM resolve to the new platform. The risk is sending real volume from a freshly authenticated subdomain with no warm-up history. Authenticate early, send low volume first, and ramp. Do not point your December appeal at a domain you authenticated the day before.
Time the cutover to your change freeze
The calendar is the constraint teams ignore until it is too late. It is late October. Most enterprise web and revops teams run a change freeze from mid-November through early January, so the real window to run a parallel migration and cut over cleanly is the next few weeks, not December. A migration that lands inside the freeze either waits until Q1, when your attribution reset collides with new-year pipeline reporting, or forces an exception nobody wants to own. Plan backward from your freeze date.
The order to do it in
Do it in this sequence, and the breakage stays controlled:
- Install the HubSpot tracking code alongside Pardot. Do not remove Pardot yet. Let HubSpot build session history on known traffic for a few weeks.
- Stand up HubSpot forms, or point HubSpot at your existing forms to collect submissions, and confirm leads land correctly before you trust them.
- Rebuild landing pages in HubSpot, publish them at their new URLs, and QA every field and workflow.
- 301-redirect the old Pardot landing-page URLs to the new ones, and file a Change of Address if it is a full domain move.
- Authenticate and warm the HubSpot sending domain, then move nurtures and broadcasts.
- Pick a Pardot sunset date after the parallel window, confirm no live form posts only to a Pardot endpoint, then decommission.
What this does not cover
This is the web and tracking layer, the part that breaks silently. It does not cover the CRM side: Salesforce record migration, object mapping, and sync field conflicts are their own project. Nor does it cover rebuilding a lead-scoring model, redesigning email templates, or the strategic question of whether to leave Pardot at all. Those are real decisions. They are just not the ones that quietly cost you conversion data while everyone watches the import.
FAQ
Will I lose my historical lead data when I move off Pardot?
No. Contact records export and import cleanly. What does not carry is behavioral history tied to Pardot's tracking and attribution. HubSpot starts tracking a contact's page views only after they submit a HubSpot form or click a tracked marketing email, so historical browsing does not backfill.
Do I have to rebuild every form by hand?
Not immediately. HubSpot can collect submissions from your existing non-HubSpot forms through its tracking code, so you can keep current forms live during the transition. You will still want native HubSpot forms eventually, but you do not have to rebuild everything before you can capture leads.
How long should I keep the old Pardot landing pages redirecting?
At least 180 days, per Google's Change of Address guidance, and longer if those URLs still receive Search traffic. Google stops recognizing the relationship between the old and new URLs after 180 days, so removing the redirects early forfeits the signals you were trying to preserve.
When in the quarter should we actually cut over?
Before your year-end change freeze, not during it. If your freeze starts in mid-November, the clean window is now. A cutover that slips into the freeze pushes your attribution reset into Q1 reporting, which is the worst time to explain a discontinuity to a board.
If you want a migration runbook mapped to your own form handlers, landing-page URLs, and freeze date before the window closes, book a 45-minute teardown and I will walk your stack with you.