Improve your DotNetNuke SEO Performance by knowing Long ASP.NET View State Issue in DNN.

Recently Microsoft released its series of IIS administration tools. Finally, there’s a Search Engine Optimization Tool that best analyze ASP.NET website. Who else is better understand the limitation and problems in ASP.NET than itself? Not saying than Asp.net is not good, other framework has their own problems as well and have a lot of analysis tools since long time ago.

I haven’t test it much since it only support IIS7, It means you have to have it running on Vista or Windows Server 2008. What a shame? Anyway, it’s best if you can analyze your DotNetNuke problem before going to a live server especially if you’re on a shared server where you can test anything on the server side.

Most of the DotNetNuke users will have a long view_state problem if there is more than 5 different modules on the same page and probably get the warning message if you run the SEO Toolkit.

While past argument was that Search Engine Crawlers do not read them, it still have a great impact on your DotNetNuke Website Performance because the long view_state of DNN takes an average of 50Kb extra weight for crawler to download the page before indexing it.

If you have more than hundreds of pages with a lot of modules in it, most likely the crawler stomach will be fully filled after going for hundred of pages. There’s a quota of how many pages and the total of bytes to download every time a robot visit your website. Not only that it will affect the speed of indexing, it takes a lot of bandwidth from your server which is a impact if you are putting your DNN in a low cost shared server.

In summary, from my experience, most module developers do not optimize view state of their modules… — Sebastian Leupold, DNN Core Team Member

There are 2 methods to solve this problem and the common one will be moving the view state to the page bottom. This does help little on the page rendering while a page is loaded but it won’t help much in Internet Explorer as it will always load and render the whole page before showing the content to the reader.

Thus, another method is simply store the view state in the memory. You can do that by going to the DNN Host Setting Panel and look for Page State Persistence > Memory. However, doing so will make few core and third parties modules stop working due to the poor managed view state storing. (Most probably the first thing to break is AJAX Modules)

If you’re running DNN 5 and there is not “Page State Persistence” Setting in the Hosting Setting, Weird huh? You can add it back by running the following SQL statement in Host > SQL

Turn it on--
   UPDATE HostSettings SET SettingValue = 'M' WHERE SettingName = 'PageStatePersister'
Turn it off--
   UPDATE HostSettings SET SettingValue = 'P' WHERE SettingName = 'PageStatePersister'
Then click the "Restart Application" link button.

If you wish to know why is it removed since DNN5 and added back, you can dig it from here: Removing DNN 5 Page State Persistence Setting and PageStatePersistence: Setting gone, but functionality remains.

Let’s download the Microsoft SEO Toolkit and give it a try. If you’re wondering how to move the DNN view_state to bottom, you can try Snapsis PageBlaster but moving the view_state to bottom may still affect some modules, be sure to check the capability before going for it.

Trackbacks