Skip to content

Migration

SharePoint Migration Validation

Validate SharePoint migrations by comparing source and target content, metadata, permissions, versions and business-critical functionality.

Suresh Girinathuni
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.

SharePoint migration validation illustration comparing source and target inventories through testing to acceptance

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.

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.

  1. Source Baseline — capture what is expected to move.
  2. Migration — execute the approved wave or delta pass.
  3. Target Inventory — capture the migrated state with the same granularity.
  4. Automated Comparison — compare source and target datasets.
  5. Exception Analysis — classify differences as defects, expected differences or accepted scope changes.
  6. Business Validation — confirm sites, documents, processes and solutions work for real owners.
  7. 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.

PrincipleValidation questionEvidence produced
CompletenessDid expected content arrive?Source and target counts, inventories, missing-item reports.
CorrectnessAre properties, metadata and mappings correct?Metadata diffs, mapping checks, sampled item review.
SecurityAre permissions and sharing correct?Permission comparison, identity mapping, effective-access testing.
FunctionalityDo required pages, workflows, apps and solutions work?Scenario tests, owner review, integration results.
TraceabilityCan 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.

  1. Source — sites, libraries, lists, folders, files, items, pages and solutions in scope.
  2. Baseline Inventory — comparable records for counts, metadata, permissions, version requirements, sharing and customizations.
  3. Migration — pilot, production wave or delta pass.
  4. Target — the migrated state before broad user reliance.
  5. Target Inventory — captured with the same comparison model.
  6. 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:

LevelFocusExamples
1. Structural validationExpected containers exist.Sites, libraries, lists, folders, pages.
2. Content validationExpected files and items arrived.File counts, item counts, paths, sizes, failed items.
3. Metadata validationBusiness properties are correct.Content types, custom columns, managed metadata, dates, people.
4. Security validationAccess intent is preserved or intentionally changed.Groups, unique permissions, external sharing, effective access.
5. Functional validationPages, apps, automation and integrations work.Workflows, Power Automate, Power Apps, SPFx, Graph and APIs.
6. Business validationOwners accept the migrated work area.Critical scenarios, accepted exceptions, sign-off.

This is the validation role in the journey: AssessmentChecklist → 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.

StructureSource evidenceTarget evidenceValidation note
SitesApproved source site listTarget site listCompare expected URL mapping and owner assignment.
LibrariesLibrary inventory per siteLibrary inventory per siteConfirm hidden, system or excluded libraries are classified.
ListsList inventory and schemaList inventory and schemaValidate schema and item behavior, not just existence.
FoldersFolder paths in scopeFolder paths in targetExplain any intentional restructure.
PagesClassic and modern page inventoryTarget page inventoryManual 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.

CheckWhat it provesWhat it does not prove alone
Count validationThe 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 comparisonItems landed in expected locations with expected names.That file bytes, versions or permissions are correct.
Size comparisonObvious content mismatch signals for many files.Business correctness or every byte-level detail.
Representative open testsUsers can open sampled migrated content.Complete coverage across large datasets.
Hash comparisonStronger 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.

  1. Source item — raw source metadata captured before migration.
  2. Normalize metadata — convert values to comparable representations.
  3. Target item — target metadata captured after migration.
  4. 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.

  1. Source permissions — inheritance, unique permissions, groups, direct grants and sharing.
  2. Normalize identity and role — map users, SharePoint groups, Microsoft 365 groups, security groups and guests.
  3. Target permissions — target configuration and membership.
  4. Compare — identify missing, extra, changed and expected differences.
  5. 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.

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.

  1. Migration Tool — produces execution logs.
  2. Execution Log — identifies failures, warnings, skips and retries.
  3. Exceptions — become owned investigation records.
  4. Independent Validation — confirms source-target outcome.
  5. 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:

  1. Source SharePoint → Inventory Collector → Source Dataset.
  2. Target SharePoint → Inventory Collector → Target Dataset.
  3. Source Dataset + Target Dataset → Comparison Engine.
  4. Comparison Engine → Exception Report.
  5. 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:

FieldPurpose
SiteUrlLocate the site or mapped target.
LibraryGroup records by library or list.
RelativePathCompare source and target location.
ItemTypeFile, folder, list item, page or other object type.
FileNameCompare expected names.
FileSizeSupport basic integrity checks where relevant.
Created / ModifiedValidate preserved dates when required.
CreatedBy / ModifiedByValidate ownership or author/editor mapping.
ContentTypeValidate information architecture mapping.
VersionCountCompare version requirements.
PermissionFingerprintCompare normalized access intent.
HashOptional 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.

FieldExample use
SiteWhere the exception was found.
LibrarySpecific library, list or area.
PathItem or page affected.
Validation TypeContent, metadata, permission, version, sharing, function.
Source ValueBaseline value.
Target ValueMigrated value.
StatusOpen, Investigating, Resolved, Accepted, Retest Required.
SeverityPractical impact, not exaggeration.
OwnerPerson accountable for review or fix.
ResolutionFix, remigrate, accept, exclude or redesign.
Retest StatusEvidence that the exception was rechecked.

Need help interpreting migration exceptions?

Automated vs Manual Validation

Automated validation works well forManual 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.

  1. Data — source and target inventories.
  2. Evidence — comparison reports and sampled proof.
  3. Exceptions — differences classified and owned.
  4. Resolution — remediated, accepted or redesigned.
  5. 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.

Discuss Your Migration

Continue with Explore the SharePoint Migration Hub, Migration Assessment, Migration Checklist, Migration Permissions, Python validation, and SPFx modernization.

Related resources

Share this:

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.

Connect with me

Keep learning Microsoft 365

Explore more practical tutorials for SharePoint, Power Platform, Copilot Studio, migration, automation, governance, and security.

Continue learning