Upgrade from SharePoint 2010 to SharePoint 2016

In this blog, I will go through the process of upgrading your existing SharePoint 2010 farm to SharePoint 2016. Just like it has been the case with the last 3 product release cycles, there are no In-Place upgrade paths for SharePoint 2016. You basically have to build a new SharePoint 2016 SharePoint Farm, and then bring your content databases over. Throughout this article, we will focus solely on upgrading the SharePoint 2010 Content Databases (data), and not the Service Applications.

Background Information

The first thing you need to be aware of if you are planning an upgrade from SharePoint 2010 to SharePoint 2016, is that there are no direct upgrade path: you will have to upgrade your SharePoint 2010 content databases to SharePoint 2013 before going to SharePoint 2016. However, you do not have to build a complete SharePoint 2013 farm in order to accomplish this. All you need is a standalone SharePoint 2013 server (Single-Server Farm), that will be used as a stepping stone to upgrade the schemas of your SharePoint 2010 content databases to SharePoint 2013, and then move on to your new SharePoint 2016 farm.

Conceptually, the diagram below shows what high-level infrastructure is required for such an upgrade. The SharePoint 2010 section, shows our existing SharePoint farm. For our example, the farm will be made up of two Web Front-Ends, one Application server, and a single SQL Server. Then if we look at the SharePoint 2013 section, we can see that we have a single server farm, that has both the SQL and the SharePoint 2013 bits installed on it. This server will act as our stepping stone to SharePoint 2016. Its sole purpose is to upgrade our SharePoint 2010 content databases to SharePoint 2013 so that we can then move them over to SharePoint 2016. Then, in the SharePoint 2016 section, we see that we have replicated our SharePoint 2010 infrastructure (with new server names to avoid conflicts).


At this point you could have decided to add more capacity to your SharePoint 2016 farm, but to keep things simple we did a one-to-one replica. Another option, depending on how long you can afford to have downtime for your SharePoint farm, would have been to move the content databases to the SharePoint 2013 Single server and upgrade them, to recycle the SharePoint 2010 infrastructure to install SharePoint 2016 on it, and to move the content databases over the newly recycled infrastructure once ready.

Step 1 – Upgrade your SharePoint 2010 content to SharePoint 2013

The first step in our SharePoint 2010 to SharePoint 2016 upgrade process, is to upgrade to SharePoint 2013.

a) Backup your SharePoint 2010 Content Database

  • Launch SQL Server Management Studio
  • Right-click on your Content Databases and select Tasks > Back Up…
    Back Up...
  • In the dialog window that opens, leave the default settings and click OK.
  • Upon receiving a message to let you know that the backup succeeded, click OK to close it.

b) Copy the Backup Files Over to the SharePoint 2013 Single Server Farm

  • By default, the content database will have been backed up in the default SQL installation folder, under the Backup repository. In my case it was located at C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup.
  • Take the .bak file and copy it locally onto the SharePoint 2013 Single server Farm.

c) Restore the SharePoint 2010 Content Database on the SharePoint 2013 server

  • Open SQL Server Management Server on the SharePoint 2013 Single Server Farm.
  • In the Object Explorer panel, right click on the Databases folder and select Restore Database…
  • In the Restore Database dialog, select Device from the top radio choices and click on the “…”
  • Keep the “Backup media type” set to File, click on the Add button and browse for the .bak file we’ve copied over.
  • Click OK on both windows.
  • This will initiate the Database Restore operation. Once completed, you will get a confirmation letting you know that the restore operation succeeded. Click OK to close it.

d) Create a New SharePoint 2013 Web Application

In order to upgrade our SharePoint 2010 content databases to SharePoint 2013, we need to associate them with a SharePoint 2013 Web Application.

  • Open Central Administration and navigate to Application Management > Manage web applications
  • In the ribbon, click on New
  • Create a new Web Application on port 80, without a Host Header. By default, if this is the first Web Application you create on your SharePoint 2013 Single Server Farm, the creation interface should automatically default to a new Port 80 web application. Give the Web Application the name Stepping Stone and leave the default options there, and simply click on OK to initiate the creation of the new Web Application.

e) Mount the Content Databases to SharePoint 2013

  • Open a new PowerShell session as administrator
  • Run the following lines of PowerShell. Whis will actually initiate the Upgrade operation on your SharePoint 2010 Content Database.
    Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    Mount-SPContentDatabase "Intranet-Content-1" -WebApplication "Stepping Stone"

    Where Intranet-Content-1 is the name of my SharePoint 2010 Content Database and Stepping Stone is the name of the SharePoint 2013 Web Application we’ve just created in the previous section


  • At this point, you have successfully upgraded your SharePoint 2010 content to SharePoint 2013. In my case, my Content Databases contained 2 site collections, respectively located at /sites/TeamA and /sites/TeamB. Therefore, by navigating to http://<server name>/sites/TeamA I should be able to view my content.


Step 2 – Upgrade the Experience to SharePoint 2013

By default, when upgrading content databases from SharePoint 2010 to SharePoint 2013, site collections will continue to use the SharePoint 2010 experience, meaning that the user interface will continue to look just like it was in SharePoint 2010, even though the engine under the cover is all SharePoint 2013. However, before upgrading to SharePoint 2016, the user experience has to be upgraded to the SharePoint 2013 experience. If you try to upgrade a SharePoint 2013 content database that contains site collections with the SharePoint 2010 experience to SharePoint 2016 the upgrade operation will fail and you will get the following error in the upgrade logs: ERROR Please upgrade sites using SharePoint 2010 experience in database Intranet-Content-1 to SharePoint 2013 before proceeding..

a) Automate the Upgrade Process

  • While you could manually upgrade all site collections to the SharePoint 2013 experience, we will automate the process with PowerShell. The following PowerShell script will loop through all Web Applications in the SharePoint 2013 Single server Farm and will upgrading all site collections to the SharePoint 2013 experience:
    Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    $webApps = Get-SPWebApplication
    foreach($webApp in $webApps)
    $sites = $webApp.Sites
    foreach($site in $sites)
    Upgrade-SPSite $site.RootWeb.Url -VersionUpgrade -Unthrottled

    * Executing this script will likely take a long time since it synchronously upgrades each site collection one at a time. If you wish to do it in an asynchronous fashion you can use the -QueueOnly switch which will simply put the upgrade request in a queue and will let the timer job get to it at some point in time.

  • To ensure that the experience was properly upgraded, you can navigate back to your site to ensure it now has the SharePoint 2013 look and feel applied to it.

    SP2013 look

Step 3 – Upgrade to SharePoint 2016

The only step remaining is now to migrate our SharePoint 2013 upgraded content to SharePoint 2016. To do so, we will simply repeat step 1, but this time we will bring the data from the SharePoint 2013 Single Server farm onto the newly built SharePoint 2016 farm. I will not be covering the step-by-step procedure to achieve this. Just know that it is exactly the same as what we did to get the content upgraded from SharePoint 2010 to SharePoint 2013. The one difference would be at Step 1-d, where I would off course not recommend creating a Web Application named “Stepping Stone” on your SharePoint 2016 server. You should be mounting your SharePoint 2013 content database against a Production ready Web Application (Step 1-e).

Once the upgrade to SharePoint 2016 is completed, you can navigate back to your site collection to ensure it is properly loading.


20 thoughts on “Upgrade from SharePoint 2010 to SharePoint 2016

  1. Nice post, thanks Nik!

    When I did this for ~200 content databases I made a PowerShell “database loop” to queue up all databases and automatically run parallel PowerShell cmds (Mount-SPCDB). With ~10 concurrent threads, you can upgrade LOTS of data quickly and reduce downtime.

    Check it out if you like …

  2. If we also wanted to upgrade service applications then we need to do backup restore in SharePoint 2013 server or directly from SP 2010 to SP 2016 is possible?

  3. Hi Nik,

    Great article! I was wondering if you knew about the licensing model for the upgrade from SharePoint 2010 to 2016. Do you know if you have to purchase the SharePoint 2013 and SharePoint 2016 license keys or can you just use the evaluation to upgrade SharePoint 2010 to SharePoint 2013?


  4. Nice Article Nik,
    One typo is there below step 3 … “content upgraded from SharePoint 2010 to SharePoint 2010” should be … to SharePoint 2013.


  5. Hi Can you send any msdn article that to possible to convert directly from sharepoint 2010 to Sharepoint 2016?

      1. Hi Nik thank you for your information can you tell me one more think to migrate and upgrade sharepoint 2010 to sharepoint 2016 not from content database migration native method and I want to just migreate list, libraries only so can you guide me that to possibleway.

        1. All you SharePoint objects and associated data such live in content database, so you have to upgrade using Nic’s method. If you want to bring

  6. Hi , is it possible to upgrade share point 2010 to share point 2013 in single server?
    already we have share point 2010 in a server, can we install Share Point 2013 on same server.
    i tried to install getting setup Errors, “setup has detected previous version of this product on your computer”
    Please suggest..

    1. Thank you for information, Hence we have to use separate hardware for new SharePoint 2013, can you please suggest what is the best practice to upgrade SharePoint 2010 to share point 2013?

  7. Hi, while upgrading SharePoint 2010 to SharePoint 2013, it displaying upgrade completed with 2 errors, error message in the log
    “ERROR 1.Database [Database name] contains a site (Id = [xxx], Url = [/]) that is not found in the site map. Consider detach and reattach the database.
    ERROR 2.Database [database name] contains a site (Id = [xxx], Url = [/]) whose url is already used by a different site, in database (Id = [xxx], name = [WSS_Content]), in the same web application. Consider deleting one of the sites which have conflicting urls.
    Could you please any one help me to resolve this issue?

  8. Hi. Our users are trained in 2010 look and feel and we don’t want to make them unhappy by changing the look and feel. Is there any way we can have 2010 look and feel in 2016?

    1. You could always try to set v4.master back as the master page after the visual upgrade but I wouldn’t recommend it. This reminds me of the office 2010 upgrade where users would do anything to hide the ribbon. You’ll need to bite the bullet at some point

      1. But once I update the ui, it make the ribbon and settings menu of 2013. My master page will render page in 2010 but SharePoint layout won’t be in 2010. Right?

Leave a Reply

Your email address will not be published. Required fields are marked *