鱼和熊掌兼得--既实现AJAX又实现SEO

本文探讨如何在实现AJAX交互的同时确保网站的搜索引擎优化(SEO)。由于搜索引擎爬虫主要通过a标签的href来抓取页面,对于带参数的链接可能不会优先考虑。为防止后台页面被误抓,需创建robots.txt文件来指导爬虫行为,遵循此协议有助于区分网站的前台与后台内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司忙于年会 忙里偷闲 研究了一下网站的SEO

研究了几天 我总结了一下几点:

1. 蜘蛛只能抓取a标签中的href(<a href="Default.aspx">测试</a>) 


最好后面不要带参数(<a href="Default.aspx?id=1">测试</a>) 如果带上参数 蜘蛛不会有限考虑的


这样的话 就需要用到URL重写了
URL重写 详解

2. 蜘蛛不会执行JavaScript 换句话说 如果在a标签中使用了onclick 蜘蛛是不会抓到的

3. 蜘蛛只能抓到get请求的页面 不会抓到post请求的页面

4. 我们希望网页的前台页面全部被蜘蛛抓到 但是不希望后台页面被蜘蛛抓到 蜘蛛可没有那么只能 知道你的网

站哪个是前台页面 哪个是后台页面 

这里就需要创建一个名为 “robots.txt” (注意robots.txt是一个协议 不是命令 一般最好要遵守的)

 robots.txt是搜索引擎搜索该网站时的第一个文件



下面说这篇文章的重点 
在第2点中 我说道蜘蛛不会执行JavaScript 那么是不是就说只要使用了AJAX效果就不会被蜘蛛抓到呢? 答案是否定的  浅谈Ajax

我们先来看一下 一个使用AJAX的demo

<head runat="server">
<title>测试</title>
<script src="js/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
        function fun(id) {
            $.post("Ajax.ashx", { "id": id }, function(data) {
                $("#p1").text(data);
            })
        }
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <p id="p1">
    </p>
        <a href="javascript:void(0)" onclick="fun(1);return false;">1</a> 
        <a href="javascript:void(0)" onclick="fun(2);return false;">2</a> 
        <a href="javascript:void(0)" onclick="fun(3);return false;">3</a>
    </div>
    </form>
</body>


在上面的a标签中  href属性是"javascript:void(0)"  蜘蛛是不会执行js脚本的 所以这三个页面 是一个都抓不到的


有这样一个解决方案 既实现了AJAX 又能被蜘蛛所抓到 来看下面的demo


<head runat="server">
<title>测试</title>
<script src="js/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
        function fun(id) {
            $.post("Ajax.ashx", { "id": id }, function(data) {
                $("#p1").text(data);
            })
        }
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <p id="p1">
    </p>
        <a href="Ajax.ashx?id=1" onclick="fun(1);return false;">1</a> 
        <a href="Ajax.ashx?id=2" onclick="fun(2);return false;">2</a> 
        <a href="Ajax.ashx?id=3" onclick="fun(3);return false;">3</a>

    </div>
    </form>
</body>

来说明一下
1. 在a标签的href属性中 我改成了 Ajax.ashx?id=1 有人问了 不是带有参数也不利于SEO么 应该重写URL的 没错 但是有一点 重写URL只适用于apsx页面 应为只有aspx页面具有页面生命周期 适用ajax的时候 最好适用一般处理程序 也就是ashx页面 ashx没有页面生命周期 也就不能重写URL了

2. 在onclick属性后面添加了一个return false;  这样做的目的是告诉他 不要执行href属性里面的内容了 其实href里面的属性 就没有执行 href里面的属性就是为了让蜘蛛看 让蜘蛛能抓到页面 





以上是我个人的理解 有不对的地方 还请您批评 万分感谢!!!!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值