ShareMaster V2 is in beta, a complete rebuild. See what is new and request access →
  1. Home
  2. Guides
  3. Verify a SharePoint migration

How to Verify a SharePoint Migration: Source vs Destination

A migration is verified when every item at the source has a partner at the destination, nothing has turned up at the destination that was never at the source, and the matched pairs hold the same file and the same column values. Microsoft's built-in tools give you totals rather than that comparison: an item count per list, a storage figure per library, and the migration tool's own log of what it tried. Use those to find where to look. Then compare the two sides item by item, which is what ShareMaster's Compare Items Report does for a pair of document libraries, exporting every match and mismatch to Excel.

Why a matching count is not proof

The quickest check after a copy is to open both sites and see whether the numbers agree. It is a reasonable first look and a poor final one.

Totals hide offsetting errors. One file that failed and one duplicate that was created leave a library's count exactly where it started. Folders count as items too, so a run that recreated a folder tree slightly differently can push the figure up or down without a single document being lost.

Copy logs have a different weakness. They are written by the tool doing the copy, about its own work. A log that says "completed" means the tool believes it finished, not that someone looked at the destination afterwards.

Note: never sign off a migration on copy counts alone, whether they come from SharePoint or from the tool. Require a comparison that shows zero missing items, zero unexplained extras, and no differences on the matched items you care about.

What a verified migration has to show

Before choosing a method, decide which of these you need to prove. A team share of Word documents needs the first three rows. A records library with custom metadata needs the lot.

CheckWhat it catchesBuilt-in way to see it
Missing on destinationFiles that failed, were skipped or were filtered outNone item by item; totals only
Extra on destinationDuplicates from a re-run, leftovers from an earlier attemptNone item by item; totals only
Same path, different sizeTruncated or changed filesStorage Metrics, per folder rather than per file
Column valuesMetadata that was dropped or mapped to the wrong columnOpening items one at a time
Version historyA copy that brought only the latest versionVersion history on each file
PermissionsUnique permissions that were not carried acrossManage access on each item

Nothing on that list is checked by the tools below in one pass. Be clear about which rows your chosen method covers and check the rest separately.

Start with the totals SharePoint already gives you

  1. Item counts. The Site contents page lists each list and library with its item count. Write the figures down for both sites. Remember that folders are counted alongside files.
  2. Storage per library. Under Site settings, Storage Metrics breaks a site's storage down by library and folder, version history included. Compare library totals, but expect them to differ if the copy did not bring every version across.
  3. The tool's failure report. If you used the SharePoint Migration Tool, it writes SummaryReport.csv, a per-task ItemReport.csv, and FailureSummary.csv only when something failed. Work through every failure row. Migration Manager has its own reports in the same spirit.

That gets you a short list of suspect libraries. What it cannot tell you is which files are missing from them, which is the question the people using the site will ask.

Compare source and destination with the Compare Items Report

In the ShareMaster desktop app, the Compare Items Report tile sits in Reports, which is part of the free Report Master. It reads one library at the source and one at the destination, matches the items, and saves an Excel workbook. Source and destination are two separate connections, so the comparison works across tenants as well as between sites in one tenant.

  1. Open Reports and choose Compare Items Report.
  2. Connect to the source site, then to the destination site.
  3. Pick the source library on the left and the destination library on the right, then select Next. Both must be the same type of library, or the report stops and says so.
  4. Under Compare on, choose how items are matched (see below), then select Compare.
  5. Save the workbook. It has one sheet, Item Compare, with the source ID, path, name and size, the same four for the destination, and a Match Found? column.

Pick the right Compare on setting

This choice decides whether the report is useful, so it is worth a minute.

  • File Name, size and folder path is the strictest. A file only matches if it sits in the same folder with the same name and the same size. Use it for sign-off.
  • File Name and folder path ignores size. Use it when you expect sizes to differ for a known reason and only want missing and extra items.
  • File Name and size ignores the folder. It finds files that landed in the wrong place, but two identical files in different folders count as one, so it can hide a missing copy.
  • Id is a poor fit after a migration. Item IDs are not guaranteed to survive a copy, so the same file can show as missing on one side and extra on the other.

Reading the workbook

Filter Match Found? to FALSE. Rows with only source columns filled are missing at the destination. Rows with only destination columns filled exist only at the destination, which usually means a duplicate from a re-run or something left over from an earlier attempt.

Know its limits. The report covers document libraries, one pair per run. It compares identity, location and size, not the values in your metadata columns, and it does not look at version history or permissions. For a library whose value lies in its metadata, check a sample of items by hand or use the deeper compare below.

Whole sites and column values: Compare items in the V2 beta

The ShareMaster V2 beta has a Compare items tile in Reports that goes further. It signs in to the source and destination separately, compares a whole site or a single library or folder you open on both sides, matches lists by title and items by their path inside the list, and writes an Excel report with an Overview sheet and a sheet per list. It is still a beta, so treat its output as a second opinion while it matures.

Run shallow compareRun deep compare
Item counts per listYesYes
Named missing and extra itemsOnly for lists whose counts disagreeEvery list
Column values on matched itemsNoLibraries: every visible, editable column. Lists: Title only, unless Deep compare list fields is ticked

Two honest caveats. A shallow run that finds equal counts has not looked item by item, so it is a triage step rather than a sign-off. And the deep compare leaves out hidden, read-only and system columns, which include Created, Modified, Created By and Modified By. The Overview sheet names the columns it skipped, so you can see what was left out of the comparison.

Turning differences into a clean result

  1. Missing items: copy just those across. Re-running the whole job risks creating the extras you are trying to get rid of.
  2. Extra items: check whether each one is a duplicate, an earlier attempt or something users added after cut-over. Only remove what you have identified.
  3. Size or value differences: open both copies of the file before deciding anything. A difference marks an item to inspect; it is not proof the file is damaged.
  4. Compare again. Sign off when the comparison comes back with zero missing, zero unexplained extras and no differences you cannot explain.

The comparison is only as good as the list of what should have moved. If you have not built one yet, start with a site inventory before migration. For the copy itself, see how to migrate a SharePoint site to another tenant or the narrower guide to a cross-tenant document library migration. Large lists have their own traps when you read them back, covered in the list view threshold reference.

Frequently Asked Questions

Is a matching item count enough to prove a migration worked?

No. One missing file and one duplicate cancel each other out in a total, and folders are counted as items too. Use counts to pick which libraries to check, then compare item by item.

Why not match source and destination items by ID?

A copy does not have to keep item IDs. Folders are recreated and files can arrive with new IDs, so an ID match reports the same file as both missing and extra. Match on folder path and file name, adding size when you want to catch changed files.

Do migration tool reports verify the destination?

They record what the tool attempted and whether each attempt succeeded. That is worth reading, especially the failure report, but it is the tool reporting on itself. An independent check reads both sides afresh.

Can I compare across two Microsoft 365 tenants?

Yes, if the tool signs in to each side separately. The Compare Items Report treats source and destination as two connections, so the two libraries can be in different tenants.

Get ShareMaster and run the Compare Items Report