Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How to Optimize the Performance of Your DNN Website

783 views

Published on

Matt Rutledge is Chief Technology Officer at Believe Group, where he and his team architect, design and develop systems to operate fundraisers. Recently, Rutledge and team performed a comprehensive performance optimization of their DNN website that resulted in a 39% increase in revenue.

In this presentation, Rutledge outlines how he uncovered bottlenecks, diagnosed trouble areas and optimized CMS settings to improve the performance of his e-commerce website. Among the areas Rutledge covers:

CMS settings
Profiling database queries
Optimizing images
Optimizing JavaScript and CSS
Useful and free performance tools

Published in: Technology
  • Be the first to comment

  • Be the first to like this

How to Optimize the Performance of Your DNN Website

  1. 1. INCREASED SALES 39% THROUGH PERFORMANCE Matt Rutledge
  2. 2. OVERVIEW • Who We Are • Problem • Discovering What was Happening • Solutions • CMS Settings • Database Calls • Image Sizes • JavaScript and CSS Sizes • Render Blocking JavaScript • Results
  3. 3. WHO WE ARE • Started in 1998 • Fundraising for schools and groups • Catalog • Chocolate • Jelly Belly • Candles • Offer online shopping for each individual fundraiser
  4. 4. PROBLEM • 260,000 UniqueVisitors between August and November • Site Sluggish when 60 Concurrent Users • Average Page Load of 6+ seconds • People Expect less than 4 seconds
  5. 5. DISCOVERING WHAT WAS HAPPENING
  6. 6. SOLUTIONS CMS SETTINGS • CMS Settings • Database Calls • Image Optimization • JavaScript / CSS Optimization
  7. 7. SOLUTIONS CMS SETTINGS • Host->Basic Settings->Show Copyright • Uncheck this box • DNN 9 • UPDATE {databaseOwner}[{objectQualifier}HostSettings] 
 SET SettingValue = ’N' WHERE SettingName = 'Copyright' • Host->Advanced->Smtp Settings • DNN 9 = Settings->Servers->Server Settings->Smtp Settings • Make sure you specify a SMTP Server • Host->Advanced->Performance Settings • DNN 9 = Settings->Servers->Server Settings->Performance Settings • Module Cache -> Memory • Cache Settings -> Heavy • Authenticated Cacheability -> Public
  8. 8. SOLUTIONS CMS SETTINGS • Host->Advanced->CDN • DNN 9 = Settings->Servers->Server Settings->Performance Settings • Enable MS Ajax CDN • EnableTelerik CDN • Use JavaScript libraries CDN • Host->Advanced->Client Resource Management • DNN 9 = Settings->Servers->Server Settings->Performance Settings • If Possible Enable Composite Files and Minify CSS / JS • Must use DNNs Register ScriptTag for this to work!
  9. 9. SOLUTIONS CMS SETTINGS • Host->Advanced->Other Settings • Enable the Event Log Buffer • UPDATE {databaseOwner}[{objectQualifier}HostSettings]
 SET SettingValue = ‘Y’WHERE SettingName = ‘EventLogBuffer’ • Disable the Auto-sync File System • Disable the Module Online Help • Remove any unused extensions • Adjust schedules as needed • EVOQ < 8.3 - Disable schedules for Analytics and comment out the following 2 lines in dnn.analytics.Injected.js • $.ajax(baseServicePath + ‘LogEventData’, options) • $.ajax(baseServicePath + ‘LogPageView’, options)
  10. 10. SOLUTIONS DATABASE CALLS • Find long running database calls • Concentrate on the top 5 • Improve database indexes • On Azure turn on Auto Index • https://www.brentozar.com/blitzindex/ • Use cacheing (Redis, etc.) where possible Tools Used: Glimpse and Azure Database MonitoringTools
  11. 11. SOLUTIONS IMAGE SIZES • Optimize / CompressYour Images • Optimize the dimensions • Tools • Grunt.js (grunt-contrib-image-optimization) • tinypng.com • ImageOptim
  12. 12. SOLUTIONS JAVASCRIPT AND CSS • Minify your JavaScript Files • Minify your CSS Files • You can use the Client Resource Manager but every script must be registered using the ScriptManager for this to work. • <dnn:DnnJsInclude runat="server" FilePath="DNNMega/jquery.dnnmega.debug.js" PathNameAlias="SkinPath" /> • <dnn:DnnCssInclude runat="server" FilePath="DNNMega/dnnmega.css" PathNameAlias="SkinPath" /> • Tools • Grunt.js • https://github.com/mtrutledge/DnnJSMinify • http://www.dnnsoftware.com/wiki/client-resource-management-api
  13. 13. SOLUTIONS RENDER BLOCKING JAVASCRIPT • 3 Ways to Handle • Use inline JavaScript • Declaring a Script as Asynchronous • Deferring a Script • Async • <script async src=“/js/app.js”></script> • Browser starts download and executes as soon as download is finished with no regard to the order of the script tags • Defer • <script defer src=“/js/app.js”></script> • Browser starts download, but holds off executing the script until the HTML has been completely parsed and the DOM tree has been constructed.
  14. 14. WHERE WE ENDED UP
  15. 15. @mtrutledge mrutledge@believegroup.com CONTACT ME www.BelieveKids.com

×