Deployment Server
Make sure .NET Framework is installed on the deployment server (DNN Dependent)
Ensure any antivirus has exemptions for the website folders - ideally all, if not , all but "/portals". Note: the AVG Antivirus online shield has been massive to cause massive slow downs. Presumably this is an error with that product and will be resolved, but if you are seeing slow downs consider disabling it.\
IIS
App pools - Needs to be confirmed (using the AppPoolIdenity for a DNN only solution "IIS AppPool\example.com") where as if it's a CEF solution use the network identity instead.
Making sure the server IIS (Network Service) have permission to access DNN instance folder, including SQL database instances (local or cloud based)
Verify IIS has the correct bindings.
Verify IIS has the correct SSL Certs.
Verify IIS rewrite rules are in place. If the (rewrite module) is not present in IIS you'll need to add this.
Verify host entries are pointing to the correct IP address.
Consider using IIS compression. Static compression will take care of images and other documents, while dynamic compression will handle ASP.Net content. Whilst DotNetNuke has support for compression (dynamic only), offloading this to IIS is recommended as it is likely to perform marginally better and offers some additional options. To see how to set it up please read this . Note: if you enable IIS dynamic compression be sure to disable DotNetNuke compression (host->host settings screen)
(CDN) if adding in a CDN ---
\
DNN Instance Settings
Test & Update SMTP Email Settings (remove test SMTP values for production/client SMTP server) if client is using any email notification within the DNN instance
Test & Update Performance Settings to be optimized for speed.
Page State Persistence: This setting determines whether the page’s view state is stored in the page or server memory. Although changing this option to “Memory” could reduce the overall size of the request sent to the user, in most cases it causes other problems and I personally recommend NEVER changing this value to anything other than “Page”.
Module Cache Provider: The module caching provider setting configures how DotNetNuke will store the output cache of its module objects. The proper configuration of this setting is dependent on the specific environment that the website will be hosted in. Shared Hosting and Dedicated hosting environments will typically see better results using “Memory” caching. In Cloud computing environments, disk based caching makes sense as website content is stored on a SAN or similar device with very good write speeds, and memory availability is limited.
Cache Setting: This performance setting is used to control how much of the underlying data is cached by DotNetNuke. We recommend setting this option to “Heavy”.
Authenticated Cacheability: This setting is used to define the cacheability of content for authenticated users, this can be used to optimize what can and cannot be cached by downstream routers and machines when working with authenticated users. For more information on the values in this section please consult MSDN. We recommend that this setting is left at the default value.\
Disable users online: under Host->host settings, advanced settings, ensure "enable users online" is unchecked if you are not using the users online module. Note: this module is quite "chatty" as it needs to periodically update user counts, so if you don't absolutely require this functionality, it is better to uninstall it.
Log Buffering: by default DotNetNuke logs each event as it happens. However you can buffer these database writes so it only happens in batches (note: if the site recycles you may lose some data). To use the function, under host->host settings locate “Enable Event Log Buffer? " and set it to a value higher than 1.
Enable Compression: In performance settings, turn on compression, unless it is already set in IIS at the server level.
Ensure debug=false and trace=false is set in your web.config (or better retail="true" in machine.config)
If your site does not use any DotNetNuke Widgets you can disable these under Admin->Site settings
DNN module credentials that need to be brought over.
Verify DNN assets are synced.
DNN Instance Clean up
Empty the recycle bin: This will purge all test pages, modules, etc.\
Consider uninstalling any unused modules: This will remove unnecessary assemblies from the /bin and improve startup performance as well as making more memory available for caching. If your site is running 5.0 or higher, go to Host->Module definitions - if the "In use" column says "No" (rather than "Yes") consider deleting the module. If the "In use" column says "Yes" but you are surprised by your usage, the "Yes" text is a hyperlink that will allow you to determine where instances are installed.
Remove all test users, if any were created & update development password. \
Remove all Mockup Source code (These are dependent if the code was included during skin importation\
Make sure available code are compiled and minified (using Gulp or Grunt) this includes .css, .scss, .js files\
Optimize SQL Database
TRUNCATE TABLE EventLog
TRUNCATE TABLE SiteLog
Note: if your site uses objectqualifier or databaseowner values then you will need to replace them with the relevant values
TRUNCATE TABLE {databaseOwner}{objectQualifier}Eventlog
TRUNCATE TABLE {databaseOwner}{objectQualifier}SiteLog
This query can be ran manually, or created as a sql job or can utilize a utility such as Scheduled sql jobs to run it on a regular basis
(SEO) Making sure that the staging site isn't indexable and all work is only pointing to the production instance.
DNN Backup