SharePoint storage optimisation: 10 wins in a 90-day plan
A practical, dated playbook for reducing SharePoint storage by 20-40% over three months. Ten specific actions, ranked by impact, drawn from 50+ real customer tenants.
Every SharePoint storage cleanup we have run follows the same shape. Not because of our methodology — because M365 constraints push you into the same order of operations. Here is the 90-day plan with ten specific wins, each sized to a realistic team's capacity.
Days 0-7 — baseline and quick wins
- Run a baseline scan. Bookmark the headline numbers — total bytes, pooled quota utilisation, top-20 sites by storage. This is your "before" picture; everything else is measured against it.
- Empty the second-stage recycle bin on your top-20 largest sites. On most tenants this alone frees 1-5% of pooled storage. Automate it with Set-SPOTenant or by scripting PnP.PowerShell for the top-N sites.
- Cull OneDrives for employees who left more than 90 days ago. These do not affect the pooled SharePoint number — but they tie up Entra licences, surface in Copilot answers, and consume per-user OneDrive quota equivalent to $0.20/GB.
Days 8-30 — talk to data owners
- 4. Group the top-100 largest sites by department. Send each department head the top 20 oldest, largest files on their site. Ask: keep, archive, delete. No fourth option. This is the single highest-impact conversation of the quarter — expect 10-30% of the files to come back marked "delete."
- 5. Audit shared mailboxes above 25 GB. Shared mailboxes do not have a licensed owner so nobody is watching them. Apply an Exchange Online Plan 2 licence or trim retention.
- 6. Cap SharePoint major-version history on the top-10 largest libraries. Change the default from 500 to 50 for general document libraries, 10-20 for design/CAD/video libraries. Nothing is lost — history past version 10 is theatre on most libraries.
Days 31-60 — duplicates and recordings
- 7. Run a cross-site duplicate sweep. Enterprise tenants average 8-15% of SharePoint bytes in exact duplicates — same hash, different sites.
- 8. Enable Teams meeting recording expiration policy. Set to 60 days for the general population; preserve longer only for named groups (legal, finance). On tenants we have audited, ~10% of SharePoint storage is unwatched recordings.
- 9. Review preservation hold libraries (eDiscovery holds). Every hold should have a review date on the calendar; most do not. Lifting an outdated hold releases both the hold library and allows the retention policy to run.
Days 61-90 — institutionalise it
- 10. Set up a monthly scheduled scan with the delta PDF emailed to the M365 budget owner. The number on a dashboard is the governance that stops you being in the same place next quarter.
What the numbers typically look like
Across 50+ tenants we have run this plan on, the median reclaim is 28% of pooled SharePoint storage, with wins distributed roughly as:
- Version history cap: 8-12% of pooled storage.
- Teams meeting recordings expiration: 5-10%.
- Duplicate sweeps: 4-8%.
- Recycle bins + leaver OneDrives: 3-6%.
- Data-owner-driven delete: 3-5% (and climbs as the conversation matures).
TSO automates each of the ten steps' discovery pass. The actioning is still yours — read-only by design — but the ranked list means you spend time on the top-N wins instead of searching for them.
