SharePoint archiving moves less-frequently-accessed content to secondary storage while keeping it available when needed — other SharePoint sites, external storage, or a third-party tool. The point is keeping the active environment fast without losing anything.
In this post: Why it matters · The four approaches · Microsoft 365 Archive: the native option · What can’t be archived · When would you actually use this? · Best practices · Related reading
Why it matters
- Performance: large, growing sites slow down search and queries — archiving keeps the active site responsive.
- Storage limits: SharePoint Online has quotas; archiving infrequently-used content avoids hitting them or paying for extra capacity.
- Compliance: regulated industries (healthcare, finance, legal) need older records stored securely and retrievable for audits.
- Cost: archiving to cheaper storage is less expensive than keeping everything in SharePoint indefinitely.
The four approaches
- Retention policies and labels (Microsoft 365 Compliance Center): automated retention/deletion rules, native to M365, best for compliance-driven archiving.
- Move to OneDrive or Teams: good for user-specific or departmental content that still needs frequent access, at lower cost than keeping it in the main site.
- External storage (Azure Blob, AWS S3): scalable and cost-effective for large enterprises, but requires integration work for smooth retrieval.
- Third-party tools (AvePoint, Metalogix, ShareGate): more advanced compliance/governance/automation features, at the cost of additional licensing.
Microsoft 365 Archive: the native option
Worth calling out separately from the four approaches above: Microsoft now ships a native cold-storage tier for this, so “external storage” or a third-party tool isn’t the only way to get real cost savings. Site-level archiving (generally available since May 2024) moves an entire site into a genuinely cold state — not just read-only, but invisible to search and browsing entirely, with a message shown to anyone who tries to reach it. It stops counting against the tenant’s active SharePoint storage quota and bills against separate Microsoft 365 Archive storage instead. Reactivating within 7 days of archiving is free and near-instant; after that window, restoring still works but isn’t guaranteed to be instant.
# Archive an entire site
Set-SPOSiteArchiveState -Identity https://contoso.sharepoint.com/sites/OldProject -ArchiveState Archived
# Reactivate it later
Set-SPOSiteArchiveState -Identity https://contoso.sharepoint.com/sites/OldProject -ArchiveState Reactivating
Microsoft also rolled out file-level archiving to general availability in mid-2026 — archiving individual files or folders within a site that otherwise stays fully active, instead of an all-or-nothing site decision (it started as a preview earlier that year, but isn’t limited to that anymore). That’s the more surgical option when only part of a site’s content has actually gone cold rather than the whole site. For most orgs, this native tier is worth evaluating before reaching for a third-party archiving product — it solves the same storage/cost problem without an extra vendor relationship, and the pricing makes the case concretely: archived storage runs about $0.05/GB per month, against roughly $0.20/GB per month for active SharePoint storage — a 75% reduction for content that only needs to be retrievable, not actively fast. That rate only applies to archived data beyond what’s already included in the tenant’s storage quota, so it’s worth checking current quota usage before assuming every GB archived saves money.
File-level archiving has to be turned on before it’s usable — it’s off by default, enabled via Set-SPOTenant -AllowFileArchive $true tenant-wide, or Set-SPOSite -AllowFileArchive $true to scope it to specific sites first while you pilot it. Archiving an individual file itself is currently a UI or Graph API action rather than a mature, stable PowerShell cmdlet — worth checking current Microsoft Learn documentation before scripting bulk file-level archiving, since this is one of the newer pieces of the feature and the tooling around it is still catching up to the site-level archiving cmdlets shown above.
What can’t be archived
The native archiving cmdlets above will happily accept a URL that isn’t actually eligible and fail late, so it’s worth knowing the real restrictions before scripting this against more than a handful of sites. A hub site can’t be archived while it’s still registered as a hub — it has to be disconnected from its hub configuration first (unregister it, or reassign the sites depending on it to a different hub), since an archived-but-still-active hub would leave every associated site pointing at something that’s gone cold. A site that’s registered in Microsoft 365 Backup is also blocked from archiving outright until it’s removed from that backup protection first — the two features don’t currently coexist on the same site.
One more worth knowing before it surprises anyone mid-project: an archived site can’t be renamed. If a tenant rename or site URL change is already planned, it has to happen before archiving, or the site needs to be reactivated first — there’s no way to rename a site while it’s sitting in the cold archive state.
Archiving moves less-frequently-accessed content to secondary storage while keeping it available when needed.
When would you actually use this?
- A hospital needs to retain patient records for 10 years for regulatory reasons — Compliance Center retention policies handle this automatically instead of relying on manual tracking.
- A large site with thousands of documents is getting slow — identifying and archiving inactive content (via a tool like AvePoint) is often the fix, not a SharePoint performance tweak.
- Storage costs are climbing and a lot of what’s stored is old financial reports or similar rarely-touched content — moving it to Azure Blob or AWS S3 cuts cost while keeping it accessible if actually needed.
Best practices
- Identify what actually needs archiving first — document age, access frequency, regulatory requirements, storage consumption — before picking a tool.
- Define retention policies and automate them via SharePoint’s own labels rather than manual tracking.
- Tag with metadata so archived content stays findable later — category, department, creation date.
- Automate the move itself with Power Automate rather than a manual, one-time cleanup that won’t be repeated.
- Audit archived content periodically to confirm it’s still secure and retrievable, not just “out of sight, out of mind.”
Related reading
- SharePoint Retention Period: What You Need to Know — retention policy is the piece that determines when archiving should even happen.
- SharePoint Compliance Policy and Governance — the governance framework that archiving decisions should sit inside of.
Hope it helps — shout in the comments if you get stuck.
App Catalog Authentication Automation Backup Compliance Content Type CSS Flows Google Javascript Limitations List Metadata MFA Microsoft Node NodeJs O365 OneDrive Permissions PnP PnPJS Policy PowerApps Power Automate PowerAutomate PowerPlatform PowerShell React ReactJs Rest API Rest Endpoint Security Send an HTTP Request to SharePoint SharePoint SharePoint List SharePoint Modern SharePoint Online SPFX SPO Sync Tags Teams Termstore Versioning


