Rules to Better SharePoint - 23 Rules
Organizations are extremely good at accumulating data. Mostly in the form of documents and records, this data is often haphazardly located across the organization, and poorly integrated into document processes.
SharePoint is the best organization tool to improve this situation by storing all documents & records in a centralized system. SharePoint stores every version of a document, allows you to enforce information management policies and improves efficiency by automating common business processes. Here you will find many rules for a better experience with SharePoint.
If you still need help, visit our SharePoint consulting page and book in a consultant.
Other SharePoint Rules:
- Rules to Better SharePoint Development
- Rules to Better SharePoint for End Users
- Rules to Better SharePoint Migration from 2007 to 2010
- Rules to Better SharePoint Migration from 2010 to 2013
- Rules to Better SharePoint Migration from 2013 to 2016
- Rules to Better SharePoint Migration from 2016 to Online
- Rules to Better SharePoint Virtualisation
SharePoint is a great platform for intranet, and the new version SharePoint 2019 and SharePoint Online is getting even better every day.
- Powerful content discoverability via full-text search
- Rich workflow capabilities (e.g. approval & distribution processes)
- Document Accessibility (over the web and via Office programs)
- Information Management Policies (e.g. Document retention policies)
- Compliance suitability (e.g. Email archiving)
- Great for storing both structured and unstructured content. (e.g. meeting workspaces, ad-hoc lists, project workspaces, company portal)
- Highly customizable and extensible
You want to be on the latest version of SharePoint.
There are multiple ways to get it:
Check SharePoint DLL version
Check http://<CentralAdminSite>/\_admin/FarmServers.aspx
Check http://<AnySiteCollection>/\_vti\_pvt/service.cnf
See Get SharePoint version number of your platform quickly for details.
vti\_encoding:SR|utf8-nl vti\_extenderversion:SR|16.0.0.4327
Figure: On SharePoint 2016, this is what you get for intranet.ssw.com.au for example
Using no Outlook add-in
Bad Example
Colligo , Harmon.ie and Macroview
OK Example
OnePlaceMail
Good Example
TODO TIAGO: ADD IMAGE OF WINDOWS EXPLORER (4 files in it) AND ANOTHER WITH SHAREPOINT DOCUMENTS LIBRARY
You may need a link in a SharePoint document to help you navigate to a different URL (like shortcut in Windows), there are different ways to implement this.
A. Create a shortcut in windows, then upload the shortcut file (.url) to the document library.
B. Use "Link to a document" content type in SharePoint.
Details on how you to create a link to a document in a SharePoint library.
A. Create a shortcut in windows, then upload the shortcut file (.url) to the document library.
To do this, you need to remove .url file type from your blocked file types in your web application. This will bring some security risk, which is not recommended, and I won't show the step details here.
B. Use "Link to a document" content type in SharePoint.
- Enable "Content Type management" in your document library.
Figure: Enable Content Type management in library setting
- Add "Link to a Document" content type into the library.
Figure: Add from existing site content type
Figure: Select "Link to a Document" content type
- Create a "Link to a document" instance
Figure: select "File | New Document (dropdown) | Link to a document"
Figure: Input "Name" and "URL"
- Done
You should be able to see the link type document in your library:
Figure: Link type documents with the lovely shortcut icon
- Enable "Content Type management" in your document library.
Renaming pages in SharePoint site will cause broken links. All requests to the old URL will be responded to with a 404 error.
Options to resolve this issue are:
- Add a page every time for a rename…. add a JavaScript or META tag redirect to the original page
- Use custom 404 page to look at a list in SharePoint, the list contains all the renaming records, the records are automatically maintained via page updating events handler. (We are using this way)
- Wait for MS to fix the problem - support classical alternative links for a page.
Instead of displaying a direct " Access Denied " warning info, you can allow end users to send an " Access Request ".
Figure: Joanna is requesting access to SharePoint site
The "request manager" will receive an email:
RequestNotificationEmail.png Figure: Pending Requests List After reading the request infomation, the administrator can "Approve" or "Decline" the request, or he can start a conversation with the request user on the Pending Requests list directly to inquire more information:
Figure: possible actions for requests (Approve, Decline or start a conversation with the request user)
To setup permission request for a SharePoint site collection, go to " Site Settings (Gear Wheel icon) | Site Permissions ":
Figure: Open "Access Request" setting
Limition: This "Access Request" only works for authenticated users to inquire more access permission, that means if your site allows "anonymous access", then an anonymous user cannot send "access request" as he doesn't have an identify to be assigned more access permission.
Most SharePoint site templates contain a calendar list, this will bring lots of useless calendars.
Use the below PowerShell script to clean them:
$site = Get-SPSite("http://<site collection URL>/"); # Specify url here foreach ($web in $site.AllWebs) { $lists = $web.Lists for ($i=($lists.Count-1);$i -gt 0; $i--) { $list = $lists[$i] #Write-host $i $list.Title $list.BaseTemplate.ToString() if ($list.BaseTemplate.ToString().ToLower().contains('events')) { if ($list.Items.Count -eq 0) { Write-Host $list.Items.Count "items in the list" $list.Title '('$list.BaseTemplate') at '$web.Url "- cleaning it!" $list.Recycle() #$list.Delete() } } } }
This script will put the calendars which do not have any events into Site Settings | Recycle Bin :
Figure: Empty Calendars in Recycle Bin folder
One of the annoying things with SharePoint document libraries is that users often accidentally leave checked out files, that preventing others from modifying them.
Suggestion to Microsoft: send an email to the user to remind them they have outstanding checkouts potentially blocking other users.
Figure: Here Greg Harris has not checked in a file Upgrade warning: The pages that are not checked-in, will not be migrated on a SharePoint upgrade. There is *no* warning either.
There are 2 ways to remind users of their "checked out files":
- Solution A: Manage Content and Structure Report (No Code)
- ** Solution B: Custom application report (Includes some coding work) Eg. SSW.Dory **
Solution A. Manage Content and Structure Report (No Code)
- Create CAML query in site content and structure
Go to "Site Settings | Manage Content and Structure | Content and Structure Reports", click "New":
Figure: Create a new report Fill the "CAML Query":<Where><IsNotNull><FieldRef Name="CheckoutUser" LookupId="TRUE"/></IsNotNull></Where>
Fill the other fields like below:
Figure: Fill in form - Run Checked Out report
Run the checkout report from "Site Settings | Manage Content and Structure | View: Checked out documents":
Figure: Checked Out Documents report link Make sure there are no files checked out, otherwise, go step 3 - Go chase after the users.
**Solution B. Custom application report (Includes some coding work)**
TODO: Move this tool to GitHub, find a better name than "SSW.SharePoint.CheckedOutFilesReport". Also change from a farm solution to a solution that can be used on Office365 - now in SharePoint 2016 and SharePoint online called "Sharepoint Add-ins"
To make reminding users easier, this SharePoint Add-in has a custom page to show the "Checked out files". One button will send the notification email to all the naughty people.Even better, we have also improved the application with a scheduled task using SharePoint CSOM API to find checked out files and send these notification emails automatically every night.
<img class="ssw-rteStyle-ImageArea" alt="CheckedOutFilesApplicationReport.png" src="CheckedOutFilesApplicationReport.png"> <dd>Figure: One button reminds all users of their "Checked out Files"
Hi Sophie,
You have some pages checked out in SharePoint.
- You should check in at least daily. Revise our SSW rule on Frequent SharePoint Check-ins.
- If you are no longer editing these files, check them in!
- Reply to this email with something like: ‘Done - x files checked in’
You currently have the following pages checked out:
•
<font color="#3a66cc"><a href="/rules/do-you-confirm-there-is-no-checked-out-data">http://<siteurl>/DesignandPresentation/RulesToBetterVideoRecording/Pages/Default.aspx</a> (parent folder)</font>
•
<font color="#3a66cc"><a href="/rules/do-you-confirm-there-is-no-checked-out-data">http://<siteurl>/DesignandPresentation/RulesToBetterVideoRecording/Pages/testing-rule.aspx</a> (parent folder)</font>
Tip: See all files you have checked out at http://<siteurl>/_layouts/SSWReports/CheckedOutReport.aspx
<As per rule https://www.ssw.com.au/rules/do-you-confirm-there-is-no-checked-out-data>;
-- Powered by SSW.Dory -- v16.1.7122.24300 Server: DESKTOP-C7SF4A3
Figure: An example of the reminder email that all users receive **
**
The SharePoint "People Picker" is a great tool for quickly selecting users of your SharePoint site. It allows you to quickly select users from your organization by browsing Active Directory.
Figure: The People Picker Unfortunately, if you have added users directly to your site collection, and later deleted or disabled them from Active Directory, you will notice that these orphaned users will still appear in your People Picker. This will eventually clutter up your People Picker.
Figure: A user in the People Picker that was deleted from Active Directory
Figure: Searching in Active Directory for the user shows the user is in fact deleted To remove these orphaned users, as a SharePoint Administrator, you can open the following URL (where www.northwind.com is your SharePoint URL):
On this page you will find a list of all the users that are members of your site collection, including the orphaned users.
Figure: We have found our orphaned user! To remove the user simply click on the Username | Click Delete User from Site Collection . This will instantly remove the user from the People Picker.
Try to use content query web part to show data instead of jQuery as it's better for Google indexing.
For those out of date data, you can use an archive page and change the filtering of CQWP to return all of them, so that the old data are still there and the ranking of the page won't be influenced.
For more SharePoint SEO, check from this article.
Figure: Use content query web part Because SharePoint server will create quite a few databases, it’s easier to manage them in a separate SQL instance rather than mixing it with other system’s databases:
You often need to share links to a file or folder in SharePoint.
You can select the folder (or file) and click on "Copy link" at the top bar to get the link:
Figure: Getting URL from SharePoint top bar You can also right-click the folder/file to copy the link:
Figure: Getting URL by right-clicking a file in SharePoint On previous versions, you can open the menu on ellipsis link and get it from there:
Figure: Getting URL from SharePoint ellipsis menu Related Rule
Here are the options we have:
For cloud users:
- LinkedIn skills [sync] office365 list. (Preferred)
- Office 365 users profile | skills. (Limited)
- Azure AD [sync] office365 list
For on-premises users:
- User profile [sync] list. (Old)
- default zone should be over http, this is so search can access it over non-secure connection
- default zone should not be accessible outside of internal network
- extend the web application to an internet zone, this should be https to provide secure connection
- this section should be extended with strategy to work with reverse proxy.
Reverse proxy handle https connection to client, and connects to SharePoint via http to reduce https overhead on SharePoint
SharePoint also needs to support https for internal traffic, if I click on a link to HTTPS it should work internally
For this scenario to work, web application needs to be extended 2 to 3 different zone
Default (http for internal and search)
Internet (http for reverse proxy)
Intranet (https for internal https link)
Using default zone URL in search content source, it will be automatically convert to the relative URL on the search result (e.g. if a user access search "keyword" via http://projects.ssw.com.au/search, the result will be like http://projects.ssw.com.au/search/keyword).
While another user access search center via https://projects.ssw.com.au/search, the result will be https://projects.ssw.com.au/search/keyword.
Get rid of classic features in SharePoint Online.
Microfeed
Microfeed list is used to support the MicroFeed Classic web part. If you’re using Modern SharePoint Sites and Pages (and you should !) everywhere, you don’t need that list anymore.
To delete the Microfeed List, simply de-activate the Site Feed feature at the Web level:
Company Announcements
"Announcements" is a default List that used to be created with classic Team Sites. If you’re not using it, chances are you will never do, and modern News should be your replacement for it.
To remove company News, click “Settings” | “Remove” from Site Contents:
Drop Off Library
Drop Off Libraries (Content Organizer feature) were a way to automate moving documents around based on Metadata. This is no longer the optimal solution and you should use Power Automate instead. To remove Drop Off Library from your site, you need to disable the “Content Organizer” Web level feature:
Deleting leftovers from Migrations
After migrating content from older versions of SharePoint, you may end up in a hybrid state where the abovementioned features are disabled, but associated libraries/lists are still present on your site. If that happens, you ideally want to clean it up.The first thing you can try is enabling/disabling the feature again. In some cases, that will fix the issue and remove the unwanted list/library.If that doesn’t work, however, there is a more radical approach: removing the list/library using Powershell:
(In case you prefer using code straight away instead of the screenshot)
Remove-PnPList -Identity "Workflow Tasks" -Force
However, on system Lists, you may get an error:
The workaround is to set the “AllowDeletion” flag to true before calling delete:
(In case you prefer using code straight away instead of the screenshot)
$list = Get-PnPList -Identity "Workflow Tasks" $list.AllowDeletion = $true $list.Update() Remove-PnPList -Identity "Workflow Tasks" -Force
You should review all your Intranet content and for all classic features (pages, web parts, etc…), and decide if you want to keep or migrate them.
More info: Getting started with the SharePoint modernization scanner.
AD has all your users e.g. Bob, Mary, Jane...
SharePoint also has all your users, plus you can extend this information using the UserProfile Service – https://docs.microsoft.com/en-us/sharepoint/manage-user-profiles
The beauty of this is that if everyone has updated their skills, it is wonderfully searchable.
Figure: SharePoint People Search – Notice the Skills coming from UserProfile Service (aka UPS) Figure: Mockup - Improved SharePoint People Search Results SharePoint has an Admin UI to manage User Profiles
Figure: User Profile UI in your SharePoint Admin Centre – generally this is not needed the Delve out of the box experience works for your organisation Delve is a cool product with a nice UI that is essentially a portal onto the User Profiles.
Figure: Delve profile – Click on “Update Profile” to write data back to SharePoint User Profile Service Where it all falls down...
What if your people’s skills are stored in another system such as Dynamics 365 CRM or Salesforce ?
Figure: People’s skills are often stored in Dynamics 365 CRM or Salesforce You can use PowerShell and SharePoint PNP libraries to programmatically interact with the SharePoint UserProfile service. This process allows you to sync skills across systems with a custom solution:
Figure: Powershell - Reading skills from UserProfile Figure: Powershell - Adding “Blazor” to Jean’s skill list OpenSearch is another solution, using the OpenSearch protocol you can add external data sources to your SharePoint search results
Suggestions to Microsoft:
#1 Help me better sync my Dynamics 365 CRM data with the SharePoint user profile service
This should be a simple SharePoint connector so this piece of PowerShell glue is not required 👌
E.g. CRM user skills to User Profile properties#2 Help me make Dynamics 365 CRM data searchable from SharePoint search
If not using a connector, we should be able to easily index and search through Dynamics 365 CRM data.This is essentially just calling a different API.
#3 Help me customise SharePoint search results
If you don’t want either of those options (i.e. you users’ skills are stored somewhere else), we should be able to change the search results UI.
E.g. Search for people here: https://ssw.com.au/peopleFigure: The SharePoint Search should let you add links like in this image #4 Help me search for user entities in Dynamics 365 CRM
There should be a global user search that goes across all entities in Dynamics 365 CRM.
Figure: Searching User + Skill doesn’t yield any result although this skill is associated to the user Did you know that when you delete or disable a user in Active Directory or Azure Active Directory the user is still stored in SharePoint. Did you also know that SharePoint retains any permissions that the user did have in SharePoint at the time? This means that if the user returns and their account is re-enabled they will have all of the same permissions that they had before. Luckily for us ShareGate offer us an easy way to remove these 'orphaned users'.
- Open ShareGate Desktop
- Click All reports | Orphaned user report
Figure: Orphaned user report - Add your connection
Figure: Add connection - Add your site address, Choose your Authentication method and press Connect
Figure: Connect to your environment - Choose Navigate to choose individual sites or tick the box to choose all sites and teams folders
Figure: Choose navigate or tick - Under Navigate choose the individual site | Click Next
Figure: Choose site - Click Run now
Figure: Choose Run now - Select Users | Select Clean orphaned users
Figure: Clean orphaned users - Click Continue
Figure: Continue - View results of report
Figure: Report Results
In the days of classic SharePoint, subsites were a popular way of organising your intranet. Modern SharePoint architecture leans toward a flatter hierarchy, where sub-sites are generally not recommended.
Bad: Old SharePoint architecture Good: A flat hierarchy with Hub sites allows great flexibility There are several reasons why sub-sites are no longer recommended. This blog post has a good list, including:
Flexibility – Sub-sites are a pain to move - you'll never need to do this with a flat hierarchy. Using Hub sites, it’s easy to change links and use dynamic content to make sure your SharePoint architecture matches your organisational structure.
Microsoft Teams & 365 Groups – Every Microsoft Team you create has its own SharePoint site, and SharePoint integrates with Microsoft 365 groups. So with a flat hierarchy, users and admins have a consistent experience across apps and Document Libraries.
It is worth noting that this flexibility comes at a cost - permissions can be more difficult to manage, as each site will need permissions set separately, and you cannot use nested groups.
Links
Introduction to SharePoint information architecture - SharePoint in Microsoft 365 | Microsoft Docs