HubSpot SEO is the work of optimising a website published on Content Hub, HubSpot's CMS. The platform handles hosting, CDN, SSL certificate and sitemap on its own. Blog tag pages, structured data on the home page and landing pages are left to whoever runs the site, and those are exactly the places where HubSpot sites lose something.
We say this because we measured it. On 10 October 2026 we checked 21 UK websites running on HubSpot CMS, all belonging to HubSpot partner agencies: of the 12 tag pages we opened, all 12 were indexable and 8 had no canonical. We had run the same check on 18 Italian sites on 2 October, with very similar results. Below you'll find what HubSpot does automatically, what it doesn't, the test data and which plan you need to get the SEO tools.
Is HubSpot good for SEO?
Yes, for the infrastructure. Pages reach Google already rendered, served through a content delivery network: on all 21 UK sites in our test the server header was Cloudflare. There are no plugins to update and no servers to configure (as with Webflow or Wix), so many of the technical problems we see on badly maintained WordPress sites simply disappear.
HubSpot is, however, a niche platform among CMSs. According to W3Techs, in October 2026 HubSpot CMS was used by 0.2% of websites whose CMS can be identified. In our check of 25 commercial searches on Google.it (the Italian market), published in our guide to the best CMS for SEO, only one of the 46 domains with an identifiable CMS was on HubSpot, against 17 on WordPress and 10 on Shopify.
People who choose HubSpot as a CMS usually do it for the CRM, not for SEO. That makes most sense in B2B. There's no recent official UK figure for CRM use specifically: the closest is the ONS Management and Expectations Survey, published in March 2025, which found that 61% of UK firms with at least 10 employees had adopted specialised software in 2023, a category that includes software for sales, marketing, customer service and billing. For businesses already inside HubSpot, having the website and the CRM in the same system means knowing which organic page brought in a contact and whether that contact turned into revenue, which we cover in our comparison of the best CRM for SEO.
What HubSpot does on its own and what's left to you
HubSpot's official documentation is clear on almost everything. The table brings together what the platform does automatically and what has to be set up by hand, with the source for each row.
| Element | What HubSpot does automatically | What's left to do | Source |
|---|---|---|---|
| XML sitemap | Adds published website pages and blog posts | Add landing pages by hand, as they aren't included automatically | HubSpot Knowledge Base |
| Robots.txt | Generates a basic file, which can be edited | Add the Sitemap line, which isn't there in files left at the default | Visilay test on 21 UK sites |
| Redirects | Supports 301, 302, proxy and pattern redirects, including CSV import | Plan the redirect map for a migration | HubSpot Knowledge Base |
| Hreflang | Adds alternate links in multi-language content groups | Set the lang attribute by hand in coded templates | HubSpot Developers |
| Canonical | Self-referencing on pages and posts | Blog listing pages don't have one by default | HubSpot Knowledge Base |
| Tag pages | Generates them and makes them indexable | Decide whether to noindex them: there's no switch for it | HubSpot Community |
| SEO recommendations | Domain scan with errors and opportunities | Only available on Content Hub or Marketing Hub Professional and Enterprise | HubSpot Knowledge Base |
Two rows in the table surprise people coming from WordPress. First: removing a page from the sitemap doesn't remove it from Google, as HubSpot itself says in its sitemap guide. To exclude it you need a meta noindex. Second: landing pages built with the dedicated tool stay out of the sitemap until someone adds them. For a B2B site that lives on landing pages for events, webinars and ebooks, that can mean dozens of URLs Google only finds through links.
The test: 21 UK sites on HubSpot CMS
On Google UK, on 10 October 2026 (desktop), the query "hubspot seo" (90 searches a month in the UK, according to DataForSEO) returns an AI Overview in which 6 of the 8 sources are HubSpot's own pages, followed by 8 organic results: a Reddit thread at the top, three guides by HubSpot partner agencies, HubSpot's blog, a YouTube video, SEO.com and a course listing. None of them measures how real sites behave. To do that we took the UK HubSpot agency partners listed by RevenueBase and those appearing in the Google UK SERPs for "hubspot seo", "hubspot partner agency uk" and "hubspot agency london". We kept only the sites that respond with the x-hs-hub-id header, in other words those actually served by HubSpot: 21 in all. The sample doesn't represent all UK HubSpot sites. It's made up of agencies that know HubSpot well, so the problems that emerge should be less frequent than average.
For each site we read the home page, robots.txt, sitemap, blog listing page, a tag page and, where we found one, an article.
| Check | Sites that pass | Notes |
|---|---|---|
| Sitemap.xml reachable | 21 of 21 | No tag pages in any of the sitemaps |
| Sitemap line in robots.txt | 10 of 21 | Missing in files left at the default |
| Home page with canonical | 21 of 21 | In the Italian sample, the 2 without one were blogs on a subdomain |
| Home page with a meta description of 70 to 160 characters | 17 of 21 | One empty, the others 161, 167 and 210 characters |
| Home page with JSON-LD structured data | 14 of 21 | A third of the home pages have no JSON-LD block at all |
| Home page with hreflang | 2 of 21 | The other 19 don't declare it on the home page |
| Article with Article or BlogPosting schema | 11 of 13 | One has JSON-LD without an Article type, one has no JSON-LD at all |
| Tag page with noindex | 0 of 12 | All indexable |
| Tag page with canonical | 4 of 12 | All 12 with an automatically generated title, blog name plus tag name |
| llms.txt file present | 5 of 21 | HubSpot doesn't generate it |
| Markdown version for AI agents | 1 of 21 | x-hs-markdown-eligible header active (4 of 18 in the Italian sample) |
The finding that matters most is the last block of rows on tag pages. The rest, sitemap, canonical and meta description, HubSpot handles well even when nobody touches it.
Tag pages: the issue HubSpot doesn't solve
A tag page is the list of blog posts that share a label, for example /blog/tag/content-marketing (some sites use /topic/ instead). HubSpot creates one for every tag and makes them all indexable. On all 12 we opened, the title was built as "blog name | tag name": same text, one word changes. One of them had a meta description just 5 characters long.
With 20 or 40 tags (the biggest blog in the UK sample linked 44 from its listing page, the biggest Italian one 71) you get dozens of thin, near-identical pages. They don't trigger a penalty, but they use up crawling and can end up competing with the article that covers the same topic. It's the classic case of duplicate content produced by the CMS.
The request for a one-click way to noindex tag and author pages has been open on the HubSpot community since 27 November 2019. In June 2025 its status went back from "Being Reviewed" to "Idea Submitted". In practice there are three options:
- add a meta robots noindex to the listing page template, with a condition that only fires when the page is filtered by tag. You need someone who can work on templates in HubL;
- cut the tags down to a few topic groupings, and only if there really is an audience that browses the blog by subject;
- keep them indexed but turn them into useful pages, with an introductory text and a self-referencing canonical. This only makes sense for the 3 or 4 tags that match a real search.
Before you act, open the Pages report in Search Console and filter by /tag/: if Google has already left them out on its own, with the status "Crawled - currently not indexed", the problem is smaller than it looks.
Sitemap, robots.txt and blog listing pages
HubSpot's default robots.txt blocks previews, email preference centres and the hs_preview and hsCacheBuster parameters. It doesn't contain the Sitemap line: 11 of the 21 UK sites have left it that way. Google still finds the sitemap if it's submitted in Search Console; crawlers that don't go through Search Console look for it precisely in robots.txt. Adding it takes a minute, from the domain settings.
Blog listing pages don't have a canonical by default. HubSpot does this on purpose, it explains in its guide to duplicate content: if every page in the pagination pointed to the first one, search engines would struggle to find older posts. It's the right choice, and it matches what we saw in the Italian test, where the only 2 sites without a canonical on the home page were blogs on a subdomain whose home page is, precisely, a listing page.
The subdomain setup is common: in one of the Italian sites the main website runs on WordPress and only the blog, on blog.domain, is on HubSpot. It works, but for Search Console they're two separate properties unless you use a domain property, and internal links between the two have to be managed by hand because neither CMS knows what's in the other.
Redirects and speed when you migrate from WordPress
The moment a HubSpot site loses rankings is almost always the migration. HubSpot supports one-by-one 301 redirects, pattern redirects and CSV import, and warns that they can take up to 48 hours to take effect. What usually breaks is the same as with any platform change: post URLs that change structure (from /2023/05/title to /blog/title, for example), images whose path changes when they move under /hubfs/, PDFs that disappear. The procedure we follow is the one in our SEO migration checklist.
On speed HubSpot starts with an advantage, but staying fast isn't automatic. Pages are served through Cloudflare, but custom modules, autoplay videos and the tracking scripts marketing adds weigh as much as on any CMS. In one article from the Italian sample we counted 28 images, 21 of them with no alt text. The thresholds to watch are the Core Web Vitals, measured on real user data rather than on the lab score.
Structured data: articles yes, home pages often not
Of the 13 UK articles we analysed, 11 declared an Article or BlogPosting schema. The schema comes from the blog template, so it needs checking again every time the theme changes: one article had JSON-LD without an Article type and another had no JSON-LD block at all. Home pages do worse: 14 of 21 have a JSON-LD block, the other 7 none.
Organization schema markup on the home page doesn't move rankings, but it's one of the signals Google and AI assistants use to connect the website to the brand, the logo and the social profiles. On HubSpot you add it in the page's head HTML or, better, in the global template, so that it applies to the whole site.
HubSpot and AI search: AEO, Markdown and llms.txt
On 14 April 2026 HubSpot launched HubSpot AEO, a tool that measures how a brand appears in the answers of ChatGPT, Gemini and Perplexity, with competitor comparison and citation analysis. It's included in Marketing Hub Professional and Enterprise, or costs $50 a month on its own (about £38 at the Bank of England rate of 8 October 2026, $1.3226 to the pound). In the same announcement HubSpot says its customers' organic traffic fell by 27% in a year: that's a figure for HubSpot's worldwide customer base, not the UK, but it tells you where the tool comes from.
In our Italian test a feature emerged that we haven't found documented by HubSpot. Some sites respond with the x-hs-markdown-eligible header: if a client requests the page with Accept: text/markdown, the server returns the text as Markdown instead of HTML. It was active on 4 of the 18 Italian sites and on 1 of the 21 UK sites. On that UK site the Markdown version of an article weighed 65,384 bytes against 131,248 for the HTML (50% less), and the home page 30,844 against 146,911 (79% less). It's the same principle as Cloudflare's Markdown for Agents, in beta since 12 February 2026: less code for an AI agent to read, so fewer tokens to understand the page.
HubSpot doesn't generate an llms.txt file: the 5 UK sites and 3 Italian sites in our samples that have one added it themselves. To find out whether any of this produces citations you need to measure them, with HubSpot AEO or with the tools we compared in our guide to AI visibility.
Which HubSpot plan you need for SEO
You can publish a blog and pages on Content Hub Starter, but the proper SEO tools start with Professional. This is what HubSpot's pricing page stated in October 2026.
| Feature | Starter | Professional | Enterprise |
|---|---|---|---|
| Google Search Console integration | Yes | Yes | Yes |
| SEO recommendations | Basic, in the editor | Advanced, across the whole domain | Advanced, across the whole domain |
| Site and topic audit | No | Yes | Yes |
| Page A/B testing | No | Yes | Yes |
| Languages | Up to 3 | Up to 50 | Unlimited |
| List price | Per seat | $450 to $500 a month (about £340 to £378), 3 seats included | From $1,500 a month (about £1,134), 5 seats included |
For a business website that wants to work on SEO with the built-in tools, Professional is the benchmark. If you already use Semrush, Ahrefs or Screaming Frog for audits, you can stay on Starter and let those tools do the work HubSpot's recommendations don't cover.
A checklist for a HubSpot website
In the order we apply it, from quickest to most demanding:
- add the Sitemap line to robots.txt and submit the sitemap in Search Console;
- add the landing pages that need to rank to the sitemap;
- check in Search Console how many /tag/ pages are indexed and decide whether to noindex them from the template;
- write the title and meta description for the home page and main pages, which HubSpot won't fill in for you;
- add Organization schema to the global template;
- set the lang attribute in coded templates, especially if the site is multilingual;
- go through the images already uploaded and fill in the alt text where it's missing;
- connect HubSpot to Search Console and look at contacts by organic source, not just sessions.
If you're considering broader work, from a migration to a content strategy, you'll find how we work on our SEO consulting page; for ChatGPT and AI Overviews there's our SEO for AI service.
HubSpot SEO FAQs
Yes, for the technical basics: hosting, CDN, SSL certificate, sitemap and redirects work without intervention. What you need to fix by hand are the tag pages, which HubSpot leaves indexable, and structured data on the home page, missing in 7 of the 21 UK sites we checked.
It depends on how many tags you have and what they contain. If they are dozens of lists with automatically generated titles and descriptions, it's worth noindexing them from the template. If a few tags match real searches, you can keep them indexed by adding an introductory text to the page.
Yes, for website pages and blog posts. Landing pages built with the dedicated tool aren't included automatically and have to be added by hand from the Domains & URLs settings. The sitemap is available at /sitemap.xml.
No, but it helps. Starter gives you the Search Console integration and recommendations in the editor. The full-domain audit and A/B testing start with Professional, which in October 2026 cost $450 to $500 a month on HubSpot's US price list, with 3 seats included.
Not necessarily. Losses almost always come from missing redirects, URLs changed without a map, and images or PDFs that have moved. HubSpot handles 301 redirects, pattern redirects and CSV imports, but the map of old URLs needs to be prepared before the migration.
No. HubSpot AEO measures how your brand appears in the answers of ChatGPT, Gemini and Perplexity. It doesn't track Google rankings or run technical audits, which remain the job of Search Console and SEO tools.
One thing the industry rarely says: HubSpot's SEO advantage isn't in the CMS, which does the same things as a good WordPress site with less maintenance. It's in the CRM, which links an organic visit to a signed contract. If you use HubSpot only as a CMS and measure SEO in sessions, you're paying a licence for the least distinctive part of the platform and leaving unused the very part that justifies the price.