How to Fix Broken Links in HubSpot CMS
Broken links are one of those problems that accumulate silently. You publish a blog post that links to a partner's resource page. Six months later, the partner redesigns their site, the URL changes, and now your visitors hit a 404. Multiply that across hundreds of pages, and you have a real problem — frustrated visitors, lost conversions, and search engines that quietly downgrade your domain authority.
HubSpot doesn't offer a built-in broken link scanner for its CMS. You can check individual pages, but there's no global "find every broken link across my entire site" feature. That means most teams don't discover broken links until a visitor complains, or until an SEO audit surfaces dozens of dead URLs at once.
Here's how to systematically find and fix broken links in HubSpot CMS — and how to avoid the tedious page-by-page editing that usually follows.
Why broken links matter more than you think
Google's crawlers follow every link on your page. When they hit a 404, it signals that your content isn't well-maintained. A few broken links won't tank your rankings overnight, but the effect compounds. Pages with multiple broken outbound links tend to lose ranking position over time, and internal broken links can prevent Google from discovering newer content altogether.
Beyond SEO, there's the user experience cost. A visitor who clicks a "Learn more" link and gets a 404 is less likely to trust your content — and less likely to convert. For HubSpot users running inbound marketing funnels, every broken link is a potential leak in your pipeline.
Step 1: Audit your site for broken links
Before you can fix anything, you need a complete inventory. Since HubSpot doesn't provide this natively, you have a few options:
Free crawling tools: Tools like Screaming Frog (free up to 500 URLs) or the Ahrefs Site Audit feature can crawl your HubSpot-hosted site and flag every broken internal and external link. Run the crawl against your root domain and export the results.
Google Search Console: Under the "Pages" report (formerly "Coverage"), Google flags pages that return 4xx errors. This won't catch broken outbound links, but it will show you internal links pointing to pages that no longer exist on your own site.
Browser extensions: For a quick spot-check, extensions like "Check My Links" will scan the current page and highlight broken links in red. Useful for checking individual high-traffic pages, but not scalable for a full site.
Once you have your list, categorize the broken links:
- Internal links — pages on your own HubSpot site that were deleted, moved, or had their URL slug changed
- External links — third-party resources that moved, shut down, or changed their URL structure
- Anchor links — links to specific sections within a page where the anchor ID was removed
Step 2: Fix internal broken links
Internal broken links are usually the easiest to address because you control both sides. Common causes include:
- Renamed URL slugs. You published a blog post at
/blog/old-title, then updated the slug to/blog/new-titlewithout setting up a redirect. - Deleted pages. A landing page for last year's campaign was removed, but blog posts still link to it.
- Restructured navigation. You reorganized your site's page hierarchy, changing URLs in the process.
For each broken internal link, you have two options: set up a URL redirect in HubSpot (Settings > Website > Domains & URLs > URL Redirects), or update the link text in every page that references it.
Redirects are a good quick fix, but they add a hop that slightly slows page load and dilutes link equity. If you have 20 blog posts all linking to /old-page, it's better to update those 20 links to point directly to the new URL.
The problem is that HubSpot's page editor doesn't support find-and-replace across multiple pages. You'd need to open each blog post, find the link in the rich text editor, edit it, and publish the update. For a handful of links, that's manageable. For dozens or hundreds, it's a full afternoon of mind-numbing work.
Step 3: Fix external broken links
External broken links require a judgment call for each one:
- If the resource moved, update the link to the new URL.
- If the resource no longer exists, either remove the link, find an equivalent resource to link to, or link to a Wayback Machine snapshot if the content is still valuable.
- If the entire domain is dead, remove the link and consider rewriting the surrounding text.
The same scaling problem applies here. If you referenced a particular resource in 15 different blog posts, you need to update all 15. HubSpot's editor gives you no way to do that in one step.
Step 4: Replace broken URLs in bulk
This is where most teams get stuck. You know which links are broken, you know what the new URLs should be — but the actual process of opening each page, finding the link, editing it, and republishing is brutally tedious.
One approach is to use the HubSpot CMS API to programmatically update page content. You'd write a script that fetches each page's HTML, runs a find-and-replace on the broken URL, and pushes the update back. This works, but it requires developer time, careful testing, and there's no built-in undo if your regex accidentally mangles something.
A simpler approach is to use a bulk search-and-replace tool like SearchReplace. Connect your HubSpot portal, search for the broken URL across all blog posts or site pages, enter the corrected URL as the replacement, and preview every change before committing. If something looks wrong after the operation runs, you can roll it back with one click.
Here's what a domain-level URL replacement looks like:
This is especially useful for domain-level changes — for example, if a partner rebrands and their entire domain changes from oldpartner.com to newpartner.io. Instead of finding every reference manually, you search for the old domain and replace it across all content at once.
Step 5: Prevent broken links going forward
Fixing broken links is reactive. To reduce the problem over time:
Set up URL redirects proactively. Every time you change a URL slug or delete a page in HubSpot, create a redirect from the old URL to the new one (or to a relevant alternative). Make this part of your content workflow, not an afterthought.
Schedule quarterly link audits. Run a crawl tool against your site every quarter. Catching broken links early means fewer pages to fix and less accumulated SEO damage.
Use relative URLs for internal links when possible. If you link to /blog/my-post instead of https://www.yoursite.com/blog/my-post, you're less likely to have issues if your domain changes or if you switch from a staging to production URL.
Avoid linking to volatile URLs. Social media posts, campaign-specific landing pages, and beta documentation are all likely to change or disappear. When you can, link to stable, canonical URLs.
Dealing with links in CRM records
Broken links aren't limited to your CMS content. If your sales team pastes resource links into deal notes, contact properties, or ticket descriptions, those links go stale too. A prospect receives a follow-up email with a link to a PDF that was moved months ago, and your credibility takes a hit.
The same bulk search-and-replace approach works for CRM objects. Search across deal properties or contact notes for the old URL, replace it with the new one, and verify the changes in preview before committing. It's a step most teams overlook, but keeping CRM links current is just as important as maintaining your website.
Wrapping up
Broken links are inevitable — external sites change, your own content evolves, and URLs get lost in the shuffle. The key is having a system to find them quickly and fix them without spending hours clicking through individual pages. Run regular audits, fix issues in bulk rather than one at a time, and set up redirects proactively. Your visitors, your SEO, and your sanity will all benefit.
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 Rebrand Blog Content in HubSpot CMS
A rebrand means updating every blog post that mentions your old name, domain, or brand elements. Here's how to rebrand your HubSpot blog content efficiently without republishing everything manually.
Read guideStill editing HubSpot records one by one?
Start with 100 free applied records — no credit card required.