Blog· HubSpot performance 9 min read

HubSpot Speed and Performance Optimization: The 2026 Playbook

HubSpot CMS ships on a fast CDN, so slow HubSpot sites are almost always self-inflicted: oversized hero images, theme CSS loaded everywhere, blocking fonts and a stack of marketing scripts. Here is the order we fix them in.

HubSpot Speed and Performance Optimization: The 2026 Playbook — HubStack HubSpot article cover
In this article
  • Step 0: measure the page that matters, on the device that matters
  • 1. Fix the image pipeline first — it is usually half the win
  • 2. Stop shipping the whole theme to every page
  • 3. Take fonts off the critical path
  • 4. Audit third-party scripts ruthlessly
  • 5. Keep HubDB and dynamic pages honest
  • 6. Forms, embeds and the shifting-layout problem
  • 7. Re-measure, then protect the gains
  • HubSpot website load capacity: what kind of load will a site handle?
  • HubSpot speed optimization: fix the existing site or rebuild?
  • HubSpot speed optimization: fix the site or rebuild the theme?
  • HubSpot website load capacity: what kind of traffic can a site handle?

HubSpot CMS gives you a global CDN, HTTP/2, automatic minification and image resizing out of the box. So when a HubSpot site loads slowly, the platform is rarely the cause — the build is. In every audit we run, the same handful of decisions account for most of the delay, and they are all fixable without leaving the portal.

This playbook is the order we work in on a real engagement: measure the right thing first, fix what blocks the first paint, then trim the payload that nobody notices until mobile. It complements our deeper diagnostic write-up on why your HubSpot website is slow and what Core Web Vitals actually measure — that post explains the metrics, this one is the implementation sequence.

Speed is also no longer just a ranking input. Slow pages lose conversions before they lose rankings, and AI crawlers that time out simply do not cite you. That is why performance is bundled into HubSpot technical SEO rather than treated as a separate project.

Step 0: measure the page that matters, on the device that matters

Do not optimise the homepage because it is the one you look at. Pull your top five landing pages by sessions from HubSpot analytics, then test each one in PageSpeed Insights on mobile and record the field data (CrUX) alongside the lab score. Field data is what Google uses; lab data is only a debugging aid.

Write the starting numbers down — Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift and total transferred bytes. Without a baseline you cannot tell whether a change helped or whether you just moved the problem.

One caveat specific to HubSpot: preview URLs and the live domain do not perform identically, because preview skips some CDN caching. Always test the published page on the production domain.

What to record before you change anything
MetricGood targetUsual HubSpot culprit
LCPUnder 2.5sUncompressed hero image or a font-blocked headline
INPUnder 200msChat widget, tracking scripts, heavy carousel JS
CLSUnder 0.1Images without width/height, late-loading banners and forms
Page weightUnder 1.5MBTheme CSS/JS loaded on every template plus large PNGs

1. Fix the image pipeline first — it is usually half the win

HubSpot's file manager will happily serve the 4000px PNG someone uploaded from a design tool. Resize before upload to roughly twice the largest rendered size, export as WebP, and let HubSpot's resizing parameters handle the rest. A hero that drops from 1.8MB to 120KB moves LCP more than any other single change.

Use HubSpot's `resize_image_url` HubL filter or the srcset support in the image module so phones do not download desktop assets. Set explicit width and height attributes on every image — missing dimensions are the most common cause of layout shift on HubSpot templates.

Lazy-load everything below the fold and, critically, do not lazy-load the hero. A lazy-loaded LCP image delays the very metric you are trying to improve. Add `fetchpriority="high"` to the hero instead.

2. Stop shipping the whole theme to every page

Marketplace themes and many custom themes attach one global stylesheet and one global JS bundle to every template, including landing pages that use three modules. HubSpot lets you attach CSS and JS at the template and module level — use it. Move slider, tab and animation code into the modules that need them.

Inside modules, prefer `{% require_css %}` and `{% require_js %}` blocks so assets load once, in the right order, only when that module is on the page. This is the change that usually takes a 900KB render-blocking bundle down to something reasonable.

If you inherited a theme you cannot fully restructure, our HubSpot theme customization work typically starts here: audit which assets each template actually needs, then unbundle.

Module-scoped assets in a HubSpot module
{% require_css %}
  <link rel="stylesheet" href="{{ get_asset_url('../../css/carousel.css') }}">
{% end_require_css %}

{% require_js position="footer" %}
  <script src="{{ get_asset_url('../../js/carousel.js') }}" defer></script>
{% end_require_js %}

3. Take fonts off the critical path

Three weights of two families, loaded from Google Fonts, will delay your headline by hundreds of milliseconds on a mid-range phone. Cut to the weights you actually use, self-host the files in HubSpot's file manager so they come off the same CDN, and set `font-display: swap` so text paints immediately.

Preload only the single font file used by above-the-fold text. Preloading everything is the same as preloading nothing — you just move the contention.

4. Audit third-party scripts ruthlessly

The fastest HubSpot template in the world still loses to five marketing tags. Chat widgets, heatmaps, A/B tools, two analytics platforms and an old retargeting pixel routinely add 400–800KB of JavaScript that competes with your own code for the main thread — and INP is the metric that suffers.

List every script in the portal's tracking code and each template's head. For each one, name the person who reads its data. Anything without an owner comes off. What survives gets loaded `async` or `defer`, and chat widgets get delayed until first interaction or scroll rather than on load.

This is also where HubSpot–GA4 double-tracking hides. If both are firing plus a tag manager container, you are paying three times for the same pageview, which is part of why your HubSpot and GA4 numbers never match.

5. Keep HubDB and dynamic pages honest

Dynamic pages built on HubDB are fast until a template loops the full table on every request, or runs several `hubdb_table_rows` calls to render one listing. Query once, filter with the API's own parameters rather than in HubL, and limit the columns you pull.

For large directories, paginate at the query level instead of rendering 500 rows and hiding most with CSS. The pattern we use for scaled listings is in HubDB programmatic SEO.

6. Forms, embeds and the shifting-layout problem

HubSpot forms load asynchronously, so any page that renders a form inline will shift unless you reserve space for it. Set a min-height on the form wrapper that matches the rendered height, and the same for embedded videos and maps.

Replace autoplaying background video with a poster image and a click-to-play, or a short compressed loop capped at a few hundred kilobytes. Video is the second-biggest payload offender after images on HubSpot landing pages, as we found rebuilding Mistertango's mobile experience.

7. Re-measure, then protect the gains

Re-run the same five pages, on the same devices, and compare against the numbers you wrote down. Expect the image and asset-scoping work to deliver most of the improvement, and script cleanup to deliver the INP change.

Then make it durable: add an image size limit to your content guidelines, review new modules for global asset attachments before publishing, and check Core Web Vitals monthly. Performance is a maintenance habit, not a one-off project — which is why it is part of every HubSpot support and maintenance plan we run.

HubSpot website load capacity: what kind of load will a site handle?

HubSpot website load capacity is not the same as page speed. Capacity describes how a site responds to concurrent demand; speed describes what an individual visitor experiences. HubSpot manages the hosting and CDN, but there is no single visitor count that establishes safe capacity for every site. Cached content, personalized experiences, external services and custom application endpoints have different constraints.

Before a campaign or traffic spike, map the complete visitor journey: landing page, form submission, search, booking tool and any custom API calls. A page can remain available while an external integration hits its rate limit or a booking embed stops responding. Check the current limits for each service and coordinate any planned load testing with HubSpot and the affected providers rather than sending uncontrolled traffic to production.

Build a launch checklist that separates browser performance from service reliability. Monitor response times and errors alongside successful submissions, and define a fallback for essential external tools. HubSpot Support & Maintenance can help investigate failures and maintain that checklist; it does not change HubSpot's platform limits.

HubSpot speed optimization: fix the existing site or rebuild?

Fix the existing site when the bottlenecks are isolated: an oversized hero image, a module that loads unused assets, or a script included on pages that do not need it. Test a representative page before making a site-wide decision. HubSpot Theme Customization is a suitable route when the current design and editor experience work but the implementation needs targeted changes.

Consider rebuilding templates when the same problems recur across page types, global dependencies make small changes risky, or editors cannot publish lightweight pages without developer intervention. A rebuild should address documented architectural problems, not simply replace one theme with another. Compare the scope of repairs with HubSpot Website Design & Development, including content migration, redirects, accessibility and testing.

Use the same acceptance criteria for either option: compare representative mobile pages, preserve working forms and tracking, and document which changes improved loading and interaction. A new theme is not automatically faster, and a higher lab score alone does not prove that visitors have a better experience.

HubSpot speed optimization: fix the site or rebuild the theme?

A slow HubSpot site does not automatically need a rebuild. Fix the existing theme when the main bottlenecks are isolated to a few modules, oversized assets or unnecessary dependencies. Test one representative page first: if targeted changes improve loading and interaction without breaking the editor, forms or tracking, extend those fixes through HubSpot theme customization.

Consider rebuilding when the same problems recur across templates and individual fixes require fragile overrides. Examples include duplicated frameworks, unsupported modules and layouts that depend on heavy JavaScript to display basic content. Compare the effort of repairing shared components with replacing them, including content migration, redirects and regression testing. A HubSpot website development scope should identify which components need replacing rather than assume every page must be rebuilt.

If you are comparing a HubSpot speed optimizer tool with a specialist service, ask what it can actually change. A diagnostic tool can flag slow resources, but recommendations still need implementation and testing. Require a list of affected templates, before-and-after measurements under comparable conditions, and checks that forms, consent controls and analytics still work.

HubSpot website load capacity: what kind of traffic can a site handle?

HubSpot website load capacity is different from page speed. Speed describes how quickly a visitor can see and use a page; capacity describes how the site behaves as concurrent demand rises. There is no reliable universal visitor limit to quote for every HubSpot site. Cached public pages, personalized content and pages calling external services have different dependencies, so monthly traffic alone cannot establish capacity.

Before a campaign launch, map the complete visitor journey: landing page, form submission, search, booking tool and any external API calls. Confirm current platform limits and testing requirements with HubSpot, and check quotas with each integration provider. A CDN can help deliver cached assets, but it does not remove limits on an external booking system or custom backend.

For an agreed, authorized load test, track response times, errors and successful completion of key actions—not just whether the homepage loads. Test browser performance separately on mobile, since a site can remain available under traffic while still feeling slow. Include campaign monitoring and a rollback plan in HubSpot support and maintenance.

FAQ

Questions people actually ask AI about this.

Why is my HubSpot website slow when HubSpot uses a CDN?

The CDN only accelerates delivery of what you built. Oversized images, theme-wide CSS and JS, blocking fonts and third-party marketing scripts are added by the site, not the platform, and they dominate load time.

What is a good page speed score for a HubSpot site?

Aim for field-data LCP under 2.5 seconds, INP under 200 milliseconds and CLS under 0.1 on mobile. A lab score above 80 on mobile PageSpeed Insights is a reasonable working target.

Should I use WebP images in HubSpot?

Yes. HubSpot serves WebP fine, and it typically cuts image weight by 25–50% versus PNG or JPEG at the same visual quality. Resize before upload rather than relying on CSS to shrink a large file.

Does lazy loading help HubSpot page speed?

Below the fold, yes. Never lazy-load the hero or any image that is the Largest Contentful Paint element — that delays the exact metric you are trying to improve.

How do I stop HubSpot theme CSS loading on every page?

Attach stylesheets at template or module level and use require_css and require_js blocks inside modules so assets load only when that module is rendered, instead of globally in the theme settings.

Do HubSpot forms slow down my page?

They add an asynchronous request and can cause layout shift if no space is reserved. Set a min-height on the form container matching its rendered height to keep CLS low.

How much do third-party scripts affect HubSpot performance?

Substantially. Chat widgets, heatmaps and duplicate analytics commonly add 400–800KB of JavaScript and are usually the main cause of poor Interaction to Next Paint scores.

Does page speed affect HubSpot SEO rankings?

Core Web Vitals are a confirmed Google ranking signal. The larger effect is commercial: slow pages lose conversions and AI crawlers that time out cannot cite your content.

Can HubDB dynamic pages be fast?

Yes, if you query once with server-side filters and limits rather than looping the whole table in HubL and hiding rows with CSS. Paginate at the query level for large directories.

How much does HubSpot speed optimization cost with HubStack?

HubStack works at $30/hour. A focused performance audit and fix pass typically runs between $150 and $1,200 depending on how many templates and modules need restructuring.

What is hsappstatic, and can I block it to improve HubSpot speed?

The hsappstatic.net domain serves static assets used by HubSpot features. Check each request's initiator and purpose in browser developer tools before changing anything; the domain name alone does not establish whether an asset is unnecessary. Blocking it wholesale can break functionality, so remove unneeded features or duplicate embeds at their source and test the affected pages.

Is there a HubSpot speed optimizer that fixes everything automatically?

No single optimizer can reliably fix every HubSpot performance issue. Automated checks can flag large assets or expensive scripts, but template dependencies, consent behavior and integration requirements need review. Evaluate any tool by its documented changes and before-and-after results, not a promised score.

Can upgrading my HubSpot subscription improve website loading speed?

Do not assume a subscription upgrade will make the same page load faster. First identify whether the problem comes from browser assets, template rendering or an external service. If a specific platform limit is involved, confirm the applicable limits and upgrade options with HubSpot before changing plans.

Why is HubSpot LCP still slow after I compress the hero image?

Largest Contentful Paint includes the time before the image starts downloading and the delay before it can render, not just download time. Confirm which element is actually the LCP element, then inspect server response time, resource discovery and render-blocking work. An above-the-fold LCP image generally should not be lazy-loaded; prioritize it only after confirming it is the critical resource.

What should a HubSpot speed optimizer deliver?

Expect a prioritized diagnosis, implemented fixes and comparable before-and-after tests on representative page types. The scope should distinguish editable theme code from platform-managed resources and third-party dependencies. A PageSpeed score alone is not proof that forms, tracking and mobile interactions still work.

What is hsappstatic, and should I block it to improve HubSpot speed?

The hsappstatic.net domain serves static assets used by HubSpot features. Identify the exact resource and the feature requesting it before changing anything; blocking the whole domain can break functionality. Remove an unnecessary feature or duplicate embed where possible, then test the affected page rather than blocking platform assets indiscriminately.

How do I identify what is causing poor HubSpot LCP?

Use PageSpeed Insights or a Chrome DevTools performance recording to identify the Largest Contentful Paint element on the affected page. For an image, check whether it is discovered late, lazy-loaded above the fold or downloaded at an unnecessarily large size. For text, inspect font loading and render-blocking styles; prioritize the measured cause rather than assuming every LCP problem is an image problem.

How can I optimize a review widget without removing the reviews?

Measure the widget's network requests and main-thread work with and without it enabled. If it sits below the fold, load it near the viewport or after a visitor requests it, and reserve space to prevent layout shifts. Where the provider permits it, consider a lightweight static review excerpt linking to the source, and verify that any deferred widget still displays and works correctly.

Proof

What this looks like when it's done right.

Want your HubSpot site audited and made fast?

Related

Technical SEO services

Redirect mapping, metadata baselines, canonical configuration, schema and indexing controls — handled as an ongoing programme rather than a launch-week scramble.

HubSpot technical SEO
Keep reading

How to Set Up HubSpot CRM for a 30-Person Team (Without Overbuilding It)

Most failed CRM rollouts are overbuilt, not underbuilt. Here is the order we configure HubSpot for a 30-person company — and everything we deliberately leave out of version one.

Read article