Use the Page Diagnostics tool for SharePoint Online
This article describes how you can use the Page Diagnostic tool to analyze your classic publishing pages and pages on classic team sites, against a subset of recommended practices in SharePoint Online.
Team sites that don't have Publishing enabled cannot make use of CDNs but all of the remaining rules are applicable. Publishing adds additional overhead so do not turn on Publishing just to get the CDN functionality as it will negatively impact page load times.
Please note that V1.05 has been released so please update your extension if you have it installed already. If you are unsure which version you have then please click the "About" link to verify it.
The Page Diagnostics tool will not run against document libraries or system pages, as the tool is designed to review SharePoint site pages. An allitems.aspx page is a system page. If you attempt to run the tool on a system page, you will get a message that reads, "This application should only be run on SharePoint pages."
This is not an error in the tool as there is no value in assessing libraries or system pages. Please navigate to a non-system SharePoint page to use the tool. If this occurs on a SharePoint page then please check the MasterPage as we have seen Customers remove the SharePoint MetaTags and then the page is no longer a SharePoint page. Should you wish to give feedback about the tool please click the About tab and follow the give feedback link.
Install the Page Diagnostic tool
Microsoft does not read the data or websites you visit, and we do not capture any personal information, website or download information with this tool. The only information logged by the tool is the Tenant name, Rule count and whether the support logging option has been utilized when the tool is run. This information is for Microsoft to analyze what challenges are being experienced by our Customers and to ensure the Support logging capability is not being misused.
The "Export to JSON" functionality in the tool is also why the "Manage your downloads" permission is needed. Please follow your Company's own Privacy guidelines before sharing the JSON file outside of your organization, as the results contain URLs and that can be classified as PII (Personally Identifiable Information).
(This is optional) If you want to use the tool in Chrome incognito mode, navigate to the extension and click allow in incognito.
Navigate to the SharePoint classic publishing page on SharePoint Online that you would like to review. We have allowed for "delay loading" of items on pages; therefore, the tool will not stop automatically. Should you wish to stop collection, you can click Stop. (This is by design to cater for all page load scenarios.) Before you click Stop, make sure that the network trace data is complete. Otherwise, you will have a partial trace. Additionally, the tool is a Browser Extension, and opening multiple tabs or windows will only allow one active instance of the tool to be run at one time. This is a limitation of extensions in the browser.
Click on the Extension logo to load the tool and you will be presented with the following extension popup window:
Start and stop operations follow the basic concept of when you click start the page will reload and collection will begin.
Read the following sections to learn more about the information provided in the tool.
What you'll see in the Page Diagnostics tool
The About link will provide general guidance and details regarding the tool including a link back to this article. It also includes a direct link to SharePoint Performance recommendations, a Third Party notice and an option to provide feedback about the tool.
The Correlation ID, SPRequestDuration, SPIISLatency, Page load time, and URL details are informational and can be used for a few purposes.
CorrelationID is an important element when working with the Microsoft Support Teams as it allows them to pull additional diagnostic data.
SPRequestDuration is the server time taken to process the page. If this time is long, it does not necessarily mean that the server was performing badly but can also reflect the number of calls and load pushed by the page to the server e.g. Structural Navigation, large images, lots of API calls could all contribute to longer server time.
SPIISLatency is the time in milliseconds taken on the Web Front End Server when it receives the request to load the page. This is an indicator of latency to start processing the page and does not include the time taken for the web application to respond.
Page load time is the time recorded by the page from the time of the request to the time the response was received and read by the browser. Any additional time is affected by the performance of the computer and the time it takes for the browser to load.
The URL (Uniform Resource Locator) is the web address of the current page.
The Diagnostic tab will list the rules and if any of them are marked with a red , then there are issues identified on the page.
Each rule has its own "more information" link that you click if an item is red. That will take you to the details behind that rule and how to remediate the issue.
A Network trace tab provides details about page build requests and responses.
How to use the Diagnostic tab
Check Running as Standard User Checking page performance should not be performed when logged in as a Service Account, Administrator or Site Collection Administrator, or any account with elevated privileges. Additional scripts and functionality are loaded specifically for those types of accounts, so the results will not be a true representation of page performance.
Check Requests to SharePoint The amount of data and requests made to the server should be limited as an overloaded page will experience poor performance. This check verifies the number of requests being made to SharePoint and will advise when the requests exceed 6 requests. Most requests should be cached and therefore not called for every page load. Cache should be setup and utilized for at least 15 minutes to reduce the amount of calls to a page by each and every User. This is a common problem and in most cases data only changes daily but the page checks and fetches data each time for each page for each user which is often unnecessary.
Check using CDNs Content Delivery networks (CDNs) have been provided by Microsoft and the ones referred to here are the SharePoint Online Content Delivery Networks. There are multiple types available as well as different CDN services like SharePoint CDNs and then CDNs in Azure. Use the following guidance.
Check for Large Image Sizes Images should be optimized for web by utilizing better web types like PNG. Image renditions should also be utilized and is available in SharePoint directly. Images / image renditions larger than 100kb will be highlighted as not optimized for web. Use the following guidance for optimizing images.
Check for Structural Navigation Structural Navigation was originally designed for use in SharePoint on-Premises where object cache could be utilized. Structural Navigation is not recommended for use in SharePoint Online and should be changed to Managed Navigation or a Custom Provider. Use the following guidance for optimizing navigation.
Check for CBQ WebPart (CBQ - Content by Query WebPart) The Content by Query WebPart generates a high SQL load as it traverses all items in the query for each and every page load, for each User. Unlike an on-Premises installation, there is no cache available to limit the number of queries needed to populate this WebPart. As such CBQ performs slowly and impacts overall page performance which is why it should not be utilized. Please use the Content Search WebPart (CSWP) as the replacement for the Content Query WebPart. Use the following guidance related to the Content Search WebPart.
How to use the Network Trace tab
The Network Trace tab provides detailed information about the requests to build the page as well as the responses received.
- Look for item load times flagged as red. The performance of each request and response are color coded, based on their impact on the overall page performance as follows:
- Green: < 500ms
- Yellow: 500-1000ms
- Red: > 1000ms
In the image shown above, the red item pertains to the default page. It will always show red unless the page loads in < 1000ms (less than 1 second).
Test item load times. In some cases there will be no time or color indicator because the items have already been cached by the browser. To test this correctly, open the page, clear browser cache, and then click Start as that will force a "cold" page load and be a true reflection of the initial page load. This should then be compared to the "warm" page load as that will also help determine what items are being cached on the page.
Share relevant details with others who can help investigate issues. To share the details or information provided in the tool with your developers or a technical support person, click Export to JSON (as shown in the image above). That will enable you to download the results, viewable with a JSON file viewer.
These results contain URLs and that can be classified as PII (Personally Identifiable Information). Make sure to follow your organization's guidelines before distributing that information.
Engaging with Microsoft Support
We have included a Microsoft Support level feature that should only be utilized when working directly on a Support Case for performance. Utilizing this feature will provide no benefit to you when used without our Support team. It will in fact make the page perform significantly slower and continued use of the feature may be considered "misuse" of the service. There is no additional information when using this feature in the tool as the additional information is added to the logging in the service.
No change is visible except that you will be notified that you have enabled it and your page performance will be significantly degraded by 2-3 times slower performance whilst that is enabled. It will only be relevant for the particular page and that active session. For this reason, this should be used sparingly and only when actively engaged with our Support Team.
To enable the Microsoft Support level feature
- Open the Page Diagnostics tool.
- On your keyboard, press ALT-Shift-L. This will display Enable support level logging.
- Select the checkbox, and then click start to reload the page and generate verbose logging for Support to analyze.
An important element for this is the CorrelationID as the Support team will then utilize that number to extract the information needed. Please copy the CorrelationID (at the top of the Page Diagnostics tool) and provide that to Support as they cannot perform the required work without the complete ID.