Migration Reference
WordPress to HubSpot Migration
What actually transfers, what quietly does not, and what has to be rebuilt by hand.
We mapped WordPress against HubSpot feature by feature: 43 features, 3 synced objects, 13 documented traps and 20 items that have to be rebuilt. The whole map is on this page, ungated.
The PDF is the same reference, formatted for a procurement file.
Get The Reference And The Calculator
The full WordPress to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 43 features as a row, enter your counts, get hours.
Three files: the reference as a PDF, the same reference in Markdown for your AI tool, and the full Excel effort calculator.
WordPress to HubSpot is a high migration, typically 4-20 weeks. Of the 43 features we mapped, 10 carry across as they are and 30 land with something lost: the 20 items nothing moves for you is what will actually set your timeline, not the sync.
Migration Scorecard
- Migration complexity
- High
- Typical timeline
- 4-20 weeks
- Recommended method
- Content import then rebuild
- Native sync
- Content import, source to hubspot
- Smart transfer
- Not supported
- HubSpot subscription
- The blog import tools themselves are free of any tier requirement, available on every product and plan. What actually gates the project is the destination tier: Content Hub Free caps out at 25 pages, HubDB and smart content need Content Hub Professional, and memberships, multi-site and any additional root domain need Content Hub Enterprise. Where custom post types are being replaced with custom objects, that too needs an Enterprise tier, so check the page count and the feature list against the plan before scoping the migration.
Feature parity across 43 capabilities
- Maps directly: 10 (23%)
- Maps partially: 30 (70%)
- No equivalent: 3 (7%)
3
Objects synced natively
13
Limitations and traps
20
Manual rebuild items
3
Source editions covered
Where this comes from: Our own research corpus, verified 2026-08-01, behind every number on this page.
The Three Objects That Sync Natively
What the connector moves for you, and which way each one flows.
Blog posts
Into HubSpotBecomes Blog posts
Three import routes exist, in HubSpot's own recommended order. WordPress connect reads the public REST API from the blog homepage URL alone and is the fastest and most accurate of the three, but it fails on any install where that API is disabled, restricted or heavily customised, which is common on a hardened or enterprise WordPress site. Smart copy scrapes a live post URL instead to infer the template structure and works against any CMS; XML import, built from a WordPress export file, is the documented fallback behind both. Whichever route gets you there, blog posts are the only content type any of the three actually import.
Pages
Two wayBecomes Website pages
No page import exists at all, in any of the three routes: every website page has to be recreated by hand in HubSpot, built from templates and modules rather than carried over. This single gap is what makes a WordPress migration a rebuild project rather than a data transfer, and it should be named to whoever is approving the timeline before the project is scoped, not discovered once it is under way.
Form submissions (via HubSpot WordPress plugin)
Into HubSpotBecomes Contacts
The HubSpot WordPress plugin is a separate tool from the import routes above: it adds tracking code to the live WordPress site and starts feeding submissions from the existing forms into the HubSpot CRM while both systems keep running. It moves nothing about the site's content, but it is often the right first step, sometimes months ahead of any rebuild, for a site whose form submissions have been landing in a shared inbox or a plugin's own database table with nobody treating either as a system of record.
Thirteen Things the Sync Does Not Tell You
Each one is documented, and each one has ended a migration in a bad week.
Only Blog Posts Import. Pages Do Not.
Whichever of the three import routes you choose, all of them stop at the blog: website pages, landing pages and anything else beyond posts have to be rebuilt by hand inside HubSpot's templates and modules. A 200-page site does not shrink to an import with tidying at the end; it is a 200-page rebuild, and the proposal should say so plainly rather than let 'import' carry an assumption it cannot support.
Workaround: Scope the rebuild by template, not by counting pages: work out the distinct page types first, build one reusable template and module set for each, then populate. Rebuilding page by page is the costliest way to run this project, and it is usually the way a first-time quote defaults to without meaning to.
There Is No Plugin Ecosystem, and No Hooks System to Emulate One
There is nothing in HubSpot standing in for functions.php, because there is no hooks or filters system underneath it at all. Whatever a plugin was doing has to reappear as a native HubSpot feature, a marketplace app, a custom module, a serverless function or a third-party service, one decision per plugin, and HubSpot's own developer documentation says outright that it will not cover a theme built around complex plugins.
Workaround: Start with a full inventory of active plugins and sort each one into native equivalent, marketplace app, custom build, third-party service or drop, before a single quote goes out. That audit predicts the real cost of the project better than anything else available at scoping stage, and it usually surfaces the WhatsApp, local telephony or payment-gateway plugin that a page count would never flag.
HubSpot Has No Custom Post Type Concept, Though HubDB Covers Most Uses
Team members, case studies, locations and product directories are usually built in WordPress as custom post types, and HubSpot simply has no matching concept. HubDB tables can reproduce the outcome, generating one page per row with its own URL and analytics, but that route needs Content Hub Professional and is capped at 10 dynamic pages per table; CRM custom objects are the alternative and sit behind an Enterprise tier instead.
Workaround: Decide early, per custom post type, whether it becomes a HubDB table or a custom object, because that single decision sets the subscription tier the whole project needs. Several custom post types running alongside Advanced Custom Fields data is often, on its own, a Content Hub Professional project, and that is worth putting in front of whoever holds the budget before the quote is finalised, not after.
HubL Is Not PHP, and the Developer Pool Is Much Smaller
A WordPress theme is written in PHP; a HubSpot theme is written in HubL, with its own template inheritance through extends, its own drag-and-drop areas built from widget_container blocks, and its own asset loading through require_css, require_js and get_asset_url rather than wp_enqueue_style and get_template_directory_uri. A PHP developer does not carry straight across into that, and HubSpot developers are both scarcer and, on the whole, more expensive to bring on for the rebuild.
Workaround: Settle who is actually doing the build before the quote is written, not after. An existing WordPress team needs ramp-up time on HubL, and that time belongs in the estimate from the start rather than being absorbed quietly once the project is already under way.
Redirects Are the Whole SEO Risk, and They Are Manual
A HubSpot rebuild rarely keeps every URL exactly where it was, and every URL that moves needs its own 301 redirect in place before go-live. Skipping or rushing this is the single most common cause of a ranking drop after launch, and the damage tends to surface weeks later, once it is expensive to trace back to the missing redirect that caused it.
Workaround: Crawl the live site for a complete URL inventory before the rebuild starts, and treat redirect mapping as part of the build itself rather than a task left for launch day. Keep the WordPress site reachable in a staging environment for reference throughout, and expect performance to settle two to four weeks after a correctly executed cutover.
WordPress Connect Fails on Hardened or Customised Installs
The fastest of the three import routes only works if the public WordPress REST API is reachable and unmodified, and security plugins, headless setups, custom permalinks or general enterprise hardening routinely restrict or disable exactly that. When it fails, it tends to fail without telling you why, which is the moment a scoping call turns into a diagnosis.
Workaround: Test WordPress connect against the live blog during discovery, well before it becomes a build-week surprise. Falling back to smart copy, and then to XML export, is a real path forward, but each step down is progressively less accurate and needs more cleanup, which belongs in the estimate as soon as the first route is ruled out.
System Pages Are Consistently Forgotten
A 404 page, a 500 error page, search results, a password prompt and the subscription preferences page all need building fresh in HubSpot, and none of them show up in a sitemap-driven page count. That is exactly why they go missing from both the estimate and the launch checklist, and why the gap is only noticed once the site is already live.
Workaround: Name every system page explicitly in the template inventory at scoping time rather than assuming the sitemap already accounts for them. Each one is little effort on its own, and the whole set is an easy thing to be embarrassed by if it is missing on launch day.
WooCommerce Has No HubSpot Equivalent
Content Hub was never built as an ecommerce platform, and Revenue Hub covers payments, quotes, invoices and subscriptions without ever taking on a product catalogue, a cart, checkout, shipping, tax or inventory. A WooCommerce store simply has nowhere to be rebuilt inside HubSpot: that part of the site is not migrating, whatever the rest of the plan says.
Workaround: Leave the store on a dedicated ecommerce platform and integrate that platform with HubSpot rather than attempting to rebuild it there, or say plainly that the migration is not right for an ecommerce-led site. Product content and pricing pages can move across; the storefront itself cannot, and that distinction is worth stating before any commitment is made.
Advanced Custom Fields Data Has No Direct Destination
Advanced Custom Fields sits behind nearly every WordPress build worth the name, holding structured field data against posts, pages and custom post types alike. HubSpot has module fields for content that belongs to a single template and HubDB for tabular data, but nothing that plays the role ACF plays: arbitrary custom fields attached to any content record at all.
Workaround: Sort each ACF field group into module fields, where the data belongs to a single page, or HubDB columns, where it repeats across records. Repeater and flexible-content fields are the genuinely hard case here and usually need restructuring rather than a one-to-one mapping, so budget them separately from the simpler fields.
Tier Gates Land in Unexpected Places
Content Hub Free stops at 25 pages, and HubDB, smart content, A/B testing, SEO recommendations and custom reporting all sit behind Professional; memberships, multi-site support, extra root domains and partitioning sit behind Enterprise again above that. A site that cost next to nothing to host on WordPress can need a Professional or an Enterprise subscription simply to do again what it was already doing, and that gap is worth naming to whoever approves the budget well before it is discovered mid-build.
Workaround: Work out the required tier from the feature and content-structure audit, then put it in the proposal in plain terms. Finding out about the HubDB requirement halfway through the build is a commercial problem for the committee approving spend, not a technical one for whoever is building the site.
AJAX, Cron, and Server-side Logic Need Rearchitecting
Admin-ajax handlers and arbitrary server-side PHP have no direct equivalent on the HubSpot side. WP-Cron is the one exception worth knowing: Data Hub Professional runs schedule-triggered workflows using JavaScript or Python custom code actions, a pattern HubSpot's own documentation describes as writing cron jobs, and serverless functions cover a further slice of it within their own execution limits. What is left over needs an external service found for it.
Workaround: Surface every piece of server-side behaviour during the plugin and theme audit rather than during the build itself. This is where a migration finds work that simply cannot be done inside HubSpot at all and needs an external service, and that is a far cheaper discovery to make at scoping than midway through.
Multilingual Sites Need Restructuring, Not Translation Import
WPML and Polylang each store translations in their own data structure and their own URL scheme, and HubSpot's answer, a linked group of language variants on a page or post, has no import path from either plugin. A bilingual Arabic and English site built on either one is not migrating its translations; it is rebuilding them, and the URL structure underneath will usually change in the process.
Workaround: Rebuild each language variant by hand and map redirects separately for each language rather than assuming one redirect map covers both. Confirm the required language count sits inside the tier you intend to commit to before the timeline is agreed, since a bilingual Arabic and English pairing is the common case here but is not free at every tier.
Media, Tracking Codes, and WordPress-specific Markup Should Not Be Copied Across
HubSpot itself advises against carrying WordPress-specific code across, anything under wp-includes or wp-content included, and recommends re-exporting third-party tracking codes from the vendor rather than lifting them out of WordPress. Media has to be re-uploaded to the HubSpot Files tool separately, with every in-content image reference pointed at the new location.
Workaround: Treat the media migration as a task of its own, with a dedicated URL rewrite pass over every imported post body. A post still pointing at an old wp-content image URL keeps working right up until WordPress hosting is switched off, at which point it breaks all at once and without warning.
Three WordPress Features HubSpot Cannot Replace
No workaround closes these. Each one is a capability you would be giving up, so decide who in the business can live without it before you commit to a date.
Functions.php and Hooks
HubSpot's own documentation is direct about this one: there is no equivalent to functions.php, because HubSpot has no concept of actions and filters underneath it at all. Whatever functions.php was doing on the site has to be rebuilt through HubL macros, serverless functions or a custom app instead.
WooCommerce
Do not mistake Content Hub for a WooCommerce replacement: it is not an ecommerce platform and never was. Revenue Hub covers payments, quotes, invoices and subscriptions, which is real ground, but neither hub gives you a storefront, a cart or checkout, so the store itself needs a separate platform regardless of which HubSpot hub you buy.
LMS Plugins
No HubSpot equivalent.
Two Things a Migration Does Not Rebuild
These are WordPress's own code and products, and a HubSpot migration will not carry them across: they carry no hours in the estimate. They still need a decision before cutover, because you are the one giving something up.
Bespoke Custom Plugins
The highest-risk discovery item. Surface these during scoping rather than during build.
WordPress Multisite
Confirm the target tier before promising equivalent separation.
The 20 Items That Get Rebuilt by Hand
This is the list that separates a quote that holds from one that does not.
Data And Objects
Website Pages
Every page has to be rebuilt in HubSpot from the ground up, since none of the three import routes touches pages at all.
HubSpot: HubSpot Website Pages
Scope this by template and page type, never page by page: it is the single biggest lever on how much the rebuild costs.
Custom Post Types
Team members, case studies, locations and any similar structured content need rebuilding as HubDB tables driving dynamic pages, or as CRM custom objects, depending on which route was chosen for that content type.
HubSpot: HubDB (Content Hub) or Custom Objects
This is a tier decision as much as a technical one, so make it during scoping rather than once the build is already committed to a plan.
Advanced Custom Fields Data
Advanced Custom Fields groups need remodelling, not copying: module fields where the data belongs to a single page, HubDB columns where it repeats across records.
HubSpot: HubSpot module fields or HubDB columns
Repeater and flexible-content fields are usually the hardest part of this and typically need restructuring rather than a straight mapping across.
Media Library
Every image, PDF and document has to be re-uploaded to the HubSpot Files tool, with the folder structure rebuilt and every in-content reference pointed at the new location.
HubSpot: HubSpot Files tool
An imported post that still points at its old wp-content URL keeps rendering right up until WordPress hosting is switched off, and then it breaks all at once.
Blog Post Cleanup After Import
Every imported post needs author mapping, tag and category reconciliation, a featured-image check, meta description validation and internal link rewriting once the import is done.
HubSpot: HubSpot Blog
How much of this is actually needed depends on which import route was used: smart copy and XML export both leave more cleanup behind them than WordPress connect does.
Automation
Plugin-driven Functionality
Every capability a plugin was providing needs its own replacement: forms, SEO, caching, security, booking, maps, calendars, membership, live chat, analytics, and any IDX or feed integration the site was running. None of it comes along for free, and each item is its own decision rather than a single line item on the estimate.
HubSpot: Native HubSpot features, marketplace apps, custom modules, or third-party services
Nothing predicts the real cost of the project better than the plugin audit itself, which is why it belongs at the very start of scoping rather than somewhere in the middle of it.
Server-side Logic, AJAX Handlers, and Cron Jobs
Server-executed PHP, admin-ajax endpoints and WP-Cron scheduled tasks all have no direct equivalent on the other side and need rebuilding as serverless functions or moving out to an external service entirely.
HubSpot: HubSpot serverless functions, or an external service
Some of this genuinely cannot be done inside HubSpot at all, and the scoping stage is the place to find out which pieces those are, rather than the middle of the build.
Forms
Gravity Forms, Contact Form 7 and any similar plugin have to be rebuilt from nothing as HubSpot forms, with notification, routing and confirmation behaviour recreated rather than carried over. Rebuild them the way inquiries actually arrive here, too: a right-to-left Arabic form rather than an English one with translated labels bolted on, and phone fields that accept the local mobile formats people actually type.
HubSpot: HubSpot Forms
Historical submissions only survive the move if the HubSpot plugin was already capturing them beforehand; anything sitting only in the old form plugin's own database table is otherwise gone once the rebuild happens. Where those submissions were the closest thing the site had to a contacts database, worth confirming what, if anything, was actually being captured before the switch.
Reporting
Analytics Continuity
Analytics plugin configuration and any goal or event tracking that was running in WordPress needs re-establishing using HubSpot analytics and re-exported third-party tracking codes rather than carried over as configured.
HubSpot: HubSpot Analytics and Traffic Analytics
HubSpot's own guidance is to re-export tracking codes directly from the vendor rather than copy them out of the old WordPress install.
SEO Reporting Baseline
Rankings, indexed page counts and traffic baselines all need capturing before migration begins, so that any post-launch change can actually be attributed to something rather than argued over.
HubSpot: HubSpot SEO tools (Content Hub) plus Search Console
Skip the baseline and any ranking movement after launch becomes an argument nobody can actually win, in either direction.
Sales And Marketing Config
Templates, Modules, and Theme
The WordPress theme itself becomes a HubSpot theme: a base template, global header and footer partials, a page template per page type, drag-and-drop areas and custom modules, none of it inherited from what existed before.
HubSpot: HubSpot Theme, Templates, and Modules
Build the global header and footer first: everything else in the theme inherits from them, so getting them right early avoids reworking every page template later.
System Pages
The 404, 500, search results, password prompt and subscription preferences pages all have to be built as their own pages inside HubSpot.
HubSpot: HubSpot System Pages
None of these show up in a sitemap-driven page count, which is exactly why they are routinely missed from both the estimate and the launch checklist.
Navigation Menus
Every WordPress menu has to be rebuilt from scratch using HubSpot's advanced menu tool and menu modules, on both language versions of the site where the site runs bilingual.
HubSpot: HubSpot Advanced Menus
301 Redirect Map
Every URL that changes needs its own mapped redirect inside HubSpot's URL redirects tool, built from a complete pre-migration crawl rather than assembled after the fact from memory.
HubSpot: HubSpot URL Redirects
Of everything in the whole migration, this single task carries the highest consequence if it is rushed.
Domain, DNS, and SSL
The domain has to be connected to HubSpot with its DNS records updated and SSL provisioned, coordinated closely enough that there is no window where the site sits unreachable to a visitor.
HubSpot: HubSpot Domains and URLs
A second root domain, common enough for a group running separate Arabic and English properties, is plan-gated, so pull the actual tier requirement from the feature table before promising it is included.
Multilingual Variants
Whatever WPML or Polylang was doing has to be rebuilt as HubSpot's own multi-language page and post variants, with a separate redirect for each language rather than one shared map.
HubSpot: HubSpot multi-language content groups
Neither plugin has any import path into HubSpot at all, so treat this as a rebuild from the outset rather than something to attempt migrating first.
Users And Permissions
Users and Roles
WordPress roles, administrator, editor, author and contributor among them, need recreating as HubSpot users with their own permission sets, and blog post authors need mapping separately from user accounts entirely.
HubSpot: HubSpot Users, Teams, Permission Sets, and Blog Authors
Treat author mapping as a content task rather than a user-management one; the two get conflated easily, and doing so is how an author byline ends up wrong on launch day.
Gated Content and Memberships
A membership plugin gating content maps onto Content Hub memberships and access groups, but HubSpot memberships are access control rather than a membership platform in the fuller sense: no lesson delivery, no drip scheduler beyond a workflow-driven access group change, and no certificates.
HubSpot: HubSpot Memberships (Content Hub)
This frequently forces a choice between a higher HubSpot plan and a third-party platform bolted on beside it, and both options are worth pricing before either is promised to whoever is signing off the budget.
Integrations
WooCommerce or Ecommerce
Store functionality has no home inside HubSpot at all and has to stay on a dedicated ecommerce platform, integrated with HubSpot rather than replaced by it.
HubSpot: None for the storefront. Revenue Hub covers payments, quotes, and invoices only.
For a site built around ecommerce first, this on its own is reason enough to advise against the migration rather than promise a workaround that will not hold up.
Third-party Embeds and Feeds
IDX and MLS property feeds, booking systems, maps, review widgets and job boards all need re-embedding or replacing, and anything among them that depended on PHP needs rearchitecting entirely rather than simply re-pointing at a new address.
HubSpot: Marketplace apps, custom modules, or serverless functions
Document every third-party integration up front, at scoping, rather than letting the project discover them one at a time mid-build: that is the single most common cause of a real-estate or listings site running over its estimate.
The Sequence
Sync First, Then Migrate
Order is the content here. These steps form a dependency chain, and running them out of sequence is a documented way this kind of migration fails.
- 1
Audit Every Active Plugin First and Sort Each Into Native Equivalent, Marketplace App, Custom Build, Third-party Service or Drop; This Alone Predicts Real Project Cost Better Than Any Page Count
Audit every active plugin first and sort each into native equivalent, marketplace app, custom build, third-party service or drop; this alone predicts real project cost better than any page count
- 2
Crawl the Live Site for a Full URL and Page Inventory, and Capture SEO Baselines for Rankings, Indexed Pages and Traffic Before Anything Changes
Crawl the live site for a full URL and page inventory, and capture SEO baselines for rankings, indexed pages and traffic before anything changes
- 3
Identify Every Distinct Page Type and Custom Post Type, and Settle HubDB Versus Custom Objects for Each, Since That Decision Sets the Required Subscription Tier
Identify every distinct page type and custom post type, and settle HubDB versus custom objects for each, since that decision sets the required subscription tier
- 4
Test WordPress Connect Against the Live Blog During Discovery, So an Import-route Failure Surfaces Before the Build Rather Than During It
Test WordPress connect against the live blog during discovery, so an import-route failure surfaces before the build rather than during it
- 5
Install the HubSpot WordPress Plugin to Start Capturing Form Submissions and Tracking Data Into the CRM While the Rebuild Is Still Under Way
Install the HubSpot WordPress plugin to start capturing form submissions and tracking data into the CRM while the rebuild is still under way
- 6
Build the HubSpot Theme Itself
a base template, the global header and footer first, then a template per page type with its own drag-and-drop areas and custom modules
- 7
Build Every System Page
404, 500, search results, password prompt and subscription preferences, named explicitly rather than assumed
- 8
Import Blog Posts Through WordPress Connect, Falling Back to Smart Copy and Then XML If It Fails, Then Clean up Authors, Tags, Featured Images and Meta Descriptions
Import blog posts through WordPress connect, falling back to smart copy and then XML if it fails, then clean up authors, tags, featured images and meta descriptions
- 9
Re-upload All Media to the Files Tool and Rewrite Every In-content Image Reference Away From Its Old Wp-content URL
Re-upload all media to the Files tool and rewrite every in-content image reference away from its old wp-content URL
- 10
Rebuild Every Page Against the Finished Templates, Then Populate HubDB Tables for Whatever Structured or Dynamic Content Needs One
Rebuild every page against the finished templates, then populate HubDB tables for whatever structured or dynamic content needs one
- 11
Rebuild Every Form as a HubSpot Form, and Re-embed or Replace Each Third-party Integration the Site Was Running
Rebuild every form as a HubSpot form, and re-embed or replace each third-party integration the site was running
- 12
Build the Complete 301 Redirect Map From the Pre-migration Crawl and Load It Into the URL Redirects Tool Before Anything Goes Live
Build the complete 301 redirect map from the pre-migration crawl and load it into the URL redirects tool before anything goes live
- 13
QA the Site Across Browsers and Devices, Validate Every Redirect Individually, and Check Metadata Page by Page Against the Pre-migration Baseline
QA the site across browsers and devices, validate every redirect individually, and check metadata page by page against the pre-migration baseline
- 14
Connect the Domain, Update the DNS Records, Provision SSL and Go Live in a Genuinely Low-traffic Window Rather Than the Middle of a Business Day
Connect the domain, update the DNS records, provision SSL and go live in a genuinely low-traffic window rather than the middle of a business day
- 15
Watch Search Console, Rankings and 404 Reports Closely for Four Weeks; a Correctly Executed Migration Stabilises Within Two to Four
Watch Search Console, rankings and 404 reports closely for four weeks; a correctly executed migration stabilises within two to four
Typically 4-20 weeks end to end, depending on how much of the source configuration is actually in use.
Effort Estimator
How Big Is This Migration?
A handful of questions, no sign-up required. The ranges come from the research above: every feature we mapped carries an effort figure, and this totals the ones that apply to your instance.
Estimated Effort
Answer a couple of questions and an hours range appears here.
Built from our research on 43 WordPress features. It is a range, not a quote.
A planning range, not a quote. It is delivery effort only, with no project management line. What moves it most in practice is data quality.
What Goes Wrong Most Often
The failures that show up again and again, in roughly the order they bite.
Only Blog Posts Import Through Any of the Three Routes; Pages, Which Make up the Larger Share of Most Sites, Are a Manual Rebuild in Full
Only blog posts import through any of the three routes; pages, which make up the larger share of most sites, are a manual rebuild in full
WordPress Connect Fails Silently Wherever the REST API Is Disabled or Restricted, Which Is Common on a Hardened Site and Rarely Obvious Until the Import Is Already Attempted
WordPress connect fails silently wherever the REST API is disabled or restricted, which is common on a hardened site and rarely obvious until the import is already attempted
There Is No Plugin Ecosystem and No Hooks System on the HubSpot Side at All, So Whatever Functions.php Was Doing Has Nowhere Left to Go Without a Rebuild
There is no plugin ecosystem and no hooks system on the HubSpot side at all, so whatever functions.php was doing has nowhere left to go without a rebuild
Custom Post Types Have No Equivalent in HubSpot, and the HubDB-versus-custom-object Decision Made for Each One Sets the Subscription Tier the Whole Build Needs
Custom post types have no equivalent in HubSpot, and the HubDB-versus-custom-object decision made for each one sets the subscription tier the whole build needs
HubDB Sits Behind Content Hub Professional; Memberships, Multi-site Support and Extra Root Domains Sit Behind Enterprise Again Above That
HubDB sits behind Content Hub Professional; memberships, multi-site support and extra root domains sit behind Enterprise again above that
System Pages Are Invisible to a Sitemap-driven Page Count and Are Routinely Missing From Both the Estimate and the Launch Checklist as a Result
System pages are invisible to a sitemap-driven page count and are routinely missing from both the estimate and the launch checklist as a result
An Imported Post Still Pointing at a Wp-content Image URL Keeps Rendering Fine Right up Until WordPress Hosting Is Switched Off, Then Breaks All at Once
An imported post still pointing at a wp-content image URL keeps rendering fine right up until WordPress hosting is switched off, then breaks all at once
Redirects Are Entirely Manual and Are the Whole of the SEO Risk in This Migration; Rushing Them Is the Single Biggest Cause of a Post-launch Ranking Loss
Redirects are entirely manual and are the whole of the SEO risk in this migration; rushing them is the single biggest cause of a post-launch ranking loss
WooCommerce Cannot Be Rebuilt Inside HubSpot in Any Form, Full Stop
WooCommerce cannot be rebuilt inside HubSpot in any form, full stop
ACF Repeater and Flexible-content Fields Need Genuine Restructuring, Not a Straight Mapping Across, and That Work Is Easy to Underestimate at Scoping
ACF repeater and flexible-content fields need genuine restructuring, not a straight mapping across, and that work is easy to underestimate at scoping
A PHP Developer Cannot Move Straight Into HubL Without Ramp-up Time, and That Time Belongs in the Estimate Rather Than Being Discovered as a Delay Once the Build Has Started
A PHP developer cannot move straight into HubL without ramp-up time, and that time belongs in the estimate rather than being discovered as a delay once the build has started
How Quickly Your Side of the Business Can Actually Make Decisions, Not the Technical Complexity of the Build, Is Consistently the Biggest Single Factor in How Long These Projects Take, and a Decision Cycle That Slows Around Ramadan, Eid or the Deep Summer Is Worth Planning the Calendar Around Rather Than Treating as a Surprise
How quickly your side of the business can actually make decisions, not the technical complexity of the build, is consistently the biggest single factor in how long these projects take, and a decision cycle that slows around Ramadan, Eid or the deep summer is worth planning the calendar around rather than treating as a surprise
Questions
WordPress To HubSpot, Answered
Yes. Content import, source to hubspot, covering 3 objects. What it will not do is rebuild your configuration: that is the 20 items below.
Typically 4-20 weeks. Complexity is driven by automation and reporting depth, not by record count: the connector moves records, so a large database on its own will not extend the timeline.
Of 43 features we mapped, 10 (23%) carry across directly and 30 (70%) map partially, meaning something is lost or reshaped along the way. 3 have no HubSpot equivalent at any tier, worth raising before sign-off rather than after.
20 items have to be rebuilt by hand, and 13 documented limitations are not surfaced by the connector at all. Both lists are on this page, in full, for whoever is scoping the work.
The blog import tools themselves are free of any tier requirement, available on every product and plan. What actually gates the project is the destination tier: Content Hub Free caps out at 25 pages, HubDB and smart content need Content Hub Professional, and memberships, multi-site and any additional root domain need Content Hub Enterprise. Where custom post types are being replaced with custom objects, that too needs an Enterprise tier, so check the page count and the feature list against the plan before scoping the migration.
3: functions.php and hooks, WooCommerce, LMS plugins. If your team depends on one of these, settle it before you sign rather than discovering it at cutover, when the alternative is a custom build.
No. 2 items on this page are WordPress's own code and products, which a HubSpot migration does not port and which carry no hours in any estimate you are given. They still need a decision before cutover, because you are the one giving something up.
Only in one direction. The sync is not bidirectional here, so running both systems means choosing a system of record up front and accepting drift in the other.
Ready to Get Started?
Plan Your Migration
Tell us which platform you are leaving, how much of it is custom, and when you need to be live in HubSpot. We will tell you what transfers directly, what needs rebuilding, and how long the move actually takes.