ASP.NET SEO

Listen to the Show

Listen to the Show!

Michael Neel joins us today to discuss search engine optimization specifically for ASP.NET websites. Michael C. Neel is a Digital Media Developer with Jewelry Television and independent consultant with ViNull Software. He is a board member and Vice President of the East Tennessee .Net Users Group (ETNUG) in his home town of Knoxville, TN. Michael has been published in asp.netPro magazine and continues to publish .NET focused articles on his blog (http://ViNull.com/) and at Devlicio.us with other community developers. An ASPInsider, Microsoft MVP, regular speaker at .Net conferences and user groups Michael has traveled to most of the states surrounding Tennessee and organizes CodeStock (http://CodeStock.org/).


SEO: What Matters?

Conventional wisdom states that HTML markup must be clean, and strict rules must be adhered to in order to have success with search engines. Michael suggests that these positions held by SEO “experts” may not be as accurate as some may think.

If the content is there…

Michael’s view is that if the content is found in key areas of the page, instances of inline styles and “extra” HTML do not seem to have a significant effect on search engine indexing.

The Drivers

The factors of a website that do drive SEO rankings are the URL, Title, contents of the h1 tag and the text content on the page. Dividends are awarded to consistency among the keywords among these factors. For instance if your title and h1 match and many of the keywords are found in the URL, then search engines will place your site at a higher favor.

Nice Guys Finish First

Meta-tags and meta-descriptions were the keys of the days of old in search engine placement, but now due to rampant abuse, search engines tend to lower the influence of these tags.

Be careful how to craft your site. If the search engines think you are trying to cheat the system your site may be de-valued or even de-listed. As your site proves to the search-bots that you can be trusted, then your site is more easily able to benefits from the SEO placement formulas.

Crafting Content

Often SEO placement is a simple function of how well you write your content. If you write headlines and other SEO relevant elements based off of what people search for, your site will easily gravitate to viewers. For instance, Michael’s most popular blog post is title Adding a Total to a GridView. A post with such a succinct title is bound to get heavier traffic than posts titled like You'll have my SQL when you pry my keyboard from my cold dead hands.

When ASP.NET is Invisible to Google

Some ASP.NET websites have suffered from invisibility to Google. At first the cause is not apparent, but with some digging the culprit was often bug in ASP.NET 2.0 runtime (which is resolved in .NET 3.5 SP1).

When requests come in the ASP.NET pipeline, the rendering engine will choose a text writer that is appropriate for what seems like is the correct browser level. The HTML32TextWriter class will target an HTML3 level browser – so you will never see the result of this rendering in contemporary UI client. (Even pages viewed with the Lynx web browser receive a HTML level 4 rendering)

Calling the HttpContext.RewritePath method would throw an exception resulting in a 500 error. Virtually the only time the site would encounter this problem was when the search engine bots attempted to crawl and index the site since the user agent of the spider would trigger a low-level text writer version.

Note: Setup ASP.NET health monitoring to let you know when errors happen on your site.

Is My Site at Risk?

The simple way to know is to search for your site. If your website appears in a search result – then you are not suffering from this problem.

Since this is a problem you will never see first-hand using modern browsers you need you will only know about the problem if you notice your site not appearing in search engine results or you tool your website to report all exceptions via ASP.NET health monitoring or some other exception management solution.

What’s the Fix?

There a number of ways to shield your website against this error:

  • Enforce Cookies to bypass the need for doing RewritePath
  • Create Browser Files and up-version the Google bot to a higher browser version

SiteMaps for Better Rankings

Use ASP.NET site maps to help guide search engines to the content in your website

What you want to try to avoid is creating different URLs that result in the same content. This practice may flag the search engine that you are trying to cheat the system.

For instance a URL pointing to the services page of a site may look like this

http://site.com/services/default.aspx?s=seo

...and also like this...

http://site.com/services/?s=seo

...but maintaining both of these URLs will reduce your SEO potency. Building sitemaps can help you alleviate these types of problems by keeping your URLs consistent.

Sitemap Protocol

The sitemap protocol is an open standard method for describing and directing search engines around your website.

The protocol includes a number of meta-data elements that give you control over how your website is indexed:

  • Location : The URL to the pages in your site
  • Priority Weight: A relative priority in the context of the entire site. For example you may weight blog post pages a higher priority over the blog homepage in the event of an indexing conflict.
  • Change Frequency: Indicates to the search engines how often to return to pages for re-indexing
  • Lastmod: Date of last change

Some say that a well-structured website won’t need a site map, but there is a lot of value in the meta-data giving site owners power over how the crawlers will interpret the website.

Resources


Congratulations

Congratulations to our distinguished guest Michael Neel, Jess Chadwick and Grant Hinkson for joining the Microsoft MVP program!

Upcoming Engagments

If you would like to catch up in person I am speaking at the following:

Comments

# re: ASP.NET SEO

Tuesday, December 2, 2008 1:54 PM by Peter

Awesome, thank you!

# re: ASP.NET SEO

Friday, June 11, 2010 7:19 AM by Nitin Sawant

Cool! Thanks a lot