News We Recently Launched AD Migrator and AD Reporter | News SysTools Commitment to Child Safety: Upholding the Fight Against CSAM |

How to Migrate SharePoint List to Another Site? Efficiently

  author
Written By Mohit Jha
Anuraag Singh
Approved By Anuraag Singh
Published On January 8th, 2025
Reading Time 11 Minutes Reading

Because of SharePoint’s immense popularity, organizations used it at an alarming rate. Although SharePoint is rich in collaboration features, its List feature is highly used in organizations. However, there might be situations when organizations need to re-construct themselves, merge with another, and so on. In these situations, they need to migrate SharePoint list to another site to maintain data consistency.

But it is not as simple as it sounds. So, in this article, we will discuss the different approaches to copy SharePoint list to another site.

Before directly moving to the solutions, let’s take a look at one of the frustrated SharePoint user query.

Microsoft SharePoint user query looking for how to migrate sharepoint list to another site

An Overview of SharePoint List

Before going further in the discussion, let’s take a look at what the SharePoint list is. It is a feature in SharePoint that allows users to manage, organize, and store data in a structured format similar to a spreadsheet (excel files). Here each row represents an item along with the column that states the data about the item.

These are highly customizable and collaborative. In addition, it supports filters, views, sorting, and many more customizations as well. Users can integrate them with Microsoft 365 for real-time collaboration. Additionally, users can also use Power Automate (formerly Microsoft Flow) to automate list-related processes including sending alerts when items are added or updated.

Prime Reasons to Migrate SharePoint List to Another Site

Below are the prime reasons for moving SharePoint list to another site.

1. Organizational Restructuring

One of the major reasons to copy the SharePoint list to another site is the merger or restructuring of organizations. In these situations, lists need to move to new sites to meet the latest requirements.

2. Improved Collaboration

SharePoint lists might be required on another site whose team members need to access it frequently. It will save the time of searching for the list on another site.

3. Data Centralization

For collecting and storing the data in one place is also required to move the SharePoint list to another site. In addition, this is used to reduce redundancy from SharePoint sites.   

4. Performance Optimization

To fulfill the SharePoint document management best practices or optimize the performance of the list. Sometimes it is required to move the SharePoint list to another site. Using heavy data volume lists might slow down the SharePoint site speed. So, moving them to another site having low congestion is good for their performance optimization.

5. Project Transition

Most of the time, the SharePoint projects are transferred to another department. In which the SharePoint lists are also required to migrate along with the project.

6. Permissions and Security Adjustments

Moving a SharePoint list to a different site can add new permission levels. Which is required in the industries having strict compliance.

7. Site Decommissioning

If you are already aware of how to permanently delete SharePoint site, then you should also remember the importance of the data inside it. To access the crucial list data event after site deletion, you need to migrate it to another site.

Preparation to Move SharePoint List to Another Site

For a smooth transition of the SharePoint list to another SharePoint site, fulfill the below prerequisites.

  • Permissions – Make sure you have permissions for both sites including creating one.
  • Optimize SharePoint List – Remove empty folders in SharePoint Online including files. It will save time and effort to avoid migrating irrelevant data into the list.
  • Test Functionality – Test the functionality of the SharePoint list to ensure each feature of the list is working before migrating it to another site.
  • Remove Items Duplicity – Find duplicate files in SharePoint Online and remove them for a flawless process.
  • Perform a Test migration – Before the actual migration, test migration with the dummy list to find the errors at the run time.

How to Migrate SharePoint List to Another Site Using MVP’s Suggested Tool?

SharePoint is not used only in small or medium organizations. It is also used in the top MNCs to enhance collaboration. As a result, SharePoint acts as a central location to store crucial data. So, copying the crucial data containing SharePoint lists requires an authentic and secure tool.

Due to this, Microsoft professionals tested several tools and picked out the Most Reliable SharePoint Migration Tool. This tool incorporates several features and quick steps to simplify the process. Additionally, you can also copy document library to another SharePoint site.

Step 1. Download and Execute the tool.

Download Now Purchase Now

Step 2. Choose Office 365 as Source & Destination platforms.
Choose Source & Destination platform
Step 3. Select the Sites that you want to migrate, and filter them as per necessity.

select sites
Step 4. Complete the credentials of both Source & Destination accounts.

Add Source and Destination details
Step 5. Add Users and then load Sites into the tool.

Add users and sites
Step 6. Finally, hit the Start Migration button to migrate SharePoint list to another site.

migrate SharePoint list to another site

Move SharePoint List from One Site to Another Site Using PowerShell Commands

Here is the free method to move items from one SharePoint list to another site. But only follow this method when you have technical expertise in executing the PowerShell commands. Otherwise, you will face a lot of errors.

Install-Module -Name PnP.PowerShell

Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[source site] -Interactive

Get-PnPSiteTemplate -Out C:\Temp\Lists.xml -ListsToExtract “List Y”, “List Z” -Handlers Lists

Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Y”
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Z”

Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[destination SharePoint site] -Interactive

Invoke-PnPSiteTemplate -Path “C:\Temp\Lists.xml”
If the SharePoint list contains some attachments, then execute the below PowerShell script.

Function Copy-SPListAttachments()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $SourceItem,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $DestinationItem
)
Try {

$AllListAttachments = Get-PnPProperty -ClientObject $SourceItem -Property “AttachmentFiles”
$AllListAttachments | ForEach-Object {

$File = Get-PnPFile -Connection $SourceCont -Url $_.ServerRelativeUrl -FileName $_.FileName -Path $Env:TEMP -AsFile -force

$FileStream = New-Object IO.FileStream(($Env:TEMP+”\”+$_.FileName),[System.IO.FileMode]::Open)
$Attachment_Details = New-Object -TypeName Microsoft.SharePoint.Client.AttachmentCreationInformation
$Attachment_Details.FileName = $_.FileName

$Attachment_Details.ContentStream = $FileStream
$AttachedFile = $DestinationItem.AttachmentFiles.Add($Attachment_Details)
Invoke-PnPQuery -Connection $DestinationConn

Remove-Item -Path $Env:TEMP\$($_.FileName) -Force
}}

Catch {
write-host -f Red “Error Copying Attachments:” $_.Exception.Message
}
}

Function Copy-SPAllListItems()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $SourceList,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $DestinationList
)
Try {

Write-Progress -Activity “Reading Source…” -Status “Getting Items from Source List. Please wait…”
$SourceSharePointListItems = Get-PnPListItem -List $SourceList -PageSize 500 -Connection $SourceCont
SourceSharePointListItemsCount= SourceSharePointListItems.count
Write-host “Total Number of List Items Found are:”SourceSharePointListItemsCount

$SourceListFields = Get-PnPField -List $SourceList -Connection $SourceCont | Where { (-Not ($_.ReadOnlyField)) -and (-Not ($_.Hidden)) -and ($_.InternalName -ne “ContentType”) -and ($_.InternalName -ne “Attachments”) }

[int]$Count = 1
ForEach($SourceItem in $SourceSharePointListItems)
{
$ItemsValue = @{}

Foreach($SourceField in $SourceListFields)
{

If($SourceItem[$SourceField.InternalName] -ne $Null)
{

$FieldsType = $SourceField.TypeAsString

If($FieldsType -eq “User” -or $FieldsType -eq “UserMulti”)
{
$PeoplePickerValues = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.Email}
$ItemsValue.add($SourceField.InternalName,$PeoplePickerValues)
}
ElseIf($FieldsType -eq “Lookup” -or $FieldsType -eq “LookupMulti”) # Lookup Field
{
$LookupIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.LookupID.ToString()}
$ItemsValue.add($SourceField.InternalName,$LookupIDs)
}
ElseIf($FieldsType -eq “URL”) #Hyperlink
{
$URL = $SourceItem[$SourceField.InternalName].URL
$Description = $SourceItem[$SourceField.InternalName].Description
$ItemsValue.add($SourceField.InternalName,”$URL, $Description”)
}
ElseIf($FieldsType -eq “TaxonomyFieldsType” -or $FieldsType -eq “TaxonomyFieldsTypeMulti”)
{
$TermGUIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.TermGuid.ToString()}
$ItemsValue.add($SourceField.InternalName,$TermGUIDs)
}
Else
{

$ItemsValue.add($SourceField.InternalName,$SourceItem[$SourceField.InternalName])
}}}

#Copy Created by, Modified by, Created, Modified Metadata values
$ItemsValue.add(“Created”, $SourceItem[“Created”]);
$ItemsValue.add(“Modified”, $SourceItem[“Modified”]);

$ItemsValue.add(“Author”, $SourceItem[“Author”].Email);
$ItemsValue.add(“Editor”, $SourceItem[“Editor”].Email);

Write-Progress -Activity “ List Items starts copying:” -Status “Copying Item ID ‘$($SourceItem.Id)’ from Source List ($($Count) of $($SrcListItemsCount))” -PercentComplete (($Count / $SrcListItemsCount) * 100)

$NewItem = Add-PnPListItem -List $DestinationList -Values $ItemsValue

Copy-SPListAttachments -SourceItem $SourceItem -DestinationItem $NewItem

Write-Host “Copied Item ID from Source to Destination List:$($SourceItem.Id) ($($Count) of $($SrcListItemsCount))”
$Count++
}
}
Catch {
Write-host -f Red “Error:” $_.Exception.Message
}
}

$Source_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Source_ListName = “[enter list name here]”

$Destination_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Destination_ListName = “[enter list name here]”

$SourceCont = Connect-PnPOnline -Url $Source_SiteURL -Interactive -ReturnConnection
$SourceList = Get-PnPList -Identity $Source_ListName -Connection $SourceCont

$DestinationConn = Connect-PnPOnline -Url $Destination_SiteURL -Interactive -ReturnConnection
$DestinationList = Get-PnPList -Identity $Destination_ListName -Connection $DestinationConn

Copy-SPAllListItems -SourceList $SourceList -DestinationList $DestinationList

Migrate SharePoint List to Another Site Using Power Automate

Microsoft Power Automate offers the option to move one SharePoint list item to another site.

1. Setup trigger on the Source SharePoint list. Select the “When an existing item is modified” option.

migrate sharepoint list to another site

2. Search for the item in the destination list to get its ID and update it.

3. Apply the condition to make sure whether the item exists or not.
[If the item is present update it, else create it.]

Move Items from One SharePoint List to Another Using Template Method

This method is also free and one can use it if the SharePoint list size is smaller.

  1. Open the SharePoint account then move to the List settings.
  2. Click on the Save List as template option from the Permissions and Management section.
  3. Now Open the Site settings and hit the List templates option.
  4. Choose the List template that you want to download or export.
  5. Afterwards, click on the Download a Copy button to save the list.
  6. Go to the destination site > Site collection.
  7. Open Site settings then Gallery.
  8. Move to the List templates and then the Documents section.
  9. Browse the downloaded file and upload it.

Migrate SharePoint List to Another Site By Exporting and Importing List in Excel File Format

Users can export the list into an Excel file format and then upload it to the destination site.

1. Go to the Source SharePoint Site > My Lists and open the SharePoint list that you want to copy.

2. Click on Export > Export to Excel and save it on your computer.

move sharepoint list to another site

3. Afterwards, open the destination Site. Click on New > List.

4. Now upload the data from the downloaded Excel file.

5. Finally, Save the changes.

Post-Migration Verification

After the completion of a smooth transition of SharePoint lists, do not forget to validate the list data.

  • Review: Perform a quick check on the migrated list and identify the discrepancies.
  • Test List Functionality: Test all the features of the list to ensure everything is working as per expectations.
  • Update References: Update any references to the old list, such as links and bookmarks.
  • Clean Up the Source List: Once the list is copied to the destination SharePoint site, either delete the source list or archive it.

Conclusion

Copying a SharePoint list can be a daunting task, but with the right approach, it can be a smooth process. Now, by understanding the multiple approaches you can easily migrate SharePoint list to another site. Also do not forget, to choose the best migration method for your crucial data.

Frequently Asked Questions

Q1. How do I migrate a large SharePoint list to another site collection?
A – You can choose any of the above-suggested solutions to move items from one SharePoint list to another. But, you can pick PowerShell if you are good at it, otherwise, you should go with the MVP’s suggested tool to migrate crucial and large data lists to another SharePoint site.

Q2. Can I automate the SharePoint list migration process?
A – Yes, you can automate SharePoint list migration using PowerShell scripts or above suggested migration tool.

Q3. How do I migrate SharePoint list to another site along with the permissions?
A – While using the professional tool to copy list from one SharePoint to another, you do not need to worry about the permissions. Remember, this tool can migrate the permissions as well without hassle.

Q4. What are the risks of SharePoint list migration?
A – You might face several potential risks of SharePoint list migration. It includes data loss, broken links, permission issues, and workflow disruptions. Therefore, to minimize these risks, it’s important to copy SharePoint list to another site with careful planning.

  author

By Mohit Jha

Mohit is a writer, researcher, and editor. Cyber ​​security and digital forensics are the two subjects that keep Mohit out of his seat. In addition, he hopes that the well-researched and thought-out articles he finds will help people learn.