SharePoint Migration Validation
Validate SharePoint migrations by comparing source and target content, metadata, permissions, versions and business-critical functionality.
- Published
- Reading time
- 14 min read
Quick answer
SharePoint migration validation proves that the target environment matches the expected source state and business requirements by baselining the source, inventorying the target, comparing both datasets, investigating exceptions, validating business processes and recording sign-off.
What you’ll learn
- A migration tool status is evidence, not final proof that content, permissions, metadata and business processes are correct.
- Validation should start before migration by capturing a source baseline that can be compared with the target.
- Counts are useful, but they do not prove file integrity, metadata correctness, permission intent or business readiness by themselves.
- Permissions require identity and role normalization; raw source and target IDs often differ.
- Automation accelerates comparison, while business owners still validate meaning, process behavior and acceptance.
On this page (29 sections)
Direct answer: SharePoint migration validation proves that the target environment is complete and correct by comparing the expected source baseline with the migrated target state. A migration tool log is valuable evidence, but the migration is complete only when content, metadata, permissions, versions, business-critical behavior and accepted exceptions have been reviewed and signed off.
Core method: baseline the source, migrate, inventory the target, compare, investigate exceptions, business validate, and sign off. This guide focuses on proof after migration. For readiness before migration, use SharePoint Migration Assessment; for execution tasks, use the SharePoint Migration Checklist; for the broader program, Explore the SharePoint Migration Hub.
- Source Baseline — capture what is expected to move.
- Migration — execute the approved wave or delta pass.
- Target Inventory — capture the migrated state with the same granularity.
- Automated Comparison — compare source and target datasets.
- Exception Analysis — classify differences as defects, expected differences or accepted scope changes.
- Business Validation — confirm sites, documents, processes and solutions work for real owners.
- Sign-Off — record acceptance or open exceptions before users depend on the target.
Explore the Validation Framework Discuss Migration Validation
What Is SharePoint Migration Validation?
SharePoint migration validation is the evidence-producing phase that answers one question: how do we know the target is the right target? It checks completeness, correctness, security, functionality and traceability rather than relying on a single successful transfer status.
| Principle | Validation question | Evidence produced |
|---|---|---|
| Completeness | Did expected content arrive? | Source and target counts, inventories, missing-item reports. |
| Correctness | Are properties, metadata and mappings correct? | Metadata diffs, mapping checks, sampled item review. |
| Security | Are permissions and sharing correct? | Permission comparison, identity mapping, effective-access testing. |
| Functionality | Do required pages, workflows, apps and solutions work? | Scenario tests, owner review, integration results. |
| Traceability | Can every exception be explained? | Exception register, owner, resolution, retest status. |
Typical validation dimensions include missing files, missing folders, item-count differences, metadata differences, permission differences, version-history differences, sharing changes, failed or skipped items, broken links, workflow issues, customization issues and integration failures. These are potential exception classes, not proof that every migration will experience them.
Build a Source Baseline
Validation starts before migration. Without a reliable source baseline, post-migration reconciliation becomes guesswork: the team may know something changed, but not whether it changed because of scope, cleanup, migration behavior, target design or a defect.
- Source — sites, libraries, lists, folders, files, items, pages and solutions in scope.
- Baseline Inventory — comparable records for counts, metadata, permissions, version requirements, sharing and customizations.
- Migration — pilot, production wave or delta pass.
- Target — the migrated state before broad user reliance.
- Target Inventory — captured with the same comparison model.
- Compare — differences become exceptions to investigate.
The Migration Assessment establishes scope, risks and baseline inputs. Validation proves the outcome against that baseline.
Migration Validation Framework
Use levels so validation depth is explicit and repeatable across pilot, production waves, delta passes and cutover:
| Level | Focus | Examples |
|---|---|---|
| 1. Structural validation | Expected containers exist. | Sites, libraries, lists, folders, pages. |
| 2. Content validation | Expected files and items arrived. | File counts, item counts, paths, sizes, failed items. |
| 3. Metadata validation | Business properties are correct. | Content types, custom columns, managed metadata, dates, people. |
| 4. Security validation | Access intent is preserved or intentionally changed. | Groups, unique permissions, external sharing, effective access. |
| 5. Functional validation | Pages, apps, automation and integrations work. | Workflows, Power Automate, Power Apps, SPFx, Graph and APIs. |
| 6. Business validation | Owners accept the migrated work area. | Critical scenarios, accepted exceptions, sign-off. |
This is the validation role in the journey: Assessment → Checklist → Migration → Validation.
Validate Structure
Structural validation confirms that expected SharePoint containers exist in the target. Compare site count, library count, list count, folder count and page inventory where those objects are in scope. Counts are useful for locating differences, but they are not sufficient by themselves: one missing high-value site matters more than a perfect tenant-level total.
| Structure | Source evidence | Target evidence | Validation note |
|---|---|---|---|
| Sites | Approved source site list | Target site list | Compare expected URL mapping and owner assignment. |
| Libraries | Library inventory per site | Library inventory per site | Confirm hidden, system or excluded libraries are classified. |
| Lists | List inventory and schema | List inventory and schema | Validate schema and item behavior, not just existence. |
| Folders | Folder paths in scope | Folder paths in target | Explain any intentional restructure. |
| Pages | Classic and modern page inventory | Target page inventory | Manual review may be required for layout and web parts. |
Validate Files and Items
File and item validation usually starts with counts, names, paths, file sizes, created and modified dates where relevant, authors and editors where required, failed or skipped items, and sample opening tests. Count parity is a useful signal, not a guarantee.
| Check | What it proves | What it does not prove alone |
|---|---|---|
| Count validation | The same number of expected objects appears in the target scope. | That each object is the correct object with correct metadata and security. |
| Path and name comparison | Items landed in expected locations with expected names. | That file bytes, versions or permissions are correct. |
| Size comparison | Obvious content mismatch signals for many files. | Business correctness or every byte-level detail. |
| Representative open tests | Users can open sampled migrated content. | Complete coverage across large datasets. |
| Hash comparison | Stronger evidence of file-byte equality when technically feasible. | Metadata, permissions, business context or transformed content correctness. |
Example: Source has 25,431 files and target has 25,431 files. That proves count parity only. For higher-assurance libraries, add size comparison, metadata comparison and, where technically appropriate, content hash comparison.
Hash Validation
File hash comparison can provide stronger evidence of content equality when source and target file bytes can be retrieved and compared reliably. The conceptual flow is source file → hash, target file → hash, compare → match or exception.
Do not make full hashing the default for every migration. It can require many API calls, high download volume, network time, storage for evidence files, throttling handling and careful exception logic. Use hashing where assurance requirements justify the cost: critical libraries, legal or regulated content, high-risk samples, or libraries with prior migration anomalies.
Validate Metadata
Metadata validation deserves its own workstream because a file can be present and still be wrong. Compare Title, Created, Modified, Created By, Modified By, Content Type, custom columns, managed metadata, lookup values, choice values, person fields, required fields and defaults against the approved mapping.
- Source item — raw source metadata captured before migration.
- Normalize metadata — convert values to comparable representations.
- Target item — target metadata captured after migration.
- Difference report — mismatches classified by field, owner and severity.
Normalization matters. Do not blindly compare display strings where IDs, claims, taxonomy term identifiers, user formats or lookup representations can legitimately differ between source and target. For SharePoint metadata foundations, see SharePoint Metadata Explained and Content Types and Site Columns.
Validate Permissions
Permission validation should compare effective intent, not merely raw internal IDs. Source and target principal IDs often differ, especially across tenants or identity migrations. Normalize identity and role information before comparing site, library, folder and item-level permissions.
- Source permissions — inheritance, unique permissions, groups, direct grants and sharing.
- Normalize identity and role — map users, SharePoint groups, Microsoft 365 groups, security groups and guests.
- Target permissions — target configuration and membership.
- Compare — identify missing, extra, changed and expected differences.
- Persona test — confirm owners, members, readers, restricted users and external users experience correct access.
Validate broken inheritance, unique permissions, SharePoint groups, Microsoft 365 groups, security groups, direct permissions, external users and privileged access. For deeper permission planning, continue to SharePoint Migration Permissions.
Validate External Sharing
External sharing requires security and business review, not blind reproduction. Review guest users, specific-person links, organization links, anonymous links where applicable, link expiration, external access settings and whether the target design intentionally tightens or changes source behavior.
If the source contained obsolete or risky sharing patterns, validation should record the expected difference rather than treating secure redesign as a defect.
Validate Version History
Where version history is in scope, compare version count, major versions, minor versions where applicable, representative historical versions, version metadata and migration-tool behavior against the agreed version policy. Version-count equality is useful, but it does not prove full version fidelity by itself.
Example: source document has 14 versions and target document has 14 versions. Status: count match. Next question: do representative versions open, are key timestamps and authors acceptable under the project rules, and were any tool or policy limits documented? Verify changing platform and tool behavior against current Microsoft documentation rather than hard-coding limits into the project plan.
Validate Lists, Pages and Links
Do not validate only documents. SharePoint lists need item counts, columns, content types, views, lookup fields, person fields, managed metadata, attachments, required fields and calculated fields reviewed where relevant. Complex lists also need behavior testing through views, forms and automation. Related foundation: SharePoint Lists.
Page validation covers page existence, page type, web parts, links, images, embedded content, navigation and publishing state where relevant. Automated checks can prove presence and some link behavior, but visual correctness and business usefulness often require human review.
Link validation should review internal links, document links, page links, navigation links, hard-coded source URLs and legacy URLs. A file can migrate correctly while its embedded links still point users back to the old environment.
Validate Workflows and Automation
Functional validation should classify automation as migrated, rebuilt, replaced or retired before testing it. Then validate expected business behavior: triggers, approvals, forms, notifications, scheduled processes, error paths, owner connections, SharePoint references and external dependencies.
This can include Power Automate, Power Apps, SharePoint Designer workflows where still relevant, InfoPath/form replacements, approvals and line-of-business integrations. Do not assume legacy workflow engines migrate directly into modern behavior; validate against the approved modernization decision.
Validate SPFx and Custom Solutions
Custom solution validation covers SPFx web parts, extensions, Microsoft Graph calls, SharePoint REST calls, external APIs, Azure services and business-system integrations. A package installed in an app catalog is not enough evidence.
Development and modernization context: Explore SPFx Development & Modernization.
Use Migration Tool Logs Correctly
Migration-tool reports are important inputs. They commonly classify items as successful, failed, skipped, warning, retry or unsupported. Feed these records into the exception process, then perform independent validation for the areas that matter to the business.
- Migration Tool — produces execution logs.
- Execution Log — identifies failures, warnings, skips and retries.
- Exceptions — become owned investigation records.
- Independent Validation — confirms source-target outcome.
- Resolution — close, remediate or accept with evidence.
Automate Migration Validation
The strongest validation architecture treats source and target as comparable datasets, not a collection of screenshots:
- Source SharePoint → Inventory Collector → Source Dataset.
- Target SharePoint → Inventory Collector → Target Dataset.
- Source Dataset + Target Dataset → Comparison Engine.
- Comparison Engine → Exception Report.
- Exception Report → Review, remediation and business sign-off.
Potential technologies include Microsoft Graph, SharePoint REST, PnP PowerShell, PnPjs where appropriate, PowerShell and Python. They are options, not a mandatory stack.
Microsoft Graph, PnP PowerShell and Python
Microsoft Graph can help validate sites, drives, drive items, users and groups. It is not a universal SharePoint validation API; some SharePoint-specific schema, list, permission and configuration details may require SharePoint REST, PnP tooling or other SharePoint-specific approaches. Start with Microsoft Graph API Explained.
PnP PowerShell can be useful for site inventory, lists and libraries, files, metadata, permissions and configuration checks when used read-only with current authentication guidance. This page stays conceptual; detailed cmdlets belong in a dedicated tutorial.
Python validation is useful for large dataset comparison, normalization, difference detection, CSV or JSON reports, exception categorization and summary reporting. The flow is API → Python inventory script → source and target datasets → Python comparison → exceptions. For implementation detail, use SharePoint Migration Validation Using Python.
Example Validation Data Model
A validation dataset does not need every possible field. It needs fields that support the claims your migration must prove. A conceptual file or item record might include:
| Field | Purpose |
|---|---|
| SiteUrl | Locate the site or mapped target. |
| Library | Group records by library or list. |
| RelativePath | Compare source and target location. |
| ItemType | File, folder, list item, page or other object type. |
| FileName | Compare expected names. |
| FileSize | Support basic integrity checks where relevant. |
| Created / Modified | Validate preserved dates when required. |
| CreatedBy / ModifiedBy | Validate ownership or author/editor mapping. |
| ContentType | Validate information architecture mapping. |
| VersionCount | Compare version requirements. |
| PermissionFingerprint | Compare normalized access intent. |
| Hash | Optional stronger byte-level comparison when justified. |
Manage Migration Exceptions
Every difference needs a disposition. Not every source-target difference is a defect, so include Expected Difference as a first-class category beside missing content, count difference, metadata difference, permission difference, version difference, sharing difference and functional failure.
| Field | Example use |
|---|---|
| Site | Where the exception was found. |
| Library | Specific library, list or area. |
| Path | Item or page affected. |
| Validation Type | Content, metadata, permission, version, sharing, function. |
| Source Value | Baseline value. |
| Target Value | Migrated value. |
| Status | Open, Investigating, Resolved, Accepted, Retest Required. |
| Severity | Practical impact, not exaggeration. |
| Owner | Person accountable for review or fix. |
| Resolution | Fix, remigrate, accept, exclude or redesign. |
| Retest Status | Evidence that the exception was rechecked. |
Need help interpreting migration exceptions?
Automated vs Manual Validation
| Automated validation works well for | Manual or business validation works better for |
|---|---|
| Counts, paths, metadata, file properties, permission datasets, version counts, exception detection and summary reporting. | Page appearance, business process behavior, user experience, business meaning, critical workflow outcomes and acceptance. |
Automation + business validation = migration assurance. Automation accelerates comparison; it does not eliminate human acceptance.
Risk-Based Validation
Validation depth should vary by risk without inventing fake numeric scores. Standard content may need structural and metadata checks. Sensitive content needs deeper permissions, sharing and metadata review. Critical business content needs content, permission, version and functional validation. Custom solutions need technical and functional testing across dependencies.
Pilot, Delta and Cutover Validation
Pilot migrations should test the validation framework itself: pilot → validate → find gaps → improve migration rules → improve validation rules → production waves. If validation cannot explain pilot differences, it is not ready for production scale.
Delta validation handles the content that changed between the initial migration and cutover: initial migration → source changes → delta migration → final validation → cutover. The final delta deserves careful validation because it is the state users inherit.
Business Validation and Sign-Off
Technical validation is not business sign-off. A practical model is: migration team performs technical reconciliation; site owner reviews site and content; business owner validates process behavior; security or governance reviews access and compliance-sensitive exceptions where required.
Sign-off should be based on defined acceptance criteria: technical reconciliation completed, critical exceptions resolved, accepted exceptions documented, business-owner validation complete, and security review complete where required. The outcome is either approved or an exception is raised with an owner and next action.
Post-Migration Validation Checklist
Use this as a compact validation checklist, not as the full execution checklist. For phase-by-phase migration tasks, use the SharePoint Migration Checklist.
Source Baseline
Target Validation
Functional Validation
Closure
Validation Outputs
A finished validation phase should leave durable evidence: source baseline, target inventory, comparison report, exception register, remediation results, business validation and migration sign-off.
- Data — source and target inventories.
- Evidence — comparison reports and sampled proof.
- Exceptions — differences classified and owned.
- Resolution — remediated, accepted or redesigned.
- Acceptance — business sign-off recorded.
Validating a SharePoint Migration?
Migration completed. Has it been proven? Baseline → compare → investigate → validate → sign off. If you are working through source-target reconciliation, permissions, metadata, versions, failed items, custom solutions or migration exceptions, describe the environment and validation problem with nextM365.
Continue with Explore the SharePoint Migration Hub, Migration Assessment, Migration Checklist, Migration Permissions, Python validation, and SPFx modernization.
Related resources
Topics covered
Governance · Security · Permissions · Document Libraries
Frequently asked questions
What is SharePoint migration validation?
The independent verification that migrated content, metadata, permissions, versions, lists, workflows, and integrations in the target are complete, accurate, and usable — measured against success criteria agreed before migration.
How do you verify a SharePoint migration?
Capture source and target inventories, compare counts and samples, test metadata, permissions, effective access, versions, lists, pages, search, workflows, apps, SPFx, and integrations, reconcile every difference, remediate, retest, and record business acceptance.
Should file counts be compared after migration?
Yes, at site, library, folder, and wave level — but counts alone are insufficient. Equal counts do not prove the correct files migrated with correct metadata, permissions, and versions, so pair counts with sampling and functional tests.
How do you validate SharePoint permissions after migration?
Compare inheritance, unique permissions, group memberships, and external sharing against the identity mapping, then test effective access with representative personas: owner, member, read-only, restricted, and external users where applicable.
How do you validate metadata after migration?
Verify columns, content types, required fields, choice and lookup values, managed metadata mappings, person fields, and defaults against the approved mapping — a present file with missing business metadata still counts as incorrectly migrated.
How do you validate version history?
Where versions are in scope, confirm history exists, the expected range transferred per project requirements, ordering is sensible, representative historical versions open, and version metadata was reviewed.
How should SPFx solutions be tested after migration?
Confirm package deployment, version, and catalog, then test web parts, extensions, configuration, data access, Graph and API permissions, authentication, environment URLs, console errors, user permissions, and performance — presence in the catalog proves nothing by itself.
Can PowerShell automate SharePoint migration validation?
For machine-comparable checks, yes: enumerating sites and libraries, counting files, exporting items and metadata, reviewing permissions and groups, and generating exception reports — using read-only patterns, current supported authentication, and no secrets in scripts.
When is a SharePoint migration considered complete?
When technical validation, functional testing, and business acceptance are all recorded per wave — content reconciled, exceptions closed or formally accepted, owners signed off, and cutover and support paths confirmed.
Sources
Have a Microsoft 365 topic idea?
Share article suggestions, community session ideas, corrections, or real-world scenarios for future nextM365 learning notes.
Keep learning Microsoft 365
Explore more practical tutorials for SharePoint, Power Platform, Copilot Studio, migration, automation, governance, and security.
Continue learning
Related tutorials
Related questions
Related comparisons