How to Update URLs in HubSpot Blog Posts
Links inside blog posts are invisible maintenance debt. Every time you change a URL on your site — restructure your navigation, move documentation to a new subdomain, rename a product page, or sunset a landing page — every blog post that linked to the old URL is now pointing at a dead end. Or worse, it's pointing at a redirect that adds latency and eventually might break.
HubSpot's CMS doesn't surface broken internal links, and it doesn't offer a way to bulk-update URLs across blog content. Google Search Console will eventually tell you about 404s, but by then your readers have already bounced and your link equity is leaking.
This guide covers how to find, audit, and update URLs across your HubSpot blog posts — whether you're dealing with a handful of broken links or a full domain migration.
Here is what upgrading hardcoded HTTP links to HTTPS looks like across all your blog posts at once:
Common reasons for URL changes in blog content
Domain or subdomain migration. You moved your docs from docs.yourcompany.com to help.yourcompany.com. Or your marketing site moved from www.yourcompany.com to yourcompany.io. Every internal link in your blog uses the old domain.
Site restructure. You reorganized your site navigation. The pricing page moved from /pricing to /plans. The product page moved from /product to /platform. Blog posts linking to the old paths now 404 or redirect.
Documentation reorganization. Help articles got reorganized into new categories. /docs/getting-started became /help/quickstart. Tutorial blog posts that linked to specific doc pages are now pointing to 404s.
Landing page retirement. Campaign landing pages get archived after the campaign ends. Blog posts that linked to /webinar-replay-q3-2025 or /ebook-download are now dead links.
Product rebrand. Along with a product name change, the URL slug often changes too. /features/analytics-pro becomes /features/insights-platform. Every blog post linking to the old feature page needs updating.
HTTP to HTTPS. If your blog content includes hardcoded http:// links to your own site, they should be updated to https://. Most browsers handle this via redirect, but it's sloppy and adds a redirect hop.
Tracking parameter changes. Your marketing team changed UTM conventions. Links that used ?utm_source=blog&utm_medium=post now should use ?ref=blog. Or you're removing tracking parameters entirely.
Finding broken or outdated URLs in your blog
Before you can fix links, you need to find them. There are several approaches.
Google Search Console
If your HubSpot blog is connected to Google Search Console, check the Pages report under Indexing. Google flags 404 errors for URLs it has crawled. If your blog posts link to internal pages that now 404, Google will find them — but it can take days or weeks for the report to update.
Third-party crawlers
Tools like Screaming Frog, Ahrefs, or Semrush can crawl your blog and identify broken links. These tools check every link on every page and report which ones return 404, 301 redirect, or other non-200 status codes.
The advantage of crawlers is completeness — they check every link, not just the ones you think might be broken. The disadvantage is that they tell you which pages have broken links, but not what the links should be updated to. That mapping is manual.
Searching blog content directly
If you know which URL changed, you can search your blog content for the old URL and replace it with the new one. This is the most direct approach and the one where search-and-replace tooling shines.
For example, if your docs moved from docs.example.com to help.example.com, search all blog post content for docs.example.com and replace with help.example.com. Every matching link gets updated.
How URLs are stored in HubSpot blog posts
HubSpot stores blog post bodies as HTML. Links appear as standard <a> tags:
<a href="https://yourcompany.com/pricing">See our pricing</a>
Some links are absolute (including the full domain), and some might be relative (starting with /):
<a href="/pricing">See our pricing</a>
Image sources are similar:
<img src="https://yourcompany.com/images/screenshot.png" alt="Dashboard">
When searching for URLs, you need to account for both absolute and relative links, and for links appearing in both href and src attributes.
URL update strategies
Strategy 1: Domain swap
The simplest case. Your domain changed and every instance of the old domain should become the new domain.
Search: docs.example.com
Replace: help.example.com
This handles every link regardless of the path that follows. https://docs.example.com/getting-started becomes https://help.example.com/getting-started. Make sure the path structure is the same on the new domain — if paths also changed, you'll need path-specific replacements.
Strategy 2: Path prefix change
Your site restructured and a group of pages moved to a new path.
Search: /product/features/
Replace: /platform/capabilities/
This updates all links under the old path. Use exact-match for the path prefix to avoid unintended replacements.
Strategy 3: Individual page URL change
A single page moved. This is straightforward.
Search: /webinar-replay-q3-2025
Replace: /resources/webinars/q3-2025-replay
Strategy 4: Protocol upgrade
Update HTTP to HTTPS for internal links.
Search: http://yourcompany.com
Replace: https://yourcompany.com
Strategy 5: Tracking parameter update
If you need to change UTM parameters across all internal links:
Search (regex): \?utm_source=blog&utm_medium=post
Replace: ?ref=blog
Or to remove tracking parameters entirely:
Search (regex): \?utm_[^"]*
Replace: (nothing)
Be careful with this regex — it matches from the ? to the next double quote (which should be the closing " of the href attribute). Preview every match to verify it captures the full parameter string and nothing more.
Strategy 6: Remove links to retired pages entirely
If a page has been permanently retired with no replacement, you might want to remove the link entirely while keeping the anchor text.
Search (regex): <a[^>]*href="[^"]*\/retired-page[^"]*"[^>]*>(.*?)</a>
Replace: $1
This keeps the visible text but removes the hyperlink. Preview this carefully — regex on HTML is fragile and you want to make sure the pattern matches exactly the links you intend.
Executing the update with SearchReplace
For each URL change:
- Select Blog Posts as the object type
- Select the post body property
- Enter the old URL (or pattern) as the search term
- Enter the new URL as the replacement
- Preview all matches
The preview shows each blog post that contains the URL, the context around the match, and the proposed replacement. This is where you catch edge cases:
- A blog post that intentionally references the old URL as part of a "how to migrate" tutorial
- A URL that appears in body text as a readable reference (not just inside an href attribute)
- Links that partially match your search pattern but point to different pages
After reviewing the preview, apply the changes. If you discover an issue after applying, roll back that specific operation.
Important: URL slugs vs. content URLs
There's a critical distinction between updating URLs inside blog post content (which is what this guide covers) and changing the URL slug of a blog post.
Content URLs are links within the post body that point to other pages. Updating these changes where the link goes, not the post's own URL.
Post URL slugs are the URL path of the blog post itself (e.g., /blog/how-to-use-analytics). Changing a post's slug changes its public URL. This breaks all inbound links to the post from external sites, social media, email campaigns, and other blog posts. Never change slugs in bulk without a redirect strategy.
If you do need to change post slugs, set up 301 redirects in HubSpot (Settings > Website > Domains & URLs > URL Redirects) from the old slug to the new one. This preserves SEO value and prevents 404s for existing links.
SEO implications of URL updates in blog content
Internal link equity
Internal links pass SEO authority between pages. When internal links point to 404s, that authority is wasted. Fixing broken internal links recovers this link equity and improves the linked page's ranking potential.
Redirect chains
If your blog posts link to Page A, and Page A redirects to Page B, which redirects to Page C, each redirect in the chain degrades the link signal and adds latency. By updating blog links to point directly to the final destination (Page C), you eliminate redirect chains.
Crawl efficiency
Search engine crawlers have a "crawl budget" — the number of pages they'll crawl on your site in a given timeframe. Every broken link or redirect the crawler encounters is a wasted crawl. Fixing links in your blog content helps search engines crawl more efficiently.
Anchor text relevance
When updating URLs, consider whether the anchor text (the visible link text) still makes sense with the new destination. If the link text says "See our Analytics Pro documentation" but the page is now called "Insights Platform," update the anchor text too. Search engines use anchor text as a relevance signal for the linked page.
Building a URL redirect map
For large-scale URL changes (like a site restructure), create a redirect map before updating blog content:
| Old URL | New URL | Redirect in place? | Blog posts to update |
|---|---|---|---|
| /product/features | /platform/capabilities | Yes (301) | 12 |
| /docs/api/v2 | /developers/api | Yes (301) | 8 |
| /pricing | /plans | Yes (301) | 23 |
| /webinar-q3 | (retired, no replacement) | No | 3 |
Having this map ensures you update every link systematically and don't miss any changed URLs.
Prevention: writing future-proof links
Use relative URLs for internal links. Instead of https://yourcompany.com/pricing, use /pricing. This survives domain changes automatically.
Link to stable pages. Avoid linking to campaign-specific landing pages that will be retired. Link to permanent pages like /pricing, /features, or /about.
Use descriptive anchor text. "Learn more about our platform" ages better than "Click here" and gives you flexibility when the destination changes.
Avoid hardcoding specifics in link text. "See our pricing" ages better than "See our $29/mo starter plan" — when pricing changes, you only need to update the destination page, not every blog post that mentioned the price.
Maintain a link inventory. For content-heavy blogs, track which posts link to which internal pages. When a page URL changes, you can immediately identify which posts need updating.
URL maintenance is one of those tasks that's easy to ignore and expensive to fix later. A few hours of proactive link updates after a site change prevents months of SEO erosion, user frustration, and slow-drip authority loss. The sooner you catch and fix broken URLs, the less damage they do.
Keep working through the cleanup
Related HubSpot guides for planning, previewing, and validating the next step.
How to Bulk Edit Blog Posts in HubSpot CMS
Update URLs, branding, author names, and content across multiple HubSpot blog posts at once. No more editing posts one by one in the CMS editor.
Read guideHow to Bulk Edit Landing Pages in HubSpot
Update branding, URLs, CTAs, and content across multiple HubSpot landing pages at once. Stop editing pages one by one after a rebrand or domain change.
Read guideHow to Find and Replace in HubSpot Blog Posts
HubSpot's CMS doesn't have a built-in find-and-replace for blog content. Here's how to update text, links, CTAs, and branding across your entire blog without editing each post manually.
Read guideHow to Fix Broken Links in HubSpot CMS
Broken links hurt your SEO and frustrate visitors. Learn how to find and fix dead links across your HubSpot blog posts, landing pages, and website pages efficiently.
Read guideStill editing HubSpot records one by one?
Start with 100 free applied records — no credit card required.