Web Application Development with Microsoft Technologies

.NET Technologies Gadgets, Entrepeneour, Experiences and more

Web Application Development with Microsoft Technologies header image 2

Is Silverlight SEO Friendly ?

September 1st, 2007 · 1 Comment

At the end, it is not.

(If you don’t you know what SEO or Silverlight is, then visit my Tech Snacks Corner to read about it first)

Basically, SEO is the process and techniques to achieve Optimization for Search Engines, that you would need to follow or have in mind when building public web sites where content is a key factor.

For example, if you are coding a Product Catalog Web Site for a customer who sells programming books, then he would be more than interested in appearing in Google’s first results when a user searches for “AJAX.NET Book”. If he appears in page 102 of Google Results, then his online shopping mall won’t receive any visits and then, no sells will be made, which is bad.

There are several (meaning hundreds) of techniques that will help your customer site to rank better for certain keywords (such as “AJAX.NET Books”). I could write an entire Blog about them (Actually that is what I am planning to do, because I love the SEO subject), but for now, let’s focus just in the key factors a developer should have in mind when coding a public website like this.

At high level, Google uses spiders to crawl the web and build its database of content - keywords - PR - urls. These spiders reaches the main page content, perform a GET, parse the HTML they get, store the content and follow each link you have in your website to find more data to crawl. Then the data is analyzed and relevance is assigned using pigeons , in order to return the more relevant results for a given set of keywords.

If you think about it, then the key for you is to be sure Google Bot (or any other Search Engine Bot like Yahoo! or MSN) is able to access your HTML content in order to parse it.

You can always get an idea of what the Bot is going to read when doing a “View Source” in your web page.

But if you are bulding an entire site with Silverlight, then the generated HTML for your main page would be as poor as this one (this is just an example):

<html><head>
<html>
 <head>
  <script type="text/javascript" src="Silverlight.js" mce_src="Silverlight.js"></script>
  <script type="text/javascript" src="Default.html.js" mce_src="Default.html.js"></script>
<body><table id="maintable" align="center">
  <tr align="center">
  <td align="center" valign="middle">
  <div id="SilverlightControlHost" class="silverlightHost">
  <script type="text/javascript">
  createSilverlight();

As you can see, there is almost no content ! Well, let’s be positive and imagine that Bots learn how to read the generated HTML with Silverlight, and they can find your XAML file and JS files.  They will get just a bunch of XAML control definitions, and JS. And guess what? No content ! Because content will be embedded in DLLs and JS files, and media will be encoded and served from the Server.So, your customer website will be almost invisible to Search Engines. And he will be earning like $0 if he don’t spend more money in other promotion campaigns such as PPC Advertisement one. Is he going to be happy? I don’t think so.
So, what can be done? Well, this issue is similar to the one you will find in a website totally developed with Flash (That is why I avoid using Flash in my websites). Spiders cannot read Flash either ! But there are some

Workarounds to this big SEO & Silverlight issue:

I will list just a couple of them:

Have another version of your site being returned  when a Bot visits your site

You can dynamically generate another version of your site with HTML or DHTML content when Bots visits your site. How to do this ? You can apply some XSL Transformation to your data (assuming you are getting your products data from Database in some XML format), and render an optimized version of your website with no Silverlight content, having images with a proper “Alt” tag set, and well defined H1 and H2 tags for your products titles (Search Engines loves to read H1 and H2 tags to sort and assign relevance to your content). When the regular user visit your site because he found the url in the Search Results List for “AJAX.NET Book”, then you render your Rich User Interface version of your site, with Silverlight content.

Of course this Solution involves a LOT of time and thinking, and if not doing it well, you can also be penalized by Search Engines if they think you are serving a copy of another website (this technique is called “Cloaking”).

Minimize your Silverlight content and embed it in an Optimized ASP.NET Page.

You can put your content and good titles in an ASP.NET page, have your h1 and h2 tags in place, text with descriptions, and enhance the User Experience with the use of some AJAX and Minimized Silverlight Content. In order to embed the Silverlight content you can use the Xaml control to be released in new Visual Studio Orcas.

This approach is less costly, and will definitely help you rank better in Search Engines !

I’ll be writing a lot about SEO in future posts. If you found it interesting, don’t forget to Subscribe to my RSS Reader. !

I’m adding content to this Blog every week.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists

Tags: SEO · Silverlight

1 response so far ↓

  • 1 Shamim // Nov 27, 2007 at 5:43 pm

    Have another version of your site being returned when a Bot visits your site - This technique is classified as Cloaking by Google (as you said) and might get your site blacklisted or worse, de-indexed. Although well intentioned I would suggest the standard methods for seo benefits - build reverse links, publish relevant content and submitting to directories.

Leave a Comment