Check this:
Things to do before migrating
I would also, by my experience, recommend that you audit all your SharePoint and check what you are really using. We found stuff here that nobody modified for 12 years! Ok, it may take a while to verify what you can or can't throw away but it's a long term benefit.
I used this code(SP 2010) to run trough all the site collections of a web application and find out what's not in use for a long time. See if it works for you.
function Get-DocInventory([string]$siteUrl)
{
$today = Get-Date -format g
$site = New-Object Microsoft.SharePoint.SPSite $siteUrl
foreach ($web in $site.AllWebs)
{
# varre todas as listas de cada web
foreach ($list in $web.Lists)
{
# remove lists that are hidden, master page/list template/theme/web part galleries e style libraries
if( $list.Hidden -eq $false -and $list.Title -ne "Style Library" -and $list.Title -ne "Master Page Gallery" -and $list.Title -ne "List Template Gallery" -and $list.Title -ne "Theme Gallery" -and $list.Title -ne "Web Part Gallery")
{
foreach ($item in $list.Items)
{
$modified = $item["Modified"]
$TimeSpan = [DateTime]$today - [DateTime]$modified
$age = $TimeSpan.days
$age=[math]::Round(($age/365),2)
# definicao do quais informacoes serao puxadas
$data = @{
"Type" = "Item"
"Site" = $site.Url
"Web" = $web.Url
"List" = $list.Title
"ID" = $item.ID
"URL" = $item.Url
"Title" = $item.Title
"Created" = $item["Created"]
"Last Modified" = $item["Modified"]
"Time without update" = $age
}
New-Object PSObject -Property $data | Select "Type", "Site", "Web", "List", "ID", "URL", "Title", "Created", "Last Modified", "Time without update"
}
$modified = $list.LastItemModifiedDate
$TimeSpan = [DateTime]$today - [DateTime]$modified
$age = $TimeSpan.days
$age=[math]::Round(($age/365),2)
$dataList = @{
"Type" = "List"
"Site" = $site.Url
"Web" = $web.Url
"List" = $list.Title
"ID" = $list.ID
"URL" = "n/a"
"Title" = $list.Title
"Created" = $list.Created
"Last Modified" = $list.LastItemModifiedDate
"Time without update" = $age
}
New-Object PSObject -Property $dataList | Select "Type", "Site", "Web", "List", "ID", "URL", "Title", "Created", "Last Modified", "Time without update"
}
}
$modified = $web.LastItemModifiedDate
$TimeSpan = [DateTime]$today - [DateTime]$modified
$age = $TimeSpan.days
$age=[math]::Round(($age/365),2)
$dataWeb = @{
"Type" = "Web"
"Site" = $site.Url
"Web" = $web.Url
"List" = "n/a"
"ID" = $web.ID
"URL" = $web.Url
"Title" = $web.Title
"Created" = $web.Created
"Last Modified" = $web.LastItemModifiedDate
"Time without update" = $age
}
# cria um objeto com as informacoes
New-Object PSObject -Property $dataWeb | Select "Type", "Site", "Web", "List", "ID", "URL", "Title", "Created", "Last Modified", "Time without update"
$web.Dispose();
}
$site.Dispose()
}
Just call the function passing the web application URL.
Another thing I would avise is to start with whatever is used the most. See what the employees are really involved with and start from there. That's probably where you will find the most trouble and from there should be easy.