Moving or Copying SharePoint Files Between Sites: What Keeps Its Metadata, Versions and Dates, and What Doesn't

SharePoint's Copy to keeps version history but resets the Created date, and drops any column, content type or Document ID the target library doesn't already have. Move to keeps more, but removes the source. To keep metadata, create the same columns and content types on the target first, or use a tool that creates them, keeps the original dates and item IDs, and reports what it couldn't copy, such as the free SharePoint Essentials Toolkit.

Published:

Last updated: 2026-10-29

What we tested

Our source file, A-101 Ground Floor Plan, has three versions (Rev A, Rev B, Rev C), the Architectural Drawing content type, a DrawingNumber site column set to A-101, and a Document ID. We copied it to the Documents library of another site with the same CreateCopyJobs API that the Copy to command uses, once with default options and once with version history explicitly kept.

Documents library with A-101 Ground Floor Plan selected and the more menu open showing Move to and Copy to
Move to and Copy to are under the "..." menu.
Copy to dialog with Quick access sites and the Copy here button
Copy to lets you pick any site you can edit.

What Copy to kept and dropped

PropertyCopy to (both runs)
File and current versionKept (3.0)
Version historyKept: 1.0 Rev A, 2.0 Rev B
Created dateReset to the time of the copy
DrawingNumber columnDropped (the target library didn't have it)
Architectural Drawing content typeDropped; the copy became a Document
Document IDNot kept; the target assigns its own if the feature is on
Item IDNew ID in the target list
PermissionsInherits the target folder's

No error or warning was reported for the dropped values. Copy to only writes into columns the target already has, so a column that's missing on the target is silently lost.

Move to versus Copy to

Move toCopy to
Version historyKeptKept
Created, Modified and their By columnsKeptCreated is reset
Columns missing on the targetValues droppedValues dropped
Source fileRemoved (kept until the move finishes)Stays
Links to the filePath links break; see what breaks when a URL changesPoint at the original
Size limitsMicrosoft's documented limits for one operation: 100 GB total, 30,000 files, 15 GB per file

Option 1: Keep metadata with built-in tools

  1. Create the columns and content types on the target first. Use the same internal names. Site columns and content types published from the content type gallery are the easiest way; see content types and site columns.
  2. Use Move to rather than Copy to when the source doesn't need to stay, so dates and authors are kept.
  3. Copy a whole library by saving it as a template only for small libraries. It doesn't include version history and is limited in size.
  4. Check afterwards. Add the columns to a view on the target and compare a few files with the source.

Option 2: Copy with PowerShell and check what was lost

PnP PowerShell's Copy-PnPFile uses the same copy service. This script lists the columns the source library has and the target doesn't, so you know what Copy will drop, then copies only when you set $WhatIf = $false. It needs PnP PowerShell 2.x and your own Entra ID app registration.

$ClientId  = "<your-app-id>"
$SourceUrl = "https://contoso.sharepoint.com/sites/Projects"
$TargetUrl = "https://contoso.sharepoint.com/sites/Archive"
$SourceLib = "Documents"
$TargetLib = "Documents"
$File      = "Shared Documents/A-101 Ground Floor Plan.docx"   # site-relative
$WhatIf    = $true

$src = Connect-PnPOnline -Url $SourceUrl -Interactive -ClientId $ClientId -ReturnConnection
$dst = Connect-PnPOnline -Url $TargetUrl -Interactive -ClientId $ClientId -ReturnConnection
$filter = { -not $_.Hidden -and -not $_.ReadOnlyField -and $_.Group -ne "_Hidden" }
$srcFields = Get-PnPField -List $SourceLib -Connection $src | Where-Object $filter
$dstNames  = (Get-PnPField -List $TargetLib -Connection $dst).InternalName
$missing   = $srcFields | Where-Object { $_.InternalName -notin $dstNames }
"Columns the copy would drop: {0}" -f (($missing.InternalName) -join ", ")
$srcCts = (Get-PnPContentType -List $SourceLib -Connection $src).Name
$dstCts = (Get-PnPContentType -List $TargetLib -Connection $dst).Name
"Content types missing on target: {0}" -f (($srcCts | Where-Object { $_ -notin $dstCts }) -join ", ")

if (-not $WhatIf) {
    $targetFolder = (Get-PnPList -Identity $TargetLib -Connection $dst -Includes RootFolder.ServerRelativeUrl).RootFolder.ServerRelativeUrl
    Copy-PnPFile -SourceUrl $File -TargetUrl $targetFolder -Connection $src -Force
}

Use Move-PnPFile instead of Copy-PnPFile to move. Neither keeps the Created date on a copy or creates missing columns.

Option 3: Copy lists and libraries with SharePoint Essentials Toolkit

The toolkit's Copy & move > Copy lists task copies whole lists and libraries between sites and tenants. The summary page shows the choices that decide what arrives: content, permissions and version history:

Copy lists summary: Copy 1 list, Documents, 20 items; Full copy include content on; Copy permissions off; Version history copy versions on, major versions only
Version history on, major versions only. "Limit to the most recent" caps how many versions come along.

Auto-create creates what Copy to silently drops: the site content types, columns, views and list content types the target doesn't have yet:

Copy lists Auto-create options: site content types, lists and libraries, list columns, list views and list content types
With any of these off, the copy stops at the first item that needs the missing piece and says which.
Copy lists Target: Architecture-Education-Documentation, Documents copied into Documents at Shared Documents, library root keeps the source folders, add items to the existing one
Pick the target site and list. If the list exists, add to it, skip it or overwrite it.

In our run, the toolkit copied all 20 items and files of the library. The five files we compared kept their item IDs (8 to 12) and their original Created dates, which Copy to resets. When something couldn't be copied as-is, it said so instead of dropping it:

Completed with warnings: 20 of 20 items and files copied, 3 warnings: a content type document template could not be copied, a deleted copy in the target recycle bin holds the unique ID, one item was retried with the standard engine
Each warning says what happened and what to do about it.

Two of those warnings are worth knowing about whatever tool you use:

  • A deleted copy in the target's recycle bin holds the file's unique ID. If you copied a file before and deleted it, SharePoint won't import a new copy with the same unique ID until the old one leaves both recycle bins. Empty them, or accept a new ID.
  • Content type document templates (the .dotx a content type opens with) are stored apart from the files. Ours failed with Access denied, so the content type arrived without it. Upload the template to the content type on the target afterwards.

After a copy, Run Verification compares source and target item by item.

Community Edition is free on up to 20 sites per Microsoft 365 tenant.

Frequently asked questions

Does SharePoint Copy to keep version history?

Yes, in our test both the default copy and the copy with version history turned on kept all versions. It reset the Created date and dropped columns and content types the target didn't have.

Why did my SharePoint metadata disappear after copying to another site?

Copy to and Move to only write into columns the target library already has. Create the same columns (same internal names) and content types on the target before copying.

How do I keep the Created date when copying SharePoint files?

Copy to resets it. Move to keeps it, but removes the source. A migration tool that sets Created, Modified and their By columns keeps them on a copy.

Does the Document ID stay the same when a file is copied to another site?

No. The copy is a new document, and the target site collection assigns its own ID if the Document ID service is on. A move within the same site collection keeps the ID.

What is the size limit for SharePoint Move to and Copy to?

Microsoft documents 100 GB total, 30,000 files and 15 GB per file for one operation. Larger moves need several operations or a migration tool.

Copy SharePoint libraries with their metadata, free

SharePoint Essentials Toolkit Community Edition is free. Copy lists and libraries between sites with versions, original dates, item IDs and missing columns created, on up to 20 sites per Microsoft 365 tenant. Get your free Community Edition license key.

About the author. The Cognillo SharePoint Team builds and supports SharePoint Essentials Toolkit and has worked with SharePoint administrators on permissions audits, migrations and cleanup projects since 2012.