views:

39

answers:

1

Well, to start with, I'm a novice ASP.Net/C# programmer, and had an experience only of a couple of projects during college and a couple of freelancing projects when I was recruited by a startup company to build their ASP.Net based website. I've just abut completed the website, and now since the company is not able to find a worthy enough SEO, I'm expected to do our site's SEO as well(which is a totally new experience for me). Did I mention that I'm the only Web Developer here?

So, now as you'd expect a novice programmer having no concern for future SEO needs, I built up the site without giving due consideration to any of the SEO enhancement techniques.

The Problems:

  • ViewState - When is it required? Is it really required if I'm not creating any controls on the fly? I'm using DataControls though. And the website(the pages visible to the user not the CMS), is purely information based. Also, if I disable a control(ex: DataList)'s viewstate, will the viewstate of controls inside it also get disabled?(which is what I'd like actually)

  • QueryStrings - Now comes the toughest part, I've used Query Strings to the extent that you can say that the website is QueryString driven, which unfortunately enough is not a good thing for SEO. To make matters worse, the QueryStrings for some pages are not uniform. For ex- In some cases the querystring may have variables A, B, and C, while in other cases it can have variables M, B, C and probably not all the three variables in some cases. Now, I know that I'd have to do url rewriting but these query strings have dynamic data fetched from the database tables of size more than 10,000 rows. So would I have to create functions for url rewriting and use regex to separate wheat from whaff?

All help is deeply Appreciated.

Regards Anchit

A: 

The classic issue is not being able to get to all the pages through simple links/GET.

The issue with the above is any postback, as those happen through a post (which in some cases is started through javascript).

I haven't had issues people mention about the Query String and SEO. But maybe its just that I tend to have fewer uniform query string parameters.

eglasius
Anchit
@Anchit you don't need search engine to spider through all your filter combinations. Precisely since those are just alternate views of the same list of products / which all have link to the corresponding detail pages. In a scenario where you do need the search engine to follow it, unobstrusive javascript solves that / even best, make the non js alternative a simple link list instead of a form with GET. I know I'm in a minority using unobstrusive javascript, but the issue is certainly not ViewState vs. SEO, is using forms or ajax vs. simple links on a simple interface.
eglasius
@eglasius actually sir, while reffering to SEO in the case of viewstate, I guess I haven't been clear. The issue of Viewstate vs SEO on my level is just that the Hidden Viewstate variable in the HTML page increases the page size by manifolds if not taken care of. Also, it dramatically increases the HTML content thus reducing the keyword density in the page. So my simple question is in what scenarios can I turn the Viewstate on or off.
Anchit
@Anchit " in what scenarios can I turn the Viewstate on or off" is such a different question that I strongly suggest you post a new one so it gets the right attention from the overall stackoverflow community (if with a search you see that it hasn't been asked before). That said, You can turn it off all around If you take care of always binding the all the values required for the page and don't depend on what's sent trough it in PostBacks. Do test it throughly, since you might be using it without realizing that's how certain things were working.
eglasius
Just one little question sir: If I turn the viewstate of a Datalist off(which I want to do since I'm databinding it through markup), do I have to turn off the viewstates of the controls inside it's template or do their viewstate automatically get turned off?
Anchit
Turning the viewstate off for the parent control, does it for the children controls. Just like turning the viewstate for the whole page, means its off for all the controls it contains. The viewstate follows the same hierarchy of the controls, so the children control's viewstate is added to their parent control's viewstate.
eglasius