ASP.NET教程:友好的Html和JS适合SEO

2024-05-04 17:32

本文主要是介绍ASP.NET教程:友好的Html和JS适合SEO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

假设你需要从一个页面转向其他页面,下面有很多种方式,你是如何选择的呢?你能清晰的说明理由么?

        <%--链接的表现形式--%>
        
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">HyperLink</asp:HyperLink>
        
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
        
        
<%--出于美观的考虑,很多网站都会用button来替换掉link--%>
        
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx" />
        
        
<%--用图片做链接,也有两种选择方式--%>
        
<asp:ImageButton ID="ImageButton1" runat="server" PostBackUrl="~/Default2.aspx" ImageUrl="~/upup.gif" />
        
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default2.aspx" ImageUrl="~/upup.gif"></asp:HyperLink>      

如果你还有些迷茫,我建议你查看他们生成html之后的源代码。

        <id="HyperLink1" href="Default2.aspx">HyperLink</a>       
        
<%--HyperLink解析成Html之后对应的就是一个单纯的超链接,href指向了要跳转的页面 --%>
        
        
<id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;LinkButton1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, true))">LinkButton</a>
        
<%--LinkButton1虽然也是一个锚标记,但实际上是利用的javascript进行的跳转--%>
        
        
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, false))" id="Button1" />
        
<%--button被解析成type="submit"的input元素,同样通过javascript进行页面的跳转--%>
        
        
<input type="image" name="ImageButton1" id="ImageButton1" src="upup.gif" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ImageButton1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, false))" style="border-width:0px;" />
        
<%--ImageButton被解析成type="image"的input元素,同样通过javascript进行页面的跳转--%>
        
        
<id="HyperLink2" href="Default2.aspx"><img src="upup.gif" style="border-width:0px;" /></a>
        
<%--给HyperLink的ImageUrl属性赋值后,解析成Html之后对应的就是一个超链接中“夹”了一个img,但href仍然指向的要跳转的页面 --%>

知道了这些又有什么用呢?

用处很多,但我们今天只谈论SEO。

就目前的搜索引擎技术手段,javascript(当然也就包括了AJAX)、表单元素(如input)、Flash和Image都无法(或者很难)被读取。“蜘蛛”倾向于读取简单的html格式的文本。所以,从SEO的角度出发:

1. 不要使用javascript或表单进行页面跳转链接,如果一个普通的<a></a>也能完成同样的功能。一般来说,任何不能通过标准锚标识符<a></a>进入的导航,都不会被蜘蛛检索到。如果本来就使用的客户端元素,我们应该比较容易注意到这一点;但当使用经过封装处理过后的服务器端控件时,我们就可能会大意了。

2. 注意UpdatePanel里没有文本内容的情况。我们可以做一个简单的测试:

        <asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Label runat="server" ID="lbl" ></asp:Label>
                
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
            
</ContentTemplate>
        
</asp:UpdatePanel>

    protected void Button1_Click(object sender, EventArgs e)
    {
            
this.lbl.Text = "我是UpdatePanel生成的,所以你看不见我!";
    }

解析成Html后的源代码部分:

        <div id="UpdatePanel1">
            
<span id="lbl"></span>
            
<input type="submit" name="Button1" value="Button" id="Submit1" />
        
</div>

这是很好理解的,因为UpdatePanel一样是通过页面的javascript函数来生成页面内容的。查看源代码,我们能看到相关的javascript函数,但不能看到函数生成的内容。而搜索引擎的蜘蛛,它也是只看源代码的。

3. 当我们需要使用弹出页面时,通常的做法是:

<href="#" onclick="window.open('popup.html','common','height=600,weight=800');">common popup</a>

根据我们上面的交代,这样的写法,对SEO而言,无疑也是不利的。所以我们应该使用下面的代码,即保证了弹出窗口的效果,也是SEO友好的。而且即使客户的浏览器不支持或者禁用掉javascript,页面一样能够顺利的跳转。

<href="popup.html" onclick="window.open(this.href,'seo','height=600,weight=800');return false;" target="_blank">seo popup</a>
<%--注意:这里的return false语句不能省略。--%>

4. 当我们希望使用一种特殊的字体(常常是栏目标题之类)的时候,我们经常使用一张汉字图片来代替。这也是一个比较麻烦的事情,因为作为标题,其内容常常是相当重要的关键字,如果使用图片,蜘蛛是也无法读取的。一种可能的解决方案是sIFR,但这方面我并不是很熟;网上搜了一下,似乎还不能应用于汉字。

对于图片,我们常用的SEO方法是注明title和alt,如

<img alt="ASP.NET搜索引擎优化" title="使用ASP.NET技术开发网站时应注意到的一些SEO技术" src="seo.gif" />

不过这也属于“不可见的页面元素”,具体效果如何也很难精确衡量。但有总比没有强!

5. 其他一些注意事项:

5.1 将html标签的语义和css结合起来,和《span》和《div》不同,《h1》意味着标题、《b》意味着强调、《ul》《li》意味着列表……,这些语义标签能给搜索引擎更清晰的指示;

5.3 重要的内容放在html页面(指源代码,而不是浏览器显示结果)的顶端

5.5 将大段的javascript放在页面底部或者单独的js文件中;

5.2 最好不要使用框架(frame)布局;

5.3 大量的VIEWSTATE可能会对“蜘蛛”造成干扰;

5.5 牢记:就目前的搜索引擎技术手段,javascript(当然也就包括了AJAX)、表单元素(如input)、Flash和Image都无法(或者很难)被读取。

作者:自由飞 http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html


这篇关于ASP.NET教程:友好的Html和JS适合SEO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959727

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根