2024年1月5日发(作者:)
作者:
Ashish Shetty
基于Silverlight应用程序的搜索引擎优化(SEO. Search Engine Optimization)
2009年7月29日
7 0
摘要
本文档介绍了一些基于Silverlight应用程序进行搜索引擎优化的技巧。这些技巧可以帮助开发人员,使他们编写的Silverlight内容更容易在搜索引擎的结果页中得到显示,并为不能安装及使用Silverlight应用的用户提供了一些恰当的体验方式。
这份文档将包括以下章节:
介绍
搜索引擎的工作原理
开发Silverlight应用的方式
Silverlight应用程序的搜索引擎优化技术
结语
介绍
搜索引擎一般是专门针对HTML内容来抓取信息的。因此,搜索引擎并不能自然的识别Silverlight的内容。这与搜索引擎不能识别某些通过HTML页面呈现的对象的现象很类似,这些对象包括脚本(script blocks)、样式表(CSS blocks)、媒体文件和 ActiveX控件。你可以使用一些搜索引擎目前已经支持的方法来为Silverlight应用程序的内容建立索引,例如可以将孤立的Silverlight信息同与其内容相关的HTML元数据(Metadata)相结合。.
SEO的目的就是为了增加页面在搜索引擎的主要结果页(图中被红色矩形框标注的部分)中的显示机会,而不是为了显示在广告位或是赞助商的结果页。.
图 1 – 搜索引擎主要结果页
因为不断加入的竞争者的改进与革新,搜索引擎技术的前景正发生着迅速的变化,但是,在进行SEO时,所依赖的搜索引擎算法中的一些基本原理是很相似的。
搜索引擎工作原理
搜索引擎可以对Web页面的内容进行抓取、评估与建立索引。抓取的过程由搜索引擎网际爬虫(robot)来实现,他们沿着网站的链接捕获网页内容。搜索引擎使用一些算法来评估WEB页面的价值。在这些过程中产生的信息被用于建立索引, 也就是建立一个符合用户查询条件的结果页。
影响Web页面在搜索引擎的结果页中排位的一个重要因素是:用户在搜索时所使用的关键字是否与页面内容高度匹配。动态页面与非标准的HTML元素——诸如页面中使用的脚本、样式表、对象以及Embed标签,对于搜素引擎建立索引来说都是一个挑战, 这也是恰恰搜索引擎一贯没有完善的领域。
在这种情况下, 搜索引擎需要做以下工作:
下载链接内容并与相应的原页面关联.
分析、转换、执行或是渲染元素来获得与用户浏览页面时相同的体验
图2-搜索引擎原理示意图
开发Silverlight应用的方式
如果你正准备构建一个Silverlight应用,你可以做一些准备工作来确保你的应用会被搜索引擎发现并收录。
以下就是一些可以使你的应用可以与HTML的内容共存的措施:
揉合HTML与Silverlight的内容
将同一页面的Silverlight内容与HTML文本相混合.,使得对用户而言页面的表达功能更为丰富,并且搜索引擎也将收录原生的HTML内容。为此,应该注意以恰当的内嵌或是环绕的方式来设计Silverlight的内容。这看起来像是一个交互组件围绕着HTML文本的网格。Silverlight支持真正的文本索引,这比将文本隐藏在页面中来为搜索引擎服务更具有优势。
图 3 – Silverlight交互环绕HTML文本
使用HTML桥动态生成Silverlight内容
这个方法略微难以实现,并限制了Silverlight应用程序的用户体验。 如果你拥有现成的XHTML内容,而且希望使用Silverlight来提高用户体验,那么通过这个方法可以满足你的需求。在这个方案中,XHTML的内容供网络爬虫(search robots)与低端(down-level)客户端使用, 而Silverlight内容仅供客户端平台允许运行Silverlight应用的用户进行体验。
在这个方案中,XHTML内容可以实现高保真用户体验。他还可以作为公开嵌套的预置内容,内嵌在Silverlight插件的object标签中。区分一个模式是否能够弱化故障的重要属性是,在这个模式中,Silverlight程序的用户界面(UI)是否被预置的内嵌内容所驱动。换句话说,程序的逻辑会使用DOM桥来取得object标签预置的内嵌内容,并使用它来构建Silverlight的用户界面。 使用XSLT转换XHTML到XAML将会变得更为简单,或者可以使用数据绑定,将XAML的UI属性绑定到object标签中,并在页面呈现出来。
故障弱化
在这份文档中,主要关注如何通过弱化故障来达到搜索引擎优化的目的。在这样的环境中,Silverlight内容是主要的用户体验,而嵌套在object标签上的预置内容作为低端的用户体验。
Silverlight应用程序的搜索引擎优化技巧
影响Silverlight内容被搜索引擎索引的关键因素是,存在一个处理用户无法安装或使用Silverlight的方法,其中包含如下内用容:
对于使用不支持Silverlight应用的系统或浏览器的用户(如Opera与Windows 98),网页是如何向他们呈现Silverlight内容的?
对于使用无障碍程序的用户(例如屏幕阅读器与解说器),网页是如何向他们呈现Silverlight内容?
对于使用文本浏览器的用户(如不支持脚本语言的Lynx),网页是如何向他们呈现Silverlight内容?
呈现相关的元数据(Metadata)或是预置的内容可以使Silverlight内容对低端的用户表现的更为友好,这种友好性对于搜索引擎也同样适用。
当创建Silverlight应用时,不要假设所有的用户都已经安装了Silverlight应用程序或是他们的配置都允许Silverlight的安装。你应该对如何向你的用户描述这个应用做好准备。
了解你的用户习惯.
为向他们描述这个应用做出详尽的计划
确定关键字,以便关联潜在用户的搜索.
在页面标题、页面头部节点、body内容、预置内容中所使用的关键词,在搜索引擎的查找与收录以及用户搜索的环节中都扮演着重要的角色。
利用以下技术您可以优化搜索引擎的索引结果,并提高用户体验
使用描述性的页面标题
添加描述性的元数据(Metadata)
使用有意义的应用名称
使用object标签
指定Silverlight应用的预置内容
使用文件时调用createObject方法
测试低端配置的用户体验
使用描述性的页面标题
给页面一个恰当的标题。Web页面的作者必须更改通过Visual Studio 的Silverlight工程模板或是Expression
Blend中默认的页面标记。为了有更好的论述效果,我们假设你有一个Silverlight应用,提供西雅图地区的交通地图,下图展示了一个系统默认的页面标题和良好的页面标题。
图 4 – 糟糕的页面标题与恰当的页面标题
添加描述性元数据(Metadata)
虽然页面的关键词meta标签对于搜索引擎评定页面的rank值并不是很有效果,但是,一个页面的标题与meta描述标签(属性名为“description”的meta标签),对于使用搜索引擎的用户能够成功的检索到他们想要查询的信息,起到了非常大的帮助。
如果你有一个顶级(top-level)的Silverlight应用,占用了客户端浏览器的整个显示区域,或者是依靠该Silverlight程序才能登录到系统中,这时候你必须在HTML页面中增加一个描述(description)元数据标签。如下代码展示了描述(description)元数据标签的格式
content="Microsoft portal site for the Silverlight " >
...
如果你的页面中有大量的文本内容,其中包括了相关的关键字,此时你可以忽略元数据描述。搜索引擎会在结果页中显示从你网站摘录的一部分内容,但是任何冗余的描述都不会对你的网站产生预期的效果。
下图展示了一个包含描述信息的搜索结果页面的例子,以及当描述(description)元数据标签未定义时,搜索引擎将会如何展示他。
图 5 – 包含或未包含描述(description)元数据标签时,搜索引擎结构页的展示情况
使用有意义的应用名称
给程序赋予一个实用的名字是另一个帮助搜索引擎找到你的Web页面的途径。如:一个应用程序提供了关于西雅图地区的交通地区的功能。那么他可以被命名为.
即使你在应用程序构建中已经使用了一个不同的名字,修改这个名字也是很方便的。举个例子:将命名为。当你没有在其他代码中引用这个程序名,那么修改他是一个很简单的操作。在默认的情况下,Silverlight程序模板并未对应用名称有任何依赖
使用Object标签
HTML中的object标签被赋予如下定义,当主object不能被加载以显示出来时,客户端浏览器将会继续寻找在object标签中定义的替换内容
Silverlight内容的发布者必须使用object标签(而不是embed标签)来初始化Silverlight。下面的代码展示了如何加入object标签
指定Silverlight应用的预置内容
Silverlight应用的object标签必须嵌入预置内容,也就是说当Silverlight不能正常工作时,预置内容应该能够显示在系统上。这被称之为内置HTML(inner HTML)。下面的代码展示了如何做到这点:
Up-to-the-minute traffic situation overlaid on the map of
the Seattle-Puget Sound area, powered by
alt="Seattle traffic at 5:30pm (evening rush-hour)" />
This content requires Microsoft Silverlight.
style="text-decoration: none;"> alt="Get Microsoft Silverlight" style="border-style: none"/>
使用文件时调用createObject方法
的主函数提供跨平台、跨浏览器的功能,这意味着必须构建正确的标记,将Silverlight的内容挂接到HTML 文档对象模型(DOM)上。通常,这涉及了不同浏览器使用正确的参数来生成生成object标签的方式,在此,createObject函数需要一个父元素的ID,例如div或是span,而Silverlight对象将作为子元素与之相挂接。这个方法的逻辑如下:
if (slParentElement != null) {
TML = slPluginHTML;
}
假设你的标记为以下代码:
那么当浏览器运行时,生成的有效页面对象模型为如下代码:
这会产生如下对我们有帮助的效果:
替换父div中内联HTML会导致所有已存在于该div下的子元素被删除。
搜索引擎会在所有脚本执行或是改变DOM结构之前会对标记地进行分析与索引
换句话说,你可以添加详尽的有关联的元数据(metadata)作为内联HTLM镶嵌在Silverlight对象的父级div元素中。搜索引擎会去处理metadata中的数据,但是metadata不会显示在浏览器中。
如果你的父级div标签已经嵌套了相关的内容,那么网络爬虫会看到下面的相关内容
Traffic map of the Seattle-Puget Sound area
Up-to-the-minute traffic situation overlaid on the map of
the Seattle-Puget Sound area, powered by
alt="Seattle traffic at 5:30pm (evening rush-hour)" />
测试低端配置的用户体验
不管页面中相关的Silverlight与HTML内容如何重要,针对没有安装Silverlight的用户进行页面测试是非常必要的
为了使得低端用户可以访问到这个页面,应执行如下操作:
1.
2.
3.
4.
关闭所有的Internet Explorer实例,启动一个新的实例。
在工具菜单,点击管理加载项,然后点击开启/禁止加载项。这是会弹出管理加载项对话框。
选择Microsoft Silverlight,选择禁用按钮,然后点击OK。
重启Internet Explorer并跳转到有Silverlight内容的页面
如果想要恢复初始状态,返回管理加载项对话框,选择Microsoft Silverlight, 然后选择启用
注意
用于临时关闭Silverlight插件的程序只作用于当前使用的浏览器中。.
当你对低端配置的用户体验测试完成时,应该在你的页面中加入一个网络分析工具,比如SEO Browser以了解标记的效果以及搜索引擎优化的内容。
总结
搜索引擎收录非原生的HTML内容的能力非常有限,但是,如果你通过正确的途径构建你的应用,将会有极大的可能影响到搜索查询结果并使你的页面成功的显示在搜索引擎的结果页上。


发布评论