
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: