When I do SharePoint admin talks I also preach the value of scaling by site collections instead of webs. This provides numerous benefits like permissions boundaries, scalability, and quotas. One of the first pushbacks I get on this is navigation. Navigation is also bounded at the site collection level, so each site collection has different navigation, which makes it difficult for end users to get out of the site collection to other SharePoint content. Discoverability is an issue.
One solution is to set a “Portal Site Connection.” This functionality has been around for a couple of versions of SharePoint. It allows you to add a top level link in the navigation breadcrumbs. You can train your users to go to that Portal link if they get lost. This might take them to your portal home page, or some other place to help them find other site collections. Fortunately it’s pretty easy to set up, and with the power of PowerShell it’s easy to set up for a large number of site collections at once (and without the risk of renaming all of your databases or lists).
To fully appreciate the beauty of this, let’s look at the before picture. Here is what the breadcrumbs look like before we make any changes.
The link at the top “Team” points us to the root of the site collection we’re in, http://sharepoint/sites/team. For a user trapped in this site collection it’s no help. There might as well be a smiley face there. To manually change this click Site Actions > Site Settings > Site Collection Administration > Portal site connection (/_layouts/portal.aspx). On this page you provide a URL and a description for the link.
Now there is an additional link at the top of the breadcrumb, your lost users can sigh with relief.
This can take your users anywhere you want, and releases some of the navigation tension caused by having multiple site collections. If you have a lot of site collections this can be pretty tedious to set. That’s where my buddy PowerShell comes in. Turns out it’s pretty easy to set this value for a bunch of site collections at one time. The following PowerShell takes all site collections that start with http://sharepoint/sites and sets their portal site connection to http://sharepoint:
get-spsite http://sharepoint/sites/* | ForEach-Object { $_.PortalName ="Portal Site" ; $_.PortalUrl = "http://sharepoint/" }
It should look like this when it runs:
The second line simply checks your work. Since Get-SPSite lets you do some client side filtering, like shown above, you can be selective about which site collections get the setting. Different web apps or managed paths can have different portal sites, and of course you can change it at any time down the road.
Hope that helps.
tk