2025-08-05
Speed SharePoint with the Microsoft 365 Private CDN

The One Setting That Makes SharePoint Online Feel Instant: Private CDN, Properly Scoped
The big idea (in one line)
Speed comes from how you deliver static assets—not where your documents live. Put images/CSS/JS on the right CDN path and keep it there.
The one setting pros use
-
Enable Microsoft 365 Private CDN for SharePoint Online.
-
Scope only safe, purpose-built “public” asset libraries/folders as CDN origins (not entire Site Assets).
-
Result: edge-cached assets with tenant-aware permissions → faster first paint without leaking content.
Spot the bottlenecks (5-minute check)
-
Open browser DevTools → Network → reload your page.
-
Look for slow/heavy: PNG/JPG/SVG, .css, .js, web part assets.
-
Red flags: multiple logo variants loading, giant hero images, unminified scripts, requests served from *.sharepoint.com instead of CDN endpoints.
Public vs. Private CDN (when to use which)
-
Private CDN: Default choice. Auth-aware, respects SharePoint permissions, ideal for intranet branding, scripts, and web-part assets.
-
Public CDN: Only for truly non-sensitive files you’re happy to expose (e.g., generic brand art). Start small, review often.
Safe origin strategy (what to cache)
-
DO: A dedicated “BrandingAssets” library for logos/icons/CSS/JS; web part bundles; image sprites; minified CSS/JS.
-
DON’T: Whole Site Assets folders, HR/Finance libraries, anything with docs/PDFs mixed in.
-
File types to allow: .png .jpg .svg .gif .css .js .woff2 (as needed).
Change control that prevents “it was fast last month”
-
Version assets: logo.png?v=2025-11-04 or file-name hashing so CDN/browsers fetch the latest.
-
Purge on deploy: automate CDN invalidation when CSS/JS changes.
-
TTL tuning: long TTL for stable logos/fonts; shorter for CSS/JS during redesigns.
External CDN integration (if you outgrow built-in)
-
Use a vanity domain (e.g., cdn.yourco.com) with strict path rewrites for curated libraries only.
-
Always version URLs; automate cache purge via pipeline.
-
Watch for absolute URL references in web parts—fix them or they’ll bypass your CDN.
Governance guardrails (avoid data leaks)
-
Principle: curate, don’t carpet-bomb. Origins must be “assets-only” libraries.
-
Quarterly origin audit: contents, file types, permissions, unexpected PDFs.
-
Alert on new file types appearing in CDN origins (e.g., .docx/.pptx).
Maintenance checklist (repeatable)
-
Origins: still correct? anything drifted/renamed?
-
Cache health: hit ratio trending up? sudden misses?
-
Weight: any image >300 KB? any page >1.5 MB initial load?
-
Permissions: origins still scoped to intended audiences?
-
Quotas: origin libraries not near storage limits (prevents silent failures).
-
Regions: spot-test load time from multiple geos.
Quick wins this week
-
Create a clean “BrandingAssets” library; move logos/icons/CSS/JS there.
-
Convert hero images to modern formats and compress (target <300 KB each).
-
Turn on Private CDN; scope only the new library as an origin.
-
Add simple versioning to CSS/JS (query string or hashed filename).
-
Purge caches after publishing and validate with DevTools (requests served from CDN host).
KPIs that prove it worked
-
Time to First Byte (assets): ↓ 40–70%
-
Largest Contentful Paint: <2.0s on intranet home for target regions
-
Total page weight (initial): <1.5 MB
-
CDN hit ratio: >85% for static assets
-
Helpdesk tickets: “SharePoint is slow” trend → down and to the right
Common gotchas (and fixes)
-
Mixed content in origins → carve out a dedicated assets library.
-
Stale CSS after a redesign → missed cache purge or no version suffix.
-
Blue default logo randomly appears → broken rewrite/origin removed.
-
Private asset fails for valid users → permissions drift on origin library.
-
APAC slow, others fine → asset not cached in that region; pre-warm or shorten TTL + re-request.
30-day rollout (lite plan)
-
Week 1: Bottleneck scan, create assets library, compress/optimize images, minify CSS/JS.
-
Week 2: Enable Private CDN, add the assets library as origin, implement versioned URLs.
-
Week 3: Automate cache purges via pipeline or scheduled script; set up KPIs and alerts.
-
Week 4: Quarterly audit playbook, origin/permissions review, geo spot-tests, dashboard for hit ratio/LCP.
Who should act now
-
SharePoint admins with “cloud but still slow” complaints
-
Intranet owners planning a rebrand or homepage refresh
-
Frontend devs deploying SPFx/web parts at scale
Bottom line
Speed = curated assets + Private CDN + versioning + routine upkeep. Get those four right and SharePoint stops crawling—and stays fast.
Apple Podcasts · Spotify · YouTube
Host: Mirko Peters