WordPress to HubSpot CMS migration: posts, pages, plugins and URLs
Migrating WordPress to HubSpot CMS means importing blog posts with the HubSpot blog import tool, rebuilding page templates as HubSpot themes and modules, replacing plugins with modules or HubDB, moving forms to HubSpot forms and redirecting every changed URL. A typical marketing site takes six to ten weeks including the redirect map.
By HubReven Engineering
HubSpot will import your WordPress blog. That is the part that sounds like most of the work, and it is the smallest part.
The migration is decided by what the import tool cannot see: URL patterns, shortcodes, custom post types, and the plugins quietly doing jobs nobody wrote down.
What the import tools move
Blog posts. HubSpot's blog import reads a WordPress export file and brings across post titles, bodies, publish dates, authors, tags and featured images. Images land in the HubSpot file manager.
Pages. The page import tool can pull content from existing URLs, but it imports content into generic templates. For a site you care about, pages are rebuilt on a proper theme, not imported.
What does not move: themes, plugins, shortcodes, custom fields, custom post types, comments, menus and anything rendered by PHP. Those are rebuilt or retired.
1. URLs change, so plan the redirects first
WordPress lets URLs take almost any shape: dates in the path, categories in the path, custom permalinks per post. HubSpot blogs use a root path plus a slug.
WordPress /2022/03/crm-adoption-tips/
HubSpot /blog/crm-adoption-tips
That one difference can change every post URL on the site. HubSpot's URL redirect tool supports pattern based redirects, so one rule can cover a whole date based structure, but it has to be written and tested before launch.
Build the list of old URLs from a crawl, Search Console and analytics combined, not just the sitemap. The method is here, and it routinely finds two to four times as many URLs as the sitemap lists.
2. Shortcodes become broken text
A shortcode like [gallery ids="12,14,19"] or [cta id="7"] is an instruction to a plugin. HubSpot
has no plugin to read it, so it arrives as literal text in the middle of a post.
Before importing, search the export for every shortcode in use and count them. Each one gets a decision: replace with a HubSpot module, convert to plain HTML, or remove. Do it in the export file with a script, not by hand in the HubSpot editor, or you will be fixing posts for weeks.
3. Custom post types need a new home
Case studies, team members, locations, job openings. In WordPress these are usually custom post types with custom fields. HubSpot has two good homes for them:
- HubDB tables for structured listings, rendered as dynamic pages with one template.
- CRM objects when the item is genuinely a business record, for example a location that also has deals and contacts associated with it.
Choose based on who edits it and whether it relates to CRM data. Rebuilding forty case studies as forty hand made pages is the option that looks fastest and costs most over a year.
4. Plugins were doing jobs
Every active plugin is a feature to replace or drop. Run the list:
| Plugin job | HubSpot equivalent |
|---|---|
| Forms | HubSpot forms |
| SEO titles and meta | Native page settings |
| Redirects | URL redirects tool |
| Caching, CDN | Included |
| Sliders, tabs, accordions | Custom modules |
| Membership, gated content | Memberships, on the right tier |
| Ecommerce | Stays elsewhere, integrated |
The rows that matter are the ones you cannot fill. If the site runs WooCommerce or a membership plugin with real logic, that part may belong somewhere else, connected to HubSpot rather than rebuilt inside it.
Forms and tracking
Replace WordPress forms with HubSpot forms during the rebuild, and map the old form fields to
existing HubSpot properties, not new ones created by the import. Otherwise you end up with
company_name, company and Company all holding the same thing.
Keep the HubSpot tracking code on the old site until the moment of cutover, so visitor history continues across the move.
The order that works
- Crawl, inventory URLs and decide what is migrated, merged or retired.
- Build the HubSpot theme and modules from the real templates.
- Clean the WordPress export: shortcodes, broken embeds, internal links.
- Import the blog to a staging domain, review a sample, fix, reimport.
- Rebuild pages and dynamic content on the new theme.
- Load and test the redirect map against staging.
- Cut over DNS, submit the sitemap, and watch Search Console for four weeks.
What to watch after cutover is its own discipline.
Should you move at all?
HubSpot CMS earns the migration when marketing owns the site and CRM attribution matters. WordPress stays the better fit when the site depends on plugins with no equivalent or a large engineering team owns it. The decision framework is here. If you stay, you can still connect WordPress to HubSpot properly.
Frequently asked questions
Can HubSpot import my WordPress blog automatically?
Yes. The HubSpot blog import tool accepts a WordPress export file and brings across posts, authors, tags, dates and featured images. Shortcodes, custom fields and plugin output are not converted, so clean the export before importing.
Will I lose SEO moving from WordPress to HubSpot?
Not if every changed URL is redirected, titles and meta descriptions are preserved, and internal links are updated. Expect a dip of one to two weeks while search engines reprocess the redirects. Missing redirects are what turn a dip into a permanent loss.
How long does a WordPress to HubSpot migration take?
Six to ten weeks for a typical marketing site with a blog, including theme build, content cleanup, redirects and QA. A blog only move onto an existing HubSpot theme can take two to three weeks.
What happens to my WordPress custom post types?
They are rebuilt, usually as HubDB tables rendered through dynamic page templates, or as CRM objects when they are business records. Neither the blog import nor the page import tool moves them.
Get the next one