Everything we do is a balancing act. When discussing performance issues with Microsoft, they pointed out that moving the viewstate using our code had serious performance impacts. After getting this feedback and researching the issue, we found that most of the advocates for moving viewstate pointed to articles that based their conclusion on the fact that DotNetNuke moved viewstate. This becomes a catch 22. Viewstate should be moved because some SEO guru says you should move viewstate based on the fact that DotNetNuke moves the viewstate.
So, rather than going around in an endless loop, lets try something different. Go to the Host settings page. Scroll down to the Performance Settings and change Page State Persistence from Page to Memory. Now we are left with this dainty little viewstate code at the top of our page:
<input type="hidden" name="__VIEWSTATE_CACHEKEY" id="__VIEWSTATE_CACHEKEY" value="VS_keosrs45tdwuow55zem0hk25_633404779931050000" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />
So now we get a twofer - no viewstate block at the top of the page and we have a much smaller page payload. Our pages load faster and we can stop arguing over unprovable facts about the dark arts of SEO.