AutoSEO handles research, writing and optimisation, and delivers each article as a signed webhook payload your own middleware places into HubSpot.
What Is SEO for HubSpot and Why the Platform Requires Its Own Approach
SEO for HubSpot means applying search optimization within the specific architecture, toolset, and constraints of HubSpot's CMS Hub (now branded as Content Hub). HubSpot generates pages through its own templating language (HubL), hosts content on its CDN, and manages technical SEO through a combination of built-in settings and theme-level code. Because HubSpot controls the rendering layer, the CDN configuration, and the sitemap generation, the optimization decisions you make inside the platform differ meaningfully from what you would do in WordPress, Webflow, or a custom-built stack.
Understanding those differences is the starting point for any HubSpot SEO effort that produces real results.
How HubSpot Sites Are Structured for Search Engines
HubSpot organizes content into distinct object types, and each type has its own URL pattern, indexing behavior, and SEO settings panel. The main content objects are:
- Website pages — standalone pages built in the drag-and-drop editor or coded templates, living under your root domain or a subdomain.
- Landing pages — conversion-focused pages that HubSpot defaults to noindex because they are typically gated or campaign-specific. This default catches many teams off guard.
- Blog posts — published under a blog root slug you define (for example,
/blog/), with automatic pagination, tag pages, and author pages generated by HubSpot.
- Knowledge base articles — available on Service Hub, hosted under a separate subdomain (
knowledge.yourdomain.com) by default unless you map a custom domain.
- HubDB-powered pages — dynamic pages generated from HubDB tables, which can produce large sets of programmatic pages if configured correctly.
Each object type feeds into a single XML sitemap that HubSpot auto-generates and submits. The sitemap lives at yourdomain.com/sitemap.xml and updates automatically when pages are published or unpublished. You cannot split the sitemap by content type natively, which matters for large sites where crawl budget allocation becomes a concern.
Domain and Subdomain Architecture in HubSpot
HubSpot allows you to connect multiple domains and subdomains within a single portal. A common setup places the marketing site on www.yourdomain.com, the blog on www.yourdomain.com/blog, and the knowledge base on knowledge.yourdomain.com. The subdomain for the knowledge base is a separate root in Google's eyes, meaning its domain authority does not consolidate with the main site unless you actively build links to it. Where possible, mapping the knowledge base to a subdirectory (www.yourdomain.com/support/) is the stronger SEO configuration, though HubSpot's Service Hub makes this harder to achieve than it should be.
The Exact Technical SEO Levers Inside HubSpot
URLs and Slug Management
HubSpot sets the URL slug for every page at creation time based on the page title. The auto-generated slug often includes stop words, unnecessary hyphens, and full sentence structures pulled directly from the title field. You must manually edit the slug in the Settings → General → Page URL field before publishing. After a page goes live, changing the slug requires you to set up a redirect manually — HubSpot does not create 301 redirects automatically when you change a published URL, unlike some other CMS platforms.
Redirects in HubSpot are managed under Website → Domains & URLs → URL Redirects. You can add them individually or import a CSV. HubSpot supports 301, 302, and 307 redirect types. One important limitation: HubSpot redirect rules apply only to pages hosted on HubSpot. If part of your site runs on a different platform behind a reverse proxy, those redirects must be handled outside HubSpot.
Metadata: Titles, Descriptions, and Canonical Tags
Every HubSpot page has a dedicated SEO settings panel accessible via the Settings tab in the page editor. From there you control:
- Meta title — HubSpot does not append your site name automatically unless your theme template includes that logic in HubL. Check your theme's
page_meta.html file to confirm whether the site name is being concatenated.
- Meta description — limited to 300 characters in the field, though Google typically displays around 155–160 characters. HubSpot does not warn you when you exceed the visible threshold.
- Canonical URL — HubSpot sets a self-referencing canonical by default on all published pages. You can override the canonical in the advanced settings panel to point to a different URL, which is useful for paginated content or syndicated posts.
For blog posts, HubSpot automatically generates canonical tags on paginated listing pages (/blog/page/2/) pointing back to the root blog URL (/blog/). This is correct behavior, but it means paginated blog pages will not rank independently — a deliberate trade-off you should understand before relying on pagination for SEO reach.
XML Sitemaps
HubSpot's auto-generated sitemap includes all indexed website pages, blog posts, and landing pages that are set to index. It excludes pages marked noindex. The sitemap does not include lastmod timestamps by default in all HubSpot tiers, which reduces the signal Google has for prioritizing recrawls. You can verify your sitemap contents at yourdomain.com/sitemap.xml and submit it directly in Google Search Console.
One sitemap gap to know: HubDB-powered dynamic pages are only included in the sitemap if the HubDB table has the Allow public API access setting enabled and the template is configured to generate dynamic page routes. Missing this step means an entire section of programmatic content can go unindexed.
Schema Markup and Structured Data
HubSpot does not inject schema markup automatically except for basic BlogPosting schema on blog posts in some themes. For all other schema types — FAQPage, HowTo, Product, LocalBusiness, BreadcrumbList — you must add JSON-LD manually. The cleanest method is to add a custom HTML module to your page template and paste the JSON-LD block inside a <script type="application/ld+json"> tag. HubSpot's Custom HTML module renders in the page head or body depending on where you place it in the template.
For site-wide schema (organization, sitelinks searchbox), add the JSON-LD to your global header or footer partial in the theme editor under Design Tools → Templates. Changes to global partials apply immediately to all pages using that template.
Page Speed and Core Web Vitals
HubSpot hosts all pages on its global CDN, which handles basic asset caching and compression automatically. However, several speed issues are HubSpot-specific and require active intervention:
- Image optimization — HubSpot's file manager does not automatically compress images on upload. Use HubSpot's built-in image resizer by appending width parameters to image URLs (for example,
?width=800), or compress images before uploading. HubSpot does serve WebP format automatically when the browser supports it for images hosted in the file manager.
- Render-blocking scripts — HubSpot loads its own tracking script (
js.hs-scripts.com) synchronously by default. You cannot remove this script if you use HubSpot's forms or tracking, but you can defer third-party scripts added through Settings → Tracking & Analytics → Additional site scripts.
- Font loading — themes that load Google Fonts via
<link> tags in the <head> introduce render-blocking requests. Switch to font-display: swap in your theme CSS and self-host fonts in HubSpot's file manager where possible.
- Lazy loading — HubSpot adds
loading="lazy" to images below the fold in modern themes, but older themes and custom modules often omit this attribute. Audit your image modules in the theme editor.
The Most Common HubSpot SEO Mistakes
| Mistake |
Where It Happens in HubSpot |
How to Fix It |
| Landing pages left on noindex |
Default setting for all landing pages |
Open each page's SEO settings and toggle Search engine indexing to on for pages you want indexed |
| Duplicate content from blog tag pages |
Auto-generated tag listing pages at /blog/tag/[tag-name]/ |
Noindex low-value tag pages or consolidate tags to reduce duplication |
| Auto-generated slugs with stop words |
Page creation from title field |
Edit the slug manually before publishing; set a team process to review slugs at creation |
| No 301 redirect after slug change |
URL field in page settings |
Add a redirect manually in URL Redirects every time a live URL changes |
| Missing schema on non-blog pages |
No automatic schema injection outside blog |
Add JSON-LD via Custom HTML module in the template or page body |
| Knowledge base on separate subdomain |
Default Service Hub domain configuration |
Map a custom domain or subdirectory path to consolidate authority where technically feasible |
| HubDB pages missing from sitemap |
HubDB table settings |
Enable public API access on the table and verify dynamic routes are configured in the template |
| Uncompressed images in file manager |
File manager uploads |
Compress before upload or use HubSpot's URL-based resizer parameters |
The Topic Cluster Tool: Useful but Not a Substitute for Keyword Research
HubSpot's built-in SEO Topics tool (found under Marketing → SEO) lets you organize content into pillar pages and cluster pages. The tool visualizes internal linking relationships and flags missing links between cluster content and the pillar page. It is a useful organizational aid, but it does not perform keyword research. It does not show search volume, keyword difficulty, or competitive data. Teams that rely on it exclusively end up with well-organized content clusters built around topics that have no measurable search demand. Use it alongside a dedicated keyword research tool — not instead of one.
Step-by-Step SEO Workflow for HubSpot: From Research to Ranking
The fastest way to rank with HubSpot SEO is to follow a repeatable workflow: keyword research tied to a pillar-cluster model, on-page optimization inside HubSpot's page editor, technical fixes surfaced by HubSpot's SEO recommendations tool, and consistent rank tracking through connected analytics. Each step below maps directly to a HubSpot feature or setting.
Step 1: Build Your Keyword and Topic Cluster Map
Before writing a single word, open HubSpot's SEO Topics tool (Marketing → SEO). Create a core topic that matches your highest-value pillar keyword. HubSpot will suggest related subtopics based on search volume and relevance. Accept the subtopics that align with your buyer's journey stages and reject anything off-brand. Each accepted subtopic becomes a cluster blog post that internally links back to the pillar page.
Export the topic map as a CSV. This file becomes your content calendar. Assign a target keyword, search intent label (informational, commercial, transactional), and a target word count to every row before any writing begins.
Step 2: Create and Optimize the Pillar Page
In HubSpot, navigate to Website → Website Pages and create a new page using a wide, long-form template. Pillar pages perform best when they are ungated, comprehensive, and structured with jump-link navigation. Set the following on-page elements before publishing:
- Page title: Include the exact core topic keyword near the front, keep it under 60 characters.
- Meta description: Write a 140–155 character summary that includes the keyword and a clear value statement.
- Canonical URL: Set a clean, keyword-rich slug with no dates or stop words.
- H1 tag: HubSpot pulls this from the page title field by default; confirm it matches your target keyword intent.
- Featured image alt text: Describe the image using the keyword naturally, not as a keyword dump.
- Internal links: Add anchor-text links to every cluster post as you publish them.
Use HubSpot's built-in SEO Recommendations panel (the magnifying glass icon in the page editor) to resolve any flagged issues before hitting publish. Common flags include missing meta descriptions, images over 1 MB, and broken internal links.
Step 3: Write and Publish Cluster Blog Posts
Go to Marketing → Blog and create a new post for each cluster keyword. HubSpot's blog editor includes an SEO panel on the right side. Fill in the focus keyword field — HubSpot will score your optimization in real time, checking keyword usage in the title, URL, first paragraph, and subheadings.
Structure every cluster post with a clear answer in the opening paragraph (this feeds AI Overviews and featured snippets), at least three H2 subheadings, and a contextual internal link back to the pillar page using the core topic keyword as anchor text. Add one external link to a credible source to support E-E-A-T signals.
Before publishing, set the topic tag inside HubSpot to match the SEO topic you created in Step 1. This is what formally connects the cluster post to the pillar in HubSpot's topic cluster graph.
Step 4: Submit Pages for Indexing
HubSpot automatically generates and updates your XML sitemap at yourdomain.com/sitemap.xml every time you publish or update a page. After publishing a new pillar or cluster post, go to Google Search Console, paste the page URL into the URL Inspection tool, and click Request Indexing. This accelerates crawling from days to hours for most sites.
Also confirm your HubSpot sitemap is submitted in Search Console under Sitemaps → Add a new sitemap. You only need to do this once; Google will re-crawl it automatically on future publishes.
Step 5: Track Rankings and Optimize Over Time
HubSpot's SEO Topics dashboard shows estimated monthly search traffic and the number of pages linked to each topic cluster. Review this dashboard weekly. For granular position tracking, connect HubSpot to Google Search Console via Settings → Integrations → Google Search Console. This pulls average position, impressions, and click-through rate directly into HubSpot reports.
Set up a custom HubSpot report that combines organic sessions (from the traffic analytics source breakdown) with contact and deal attribution. This lets you tie keyword rankings to revenue, not just traffic.
Every 90 days, audit posts that rank on page two (positions 11–20). Update statistics, expand thin sections, improve internal linking, and re-request indexing. This refresh cycle consistently moves borderline pages onto page one without creating new content.
How to Automate HubSpot SEO with AutoSEO
AutoSEO automates the five-step HubSpot SEO workflow — keyword research, content creation, HubSpot publishing, index submission, and rank tracking — inside a single connected pipeline. The result is a system that produces optimized, published, and tracked HubSpot content without manual handoffs between tools.
Research Phase: Automated Keyword and Cluster Discovery
AutoSEO pulls keyword data from live search APIs and groups keywords into pillar-cluster structures automatically. You input a seed topic or domain, and AutoSEO returns a prioritized list of cluster keywords ranked by search volume, keyword difficulty, and your site's existing topical authority. This replaces the manual CSV export from HubSpot's SEO Topics tool and adds competitive gap analysis that HubSpot does not natively provide.
Write Phase: SEO-Structured Content Generation
AutoSEO generates long-form drafts built around HubSpot's on-page requirements: keyword in title, meta description, first paragraph, and subheadings; proper H2/H3 hierarchy; internal link placeholders mapped to your existing HubSpot pages; and schema-ready FAQ sections. Each draft includes a recommended word count based on the top-ranking competitors for that keyword. You review and approve before anything publishes.
Publish Phase: Direct HubSpot Integration
AutoSEO connects to HubSpot via the HubSpot CMS API. After approval, it creates the blog post or landing page directly in your HubSpot portal, populates all SEO fields (focus keyword, meta description, canonical URL, alt text, topic tag), and assigns the post to the correct topic cluster. No copy-pasting between tools. The page is created in draft status so your team can do a final visual review inside HubSpot before publishing.
Index Phase: Automated Search Console Submission
Once a page publishes in HubSpot, AutoSEO calls the Google Indexing API to submit the URL for crawling immediately. For sites with verified ownership in Search Console, this cuts average indexing time from several days to under 24 hours. AutoSEO logs the submission timestamp and monitors Search Console data to confirm the page has been indexed, flagging any pages that remain unindexed after 72 hours.
Track Phase: Automated Rank Monitoring and Reporting
AutoSEO pulls ranking data daily and maps it back to the original keyword cluster. You see position movement for every cluster post and pillar page in one dashboard, alongside HubSpot traffic and conversion data. When a page drops more than three positions, AutoSEO triggers an alert and generates a prioritized list of on-page changes — typically thin content, missing internal links, or a title tag mismatch — so you can act before rankings erode further.
| Workflow Step |
Manual HubSpot Process |
AutoSEO Automated Process |
| Keyword Research |
HubSpot SEO Topics + manual CSV |
Automated cluster mapping with gap analysis |
| Content Creation |
Writer brief + manual drafting |
SEO-structured draft generated and reviewed |
| HubSpot Publishing |
Manual copy-paste into blog editor |
Direct API publish with all SEO fields populated |
| Index Submission |
Manual URL inspection in Search Console |
Automatic Indexing API submission on publish |
| Rank Tracking |
Search Console + manual HubSpot reports |
Daily automated tracking with drop alerts |
FAQ
Does HubSpot have built-in SEO tools?
Yes. HubSpot includes an SEO Recommendations tool that audits every published page for on-page issues, an SEO Topics tool for building pillar-cluster structures, a blog SEO panel with real-time optimization scoring, automatic XML sitemap generation, and native Google Search Console integration for tracking impressions, clicks, and average position inside HubSpot reports.
What is the HubSpot topic cluster model and why does it matter for SEO?
The topic cluster model organizes your content into a pillar page (a broad, comprehensive page targeting a core keyword) surrounded by cluster blog posts (each targeting a related long-tail keyword) that all link back to the pillar. This structure concentrates internal link equity on your most important pages, signals topical authority to Google, and creates a logical site architecture that both crawlers and readers can follow. HubSpot's SEO Topics tool manages this structure visually inside the platform.
How do I connect Google Search Console to HubSpot?
Go to Settings → Integrations → Google Search Console in your HubSpot account. Click Connect, authenticate with the Google account that has Search Console access, and select the property that matches your domain. Once connected, HubSpot pulls average position, impressions, and CTR data into your traffic analytics reports. You still need to submit your sitemap directly in Search Console, but rank data will sync automatically from that point forward.
Why are my HubSpot blog posts not showing up in Google?
The most common reasons are: the blog subdomain or subdirectory is blocked in your robots.txt file, the pages are set to no-index inside HubSpot's page settings, the sitemap has not been submitted to Search Console, or the content is too thin or duplicated to be prioritized for crawling. Check each HubSpot page under Settings → Advanced → Crawling and Indexing to confirm indexing is enabled, then use the URL Inspection tool in Search Console to diagnose crawl issues.
Can I do SEO on HubSpot landing pages as well as blog posts?
Yes. HubSpot landing pages have the same SEO settings as website pages and blog posts — you can set a custom meta title, meta description, canonical URL, and alt text. The main difference is that landing pages are often gated, which limits their ability to earn backlinks and rank for informational keywords. For SEO purposes, use ungated website pages for top-of-funnel keyword targets and reserve gated landing pages for conversion-focused, bottom-of-funnel traffic that arrives through paid or email channels.
How does HubSpot handle canonical URLs for SEO?
HubSpot sets a self-referencing canonical tag on every published page by default, which prevents duplicate content issues when pages are accessed through multiple URL variations. You can override the canonical URL manually in the Advanced Settings tab of any page or blog post. This is useful when you have similar content across multiple HubSpot pages and want to consolidate ranking signals to one preferred URL. Always verify canonical tags are rendering correctly using a browser's View Source or a crawl tool like Screaming Frog.
What HubSpot plan do I need for full SEO functionality?
Basic on-page SEO features — meta tags, canonical URLs, XML sitemaps, and blog optimization — are available on all HubSpot CMS and Marketing Hub plans including Starter. The SEO Topics tool and SEO Recommendations panel require Professional or Enterprise plans. Google Search Console integration is available at the Professional level and above. If you are on a Starter plan, you can still implement a solid SEO workflow manually; you will just lack the automated topic cluster visualization and page-level recommendation audits.
How long does it take to see SEO results from HubSpot content?
Most new HubSpot blog posts and pillar pages begin appearing in search results within one to four weeks of indexing, but reaching page one for competitive keywords typically takes three to six months of consistent publishing, internal linking, and off-page authority building. Pages targeting low-competition, long-tail keywords can rank in two to four weeks. The pillar-cluster model accelerates results because internal linking distributes authority across the cluster from day one, rather than leaving each post to build authority in isolation.