This article will cover some techniques that I typically use for troubleshooting performance issues when loading a particular page in SharePoint. Troubleshooting the overall platform and member servers are outside the scope of this article.
On occasion I have run into situations where a specific page or collection of pages take longer than expected to load. I say longer than expected because everything is relative to your content, user activity and your underlying server architecture. If most pages load in under 10 seconds, but one in particular takes 30-40 seconds or consistently times out then there is clearly something that needs to be reviewed.
Review the SharePoint Page
The first place I start is by reviewing the actual SharePoint page(s) having the trouble. It is possible, and somewhat common, to have content on a given page that is not displayed.
Look for Hidden Web Parts
It is possible to have hidden web parts on the page, and while there are some valid reasons for this, in most cases it is done by mistake. Some users do not understand the difference between the Close and Delete option in the web part menu. Close will essentially hide the web part, Delete will actually remove it from the page. Since in both cases it is no longer displayed, most do not think anything more about it after it is gone. That content is still being loaded even if it is not being displayed. I have seen a few instances were multiple instances of a large lists are being loaded in this manner which slowed the page load down by 20+ seconds.
To check for this through the browser, add “?contents=1” to the end of the URL. This will redirect you to the Web Part Maintenance page displayed below.
From there you can remove the Web Part by selecting the checkbox and clicking the Delete button. If you want to restore it, return to the page go into Edit Mode and select the Add a Web Part button. For sites with Publishing Features you will then need to go into the Advanced Web Part gallery options to see the regular Web Part menu. Select the “Closed Web Parts” gallery listed at the top and add it back to the appropriate zone on the page.
Use of Audiences
Check to see if Audiences are being used. While this may be a very useful feature in some instances, it can also be inappropriately used. Just like the Closed web parts mentioned above, this content will load for everyone, but it is only displayed for people in the appropriate audience. It is a good idea to try and avoid this on top level or heavily trafficked pages.
Trace the Requests
I’ll then use a tool like Fiddler which is able to track all of the network requests from the client computer to the servers. It is important to note that when running this you will want to close out any other applications that might be making network requests. Things like your email client or even apps like the Google Toolbar can be pretty chatty and make the results a little harder to read.
Fiddler will let you now exactly how long it takes to load the page, and break down each and every resource that is also loaded in order to render the page.
Review Content Locations
From the trace results, take note of where the requested resources are located. If everything is being requested from the same server it should be pretty straightforward, but in some cases there may be images, styles, scripts, or other resources referenced on other servers.
Review each of the sources and see if there are any connectivity issues with that particular server. If any of those servers are outside of your network it may be even harder to have consistent page load times. In some cases it might be possible to relocate some of those resources closer to the application. Images, styles, and scripts that are frequently used, but that do not change very often are good candidates for that.
Review What Is Cached
This is also a great tool for determining what is and what is not being cached. During SharePoint design or branding projects it is a good idea to clear your browser cache and compare the first request versus a subsequent request where images and related resources are cached. In some cases new or infrequent users may be having trouble getting resources to load that regular users already have cached.
Hopefully these tips will help you isolate ay performance problems and bottlenecks in order to keep your page load times as quick as possible.