Silverlight SEO优化

简介: Silverlight SEO优化SEO优化 2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Silverlight应用程序进行搜索 引擎优化一些最佳实践。

Silverlight SEO优化

SEO优化


2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Silverlight应用程序进行搜索 引擎优化一些最佳实践。这些实践知识可以帮助开发人员将他们开发的基于Silverlight的内容能够出现在搜索引擎的页面上,并对那些没有启用或者没 有安装Silverlight插件的用户也能够提供一种让人接受的访问体验。

搜索引擎识别的是HTML内容,并不能识别Silverlight内容,这与不能识别HTML中的其他对象,如脚本块、CSS块、多媒体文件以及 ActiveX控件类似。要想让Silverlight的内容被搜索引擎索引到,就必须使用一些搜索引擎可以搜索到的方法,比如将Silverlight 内容与HTML元数据结合在一起。

搜索引擎优化的目的是增加你的页面出现在搜索引擎页面重要部位(注意不是指付费或者赞助商位置)的机会。搜索引擎在网络上爬行,抓取内容,按照一定 的算法对页面内容进行加权,最终的结果用来创建索引,然后根据查询的关键字产生结果页面。网页在搜索结果中靠前的主要原因是页面中的文字与搜索的关键字匹 配。所以,动态和不标准的元素,如脚本、样式表、object和embed标签就很难被搜索引擎搜索到,搜索引擎通常会采用下面的方法进行处理:


对于Silverlight程序来说,要被搜索引擎搜索到,可以采取下面的方法设计你的Silverlight:

1.将Silverlight内容与HTML混合在一起:

这种方法的做法就是在同一页面中将Silverlight内容与HTML文字混合字在一起,这样,就能实现丰富的客户端功能和被搜索引起使用的HTML内容。使用这种方法,就需要将SIlverlight内容放在文字块的内部或者周围。

2.使用HTML桥动态产生Silverlight内容

这种方法实现起来稍微困难一些,并且也会对Silverlight的感受有所限制。XHML内容被定义成object标签嵌套的替代内 容,Silverlight的内容是通过这些替代内容呈现的。换句话说,Silverlight程序使用DOM Bridge通过object标签得到嵌套的替代内容,然后用它来构建Silverlight的UI界面。

3.使用描述性的页面标题

给页面设置一个好的标题。Visual Studio 和 Expression Blend工程模板产生的页面标题需要网页设计人员进行更改,填上一个切合网页内容的标题。

4.添加描述性的元数据

页面中meta标签中的keywords对搜索引擎来说并不是十分有用,而页面标题和名为description的meta标签对搜索者在搜索结果中查看与他们要找的内容是很有用的。如果你的Silveight程序占据了整个浏览器,那就需要一个meta标签:

 

如果你的页面有很多文字内容,并且包含了相应的关键字,你就可以省去这个description的meta标签搜索引擎将会搜索结果中显示部分页面内容,保留description的meta标签有时候会起反作用。

5.使用有意义的程序名

给你的程序起个有意义的名称有助于搜索引擎发现你的页面。

6.使用object标签

HTML中的object标签,如果主要内容不能加载显示出内容,则浏览器就会查找object标签内的替代内容。Sliverlight内容必须通过object标签(不能是embed)来进行实例化。下面的代码显示出可以添加的object标签:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
 
  
< object type ="application/x-silverlight-2"
data
="data:application/x-silverlight,"
width
="..." height ="..." >
< param name ="source" value ="SeattleTrafficMaps.xap" />
<!-- 其他参数 -->
...
<!-- “下载 Silverlight 插件提示信息” -->
< p > This content requires Microsoft Silverlight.
< a href ="http://go.microsoft.com/fwlink/?LinkID=124807"
style
="text-decoration: none;" >

< img src ="http://go.microsoft.com/fwlink/?LinkId=108181"
alt
="Get Microsoft Silverlight"
style
="border-style: none" />
</ a >
</ p >
</ object >

 

 

 

7.指定替代内容

Sliverlight程序使用的object标签必须使用嵌套的替代内容进行补充,也就是内部的HTML。例如:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
 
  
< object type ="application/x-silverlight-2"
data
="data:application/x-silverlight,"
width
="..." height ="..." >
< param name ="source" value ="SeattleTrafficMaps.xap" />
<!-- 其他参数 -->
...
<!-- 嵌套的供搜索用的替代HTML内容 -->
< h3 > 交通导航 </ h3 >

< p > 交通导航由 < a href ="http://maps.live.com" > Live Maps </ a > 提供技术支持。 </ p >

<!-- 预先制作的Silverlight程序内容图片 -->
< img src ="SeattleTraffic_RushHour.jpg"
alt
="Seattle traffic at 5:30pm (evening rush-hour)" />

<!-- 插件下载提示 -->
< p > This content requires Microsoft Silverlight.
< a href ="http://go.microsoft.com/fwlink/?LinkID=124807"
style
="text-decoration: none;" >
< img src ="http://go.microsoft.com/fwlink/?LinkId=108181"
alt
="Get Microsoft Silverlight"
style
="border-style: none" />
</ a >
</ p >
</ object >

 

 

 

8.当使用Silverlight.js时,请用createObject方法

Silverlight.js是提供一种跨浏览器、跨平台构建正确的标记显示Silverlight内容的方法。一般在外面需要一个带有id的div或者span标记,Silverlight的object标记作为子元素存放,例如:

 

 
   
if (slParentElement != null ) {
slParentElement.innerHTML
= slPluginHTML;
}

 


 

浏览器执行后,实际产生的DOM结果将会是下面的样子:
img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
 
    
< div id ="divWithinWhichSLObjectExists" >
< object type ="application/x-silverlight-2"
data
="data:application/x-silverlight,"
width
="..." height ="..." >
< param name ="source" value ="SeattleTrafficMaps.xap" />
<!-- 其他参数 -->
...
<!-- 插件下载信息 -->
< p > This content requires Microsoft Silverlight.
< a href ="http://go.microsoft.com/fwlink/?LinkID=124807"
style
="text-decoration: none;" >
< img src ="http://go.microsoft.com/fwlink/?LinkId=108181"
alt
="Get Microsoft Silverlight"
style
="border-style: none" />
</ a >
</ p >
</ object >
</ div >

 


当然,也可以使用父div元素里面添加详细的替代内容,这些替代内容浏览器是不显示的:
img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
 
    
< div id ="divWithinWhichSLObjectExists" >
<!-- 嵌套的供搜索用的替代HTML内容 -->
< div >
< h3 > 交通导航图 </ h3 >

< p > 交通导航由 < a href ="http://maps.live.com" > Live Maps </ a > 提供技术支持。 </ p >
<!-- 预先制作的Silverlight程序内容图片 -->
< img src ="SeattleTraffic_RushHour.jpg"
alt
="Seattle traffic at 5:30pm (evening rush-hour)" />
</ div >

<!-- Silverlight.js 中 createObject 函数的调用 -->
< script type ="text/javascript" >
Silverlight.createObject(
" slObjectId " , // SL plug-in id
" divWithinWhichSLObjectExists " , // parent id
...);
</ script >
</ div >

 


如何检验你的效果?

你可以关闭所有的浏览器窗口,然后打开一个新窗口,在管理加载项里面禁用Microsoft Silverlight,然后打开你的Silverlight程序页面进行测试最后的效果。也可以使用页面的静态分析工具,如http://seo- browser.com/,看一下你的标记和内容对搜索引擎优化的影响。



(文本为孟宪会前辈所著)
【孟子E章】
对Silverlight应用程序进行搜索引擎优化(SEO)
http://blog.csdn.net/net_lover/archive/2008/11/13/3294391.aspx
相关文章
|
缓存 Windows
一起谈.NET技术,Silverlight发布时的优化工作(下)
  相关文章:Silverlight发布时的优化工作(上)   一、 项目资源优化   资源在silverlight中存在形式:   Resource —— 资源会被打包在程序集内部   Content——资源会被打包在Xap包里面   None——资源既不会被集成到程序集内,也不会打包到xap包中。
896 0
|
Web App开发 缓存 UED
一起谈.NET技术,Silverlight程序集缓存巧妙设置 优化用户体验
  Silverlight中的程序集缓存可以将一些独立的程序集放在XAP包外边并可以缓存在客户端的浏览器中,这样就可以减少程序启动时下载XAP包的时间。默认情况下Silverlight并没有开启程序集缓存,因此需要自己动手开启。
1094 0
|
前端开发 API 定位技术
ArcGIS API for Silverlight 鼠标移入移出地图要素弹出窗口(优化处理)
     在之前博客里的ArcGIS API for Silverlight 弹出框实例中,是通过点击地图要素,弹出框,但是由于没有控制元素个数,只是通过显示隐藏来进行的话,在鼠标移入和移出操作中,会出现鼠标移入的时候,总不能立刻弹出框,而是需要多次才行,用户体验较差,现在通过控制加入一个弹出框,移出时去除刚加入的弹出框,严格控制弹出框个数来实现。
971 0
|
JavaScript 前端开发 搜索推荐
Silverlight:分包下载及SEO优化方案
一、按模块分包 一般大型的Silverlight应用,都会按模块分解成多个silverlight project,编译后就有多个xap包,然后在需要用到的场景按需加载。我近期开发的这个项目不需要全站Silverlight,而是aspx混合silverlight,说得更白点,就是把相应的子模块xap包嵌入aspx. 这样分包就简单多了:直接用js控制dom元素,修改object元素中的source,动态设置成不同的xap即可实现无刷新的加载不同模块。
691 0
|
缓存
Silverlight体积优化
Silverlight体积优化Silverlight是运行在客户端的富媒体应用程序,他可以使表现形式更加的丰富多彩,相应的开发人员需要写大量的XAML、代买添加很多图片以及一些其他的资源文件。这就直接导致了应用程序体积的增大。
802 0
|
JavaScript 前端开发 UED
Silverlight用户体验优化
Silverlight用户体验优化  在发布Silverlight应用后有一个需要考虑的重要问题是:假如访客没有安装Silverlight,你就需要提供无缝的Silverlight安装体验,使用户体验中从头到尾都完美地融为一体。
873 0

热门文章

最新文章