How to move a List from SharePoint 2010 to SharePoint 2013


I recently had a client ask me, how he could migrate only a list from SharePoint 2010 to SharePoint 2013 by keeping the data in it. I tried a quick Google, and nothing came up. I tried to export the list into a .cmp file, and import it into SharePoint 2013, but I got this Error. Importing SharePoint 2010 Files is not supported in SharePoint 2013.

move a List from SharePoint 2010 to SharePoint 2013

FatalError: The version of the package is different from the current version this program supports,

After eliminating the easy option, I found three ways to move a list, each with its advantages and disadvantages. It basically resumes to this:

How to move a List from SharePoint 2010 to SharePoint 2013

  1. Fast & Cheap : “Dirty” export and import
  2. Fast & Clean : Third party solution
  3. Clean & Cheap: Content Database Import

1. Fast & Cheap — > Modify the .CMP file

This is the “dirty” method to make it work fast. What I mean by dirty, is that it isn’t supported by Microsoft officially since we will modify the .cmp file. Here is how to do it step by step.

  1. Export the list from SharePoint 2010 using either the Central Administration or PowerShell (Export-SPWeb). In the Central Administration, go to Backup and Restore > Export a site or list. Choose your list, and click Start Export

  1. Copy the exported list (.cmp file) to your desktop and change the extension to .cab. You can then extract it using a software like WinRar. You will then have those files:

  1. Open the SystemData.XML file with an editor like NotePad++ and change the version from to , and the build version from your 14.0.x.x to 15.0.x.x (depending on the build you have on both your farms). Here is a screenshot with before and after.

  2. Now we have to repackage it as a .cab file. I used a software called CabPack. Select your Source and Destination. Change the CabinetNameTemplate if you want, and click on OK.

  1. Change the extension from .cab to .cmp

  2. Copy the .cmp file back on the network share or directly on the SharePoint 2013 Server.
  3. Open SharePoint 2013 Management Shell as an administrator. Run this command by changing the parameters of course! Import-SPWeb -Identity http://teamsite.vlad.local/ -Path \\sp2010-itest\Exports\MyCusttomList.cmp -Verbose

  4. Open up your SharePoint Site and your list should be thereJ.

2.Fast & Clean

The Fast and proper way to move a list is moving it with a third party tool. The advantage with the third party tools is that they are very simple, and they work well. The Downside, of course is that they are not freeJ. However, I am sure that if you only want to move a list, you can simply download a trial and get the work done. Here is the one I heard the most positive comments about.

  1. ShareGate >> They offer a 15 day free Trial.

3. Clean & Cheap

If you don’t want to buy a third party solution, the other “best practice” solution would be to create a new temporary web application, upgrade your content DB to SharePoint 2013, and then export the list. However, if you have a lot of customizations and development done on the site collection, this might really get messy.

  1. Backup the Content Database of the Site Collection in which the list is. (SharePoint 2010)
  2. Create a Temporary Web Application in the SharePoint 2013 Farm.
  3. Run SharePoint 2013 Management Shell as an administrator, and run the following command to dismount the content database:

    Get-SPContentDatabase -WebApplication http://sitename | Dismount-SPContentDatabase

  4. Restore the Backup you took in Step 1, on the SQL Instance hosting your SharePoint 2013 Farm. Make sure you give the farm account db_owner permissions on the database.
  5. In the SharePoint 2013 Management Shell, run the following command.

    Mount-SPContentDatabase MyDatabase -WebApplication http://sitename

  6. Navigate to the Site Collection, and if you didn’t have too many development and custom things done, it should open no problem. Make sure the list you want to export is ok.
  7. Go in the Central Administration, go to Backup and Restore > Export a site or list. Choose your list, and click Start Export
  8. Open SharePoint 2013 Management Shell as an administrator. Run this command by changing the parameters of course! Import-SPWeb -Identity http://teamsite.vlad.local/ -Path \\sp2010itest\Exports\MyCusttomList.cmp -Verbose
  9. Open up your SharePoint Site and your list should be there J.


Important Information! If you used Site Columns in your list, by using method 1 or 3, your columns will be imported as list columns. If you still want to use Site Columns, you will have to migrate them as well, in order to keep the same GUID. I found this script by Phil Childs really interesting, and it worked with my test list.

Those are three ways to get a list from SharePoint 2010 to SharePoint 2013. You choose which one fits you best!

Share this post with your followers on twitter by clicking this cool bird right under here


Leave a comment and don’t forget to like the Vlad Talks Tech Page   on Facebook and to follow me on Twitter here  for the latest news and technical articles on SharePoint.  I am also a Pluralsight author, and you can view all the courses I created on my author page.

Previous Post
Changes to the SharePoint Partner Competency – July 2013
Next Post
Monday Fun, 7 Steve Ballmer moments


  • August 21, 2013 at 11:29 am

    Excellent write-up Vlad I am sure this will help many others trying to do this.

  • August 22, 2013 at 12:28 pm
    Jim Thomas

    I had good luck saving a 2010 list with 6,000+ items as a template with content. I then uploaded template to my 2013 site. I created a new list on 2013 site with that template. The list came came over perfectly with all data and views intact. Seems much quicker and easier than the content DB approach.

  • August 22, 2013 at 7:25 pm

    Awesome writeup Vlad . really helps

  • August 22, 2013 at 11:52 pm

    Excellent one. Could I share 1st approach on my blog?

  • August 23, 2013 at 5:37 am

    Nice writeup vlad. Great. it helps lot

  • August 23, 2013 at 9:44 am


  • August 25, 2013 at 10:17 am
    Sonja Madsen

    You can also save the list as template with content and use it to create new list in SharePoint 2013

  • August 27, 2013 at 1:14 am

    Excellent post! Thank you very much!!

  • October 14, 2013 at 11:58 am

    MetaLogix Content Matrix now has a free version for up to 25 GB… no trial expiration license issues.

  • October 16, 2013 at 9:54 am

    Excellence Post!

  • November 5, 2013 at 9:00 am

    It was very help ful, tried with all the three options and was working fine.

  • March 19, 2014 at 9:02 am

    Very Nice Post!!

  • August 5, 2014 at 1:54 pm

    This won the internet for me today.. Thanks a mil – great article.

  • October 23, 2014 at 10:09 am
    devarajan S M

    Good article

  • November 20, 2014 at 1:30 am

    Good post

  • December 4, 2014 at 11:25 am
    Sara Elbehairy

    thanks a lot you saved me a lot of time you are great 🙂

  • March 2, 2015 at 2:30 am

    Excellence Post!

  • March 11, 2015 at 4:20 am

    thanks for post. i have list 7.5 GB size. if i create cab file using cabpack, i received an error %80. I’ve tried a lot of times. I’ve always error. please help me. Is there an alternative cabpack

    • March 15, 2015 at 2:45 pm


      I didn’t have any problems with it. Any program that can create cab files will be good!


  • March 13, 2015 at 7:07 am
    Osvaldo Aluigi

    Great post, te solution 3 work perfectly,

  • May 4, 2015 at 12:04 pm

    Great Post! Thank you

  • September 8, 2015 at 12:58 pm
    Tom Hinkle

    I believe ShareGate’s trial software will randomly exclude data from the move/copy, so you can’t depend on it to move production data; you can only test with it, which of course is the point of trial software.

    As for cost, well, ShareGate starts at about $2,000 with no data limits, but it is PER YEAR and PER SEAT!!! ANd that’s for ShareGate LITE; the full version is closer to $4k per year per person.

    Dell (formerly Quest) charges per gigabyte. You can distribute the software to multiple people and not have to pay a per seat license. But when you run low on data capacity, you have to buy more.

    So for us, we paid around $3500 for Quest for 150 gig, gave the software to a team of 3, and after three years we still had not existed the intitial 150 gig allocation, so it was a cheaper solution than Quest in the long run. But every shop may be different. If you have a big farm and move a lot of data, ShareGate may be the better choice.

  • January 29, 2016 at 9:05 pm

    When I use the .CMP file way all files in the list say it is created by the SP admin account. How can I make sure the correct “Created by” meta data is used when I import it in SP13?

  • June 14, 2016 at 3:31 am

    The steps are absolutely clear, thankss

  • July 6, 2016 at 10:20 am

    Thanks a ton, but I too need the “Created”, “Modified”, “Created by”, and “Modified by” metadata to carry over. I’m hoping the database approach works for that.

  • August 26, 2016 at 10:05 am

    The easier option is to save the template list along with content, download on your local and then upload on the new sharepoint. This works, but can any one help me under stand the difference between this method and the method where we can export the list onto excel and the use the ‘Import Spreadsheet’ feature in sharepoint 2013.

  • November 2, 2016 at 4:39 pm
    SharePoint Fighter

    Thanks a lot for your post! It just saved my life! 🙂

  • September 13, 2017 at 1:24 pm
    João Sarno

    This methods works for attachments and workflow status in the list?

  • October 16, 2017 at 8:24 am


    Thanks for the wonderful post. Will it solve auto-numbering issues? I have a custom list with auto-numbering configured. Facing issues during migrating from SP 2010 to 2016. Any ideas to fix this?

  • November 20, 2017 at 10:40 am

    Thanks for sharing! it just saved my life.

  • February 21, 2018 at 9:52 pm

    Really good info – but you don’t need the products. Windows has native expand and makecab functionality which you can do from the command line. You can wrap it all up in powershell and automate everything else. I have attached one of the diff files here because this ended up being the trickiest bit. (also saving the file as asci when outputting string from powershell)

    ;*** Sample Source Code MakeCAB Directive file example
    .OPTION EXPLICIT ; Generate errors
    .Set CabinetNameTemplate=env_register.cmp
    .Set Cabinet=on
    .Set Compress=ON
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set DiskDirectory1=\\medtfs01\drop\SharePoint_source\SP_Lists\out

  • May 16, 2018 at 7:29 am
    Rishi Jagati

    Thanks for the trick Vlad !
    I have a huge document library, which I exported thru CA. but this process generated around 170 .cmp files. like export1.cmp,export2.cmp and so on.
    Do I need to change in all .cmp files?

    • May 28, 2018 at 9:48 pm

      It should be only in the first or last one! It’s been a while since I did it, but yeah first or last!

  • September 14, 2019 at 4:36 pm

    Thanks for the trick…

  • October 15, 2019 at 4:50 am

    Thank you Vlad, it helped a lot.
    What I would like to add for “1. Fast & Cheap”: We used the Export-SPweb cmdlet with -NoFileCompression parameter instead of exporting the list via CA. This generates a folder and it is easy to change the SystemData.XML file. You don’t need to pack it as *.cmp again and it worked well for huge lists.

  • October 28, 2019 at 11:45 am

    Great post!

  • February 18, 2020 at 8:01 am
    charbel achkar

    when trying to import the .cmp file, it is generating an error

    Import-SPWeb : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

    what might be the problem? access to what exactly is denied here?

  • April 29, 2020 at 6:00 am
    Huzefa Mala

    Would this work to move lists from SharePoint 2010 to 2016 or 2019 considering we hop each environment?


Leave a Reply

15 49.0138 8.38624 1 0 4000 1 300 1