Hosting, Caching and CDN Decisions: A Practical Comparison for Marketing Managers

A slow B2B website does not automatically need a new host or a CDN. Compare the origin, cache and delivery layers, diagnose where delay is introduced, and choose the smallest infrastructure change that addresses the real problem.

Written by Founder of ScanMySEO
Published Updated Reading time10 min read

Hosting, caching and CDN changes solve different problems

If a website is slow, it is tempting to treat “faster hosting”, “better caching” and “add a CDN” as interchangeable fixes. They are not. Hosting controls how quickly and reliably the origin can generate or serve a response. Caching avoids repeating work by reusing a previously stored response. A content delivery network (CDN) can place cacheable content closer to users and absorb some traffic before it reaches the origin.

The practical question for a marketing manager is therefore not “Which CDN is best?” but “Where is the delay actually coming from?” A CDN can reduce distance and origin load, but it will not repair a slow database query on an uncached page, excessive JavaScript that blocks interaction, or layout shifts caused by missing image dimensions.

Infrastructure can matter to Search, but the relationship needs care. Google says Core Web Vitals are used by its ranking systems, while also warning that good scores do not guarantee high rankings and that relevance still matters. Separately, server health and response time can affect how much Googlebot is able to crawl when a site is constrained by host capacity; that is a crawl-efficiency issue, not a promise of better rankings.

Compare the three layers before you buy anything

LayerWhat it mainly controlsTypical symptom when it is the bottleneckWhat usually changes
Hosting / originApplication, database and server work needed to produce the response; available CPU, memory and connections; origin location.Slow uncached HTML responses, timeouts or 5xx errors, especially during traffic peaks.Application/database work, server resources, platform tier, autoscaling, origin-side caching or architecture.
CachingWhether browsers, reverse proxies or shared caches can reuse a previous response, and for how long.The same resources are repeatedly fetched or regenerated even though they have not changed.Cache-Control, cache keys, revalidation, asset versioning, purge/invalidation rules and which content is safe to share.
CDNDelivery from distributed edge locations and, for cacheable content, reduced trips to the origin.Performance is acceptable near the origin but materially worse for distant audiences; origin load is high for cacheable assets.Edge locations, cache rules, cache keys, compression, origin shielding and purge behaviour.

These layers overlap. A CDN is also a shared cache, and many hosting platforms include built-in page or object caching. That is why vendor labels are less useful than request-level evidence: identify which layer served the response, whether it was a cache hit, and how long the origin took when caching was bypassed.

How infrastructure actually affects Core Web Vitals and Search

Google's current Core Web Vitals are Largest Contentful Paint (LCP), Interaction to Next Paint (INP) and Cumulative Layout Shift (CLS). Google describes “good” performance as LCP within 2.5 seconds, INP under 200 milliseconds and CLS no more than 0.1. Google’s web performance guidance evaluates these targets at the 75th percentile of page loads. The Google Search Central Core Web Vitals documentation is the appropriate source for the current metric set.

Hosting, caching and CDN decisions most directly affect the loading path. Time to First Byte (TTFB) happens before LCP can complete, so a slow server response can make a good LCP difficult. Google's web performance guidance describes TTFB as a foundational diagnostic metric rather than a Core Web Vital itself and recommends testing the origin separately from caching where possible. See web.dev's TTFB guidance.

Do not assume the same infrastructure purchase will fix every Core Web Vital:

  • Poor LCP with high TTFB: origin performance, caching and geographic delivery are plausible first suspects.
  • Poor LCP with a fast TTFB: investigate the LCP resource itself, such as a large hero image, late discovery, render-blocking CSS or client-side rendering.
  • Poor INP: the main cause is often work on the browser's main thread, such as heavy JavaScript or expensive event handlers. A faster host may have little effect.
  • Poor CLS: investigate layout behaviour such as unsized media, inserted content or font/layout changes. A CDN is rarely the primary remedy.

If your field data shows a mixed performance problem rather than an obvious infrastructure bottleneck, use a broader Core Web Vitals troubleshooting workflow before changing platforms.

Diagnostic workflow: find the bottleneck before changing vendors

Use the following order so that a good cache does not hide a weak origin and a slow front end is not misdiagnosed as a hosting problem.

  1. Start with real-user evidence. Search Console's Core Web Vitals report is based on Chrome UX Report field data and groups similar URLs, so use it to identify whether the issue affects mobile, desktop or particular URL groups. The Search Console documentation explains how the report is sourced and grouped. If the site lacks enough field data, use repeatable lab tests as diagnostic evidence rather than pretending they represent all users.
  2. Compare the public path with the origin path. Ask your developer or host to measure a normal cached request and a request that bypasses the CDN/page cache. If the cached path is fast but the origin is slow, the CDN is masking rather than removing an origin bottleneck.
  3. Inspect response headers and actual cache behaviour. Check Cache-Control and the provider's cache-status information. A missing max-age is not automatically an error: the correct policy depends on the resource. Also remember that no-cache means a stored response must be revalidated before reuse; it does not mean “never store this”. MDN's Cache-Control reference provides an accessible explanation of the directives.
  4. Separate static assets from HTML and personalised responses. Versioned CSS, JavaScript, fonts and images can often tolerate long cache lifetimes because a changed file gets a new URL. HTML, stock levels, account pages and other changing or user-specific responses need different rules.
  5. Check geography. If TTFB is healthy close to the origin but substantially worse for important overseas markets, a CDN or more appropriate origin location may help. If every region is slow before a cache hit, fix the origin first.
  6. Check capacity and errors under load. Review 5xx/429 rates, timeouts, CPU/memory saturation, database latency and response times during campaigns or traffic spikes. Google's crawling documentation notes that slower responses, 5xx errors and rate limiting can reduce crawl capacity when hostload becomes a constraint. See Google's current crawl-capacity guidance.
  7. Check freshness failures before increasing TTLs. If users sometimes see old pages after a publish or deployment, the missing piece may be purge/invalidation logic or asset versioning rather than “more caching”.

Decision matrix: choose the first fix

What you observeMost likely first area to investigateWhat not to assume
Uncached HTML is slow in every regionOrigin application, database, hosting resources or origin-side cachingA CDN will make the underlying dynamic request fast.
Origin is healthy, but distant users have much higher TTFBCDN coverage, edge caching and origin geographyYou necessarily need a more expensive origin server.
Static assets are fetched again on repeat visitsBrowser/shared cache headers and asset versioningThe only remedy is changing CDN provider.
Cacheable HTML repeatedly hits the origin during campaignsEdge/page caching, cache keys and purge strategyAll HTML is safe to cache for every visitor.
Logged-in or personalised pages risk being sharedCacheability rules and cache keys“Cache everything” is a safe performance shortcut.
Deployments leave some visitors on old assetsVersioned filenames and purge/invalidation processThe answer is simply a shorter TTL everywhere.
LCP is poor while TTFB is already healthyFront-end resource loading and renderingHosting is the bottleneck just because the page is slow.
Traffic spikes produce 5xx/429 responsesCapacity, autoscaling, expensive origin work and cacheable loadA CDN alone can absorb requests that must still reach the origin.

This framework intentionally avoids a universal “best” stack. A small UK lead-generation site with mostly static pages has different needs from a global SaaS application with authenticated dashboards. The right answer depends on where users are, what can safely be cached, how quickly content must update, and what the origin must compute for each request.

Choose cache policy by content type, not a universal TTL

There is no defensible universal cache lifetime such as 72 hours. Cache duration should follow how the resource changes and how you invalidate it.

Content typeTypical strategyMain risk to control
Versioned CSS, JavaScript, fonts and image filesLong-lived caching can be appropriate when the URL changes whenever the file changes.Serving a changed file under the same long-cached URL.
Public HTML that changes occasionallyShorter freshness plus revalidation, or CDN caching with reliable purge/invalidation.Publishing an update while edges still serve stale HTML.
Frequently changing public dataShort cache windows or stale-while-revalidate where the business can tolerate brief staleness.Displaying outdated prices, availability or time-sensitive information.
Personalised or sensitive responsesDo not place them in a shared cache unless the cache key and privacy model are explicitly designed for it.One user's content being served to another.

The HTTP caching standard defines private as preventing storage by a shared cache, while no-store prevents storage subject to the specification's rules. For the underlying requirements, see RFC 9111: HTTP Caching. In practice, your CDN or hosting platform may add its own cache rules on top, so verify the behaviour you actually receive.

A low-risk implementation order for marketing teams

  1. Define the outcome. For example: reduce slow first responses for US visitors, stop campaign spikes causing 5xx errors, or improve LCP on a specific template. Avoid “get a 100 score” as the business requirement.
  2. Capture a before state. Record field Core Web Vitals where available, representative lab tests, origin TTFB, error rates, important geographies and cache-hit information.
  3. Fix origin instability first. If the application times out or produces slow uncached responses, address database/application work, server resources or origin caching before using a CDN to hide the symptom.
  4. Set safe cache rules. Start with clearly public, versioned static assets. Treat HTML and personalised responses as separate decisions.
  5. Add or tune the CDN for a defined reason. Geographic latency, origin offload, high static traffic or edge capabilities are legitimate reasons. “Everyone uses one” is not.
  6. Document purge and rollback behaviour. Marketing needs to know how quickly a corrected landing page, legal change or broken asset can be replaced at the edge.
  7. Verify with the same measurements. Compare before and after under similar conditions, then wait for field data to accumulate before judging real-user Core Web Vitals.

If CDN configuration itself becomes the main project, the CDN configuration risk framework covers the deeper implementation trade-offs without turning this comparison into a vendor manual.

Questions to ask your host, developer or CDN provider

  • Which responses are served from cache today, and what is the cache-hit ratio for important page types?
  • Can we measure the origin separately from the CDN or page cache?
  • Which pages are personalised, authenticated or cookie-dependent, and are any of them shared-cached?
  • What controls browser caching versus shared/edge caching?
  • How are changed assets versioned, and how are HTML or emergency fixes purged?
  • What are our normal and peak origin response times, 5xx/429 rates and resource limits?
  • Where are our users relative to the origin, and do regional measurements show a genuine distance problem?
  • If we upgrade hosting, what measured bottleneck does the upgrade remove?
  • If we add a CDN, which requests will stop reaching the origin and which will still be dynamic?

These questions force the conversation away from package names and toward measurable behaviour. They also make it easier to compare providers on the problem you actually have rather than on feature lists.

Verify the change before calling it a performance win

After implementation, repeat the same checks used in diagnosis. Confirm that the expected content is being cached, personalised content is not being shared, deploys invalidate correctly, origin load has changed as expected, and important regions see the intended response-time improvement.

For Search, avoid declaring success from a single Lighthouse run. Search Console's Core Web Vitals report uses real-user field data, so meaningful changes take time to appear there. For crawling, review Crawl Stats and server logs if host capacity was the issue. A faster, more resilient delivery stack is useful because it improves the experience and reliability of the site; it should not be presented as a guaranteed ranking gain.

The shortest decision rule is: fix the origin when the origin is slow, fix cache policy when repeated work is unnecessary, and use a CDN when distance or edge delivery is the problem. Measure first, change the smallest relevant layer, then verify.

Hansel McKoy

Hansel McKoy is the founder of ScanMySEO and a technical SEO specialist with more than 10 years of experience across agency, in-house, public-sector, and founder-led roles.

Founder of ScanMySEO