I learnt these practices in a very hard way. When we had a client that was having the unexpected shutdown, and a slow start up load time issue on their production environment, a month ago.
1. Adjust the app pool recycle from every 1740 minutes to off-peak hours of your Geo location daily. (eg. 3:00 AM, 4:000, 5:00 AM)
Open the IIS > Application Pools > Actions pane > Recycle…
2. Adjust the settings for the Idle Time-out to zero (0). This is to make your website load fast.
Open the IIS > Aplication Pools > Actions pane > Advanced settings
Note: Leaving the Idle Time-out to 20 minutes by default is only best applicable for bulk hosting where you want to lessen the memory usage. When you have 20 minutes without any traffic then the app pool will terminate, and will just start up again on the next visit.
The main problem is that the first visit to an app pool needs to create a new w3wp.exe worker process which is slow because the app pool needs to be created. ASP.Net or another framework needs to be loaded, and then your application needs to be loaded, as well.