Sharepoint site takes a while to load first thing in the morning

No. I would guess that the compiled components in the application have been unloaded from memory and have to be reloaded into the cache. This happens with my ASP.NET web apps, too. I especially notice it on the QA sites which don't get hit nearly as often and thus are almost always flushed from the cache when I go to access them.

You could look at increasing the amount of time the app pool for your site waits before recycling an idle worker process.


By default an IIS application will recycle its worker processes during the night. You can turn this off in IIS manager, but a better option may be to just add a warmup script to a timed job. You can do this in SharePoint but simpler is probably to just add a scheduled task in Windows to fire off the a warmup script after the recycling is done.

A google for "sharepoint warmup script" will yield several results, including this, which actually also explains the same situation :-)


My guess is that the application pool's worker processes are set to recycle at a certain time every night in IIS, which causes the delay first thing in the morning. Right-click the application pool in IIS -> Properties -> and look under where it says "Recycle worker processes at the following times:" to see for yourself.

You could disable this option to fix your problem but I don't recommend it because having the worker processes recycle every night will reclaim any memory that may have leaked. Memory leaks are especially possible during SharePoint development because as you may know many of the objects in the SharePoint object model perform most of their work in unmanged memory. If these objects are not properly disposed of a large amount of memory may be occupied while adding little memory pressure on the .NET garbage collector, delaying garbage collection.

Best Practices: Using Disposable Windows SharePoint Services Objects

I agree with seanb's suggestion of setting up a scheduled task to load the site in the morning to solve the delay problem. Just make sure you schedule it for a time after the worker processes have recycled obviously.