SharePoint / Guide 4
Migration tips
Planning and running migrations from file shares, older farms and SharePoint Server to Online.
Lessons from many migrations: file shares to SharePoint, on-prem version-to-version upgrades, and SharePoint Server to SharePoint Online.
Before you migrate
Inventory first, estimate second. Run the inventory scripts (Get-SPFarmInventory.ps1, Get-SPSiteStorageReport.ps1, Find-MigrationBlockers.ps1) before you give anyone a timeline. The surprises are always in the data you didn't look at.
Clean up (ROT: Redundant, Obsolete, Trivial). Every GB you don't move is time and money saved. Sites untouched for 2+ years, duplicate copies, .pst, .iso and old backups are the usual suspects. The staleness flags in the storage reports make this conversation with the business much easier.
Check for blockers on file shares. SharePoint Online doesn't allow certain characters and names, has a 400-character limit on the decoded full path, and a 250 GB maximum file size. Run:
.\Find-MigrationBlockers.ps1 -Path \\fileserver\Departments\Finance `
-TargetLibraryUrl "https://sharepointonline.ravindran.in/sites/Finance/Shared Documents"
Watch the path length. Deep folder structures from a file share get longer once they sit under sites/SiteName/Shared Documents/. Shorten the top-level folders or split the share across several libraries.
Check versions. Migrating 500 versions of every file multiplies storage. Decide on a version policy (for example, last 10 versions) before you move.
What doesn't move as-is
- Farm solutions and full-trust code (WSPs) don't run in SharePoint Online. Replace with SPFx, Power Platform, or out-of-the-box features.
- SharePoint 2010 and 2013 workflows are retired in SharePoint Online. Rebuild them in Power Automate, and use the migration as a chance to simplify.
- InfoPath forms have reached end of life. Plan replacements in Power Apps, Microsoft Forms or a list form. Check Microsoft's current retirement notices for exact dates.
- Custom master pages and heavy branding don't carry over to modern sites. Use themes, hub sites and SPFx extensions.
- Subsites can be migrated, but a flat structure of sites connected through hubs is usually easier to manage long-term.
On-premises upgrade path
Upgrades use database attach, and you can't skip versions except where Microsoft supports it:
- 2010 → 2013 → 2016 → 2019
- 2016 or 2019 → Subscription Edition
For each hop: back up, run Test-SPUpgradeReadiness.ps1, fix blockers, mount with Mount-SPContentDatabase, check the upgrade logs.
SharePoint Server 2016 and 2019 reached end of extended support in July 2026. If you're still on them, Subscription Edition or SharePoint Online are the supported paths.
Tools
- SharePoint Migration Tool (SPMT): free, from Microsoft, good for file shares and SharePoint Server 2010/2013/2016 to Online.
- Migration Manager in the SharePoint admin center: good for large file share migrations using multiple agents.
- Third-party tools (ShareGate, AvePoint, Quest and others): worth it for complex permissions, metadata mapping, reorganizing structure, and reporting.
Running the migration
- Pilot with one friendly department. Measure throughput (GB/hour) and use it for the real schedule.
- Bulk copy early while users keep working in the source.
- Delta/incremental passes to catch changes.
- Cutover: set the source read-only (
Set-SPSite -LockState ReadOnly, or read-only share permissions), run the final delta, redirect users. - Keep the source read-only for a while (30–90 days) before decommissioning. Someone will always need "that one file".
Communication tips
- Tell users what will change and when, including new URLs and how OneDrive sync will behave.
- Broken links inside Office documents and emails are the #1 complaint after migration. Warn people ahead of time and have a plan for the most-used documents.
- Train site owners, not just end users. They're the ones who get the questions.