HubSpot to WordPress Redirects and URLs
By João Piedade · Updated
If your WordPress blog will live at the same address as your HubSpot blog, you can keep almost every post's URL. Set WordPress's permalinks to match your HubSpot blog root URL, such as /blog/%postname%/, import the posts with their original slugs, and old links keep working without a redirect.
If the address changes, for example from blog.yoursite.com to www.yoursite.com/blog, add a permanent (301) redirect from each old URL to its new one. We checked the HubSpot, WordPress and Google details below on 13 November 2026, on their own websites and on live HubSpot blogs. For the rest of the move, see how to migrate a HubSpot blog to WordPress.
How HubSpot builds blog addresses
Each HubSpot blog has a blog root URL: a domain plus an optional slug, set in your blog settings. HubSpot puts that root in front of every post slug. The two common setups:
- A folder on your main domain:
www.yoursite.com/blog/post-slug - A blog subdomain:
blog.yoursite.com/post-slug
Tag and author pages use the same root: /blog/tag/news and /blog/author/john-smith. Listing pages continue at /blog/page/2. HubSpot post addresses usually don't end in a slash.
To check yours, in HubSpot go to the settings icon, then Content → Blog, and look at Blog root URL. If you have more than one blog, each has its own root. If Use language slug in URL is ticked, the language code is part of the root too.
Save two lists before you change anything
- Your sitemap. Open
yourdomain.com/sitemap.xmland save a copy. HubSpot adds every live blog post to it. For a blog subdomain, open the subdomain's sitemap. It stops answering once the domain points to WordPress. - Your existing redirects. In HubSpot go to Settings → Content → Domains & URLs → URL Redirects and click Export. HubSpot says these only work for domains hosted in HubSpot, so they stop when your domain leaves. You'll recreate them in WordPress.
Find the posts WordPress can't match
Look through your saved sitemap for post addresses with an extra slash after the blog root. Older HubSpot blogs often have them. In the sitemaps of five live HubSpot blogs we checked, four had some:
- older addresses with extra folders, such as
/blog/bid/96973/post-titleor/blog/blog/post-title - slugs with a slash in them, such as
/blog/what-is-a/b-split-testing
WordPress slugs can't contain a slash. Its slug cleaner turns slashes into hyphens and trims hyphens from the ends, so a slug ending in - changes too. Blog Porter uses the last part of each address as the slug, so /blog/bid/96973/post-title becomes /blog/post-title/. Give each of these posts its own redirect. They're few, but often old posts with years of links.
Same address: match HubSpot's structure in WordPress
This works when your blog's address moves from HubSpot to your WordPress host. Google calls this a move without URL changes.
Blog in a folder, such as www.yoursite.com/blog
- In WordPress, go to Settings → Permalinks.
- Choose Custom structure and enter
/blog/%postname%/. Use your own blog slug if it isn'tblog.%postname%is the post's slug. - Leave Category base and Tag base empty, and click Save Changes.
With the bases empty, WordPress puts your structure's prefix in front of tag pages and, the same way, author pages. So tags land at /blog/tag/news/ and authors at /blog/author/john-smith/, the same paths HubSpot used.
Then create a WordPress page with the slug blog and choose it as the Posts page under Settings → Reading. Your post list stays at /blog, and its next pages at /blog/page/2/.
This only works if WordPress takes over the whole domain. HubSpot says a domain can host content in only one location. If you're keeping your website on HubSpot, the blog has to move to its own address. See "Moving to a new address" below.
Blog on its own subdomain, such as blog.yoursite.com
Point the subdomain at your WordPress site and use Post name (/%postname%/) as the permalink structure. WordPress's default bases put tags at /tag/news/ and authors at /author/john-smith/, which matches HubSpot's paths on a subdomain blog. Any other HubSpot pages on that subdomain stop loading when it moves.
Finish the details
- The final slash. WordPress addresses end in one and HubSpot's don't. WordPress answers the address without it with a 301 to the one with it, so old links still land on the post. To match exactly, drop the final slash from the structure:
/blog/%postname%. - Tag and author slugs. Compare Posts → Tags and Users with the tag and author addresses on your HubSpot blog, and edit any slug that differs.
- Your other pages. Give your WordPress pages the same slugs they had on HubSpot.
- Duplicate posts. If WordPress already has a post with the same slug, from an earlier test import for example, the new post gets a different slug. Move earlier copies to the trash first.
- Meta descriptions. Blog Porter copies each post's meta description into the fields Yoast SEO, Rank Math and SEOPress use. With another route, check that your descriptions came across.
Moving to a new address: use 301 redirects
Moving a subdomain blog into your main site, or onto a new domain, changes every post's URL. Each old URL needs a permanent redirect to its new one. Google's guide to site moves with URL changes says to map every old URL to its new equivalent, use permanent server-side redirects where you can, redirect straight to the final address without chains, avoid sending many old URLs to an unrelated page such as your home page, and keep the redirects generally for at least a year.
Where the redirects go
The redirect has to run wherever the old address is served:
- Old address still connected to HubSpot. HubSpot's URL redirects tool can send traffic to another site. A flexible pattern redirect covers a whole blog with one rule: original URL
https://blog.yoursite.com/*rest-of-url, redirect tohttps://www.yoursite.com/blog/{rest-of-url}. New redirects are permanent (301) by default, and apply even while the old post is still published unless you tick Disable redirect if a page exists at the redirected URL. HubSpot says redirects can take up to 48 hours to take effect. The tool needs a paid plan, such as Content Hub Starter or Marketing Hub Professional, and you keep paying for as long as the redirects run. - Old address pointed at your own host. If the old subdomain or domain now points to your web host or CDN, set up the redirects there. HubSpot suggests your hosting provider, CDN or DNS provider once a domain is hosted outside HubSpot.
- WordPress on the same domain, with a new structure. Use a redirect plugin such as Redirection, which makes 301 redirects, imports CSV files and logs 404 errors.
Avoid JavaScript redirects. Google recommends them only when you can't redirect on the server.
Update the links inside your posts
Redirects catch old links, but Google's site move guide also suggests updating your own links to the new URLs. Imported posts keep their links as they were, so links between your posts still point at the old addresses. Search your WordPress posts for the old domain or subdomain and update those links to the new ones, starting with your most visited posts.
Build the list of old and new addresses
Blog Porter doesn't create redirects or export a list of them, so you build the list yourself:
- Take the old addresses from the sitemap you saved.
- Take the new ones from WordPress's built-in sitemap at
/wp-sitemap.xml, or from Posts → All Posts. - Put them side by side in a spreadsheet and match the rows by slug. Blog Porter keeps each post's slug, so most rows line up.
If you're redirecting from HubSpot, you can upload the list as a CSV file, up to 500 redirects at a time, with URLs of up to 140 characters. Add the exported HubSpot redirects from earlier to the same list.
After launch
- Open a sample of old addresses: a few posts, including your oldest and any with
/bid/in them, plus a tag page, an author page and the blog page. Each should show the right content, or redirect to it in one step with a 301. - In WordPress, go to Settings → Reading and make sure Discourage search engines from indexing this site is unticked. While it's ticked, WordPress turns off its sitemap.
- In Google Search Console, submit your new sitemap. If your URLs changed, Google's site move guide suggests submitting the old sitemap you saved as well.
- Watch Search Console for crawl errors. Google says it can take a few weeks or more before new URLs replace the old ones in search.
- Keep your HubSpot blog until you've checked posts, images and redirects. How to migrate a HubSpot blog to WordPress covers the order.
Move the posts with Blog Porter
Blog Porter imports your HubSpot posts into WordPress with their original slugs, so with the permalink settings above most keep their URLs. It also imports available images into your Media Library, copies meta descriptions for your SEO plugin, and reads publish dates and authors from your post pages, in resumable batches. Enter your blog's address, such as www.yoursite.com/blog or blog.yoursite.com, not your home page.
It costs $0.20 per post, with a minimum of 5 posts, paid once. The free analysis lists the posts it found and the exact price before you pay. Your posts must be published and public. Blog Porter doesn't create redirects, and it doesn't move comments, CTAs, forms or your HubSpot pages. How to export your HubSpot blog compares it with HubSpot's own exports.
Install the Blog Porter plugin to run the free analysis.
Ready to migrate your blog?
Don't stay stuck on your current platform. These are a few Blog Porter customers that already saved time moving their content.
“Amazing service and works like an absolute charm, just imported 109 posts in minutes! saved me days of work.”
“Thank u so much, it saved me a lot of time 🙏”
“Wow, fast response! And thank you. I discovered you on Reddit. So glad I did because I'm busy and moving a site is a lot of work.”