SShareShiftby Cameron Shields
Planning and licensing

SharePoint migration checklist and pre-migration assessment

A phase-by-phase checklist from discovery to sign-off, with the exact assessment findings that block or slow a SharePoint Online migration.

By Cameron ShieldsPublished 8 September 20269 minute read

A SharePoint migration checklist is only useful if it is specific about what to check. Generic lists tell you to “assess your content”; this one tells you which findings stop an import, which ones slow it down, which permissions the tool needs and when, and what to have in hand before you tell anyone a date. It is organised by phase, with a table per phase you can copy into your own plan, and it applies whether the source is a file server, SharePoint Online or another tenant.

The limits quoted are Microsoft's published SharePoint Online limits and Migration API guidance; the assessment findings are the ones ShareShift's assessor reports, which map to the same limits.

Phase 1: discovery

CheckWhy
Inventory every source: file shares by UNC path, SharePoint sites and subsites, libraries and lists, OneDrive accounts, teams with private channels, Planner plansScope drives everything else; the workloads that get forgotten are lists, private channels and Planner
Total bytes and item counts per source, largest files, deepest pathsMicrosoft's throughput bands are per tenant: roughly 10 TB a day light, 1 TB a day medium, 250 GB a day heavy, no SLA
Owners for each source, and who signs offVerification needs someone who knows the content
Users and groups referenced in permissions, including disabled and departed accounts and orphaned SIDsThe Migration API needs UPN logins and substitutes the System Account for anyone unresolved
Whether anything over 100 TB will move within 30 daysThat volume needs a support request from the tenant administrator in advance
Sensitivity labels, retention policies and legal holds in playMicrosoft advises removing labels before native cross-tenant moves; holds affect what can be deleted afterwards

Phase 2: the pre-migration assessment

Run the assessment against the destination path, because the path limit is measured there, and run it before designing the destination so the design can fix the findings. It needs no destination connection. These are the findings and what each means.

FindingRuleSeverity
Path too longDecoded destination URL path over 400 charactersBlocker
Invalid characterAny of " * : < > ? / \ | in a nameBlocker
Leading or trailing space or periodNot allowed at the start (space) or end (space or period) of a nameBlocker
Reserved name.lock, CON, PRN, AUX, NUL, COM0 to COM9, LPT0 to LPT9, desktop.ini, thumbs.db, any _vti_ segment, a folder named forms at library rootBlocker
File too largeOver 250 GBBlocker
Library item limitMore than 30 million items in one libraryBlocker
Large fileOver 15 GB, the figure in Microsoft's content package guidanceWarning
Blocked or unwanted type.pst, .ost, .lnk, .tmpWarning
OneNote.one and .onetoc2 need the whole notebook folder migrated intactWarning
View thresholdA folder with more than 5,000 direct childrenWarning
Office lock file~$ prefix, skippedWarning
Hidden or zero-byte fileMigrates fine; listed for completenessInfo

For SharePoint sources add: files with more than 5,000 versions, lists projected over the 5,000-item view threshold, unique permission scope counts, checked-out files, unsupported list templates such as discussion boards, classic pages, and managed metadata columns whose term sets do not exist at the destination. For Teams add shared channels, which cannot be migrated, and for Planner the count of tasks whose assignees will not map. The file share guide and the lists and content types article explain each in depth.

Export the assessment as CSV and JSON and keep it with the project. It is the baseline the completion report is reconciled against, and it is the document that ends arguments about what was in scope.

Phase 3: destination design and mapping

CheckDetail
Destination structure decidedWhich shares and sites become which sites and libraries; landing folders created beforehand, because the Migration API never creates them
Deep trees and large foldersFlatten paths that would exceed 400 characters; split folders over 5,000 children
User mapping CSVSource UPN to destination UPN; domain rewrites for suffix-only changes; a fallback user for the unresolved; every mapped user verified at the destination
Permission mappingNTFS rights or source permission levels to destination levels; a decision on Deny entries; flatten wherever ACLs below a point are the same
Content types and columnsConfirm site columns keep their GUID and content types keep their id; confirm term sets exist for managed metadata columns
Conflict rule for incremental passesSource wins, skip if destination newer, destination wins, or always copy
What is deliberately left behindPSTs, blocked types, classic pages, shared channels; written down and agreed

Phase 4: access, permissions and the worker

Migration traffic must be app-only. Microsoft's guidance is to use only app-based authentication because user mode triggers increased throttling, and a certificate credential is throttled less than a secret. This phase is where projects lose a week to consent and propagation, so do it early.

  • One app registration per tenant involved, with a certificate credential and admin consent for application permissions: SharePoint Sites.FullControl.All (the Migration API needs it when permissions are copied; Sites.ReadWrite.All is not enough) and User.Read.All for OneDrive; Graph Sites.FullControl.All and User.Read.All; the Teams roles including Teamwork.Migrate.All if channels are in scope; Tasks.ReadWrite.All for Planner.
  • Allow about five minutes after consent before tokens include the roles, and test sign-in before scheduling anything.
  • Check whether the tenant needs the Teams protected APIs form approved for ChannelMessage.Read.All; it varies by tenant.
  • A worker machine with outbound HTTPS to *.sharepoint.com, graph.microsoft.com and login.microsoftonline.com, sitting where it can read the sources. Workers share the tenant's API budget, so add them for bandwidth and reach, not for budget; see the throttling article.
  • Where the PFX and the migration state live, and who can read them. The state file is the source of truth for resume and incremental passes; back it up.

Phase 5: pilot, bulk pass and incremental passes

CheckDetail
Pilot on representative contentOne site or share, a few OneDrive accounts, one team with a private channel, one plan. Owners check dates, authors, versions, permissions and Teams history in the destination
Schedule windows agreedNights and weekends in the destination tenant's region; Microsoft applies tighter limits to background apps during weekday daytime
Throughput caps setPackages in flight, upload rate, requests per minute, so the migration coexists with a busy tenant
Bulk pass running while the source stays liveNobody stops working; incremental passes catch the changes
Retry policy understoodItems Microsoft reports as failed are retried automatically; permanent failures are listed with Microsoft's message
Pause and resume testedStop a run after the current package and resume it; confirm nothing completed is re-sent. See pause and resume
Incremental passes scheduled up to cutoverUnchanged items skipped; changed files added as new versions with metadata restored

Phase 6: cutover, verification and sign-off

CheckDetail
Source made read-onlyThen a final incremental pass, then redirect users
Teams migration completedChannels and teams taken out of migration mode; members added afterwards, because a team in migration mode rejects membership changes
Counts reconciledItem-level report against the assessment baseline, per library and per list; not-migrated counts for list item version history reviewed
Failures decidedEvery permanent failure has an owner and a decision
Completion record exportedItem-level CSV, JSON summary and the HTML completion report, plus Microsoft's per-job import logs; see reports and completion certificate
Audit trail retainedMicrosoft 365 audit log records migration file events since November 2024; keep the tool's audit export alongside
App registrations removedDeleting the registration revokes every permission and certificate at once; the migrated content and reports are unaffected
Source retention agreedKeep the old share or site read-only for an agreed period before deletion

A checklist is also a buying guide in disguise. Every row above is something a tool either does for you, reports to you, or leaves to you. The best migration tools roundup applies the same criteria across the market, and ShareShift's pricing page covers the plans and the 30-day trial, which is long enough to run phases 2 to 5 on real content before committing.

Frequently asked questions

What should a pre-migration assessment check for SharePoint Online?

Destination paths over 400 characters, invalid characters, leading or trailing spaces and periods, reserved names, files over 250 GB, folders over the 5,000-item view threshold, libraries over 30 million items, blocked file types, OneNote notebooks, unique permission scopes, unresolved users, files with more than 5,000 versions, unsupported list templates and classic pages.

Can the assessment run without a destination?

Yes. It needs the intended destination path to measure path length, but no destination connection. That means you can assess and design before any tenant permissions are granted.

Which permissions does a SharePoint migration tool need?

Application permissions with a certificate credential: SharePoint Sites.FullControl.All and User.Read.All, Graph Sites.FullControl.All and User.Read.All, the Teams roles including Teamwork.Migrate.All for channel history, and Tasks.ReadWrite.All for Planner. Admin consent takes about five minutes to reach tokens.

How long should we plan for?

From Microsoft's per-tenant bands with no SLA: roughly 10 TB a day for light content, 1 TB a day for medium content such as Office files, 250 GB a day for heavy content, off-peak. Incremental passes mean the cutover itself is short even when the bulk pass takes weeks.

Related reading
Try ShareShift

Run your first migration on a 30-day free trial

Every workload, unlimited data, three workers, pause and resume built in. Worker-only, so your content never passes through our servers. The trial key is issued from the portal and works with the same app you would buy.

SharePoint migration checklist and assessment (2026) · ShareShift