To create viewable content you could:
*Convert XAML to XHTML via XSLT* :-)
Using the ASP.Net <asp:Xml> element and specifying an XSL Transformation
that does this translation:
<div id="SLHost">
<asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml"
TransformSource="XAML2XHTML.xslt <http://xmldocs.net/seo/XAML2XHTML.xslt>"
EnableViewState="False"/>
<script type="text/javascript">
createSilverlight();
</script>
</div>
Here is how the content is transformed:
- <Canvas> elements are turned into <div> tags
- <TextElement> elements are turned into <div> tags with the text inside
- <Run> elements are turned into <span> tags
- <Image> elements are turned into <img> tags
- <MediElement> elements are turned into <a href> hyperlinks.
From
http://blogs.msdn.com/synergist/archive/2007/10/03/simple-silverlight-seo-with-asp-net-and-xslt.aspx
.peter.gfader.
http://peitor.blogspot.com/
On Sat, Jan 30, 2010 at 11:32 PM, Asheesh Soni <[email protected]>wrote:
> At the moment, Google doesn't see the content inside a Silverlight app.
> However, you can provide alternate content for SEO.
>
> Any thing that's inside an object tag is rendered by the browser if it was
> unable to load the application that handles that object. If the browser
> knows how to handle the object tag then it ignores the alternate content.
> For example, if you have:
>
> <object data="data:application/x-silverlight-2,"
> type="application/x-silverlight-2">
>
> <param name="source" value="MyBlog.xap" />
>
> <div>
>
> This is my alternate content with SEO keywords and/or a down level
> experience
>
> </div>
> </object>
>
>
> For the above html, if the browser has silverlight plug-in, it'll delegate
> the entire object tag and content to the plug-in. The silverlight app will
> load as expected and the alternate content will not be rendered.
>
> However, if the browser does not have the plug-in (users still living in
> the dark, search engine bots), then the browser will ignore the object tag
> and render what ever is inside the tags (which is your down level experience
> or SEO keywords etc.)
>
> So, if you design a blog engine with a Silverlight web UI, either make sure
> that it renders the alternate content as well, or wait for google/bing/yahoo
> to catch up with the times.
>
> Another challenge with the above approach is deep linking.
> How do you map your # links to actual urls?
> For eg, with silverlight enabled, your links could be:
> Home Page = http://myblog.com
> BlogPost number 3 = http://myblog.com#/View/Blogs/3
> BlogPost number 5 = http://myblog.com#/View/Blogs/5
>
> Notice that the only difference in the above three urls is after the #.
> That is, its the same url myblog.com, but a different position on that
> page (or a different state of your application). If you were to change the
> url before the #, then the browser would consider it another get request and
> re-load that page from scratch.
>
> In asp.net, your urls would have been something like:
> Home Page = http://myblog.com
> BlogPost number 3 = http://myblog.com/View/Blogs?id=3
> BlogPost number 5 = http://myblog.com/View/Blogs?id=5
>
> So basically, you need the following for the above type of mapping to work:
> 1. In your Silverlight app initialization, check the url , query string , #
> link and then render the content based on that.
> 2. In aspx and aspx.cs, for the alternate content, check the url , query
> string , # link and then render the alternate content based on that.
>
> So basically, you'll have various aspx pages as you had before Silverlight
> ruled the world, but all of those pages would be wrapped inside an object
> tag that loads your silverlighapp.xap
>
> A better way would be to use MVC instead of ASP Forms so you could use
> routing instead of physically creating various aspx pages.
>
>
> BTW. there is an issue with the alternate content and search engine
> ranking. The search engine bot that is indexing your alternate content has
> no way to know for sure if the alternate content that you have provided
> matches what your silverlight app has. Malicious websites could have
> alternate content with popular keywords, but the actual silverlight app
> could be "smooth streaming" porn movies or load pics with deep zoom /
> photosynth :)
>
> Therefore, Search engines do not assign too much weightage to alternate
> content. You can overcome that issue by using css based hidden divs and
> using javascript to show one or the other .This solution is better for SEO
> but has its own issues for browsers that do not even have javascript
> enabled. In that case, you can have your content visible by default and then
> hide it if silverlight is enabled. But that will flash the content on the
> screen while the dom is loaded, and then it'll disappear.
>
> The gist of it all is that it can be done, but not without significant
> development effort from your side. I hope that either google/bing/yahoo
> start indexing SL content soon, or Microsoft provides solutions for the
> above issues in the navigation framework.
>
> New SEO optimised Business Application Template for Visual Studio?
>
> My 2 cents
>
> --------------------------------------------------------------------------
>
> Asheesh Soni
> Web Development Team Leader
> Information Technology | Burbank Group of Companies
>
> BURBANK BUSINESS PARK | Aberdeen Road Altona Victoria 3018 Australia
>
>
> On Sat, Jan 30, 2010 at 7:33 PM, Tony Wright <[email protected]> wrote:
>
>> Hi all,
>>
>>
>>
>> How does a search engine see the content of a Silverlight application?
>>
>>
>>
>> My theory is that it doesn’t. I was thinking about finding a
>> Silverlight-based blog engine, but there’d be no point if google can’t see
>> the content!
>>
>>
>>
>> Regards,
>>
>> Tony
>>
>> _______________________________________________
>> ozsilverlight mailing list
>> [email protected]
>> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
>>
>>
>
> _______________________________________________
> ozsilverlight mailing list
> [email protected]
> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
>
>
_______________________________________________
ozsilverlight mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight