My understanding of the way google works is that they exclude content where the style is hidden, or where the foreground and background colour is the same, so as to prevent people from attempting to improve their ranking by adding lots of unrelated invisible content.
I think Ashesh might be on the right track when it comes to putting content within the object tag - perhaps the extension of this is to use the strategy you've provided with the asp.net xml server side tag within the object tag. Then it would potentially work for both user bases - but only if I don't have to code different pages and can use the original xaml files, otherwise it's just too hard. T. From: [email protected] [mailto:[email protected]] On Behalf Of Peter Gfader Sent: Sunday, 31 January 2010 5:24 PM To: ozSilverlight Subject: Re: Viewable content for search engines... 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-wi th-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
