Almost since SharePoint Communication Sites were first announced, the clamour has been there to be able to have the root site be a Communications Site. An image driven, good looking site at the natural place for an Office 365 tenancy. Then, at this year's SharePoint Conference, Microsoft announced that the PowerShell commandlet Invoke-SPOSiteSwap was coming and would allow admins to swap out the current root site with another one (with a few provisos that I'll let you read in detail).
Awesome, I thought, my shiny Communications Site can now be shifted to be where most people would expect it. I fired up PowerShell and connected up to the site. Ran the command. Boom. Nothing happened except an error.
Humph. Turns out that the tenancy was on standard release so I could be waiting some time before I got my shiny Communications Site I had stupidly promised. The good news was I remembered a workaround involving saving a Communications Site as a template, deleting the root site and then setting it with a custom template. Not perfect and not supported but it would work. As I didn't want to try out deleting the root site on the main tenancy without being certain what would happen, I used my Office Developer subscription. I copied the url for saving the template, plugged it in and...
Oh. I can't access that any more. That's a pain. But I can be a stubborn beast so wanted to make sure that there was definitely no way round it. I took the plunge in the dev subscription and deleted the root site, safe in the knowledge that I would be able to recreate one...I hoped. I used the new admin centre to delete, making sure to permanently deleted it and clear all record of it.
![Delete current site](019/08/01 Delete current site.png) ![Permanently delete site](2 Permanently Delete it.png)
I tried out using some of the PnP commands like New-PnPSite and New-PnpTenantSite but neither worked unfortunately. So I decided to try and create a blank site where I could choose the template later, as the earlier post recommended. It was a risk as I had no Communications Site template saved but I thought it was worth a look. Why did I think that? Well, I had seen that there was a Communications Site template listed when I ran Get-PnpWebTemplates so I was hoping I might be lucky.
![Create new site using other options]( a new site using other options.png) ![Select more templates]( more templates.png) ![Create site with select template later]( site with select template later.png)
So I now had a site but without a template. I tentatively browsed to that site and started looking through the template options. Oooo, what is that there?
![Select publishing](/images/2019/08/06 navigate to created site and select publishing.png)
Under the publishing tab, there was Communications Site. I selected that, created the default groups and there it was, a Communications Site at the root.
![Communications Site at root](/images/2019/08/08 comm site at root.png)
Fantastic, I was done! Except it occured to me that this tenancy was on targeted release. I took the risk to follow the same steps on the main site (it wasn't in active use yet) and thankfully I found the same thing. I had a working Communications Site.
Caveat Emptor aka be careful using this
So here is the large disclaimer. This is not a supported method. My recommendation would still be to either wait for Invoke-SPSiteswap to reach standard release or change the tenancy to use targeted release. This method may suddenly stop working (in the way that Save Site As Template is now blocked) and it could impact the live running of your tenancy.
But if you are wanting to put a Communications Site at the root while on Standard Release, then I can confirm that on 13 August 2019, it does work.
Header Image by Susanne Jutzeler, suju fotografie from Pixabay