首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Googlebot不等待AJAX请求完成,这是真的吗?

Googlebot不等待AJAX请求完成,这是真的。Googlebot是Google搜索引擎的爬虫程序,用于抓取和索引网页内容。在抓取网页时,Googlebot会执行JavaScript代码,但它通常不会等待异步请求(如AJAX请求)完成。

AJAX(Asynchronous JavaScript and XML)是一种在网页上进行异步数据交互的技术。通过AJAX,网页可以在不刷新整个页面的情况下,通过发送异步请求获取数据并更新部分页面内容。然而,由于异步请求可能会导致爬虫程序在等待请求完成时长时间阻塞,影响爬取效率,因此Googlebot通常不会等待AJAX请求的完成。

为了确保网页内容能够被Googlebot正确抓取和索引,可以采取以下措施:

  1. 提供静态HTML版本:为了确保内容能够被搜索引擎爬虫抓取到,可以提供一个静态HTML版本的网页,以便爬虫程序能够直接获取到内容。
  2. 使用无阻塞的加载方式:可以使用一些技术手段,如预渲染(Prerendering)或服务器端渲染(Server-side Rendering),将网页内容在服务器端生成并返回给爬虫程序,避免依赖于客户端执行JavaScript。
  3. 合理使用AJAX:在网页开发中,需要合理使用AJAX技术,避免过度依赖异步请求。对于重要的内容,最好在页面加载时就直接包含在HTML中,而不是通过AJAX请求获取。

腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储等,可以满足不同场景下的需求。具体推荐的产品和介绍链接地址可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

优化SPA:使得网站对SEO更友好

另一方面,客户端渲染(CSR)允许单页面应用(SPA)能够在页面刷新的前提下,进行页面信息的动态获取和展示。...当页面中的「部分」内容发生了变更,浏览器只需要向服务端发送用于获取该与该变更信息相关的AJAX。服务端在接收到指定的请求后,经过拼装处理,将浏览器想要的结果(通常是JSON的数据格式)返回。...请求从抓取队列中抓取某个网址时,它首先会检查网页是否允许抓取。...Googlebot 会读取 robots.txt 文件。如果此文件将该网址标记为「disallowed」,Googlebot 就会跳过向该网址发出 HTTP 请求的操作,然后会跳过该网址。...❝号外:在2015年,Google宣布将放弃AJAX爬虫方案。并于2018年正式停止对其支持。 ❞ 现在 Googlebot不需要用户提供预渲染页面,就能够处理自带额外信息(#!)的URL。

2.6K20

HTTP 返回状态值详解

但处理未完成 203——返回信息不确定或不完整 204——请求收到,但返回信息为空 205——服务器完成请求,用户代理必须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的GET请求 3xx...414——请求的资源URL长于服务器允许的长度 415——请求资源不支持请求项目格式 416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求包含If-Range...—服务器不支持请求的函数 502——服务器暂时不可用,有时是为了防止发生系统过载 503——服务器过载或暂停维修 504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长 505——...1xx(临时响应)   表示临时响应并需要请求者继续执行操作的状态码。   100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。   ...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具"诊断"标签的 robots.txt 页上看到此状态码,则这是正确的状态码。

3.1K30
  • 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)

    例如,如果请求是针对服务器上不存在的网页进行的,那么,服务器通常会返回此代码。 500(服务器内部错误) 服务器遇到错误,无法完成请求。...服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具”诊断”标签的 robots.txt 页上发现此状态,那么,这是正确的状态。...408(请求超时) 服务器等候请求时超时。 409(冲突) 服务器在完成请求时发生冲突。服务器必须包含有关响应中所发生的冲突的信息。...代码 说明 500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。

    4.6K10

    http协议的各类状态码

    http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。...206(部分内容) 服务器成功处理了部分 GET 请求。 3xx(重定向) 要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具“诊断”标签的 robots.txt 页上看到此状态码,则这是正确的状态码。...409(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。...500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

    1.2K80

    teg http 返回码含义

    1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。...206(部分内容) 服务器成功处理了部分 GET 请求。 3xx(重定向) 要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具“诊断”标签的 robots.txt 页上看到此状态码,则这是正确的状态码。...409(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。...500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

    1.2K20

    http状态代码含义

    1xx 临时响应 表示临时响应并需要请求者继续执行操作的状态代码。 状态码 代表意义 详解 100 继续 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。...206 部分内容 服务器成功处理了部分 GET 请求。 3xx 重定向 要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 Google 建议您在每次请求中使用重定向不要超过 5 次。...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具”诊断”标签的 robots.txt 页上看到此状态,那么这是正确的状态。...如果服务器返回此响应,还会指明请求者应当使用的代理。 408 请求超时 服务器等候请求时发生超时。 409 冲突 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。...状态码 代表意义 详解 500 服务器内部错误 服务器遇到错误,无法完成请求。 501 尚未实施 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

    1K20

    HTTP 304状态码的详细讲解

    对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。...+F5强制刷新 200 同第一次,贴图了 为什么要使用条件请求 当用户访问一个网页时,条件请求可以加速网页的打开时间(因为可以省去传输整个响应体的时间),但仍然会有网络延迟,因为浏览器还是得为每个资源生成一条条件请求...你也许会有个疑问:“如果不改变网站内容,我怎么才能让Fiddler返回304而返回一个包含响应体的HTTP/200响应呢?”...1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。...500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

    6.3K20

    常用HTTP状态码简介

    服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。...3xx(已重定向) 要完成请求,您需要进一步进行操作。通常,这些状态代码是永远重定向的。Google 建议您在每次请求时使用的重定向要少于 5 个。...如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具" 诊断"标签的 robots.txt 页上发现此状态,那么,这是正确的状态。...408(请求超时) 服务器等候请求时超时。 409(冲突) 服务器在完成请求时发生冲突。服务器必须包含有关响应中所发生的冲突的信息。...代码 说明 500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。

    2.1K60

    HTTP状态码查询

    代码 说明 100(继续) 请求者应当继续提出请求。服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。...206(部分内容) 服务器成功处理了部分 GET 请求。 3xx(已重定向), 要完成请求,您需要进一步进行操作。通常,这些状态代码是永远重定向的。...但由于 Googlebot 会继续抓取原有位置并将其编入索引,因此您不应使用此代码来通知 Googlebot 某个页面或网站已被移动。...408(请求超时) 服务器等候请求时超时。 409(冲突) 服务器在完成请求时发生冲突。服务器必须包含有关响应中所发生的冲突的信息。...代码 说明 500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。

    1.7K100

    vue菜鸟从业记:没准备好的面试,那叫尬聊

    先来听听职场老司机是如何回答的吧~ 一.什么是同步请求:(false) 同步请求即是当前发出请求后,浏览器什么都不能做,必须得等到请求完成返回数据之后,才会执行后续的代码,相当于是排队,前一个人办理完自己的事务...异步请求可以完全不影响用户的体验效果,无论请求的时间长或者短,用户都在专心的操作页面的其他内容,并不会有等待的感觉。...同步:在同步模式下,当我们使用AJAX发送完请求后,后续还有代码需要执行,我们同样将服务器响应交由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还没有处理完成...(2); } }); console.log(3); 面试讲到这儿,你需要记住的几点: 1.Jquery中的ajax在默认写async情况下,请求为异步请求;即:async:true; 2.如果项目中在做一项操作之前要进行...所以,你对ajax真的了解? 面试快结束的时候,面试官还问了一些关于vue的问题,这哥们回答的还行。 最后,面试官问那个应聘者哥们,你有什么想问我的

    96930

    有同学问我:Fetch 和 Ajax 有什么区别?

    现在总结一下,评论区涉及到的主要问题如下: Fetch 和 Axios/Ajax 是什么关系 Fetch 真的会取代 Ajax 有封装良好的 Fetch 工具库推荐 为了辜负大家的热情,我在这里试着解释一下这些问题...Axios 属于传统 Ajax(XHR)的子集,因为它是基于 XHR 进行的封装。 Fetch 真的会取代 Ajax ?...其实这个问题更准确的问法应该是:Fetch 真的会取代传统 Ajax ( XHR ) ?...传统 Ajax 原生写法结构比较混乱,不符合关注分离的原则,写过远程 XHR 的同学应该深有体会。 Axios 是基于 XHR 封装的 Promise 请求库,用起来确实方便。...虽然目前来看,传统 Ajax (比如 Axios 之类的)在使用规模上远远超过 Fetch,但要知道,这是 XHR 十来年累积下来的效果。

    59810

    javaScript回调函数

    估计大伙会想,这样的回调有意义?把A函数的代码直接写到B函数里面不是更好吗? 如果在实际项目里这样写回调真的是糟糕透了。往下看,了解回调是如何应用的。...二、同步回调和异步回调 什么,回调不是异步的?仔细看看上面的例子,大家就能明白,回调不一定都是异步的,他有同步和异步之分。...由于 JS 是单线程的,一旦我们要执行一个长耗时的任务时,如果一直单线程的堵塞下去会导致程序的等待时间过长而使页面失去响应,非常影响用户体验。 为了解决这样的问题,我们就可以使用异步回调。...下面是 ajax 异步请求的部分代码: var xhr; .........大家看看 jquery 对 ajax 的封装就能明白,它就是根据 readystate 返回的状态,执行 同的回调,最常用的两个回调应该是 success 函数和 error 函数。

    3.6K20

    AJAX - 向服务器发送请求请求

    AJAX - 向服务器发送请求请求 XMLHttpRequest 对象用于和服务器交换数据。...默认情况下async是true 一.什么是同步请求:(false)        同步请求即是当前发出请求后,浏览器什么都不能做,必须得等到请求完成返回数据之后,才会执行后续的代码,相当于是排队,前一个人办理完自己的事务...二.什么是异步请求:(true)        异步请求就当发出请求的同时,浏览器可以继续做任何事,Ajax发送请求并不会影响页面的加载与用户的操作,相当于是在两条线上,各走各的,互不影响。...异步请求可以完全不影响用户的体验效果,无论请求的时间长或者短,用户都在专心的操作页面的其他内容,并不会有等待的感觉。...你真的会使用XMLHttpRequest? https://segmentfault.com/a/1190000004322487

    1.7K10

    如何编写和优化WordPress网站的Robots.txt

    Yoast建议保持robots.txt干净  ,不要阻止包括以下任何内容: User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php...# block Googlebot from crawling the entire website User-agent: Googlebot Disallow: / # block Bingbot...from crawling refer directory User-agent: Bingbot Disallow: /refer/ 这是如何阻止蜘蛛抓取WordPress搜索结果,强烈建议加入此规则...第一个指令允许您指定网站的首选域(www或非www): User-agent: * #we prefer non-www domain host: yourdomain.com 下面的规则是用来告诉搜索引擎蜘蛛在每次抓取之前等待几秒钟...crawl-delay: 8 完整的robots.txt 综上所述,我们建议WordPress的robots.txt内容编写为: User-agent: * Allow: /wp-admin/admin-ajax.php

    1.6K20

    浅谈服务端渲染(SSR)

    不同爬虫工作原理类似,只会爬取源码,不会执行网站的任何脚本(Google除外,据说Googlebot可以运行javaScript)。...另外,浏览器爬虫不会等待我们的数据完成之后再去抓取我们的页面数据。服务端渲染返回给客户端的是已经获取了异步数据并执行JavaScript脚本的最终HTML,网络爬中就可以抓取到完整页面的信息。 2....数据请求 由服务端请求首屏数据,而不是客户端请求首屏数据,这是“快”的一个主要原因。服务端在内网进行请求,数据响应速度快。客户端在不同网络环境进行数据请求,且外网http请求开销大,导致时间差。...html返回给浏览器;而客户端渲染是等js代码下载、加载、解析完成后再请求数据渲染,等待的过程页面是什么都没有的,就是用户看到的白屏。...就是服务端渲染不需要等待js代码下载完成请求数据,就可以返回一个已有完整数据的首屏页面。

    1.5K30

    网站终于被收录了!

    其实蘑菇网站上线快几年了,但是只收录了首页,归根到底还是因为之前项目选型的时候,采用了 Vue 作为前端开发框架,而我们知道 Vue 作为单页面应用框架,所有的数据都是通过 axios 进行返回的,也可以想成是 ajax...请求异步返回的,是非常不利于 SEO 的。...但仔细想,需要这些技术优点的 "用户",其实时不一样的,SPA 针对的是浏览器普通用户、SSR 针对的是网页爬虫,如 googlebot、baiduspider 等,那为什么我们不能给不同“用户”不同的页面呢.../config/vue_mogu_web.conf:/etc/nginx/conf.d/default.conf networks: mogu: external: true 修改完成后...,就可以开始使用接口工具进行测试了,通过设置 Headers 设置请求头信息,加入 User-agent = googlebot 用来标识这个请求是爬虫 调用接口可以看到,我们的页面能够把完整的数据给返回

    2.1K10

    JavaScript 回调函数

    这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。...函数未加载完成)。...看到这里,聪明的你会不会发现ajax的success 不就是一个回调函数,我每天都在用ajax,为什么不懂什么是回调呢? 回调就是为了确保在网络请求耗时的情况下保证我们的代码执行有顺序的执行。...看到上述示例,你也会觉得回调也没什么用啊,我把disposeResult 函数里的代码写到 success 里去执行,效果不一样?...是的 效果是一样的,但是你能确保你写的代码高可读,低耦合,一个ajax的success里我再套一个ajax,再加上前台处理的代码,一个方法上百行,过个十天半个月自己都看不懂。

    2.8K10

    震惊!北京一男子竟然用swoole做了这种事!

    但是,我还是偷了两点儿懒: 我实在懒得实现【数据库查询并生成csv或excel】这个功能了,这个地方我用一个sleep函数去模拟了一下 没有写网页而是用curl模拟了网页,模拟了点击【导出】和等待ajax...在跟老赵报告了一下技术可行性后,柱子做的PPT里展示的具体技术流程是这样shai儿的: 当运营在网页上点击了【导出】按钮后,会向服务器发送一个ajax请求请求中会带上参数:比如文件id。...知道这叫什么?这就叫业务模型抽象能力......你们这是什么意思?注意看第一个进程PID为5561的进程自从第一次出现后,就再也没有出现过,其他PID则是轮流重复出现,为什么?...,服务器不会马上返回请求,而是一直到处理完毕数据后才返回给客户端 // 此处就是ajax轮训文件处理状态,这个是要等服务器从redis里取出状态后,才能返回给网页客户端的,所以 // 必须阻塞等待

    1.1K00

    AspNet.Core之使用CancellationToken来提高应用负载

    5倍的工作量,这是因为即使用户刷新了浏览器(或点击停止按钮), 虽然取消了原始浏览器请求,但是Web服务器并不Care,仍然按部就班处理进入HTTP pipeline的请求(MVC/WebAPI 中默认行为...在.NET中,这是使用CancellationToken完成的: 取消令牌的实例传递到异步任务 异步任务监视令牌,以查看请求是否已经被取消。 如果请求取消,则应停止执行正在执行的操作。....tip 本文取消的请求,指的是耗时长的服务端读取请求(返回数据但不修改数据的查询),取消已修改数据的请求对于用程序可能不是一个好的选择: ① 是否真的要因为用户导航到应用的另一个页面而取消保存?...② 提高了复杂性,因为数据库服务器可能需要回滚事务,这是一项昂贵的操作。 AspNetCore实践 访问MyReallySlowReport页面,等待5s,最终他们放弃去了其他页面: ?...> 想想日益常见的SPA程序(单页面程序),绝大部分页面请求都是Ajax请求,你点击应用的另外一个“页面”(JS代码维护页面导航),浏览器不会自动取消请求

    2.3K10
    领券