One of the more interesting questions that has emerged recently in the world of SEO is the mystery of the Viewstate variable. This handy little invention of Microsoft’s twisted mind allows form users to recapture data they had previously typed in a form in the event that they hit the back button after already submitting the form. It’s another way to get the functionality of session IDs (another search engine headache..lol). If you want to know more about the what the Viewstate variable is and why it is used, check out the Wiki article about it or this article. But the price you pay for this nice little feature can be large, literally. Many Viewstate variables can grow to be HUGE, some of which over 100K. And that has prompted many SEO professionals to become concerned about its potential effect on SEO. But will it really have any affect on your search listings?
There are really two main issues at the heart of potential SEO problems for the Viewstate variable:
1) The size of the variable can prevent the search engines from indexing some or all of the page.
2) The size of the variable pushes content down on the page, which makes it less important in the eyes of the search engine.
Let’s look at each of these issues a little more closely to really understand the concerns.
The first issue really stems from Google’s old “Best Practices” in which they used to recommend that Web masters make Web pages less than 100k because that is all they indexed for any given page. Thanks to technology advances, Google now indexes more than 100k. I have seen up pages of more than 500K indexed in Google and I am sure they do much more than that nowadays. Yahoo also has a the ability to index much more than 100k. So from that perspective, it is unlikely (although still theoretically possible) that you Viewstate variable will prevent search engine crawlers from indexing your content because of a file size issue.
The second issue is a little more problematic to draw a conclusion from. The thing is, although many SEO professionals including Rand Fishkin and Bruce Clay (scroll down half the page and read Bruce’s advice on Tables which has a direct correlation to this issue) subscribe to the theory that keyword prominence is important to SEO rankings, it is not clear if the engine would view the Viewstate variable as being equivalent to text and / or whether or not the search engines would view the prominence of the content any differently if it was preceded by the Viewstate variable. In other words, it may just ignore it, in which case the page content is pretty much equivalent with or without the variable as far as the search engines are concerned. And from a logical point of view, it makes a certain amount of sense. However, when it comes to Google and SEO in general, assumptions based on logic don’t always pay the bills…lol.
My philosophy about SEO has always been to eliminate as many unknown variables in the process as possible. And while I may have convinced a few people based on these observations that the Viewstate variable has no effect on SEO, it is virtually impossible to set up a controlled test to determine the effect absolutely. And so, because the potential for issues exists, my opinion is, don’t leave it to chance. Or in this case, don’t leave it to Google to decide if the Viewstate variable harms your search rankings. There are also some reports of problems with implementing Viewstate variables as it pertains to SEO (**note in this thread, Joe Brinkman of DotNetNuke proposes another possible solution). The other point I would make in justifying a change to the Viewstate variable to make it more SEO friendly (as well as PPC friendly) is that with big sites, this variable can have an affect on your load time and overall site performance. So it bears looking at even if you decide not to change it, to at least optimize the variables it stores.
So now that we have determined that we are concerned about the SEO effect that the Viewstate variable might have based on its default implementation, what can we do about it? We have four options:
1) Get rid of it (in other words, turn the Viewstate variable off).
3) Make it smaller. You can use Viewstate decoder software to understand what variables are being passed and then eliminate the unnecessary ones. This can be very effective as the default setting for Viewstate is often times more than necessary.
4) If you are really technical, Peter Bromberg explains how you can move Viewstate to the server. ** Special disclaimer, I have never tried this personally but based on Peter’s credentials and the content of his article, I believe this would be a good solution.
In the world of SEO where there are over 100 variables (according to Google) that can affect rankings, its always a good idea to eliminate as many potential problems as possible. It’s also a good idea to not only optimize your site for rankings, but for users as well. And that means having as short of load times as possible. And with that in mind, I recommend using one of the four solutions presented here to make sure that the Viewstate variable is causing you problems you can’t see.