博客搜索引擎优化

博客搜索引擎优化

详解:博客搜索引擎优化的原理,二手链接的构造【一】

网站优化优采云 发表了文章 • 0 个评论 • 91 次浏览 • 2022-09-24 06:04 • 来自相关话题

  详解:博客搜索引擎优化的原理,二手链接的构造【一】
  博客搜索引擎优化的原理,来源现代搜索引擎广告,二手链接的构造一.通用原理:1.1搜索引擎中的链接是怎么来的?不难理解,当你看一个站点,首先要有一个int连接,这个int连接是建立在各种用户体验上的,如果你是搜索的发起者,一般一个单独搜索框只能有一个int,这就是为什么很多网站首页都有一个网址入口,这样搜索看到的不止是该站点的站点的站点的站点,还有里面的各种数据,如商品列表,招聘信息,搜索关键词,社交关系等等。
  
  1.2为什么没有百度的我也可以搜?搜索引擎通过点击链接来获取的链接作为你搜索的相应的内容。1.3为什么搜索引擎会收录我的网站,我也可以收录别人的网站?很简单,搜索引擎会查找你网站上其他人是否有点击过这个网址,如果你的网站上没有相应的内容,你当然也不会被收录。但是可以收录别人的网站,其实很简单,你的网站是个独立的个体,被很多个人点击了,这就是百度收录别人网站的原因。
  1.4除了搜索引擎以外,在哪里可以找到搜索引擎链接?答案:在百度的各种生成工具中可以找到。1.5其他网站是如何通过他们与搜索引擎链接的?是否存在竞争关系,要建立一条条链接规则?答案:目前国内的互联网相关行业的网站都建立了一套系统来和搜索引擎进行对抗,如果你没有被竞争,大家基本上不会建立链接规则,竞争程度越低越好,收录多就算结果好。
  
  1.6如何区分链接的来源?答案:你可以把所有竞争相对较小的网站作为一个整体查看,你会发现会有一些在前端表现上像搜索引擎链接的是百度聚合的,你可以在百度生成工具中查看链接。1.7我并不想找到竞争对手网站,而是希望搜索引擎认同我的站点,如何办?答案:可以使用搜索引擎强制加载的代码,如baiduspider提供了这种代码。
  1.8搜索引擎收录我网站需要收录哪些内容?答案:自己的,别人的,站长分享的。1.9在没有明确用途的情况下,如何收录?答案:目前,搜索引擎在没有经过你同意的情况下会强制抓取全网站,包括但不限于:a.域名解析b.虚拟主机,独立空间等等。1.10检查发起者有没有付费来获取搜索引擎一些高级的搜索结果?答案:目前免费的网站发起者不但获取了收录,还获取了一些好的搜索结果,当然,高级的搜索结果是需要付费的。
  1.11什么是百度站长工具?答案:就是一个搜索引擎看行情的地方,有一定可用性,但是没有太多的可参考性。1.12使用通用的方法能否收录你的网站?答案:肯定收录,和你的网站的内容质量有关,但是不是绝对的。1.13什么是网站的seo?答案:建议你自己学着看看看。 查看全部

  详解:博客搜索引擎优化的原理,二手链接的构造【一】
  博客搜索引擎优化的原理,来源现代搜索引擎广告,二手链接的构造一.通用原理:1.1搜索引擎中的链接是怎么来的?不难理解,当你看一个站点,首先要有一个int连接,这个int连接是建立在各种用户体验上的,如果你是搜索的发起者,一般一个单独搜索框只能有一个int,这就是为什么很多网站首页都有一个网址入口,这样搜索看到的不止是该站点的站点的站点的站点,还有里面的各种数据,如商品列表,招聘信息,搜索关键词,社交关系等等。
  
  1.2为什么没有百度的我也可以搜?搜索引擎通过点击链接来获取的链接作为你搜索的相应的内容。1.3为什么搜索引擎会收录我的网站,我也可以收录别人的网站?很简单,搜索引擎会查找你网站上其他人是否有点击过这个网址,如果你的网站上没有相应的内容,你当然也不会被收录。但是可以收录别人的网站,其实很简单,你的网站是个独立的个体,被很多个人点击了,这就是百度收录别人网站的原因。
  1.4除了搜索引擎以外,在哪里可以找到搜索引擎链接?答案:在百度的各种生成工具中可以找到。1.5其他网站是如何通过他们与搜索引擎链接的?是否存在竞争关系,要建立一条条链接规则?答案:目前国内的互联网相关行业的网站都建立了一套系统来和搜索引擎进行对抗,如果你没有被竞争,大家基本上不会建立链接规则,竞争程度越低越好,收录多就算结果好。
  
  1.6如何区分链接的来源?答案:你可以把所有竞争相对较小的网站作为一个整体查看,你会发现会有一些在前端表现上像搜索引擎链接的是百度聚合的,你可以在百度生成工具中查看链接。1.7我并不想找到竞争对手网站,而是希望搜索引擎认同我的站点,如何办?答案:可以使用搜索引擎强制加载的代码,如baiduspider提供了这种代码。
  1.8搜索引擎收录我网站需要收录哪些内容?答案:自己的,别人的,站长分享的。1.9在没有明确用途的情况下,如何收录?答案:目前,搜索引擎在没有经过你同意的情况下会强制抓取全网站,包括但不限于:a.域名解析b.虚拟主机,独立空间等等。1.10检查发起者有没有付费来获取搜索引擎一些高级的搜索结果?答案:目前免费的网站发起者不但获取了收录,还获取了一些好的搜索结果,当然,高级的搜索结果是需要付费的。
  1.11什么是百度站长工具?答案:就是一个搜索引擎看行情的地方,有一定可用性,但是没有太多的可参考性。1.12使用通用的方法能否收录你的网站?答案:肯定收录,和你的网站的内容质量有关,但是不是绝对的。1.13什么是网站的seo?答案:建议你自己学着看看看。

解决方案:网站推广的八种基本方法

网站优化优采云 发表了文章 • 0 个评论 • 120 次浏览 • 2022-09-23 14:08 • 来自相关话题

  解决方案:网站推广的八种基本方法
  1.搜索引擎推广方式
  搜索引擎推广是指利用具有在线信息检索功能的搜索引擎、目录等网络工具进行网站推广的方式。由于搜索引擎的基本形式可以分为网络蜘蛛式搜索引擎(简称搜索引擎)和基于人工类别的搜索引擎(简称类别),因此搜索引擎推广的形式还包括基于搜索的方法基于搜索引擎的引擎和方法。分类的方法,前者包括搜索引擎优化、关键词广告、PPC、固定排名、基于内容的广告等形式,而后者主要是在分类目录网站的相应类别中进行@>登录。随着搜索引擎形式的进一步发展和变化,也出现了其他形式的搜索引擎,但大多是基于这两种形式。
  搜索引擎推广的方法可以分为多种不同的形式。常见的有:登录免费类、登录付费类、搜索引擎优化、关键词广告、关键词 PPC、Web内容定向广告等。
  从目前的发展趋势来看,搜索引擎在网络营销中的地位依然重要,被越来越多的企业所认可。搜索引擎营销的方法也在不断的演变,所以要根据环境的变化来选择。搜索引擎营销的正确方式。
  2. 电子邮件营销方法
  电子邮件是主要的推广手段网站,常用的方式有电子刊物、会员通讯、专业服务商的电子邮件广告等。
  基于用户许可的邮件营销不同于垃圾邮件,许可营销相对于传统的推广方式或无许可的邮件营销具有明显优势,比如减少广告对用户的滋扰,增加潜在客户定位的准确性,增强与用户的关系客户,提高品牌忠诚度等。根据电子邮件营销许可的用户电子邮件地址资源的所有形式,可以分为内部列表电子邮件营销和外部列表电子邮件营销,或者简单地分为内部列表和外部列表。内部列表也称为邮件列表,是利用网站的注册用户信息进行Email营销的一种方式,如新闻邮件、会员快讯、电子刊物等。外部列表Email营销是使用专业服务提供商的用户电子邮件地址进行电子邮件营销,即以电子邮件广告的形式向服务提供商的用户发送信息。授权邮件营销是一种相对独立的网络营销方法体系,可以与其他网络营销方法相结合,也可以独立应用。
  
  3.资源合作推广方式
  通过网站链接交换、广告交换、内容合作、用户资源合作等方式,达到目标相近者相互促进的目的网站,其中最常用的资源合作方式是网站链接策略,利用网站合作伙伴之间的流量资源相互促进。
  每个企业网站都可以拥有自己的资源,可以表现为一定的流量、注册用户信息、有价值的内容和功能、在线广告位等,使用网站资源与合作伙伴合作,达到资源共享,共同扩大利益的目的。在这些资源合作形式中,交换链接是最简单的合作方式,调查显示,这也是推广新网站的有效方式之一。交换链接或互惠链接是网站之间的一种简单的合作形式,具有一定的优势互补,即把对方网站的LOGO或网站@放在自己的网站 分别。 >命名并设置对方网站的超链接,让用户从合作网站中发现自己的网站,从而达到相互促进的目的。交换链接的作用主要表现在几个方面:获得流量,增加用户浏览时的印象,增加搜索引擎排名优势,通过合作网站的推荐增加访问者的可信度。交换链接比能不能达到直接的效果,有着更深层次的意义。一般来说,每个网站都倾向于链接到其他网站的链接值较高的网站,从而获得其他网站的链接也意味着得到伙伴和同行的认可网站 @> 在字段中。
  4.信息发布推广方式
  在网站上发布其他潜在用户可能访问的相关网站宣传信息,并利用用户在这些网站中获取信息的机会达到网站的目的@>促销,网站适用于这些信息发布包括网络黄页、分类广告、论坛、博客网站、供求信息平台、行业网站等。信息发布是其中之一免费网站推广的常用方法之一,尤其是在互联网发展初期,网上信息量比较少的时候,往往通过信息发布取得满意的效果,但随着网上信息爆炸的作用这种依靠免费信息发布的方式正在减少,并且由于越来越多有效的网站推广方式的出现,信息发布在常用的网站推广方式中。信息的重要性也明显下降,依靠大量免费信息的发送方式并没有太大的价值,但一些针对性强、专业性强的信息还是能引起人们的极大关注,尤其是当信息以高度的方式发布时相关的。
  5.病毒式营销方法
  病毒式营销方式不是传播病毒,而是利用用户之间的主动交流,让信息像病毒一样传播,从而达到推广的目的。病毒式营销方式本质上是为用户提供有价值的免费服务,同时附上一些促销信息。常用工具包括免费电子书、免费软件、免费FLASH作品、免费贺卡、免费邮箱、免费即时聊天工具等,可以为用户带来信息、网络服务使用、娱乐等便捷的工具和内容如果应用得当,这种病毒式营销策略通常可以以非常低的成本取得非常显着的效果。病毒式营销的详细介绍和案例要素请参考作者《网络营销基础与实践》第2版(下)相关内容,新上线的《120网站推广实用方法》系列营销观察文章中也会有适当的介绍。
  
  6.快速网址推广方法
  即合理利用网络实名、常用网址等类似关键词网站快捷访问方式,实现网站推广方式。快捷网址使用自然语言与网站网址建立对应关系,为习惯使用中文的用户提供了极大的便利。用户只需要输入一个比英文 URL 更容易记住的快捷 URL。您可以访问 网站 并使用您的母语或其他简单词汇来“替换”一个更容易记住且更容易反映 网站 品牌形象的 URL,例如选择公司名称或商标,主要产品名称等。作为一个中文网站,这可以极大地弥补英文网站宣传的不便,因为它具有一定的网站推广价值。随着企业注册快捷网站数量的增加,这些快捷网站的用户数据也可以相当于一个搜索引擎。这样,当用户使用某个关键词进行搜索时,即使与某个网站注册的中文网站不一致,也有被用户发现的机会。
  7.网络广告推广方式
  网络广告是常用的网络营销策略之一,在网络品牌推广、产品推广、网站促销等方面发挥着重要作用。常见的网络广告形式有:BANNER广告、关键词广告、分类广告、赞助广告、Email广告等。BANNER广告所依赖的媒体是网页,关键词广告是一种搜索形式引擎营销和电子邮件广告是一种许可的电子邮件营销。可见,网络广告不可能独立存在,需要与各种网络工具相结合。只有结合起来,才能实现信息传递的功能。因此,也可以认为网络广告存在于各种网络营销工具中,但具体表现形式不同。网络广告用户推广网站具有网络媒体可选范围广、形式多样、适用性强、投放及时等优点,适用于网站初始发布的任何阶段和运营周期。
  8.综合网站促销方式
  除了上面介绍的常见的网站推广方式外,还有很多特殊的、临时性的网站推广方式,比如有奖问答、网上优惠券、有奖调查、网上购物网站通过比较购物和购物搜索引擎等方式进行推广。有的甚至通过建立辅助网站进行推广。有的网站推广方式可能很巧妙,有的网站可能会使用某种强制的方式来达到推广的目的,比如修改用户浏览器的默认首页设置,自动添加到采集夹,甚至在用户的计算机上。真正值得推广的是合理文明的网站推广方式,强制和破坏性的网站推广方式应该拒绝和反对。
  网站推广是一个系统工程,而不仅仅是各种网站推广方式的简单应用。在新的竞技网站推广综合解决方案中,上述网站推广方式作为常规网站推广方式使用。在网站整体推广策略的指导下,针对不同的网站,会根据其特点选择相应的方式。在此基础上,将采用各种方法。 网站推广方法的有效组合,以及更高级的网站推广技巧
  解决方法:【链接存档】Flash 停止运营后,这 4 个方法可以让你继续用上 Flash
  以下仅用于信息归档
  经过三年的过渡,Adobe 终于在 2020 年的最后一天正式结束对 Flash 技术的支持。这一次 Adob​​e 还联合了众多浏览器开发者和操作系统巨头,誓言要彻底让 Flash 从每个人的世界中消失。技术手段和使用环境。
  但就像 Windows 7 一样,官方的“死刑判决”并不意味着我们不再需要使用它。事实上,由于中国互联网环境比较特殊,要彻底告别Flash技术可能还“为时过早”。Flash作为曾经相当火爆的多媒体技术,被一些尚未进行技术升级的政府企业采用。@网站、电视直播、企业内网业务培训等页面的出勤率仍然相当高。
  部分学校官网仍大量使用Flash
  考虑到主流操作系统平台和浏览器都会比较激进地限制Flash的使用,如何在这个“后Flash时代”继续使用这种“过时”的技术?
  ▍留在旧版本/选择国产浏览器
  是的,如果您不关心新系统、新功能和浏览器的安全性,选择支持Fl​​ash的旧操作系统和浏览器自然会解决上述问题。
  操作系统方面,目前微软只向Windows8.1和Windows 10推送“移除Flash组件”更新,而已经停止支持的Windows 7不在本次更新的推送范围内。
  在浏览器方面,只有使用 Chromium v​​88 及以上(包括 v88) 内核的浏览器不再支持 Flash,只要版本低于此版本,就可以继续“加载”Flash 组件。通过以上小“小后门”我们可以在一定程度上继续浏览Flash内容。
  与紧跟Chromium上游版本的国外各大浏览器厂商相比,国内各大浏览器的Chromium版本还停留在v80之前。虽然在安全性和新技术应用方面稍显落后,但在Flash支持方面已经成为一大优势。因此,如果您主要使用浏览器访问国内网络服务,可以选择合适的国内浏览器。
  例如,QQ浏览器最新版本的Chromium版本仍然是v70。安装的时候会问要不要安装Flash,经过我的测试,检查Flash后要安装的版本其实是国内特制版Flash(虽然签名还是Adobe),不过好处是不会植入广告组件如独立安装Flash特别版(独立安装中文特别版flash Player会被系统安全软件直接屏蔽)。
  这种方案的好处是完全不用折腾,特别是对于浏览器主要用于访问国内互联网服务的朋友,几乎没有浏览器或使用习惯的适配和调整。当然,如果你的主浏览器是 Edge 或 Chrome,这个方案实际上是为系统额外安装了一个浏览器,并引入了潜在的浏览器广告弹窗等一系列隐私问题,并不适用于 macOS。用户(仅限 Windows 系统)。
  ▍ 使用开源替代品:Ruffle
  在 Adob​​e 宣布结束对 Flash 的支持后不久,开发人员推出了 Ruffle,这是该技术的开源替代品。
  Ruffle 是使用 Rust 编程语言构建的,本质上是一个 Flash Player 模拟器。它通过 WebAssembly 在浏览器上运行,运行时是浏览器扩展的形式——所以 Ruffle 也运行在沙箱中。与之前安装更多低级应用插件的做法相比,浏览器和操作系统受到了限制。影响也较小。
  目前,Ruffle 还处于持续开发阶段,因此尚未在各大浏览器的扩展商城上架。如果使用安装,需要在其GitHub[1]主页下载当前扩展编译包,手动运行。
  打开Chrome的扩展管理页面,勾选右上角的“开发者模式”,点击“加载解压的扩展”,选择之前解压过的Ruffle扩展包,就会进入浏览器的扩展栏。找到了Ruffle并开始了它。
<p>此时,您使用浏览器打开收录 Flash 内容的网页。此时,当前网页中的所有 Flash 元素都会变成一个播放按钮。单击播放以显示 Flash 内容。只是Ruffle目前对基于早期Flash技术(Flash Player 9之前)的内容支持较好,而对较新Flash技术的支持才刚刚开始,所以建议有老版本浏览需求的用户 查看全部

  解决方案:网站推广的八种基本方法
  1.搜索引擎推广方式
  搜索引擎推广是指利用具有在线信息检索功能的搜索引擎、目录等网络工具进行网站推广的方式。由于搜索引擎的基本形式可以分为网络蜘蛛式搜索引擎(简称搜索引擎)和基于人工类别的搜索引擎(简称类别),因此搜索引擎推广的形式还包括基于搜索的方法基于搜索引擎的引擎和方法。分类的方法,前者包括搜索引擎优化、关键词广告、PPC、固定排名、基于内容的广告等形式,而后者主要是在分类目录网站的相应类别中进行@>登录。随着搜索引擎形式的进一步发展和变化,也出现了其他形式的搜索引擎,但大多是基于这两种形式。
  搜索引擎推广的方法可以分为多种不同的形式。常见的有:登录免费类、登录付费类、搜索引擎优化、关键词广告、关键词 PPC、Web内容定向广告等。
  从目前的发展趋势来看,搜索引擎在网络营销中的地位依然重要,被越来越多的企业所认可。搜索引擎营销的方法也在不断的演变,所以要根据环境的变化来选择。搜索引擎营销的正确方式。
  2. 电子邮件营销方法
  电子邮件是主要的推广手段网站,常用的方式有电子刊物、会员通讯、专业服务商的电子邮件广告等。
  基于用户许可的邮件营销不同于垃圾邮件,许可营销相对于传统的推广方式或无许可的邮件营销具有明显优势,比如减少广告对用户的滋扰,增加潜在客户定位的准确性,增强与用户的关系客户,提高品牌忠诚度等。根据电子邮件营销许可的用户电子邮件地址资源的所有形式,可以分为内部列表电子邮件营销和外部列表电子邮件营销,或者简单地分为内部列表和外部列表。内部列表也称为邮件列表,是利用网站的注册用户信息进行Email营销的一种方式,如新闻邮件、会员快讯、电子刊物等。外部列表Email营销是使用专业服务提供商的用户电子邮件地址进行电子邮件营销,即以电子邮件广告的形式向服务提供商的用户发送信息。授权邮件营销是一种相对独立的网络营销方法体系,可以与其他网络营销方法相结合,也可以独立应用。
  
  3.资源合作推广方式
  通过网站链接交换、广告交换、内容合作、用户资源合作等方式,达到目标相近者相互促进的目的网站,其中最常用的资源合作方式是网站链接策略,利用网站合作伙伴之间的流量资源相互促进。
  每个企业网站都可以拥有自己的资源,可以表现为一定的流量、注册用户信息、有价值的内容和功能、在线广告位等,使用网站资源与合作伙伴合作,达到资源共享,共同扩大利益的目的。在这些资源合作形式中,交换链接是最简单的合作方式,调查显示,这也是推广新网站的有效方式之一。交换链接或互惠链接是网站之间的一种简单的合作形式,具有一定的优势互补,即把对方网站的LOGO或网站@放在自己的网站 分别。 >命名并设置对方网站的超链接,让用户从合作网站中发现自己的网站,从而达到相互促进的目的。交换链接的作用主要表现在几个方面:获得流量,增加用户浏览时的印象,增加搜索引擎排名优势,通过合作网站的推荐增加访问者的可信度。交换链接比能不能达到直接的效果,有着更深层次的意义。一般来说,每个网站都倾向于链接到其他网站的链接值较高的网站,从而获得其他网站的链接也意味着得到伙伴和同行的认可网站 @> 在字段中。
  4.信息发布推广方式
  在网站上发布其他潜在用户可能访问的相关网站宣传信息,并利用用户在这些网站中获取信息的机会达到网站的目的@>促销,网站适用于这些信息发布包括网络黄页、分类广告、论坛、博客网站、供求信息平台、行业网站等。信息发布是其中之一免费网站推广的常用方法之一,尤其是在互联网发展初期,网上信息量比较少的时候,往往通过信息发布取得满意的效果,但随着网上信息爆炸的作用这种依靠免费信息发布的方式正在减少,并且由于越来越多有效的网站推广方式的出现,信息发布在常用的网站推广方式中。信息的重要性也明显下降,依靠大量免费信息的发送方式并没有太大的价值,但一些针对性强、专业性强的信息还是能引起人们的极大关注,尤其是当信息以高度的方式发布时相关的。
  5.病毒式营销方法
  病毒式营销方式不是传播病毒,而是利用用户之间的主动交流,让信息像病毒一样传播,从而达到推广的目的。病毒式营销方式本质上是为用户提供有价值的免费服务,同时附上一些促销信息。常用工具包括免费电子书、免费软件、免费FLASH作品、免费贺卡、免费邮箱、免费即时聊天工具等,可以为用户带来信息、网络服务使用、娱乐等便捷的工具和内容如果应用得当,这种病毒式营销策略通常可以以非常低的成本取得非常显着的效果。病毒式营销的详细介绍和案例要素请参考作者《网络营销基础与实践》第2版(下)相关内容,新上线的《120网站推广实用方法》系列营销观察文章中也会有适当的介绍。
  
  6.快速网址推广方法
  即合理利用网络实名、常用网址等类似关键词网站快捷访问方式,实现网站推广方式。快捷网址使用自然语言与网站网址建立对应关系,为习惯使用中文的用户提供了极大的便利。用户只需要输入一个比英文 URL 更容易记住的快捷 URL。您可以访问 网站 并使用您的母语或其他简单词汇来“替换”一个更容易记住且更容易反映 网站 品牌形象的 URL,例如选择公司名称或商标,主要产品名称等。作为一个中文网站,这可以极大地弥补英文网站宣传的不便,因为它具有一定的网站推广价值。随着企业注册快捷网站数量的增加,这些快捷网站的用户数据也可以相当于一个搜索引擎。这样,当用户使用某个关键词进行搜索时,即使与某个网站注册的中文网站不一致,也有被用户发现的机会。
  7.网络广告推广方式
  网络广告是常用的网络营销策略之一,在网络品牌推广、产品推广、网站促销等方面发挥着重要作用。常见的网络广告形式有:BANNER广告、关键词广告、分类广告、赞助广告、Email广告等。BANNER广告所依赖的媒体是网页,关键词广告是一种搜索形式引擎营销和电子邮件广告是一种许可的电子邮件营销。可见,网络广告不可能独立存在,需要与各种网络工具相结合。只有结合起来,才能实现信息传递的功能。因此,也可以认为网络广告存在于各种网络营销工具中,但具体表现形式不同。网络广告用户推广网站具有网络媒体可选范围广、形式多样、适用性强、投放及时等优点,适用于网站初始发布的任何阶段和运营周期。
  8.综合网站促销方式
  除了上面介绍的常见的网站推广方式外,还有很多特殊的、临时性的网站推广方式,比如有奖问答、网上优惠券、有奖调查、网上购物网站通过比较购物和购物搜索引擎等方式进行推广。有的甚至通过建立辅助网站进行推广。有的网站推广方式可能很巧妙,有的网站可能会使用某种强制的方式来达到推广的目的,比如修改用户浏览器的默认首页设置,自动添加到采集夹,甚至在用户的计算机上。真正值得推广的是合理文明的网站推广方式,强制和破坏性的网站推广方式应该拒绝和反对。
  网站推广是一个系统工程,而不仅仅是各种网站推广方式的简单应用。在新的竞技网站推广综合解决方案中,上述网站推广方式作为常规网站推广方式使用。在网站整体推广策略的指导下,针对不同的网站,会根据其特点选择相应的方式。在此基础上,将采用各种方法。 网站推广方法的有效组合,以及更高级的网站推广技巧
  解决方法:【链接存档】Flash 停止运营后,这 4 个方法可以让你继续用上 Flash
  以下仅用于信息归档
  经过三年的过渡,Adobe 终于在 2020 年的最后一天正式结束对 Flash 技术的支持。这一次 Adob​​e 还联合了众多浏览器开发者和操作系统巨头,誓言要彻底让 Flash 从每个人的世界中消失。技术手段和使用环境。
  但就像 Windows 7 一样,官方的“死刑判决”并不意味着我们不再需要使用它。事实上,由于中国互联网环境比较特殊,要彻底告别Flash技术可能还“为时过早”。Flash作为曾经相当火爆的多媒体技术,被一些尚未进行技术升级的政府企业采用。@网站、电视直播、企业内网业务培训等页面的出勤率仍然相当高。
  部分学校官网仍大量使用Flash
  考虑到主流操作系统平台和浏览器都会比较激进地限制Flash的使用,如何在这个“后Flash时代”继续使用这种“过时”的技术?
  ▍留在旧版本/选择国产浏览器
  是的,如果您不关心新系统、新功能和浏览器的安全性,选择支持Fl​​ash的旧操作系统和浏览器自然会解决上述问题。
  操作系统方面,目前微软只向Windows8.1和Windows 10推送“移除Flash组件”更新,而已经停止支持的Windows 7不在本次更新的推送范围内。
  在浏览器方面,只有使用 Chromium v​​88 及以上(包括 v88) 内核的浏览器不再支持 Flash,只要版本低于此版本,就可以继续“加载”Flash 组件。通过以上小“小后门”我们可以在一定程度上继续浏览Flash内容。
  与紧跟Chromium上游版本的国外各大浏览器厂商相比,国内各大浏览器的Chromium版本还停留在v80之前。虽然在安全性和新技术应用方面稍显落后,但在Flash支持方面已经成为一大优势。因此,如果您主要使用浏览器访问国内网络服务,可以选择合适的国内浏览器。
  例如,QQ浏览器最新版本的Chromium版本仍然是v70。安装的时候会问要不要安装Flash,经过我的测试,检查Flash后要安装的版本其实是国内特制版Flash(虽然签名还是Adobe),不过好处是不会植入广告组件如独立安装Flash特别版(独立安装中文特别版flash Player会被系统安全软件直接屏蔽)。
  这种方案的好处是完全不用折腾,特别是对于浏览器主要用于访问国内互联网服务的朋友,几乎没有浏览器或使用习惯的适配和调整。当然,如果你的主浏览器是 Edge 或 Chrome,这个方案实际上是为系统额外安装了一个浏览器,并引入了潜在的浏览器广告弹窗等一系列隐私问题,并不适用于 macOS。用户(仅限 Windows 系统)。
  ▍ 使用开源替代品:Ruffle
  在 Adob​​e 宣布结束对 Flash 的支持后不久,开发人员推出了 Ruffle,这是该技术的开源替代品。
  Ruffle 是使用 Rust 编程语言构建的,本质上是一个 Flash Player 模拟器。它通过 WebAssembly 在浏览器上运行,运行时是浏览器扩展的形式——所以 Ruffle 也运行在沙箱中。与之前安装更多低级应用插件的做法相比,浏览器和操作系统受到了限制。影响也较小。
  目前,Ruffle 还处于持续开发阶段,因此尚未在各大浏览器的扩展商城上架。如果使用安装,需要在其GitHub[1]主页下载当前扩展编译包,手动运行。
  打开Chrome的扩展管理页面,勾选右上角的“开发者模式”,点击“加载解压的扩展”,选择之前解压过的Ruffle扩展包,就会进入浏览器的扩展栏。找到了Ruffle并开始了它。
<p>此时,您使用浏览器打开收录 Flash 内容的网页。此时,当前网页中的所有 Flash 元素都会变成一个播放按钮。单击播放以显示 Flash 内容。只是Ruffle目前对基于早期Flash技术(Flash Player 9之前)的内容支持较好,而对较新Flash技术的支持才刚刚开始,所以建议有老版本浏览需求的用户

解决方案:一般文章重定向到站外的路由器是怎么做的

网站优化优采云 发表了文章 • 0 个评论 • 73 次浏览 • 2022-09-22 00:02 • 来自相关话题

  解决方案:一般文章重定向到站外的路由器是怎么做的
  博客搜索引擎优化的内容主要包括标题、标签、图片、正文、描述、关键词、作者、网站结构等。以标题为例,关键词和标题上传网站后还需要抓取过来,重新用域名.解析到网站正文,一般文章重定向到站外的路由器抓取重定向页面的站内页面,以及百度搜狗谷歌搜索。
  如果你是指:给用户标注书签并且为用户推荐的话,因为书签的抓取是基于用户上网的行为,所以你要做的就是加入用户标注的书签,并且要对网站的定位明确,提升用户体验,然后通过正常的推荐算法,给用户一个合理的书签集,使得用户能够通过网站的推荐书签和你的推荐的标注的高度重合,达到一个良性循环,你的书签获取的越多,用户通过你的书签寻找资源的效率越高,你的网站就越有价值。
  
  1、以改善站内为主,
  2、推荐的策略:一般站内推荐主要靠两个渠道:1.用户常行为轨迹的推荐,比如在文章标题出现一些元素,包括但不限于标签,链接,网站结构等等,给用户推荐;2.网站/产品价值感的推荐,简单来说就是推荐站内与产品定位相关的相关性高的资源,比如app,
  
  3、在推荐策略上要注意,要抓住不同用户的喜好,但尽量不要偏差太大,
  4、在某一领域的资源掌握程度,站内时间久的或常行为轨迹多的,这个不用多说了,
  5、站内推荐策略要突出一点:一定要在自己擅长的领域,站内的短板也要突出,尽量关联度高,比如产品论坛,一般会被推荐文章。要做到每篇文章与用户关联性要高,如果不能一步到位,要给用户先推荐当前热度高的产品推荐策略有几个典型的例子:1.小米论坛2.豆瓣小组,就像小米上面用户都叫好的小米4手机推荐3.小红书4.腾讯微信文章推荐5.豆瓣小组推荐7.appstore发布新功能的时候推荐比如社区相关的,豆瓣的豆瓣时光小组,小红书的xx食谱发布,腾讯微信的微信互推。 查看全部

  解决方案:一般文章重定向到站外的路由器是怎么做的
  博客搜索引擎优化的内容主要包括标题、标签、图片、正文、描述、关键词、作者、网站结构等。以标题为例,关键词和标题上传网站后还需要抓取过来,重新用域名.解析到网站正文,一般文章重定向到站外的路由器抓取重定向页面的站内页面,以及百度搜狗谷歌搜索。
  如果你是指:给用户标注书签并且为用户推荐的话,因为书签的抓取是基于用户上网的行为,所以你要做的就是加入用户标注的书签,并且要对网站的定位明确,提升用户体验,然后通过正常的推荐算法,给用户一个合理的书签集,使得用户能够通过网站的推荐书签和你的推荐的标注的高度重合,达到一个良性循环,你的书签获取的越多,用户通过你的书签寻找资源的效率越高,你的网站就越有价值。
  
  1、以改善站内为主,
  2、推荐的策略:一般站内推荐主要靠两个渠道:1.用户常行为轨迹的推荐,比如在文章标题出现一些元素,包括但不限于标签,链接,网站结构等等,给用户推荐;2.网站/产品价值感的推荐,简单来说就是推荐站内与产品定位相关的相关性高的资源,比如app,
  
  3、在推荐策略上要注意,要抓住不同用户的喜好,但尽量不要偏差太大,
  4、在某一领域的资源掌握程度,站内时间久的或常行为轨迹多的,这个不用多说了,
  5、站内推荐策略要突出一点:一定要在自己擅长的领域,站内的短板也要突出,尽量关联度高,比如产品论坛,一般会被推荐文章。要做到每篇文章与用户关联性要高,如果不能一步到位,要给用户先推荐当前热度高的产品推荐策略有几个典型的例子:1.小米论坛2.豆瓣小组,就像小米上面用户都叫好的小米4手机推荐3.小红书4.腾讯微信文章推荐5.豆瓣小组推荐7.appstore发布新功能的时候推荐比如社区相关的,豆瓣的豆瓣时光小组,小红书的xx食谱发布,腾讯微信的微信互推。

博客搜索引擎优化,还可以做seo,写写seo博客

网站优化优采云 发表了文章 • 0 个评论 • 102 次浏览 • 2022-08-13 12:36 • 来自相关话题

  博客搜索引擎优化,还可以做seo,写写seo博客
  博客搜索引擎优化,还可以做seo,写写seo博客,如果你要做外链建议你如果是新手,你可以去我博客看看吧,
  我以前做过,写了两三篇文章,目前还是徒劳,不是没努力去做,而是没有可供参考的信息去寻找,那点流量,不足挂齿,与其换着花样去做,不如真正做好,是否认清一个道理,
  
  准备好作品,然后。不。写。字。
  有兴趣就要从实际行动开始,如果你对这个东西感兴趣并且有自己的干货心得经验那肯定要成为站长,不然就找机会学好下一步干什么,
  去装饰门户网站,大门户就去大平台的那种,一个人关键就是要有技术!这也算是入门了吧。写手是个很危险的职业,
  
  在家或者可以靠自己能力赚到钱的地方尝试写点东西吧,例如知乎,简书。国内seo方面网站不多,像百度文库什么的,就是白盒手段,很难写到厉害。也没必要去写,搜索引擎优化看重的是内容,只有写出独特的内容,对你来说才是出路,现在很多网站都是随便写写,点击量巨低。你可以尝试写写伪原创,等内容深厚了,再尝试seo进一步。
  跟着别人写就行,找跟你有共同爱好的,做相关内容。不要想着一个人做。
  tag要自己自定义,该加什么tag就加什么tag,网上的东西可以看看,但要学会总结分析。我就是想写点东西就写点东西,发发东西。结果传播量低的吓人。写东西真不容易啊,出了问题想要尽快解决也是会捉襟见肘的。好像在别人那发东西,动辄几百几千的阅读量,如果用心去做,粉丝量几百上千也不会像这样。写内容的人也是很苦逼的,不是每个人都有办法把自己的想法做成有人看有人转的内容。 查看全部

  博客搜索引擎优化,还可以做seo,写写seo博客
  博客搜索引擎优化,还可以做seo,写写seo博客,如果你要做外链建议你如果是新手,你可以去我博客看看吧,
  我以前做过,写了两三篇文章,目前还是徒劳,不是没努力去做,而是没有可供参考的信息去寻找,那点流量,不足挂齿,与其换着花样去做,不如真正做好,是否认清一个道理,
  
  准备好作品,然后。不。写。字。
  有兴趣就要从实际行动开始,如果你对这个东西感兴趣并且有自己的干货心得经验那肯定要成为站长,不然就找机会学好下一步干什么,
  去装饰门户网站,大门户就去大平台的那种,一个人关键就是要有技术!这也算是入门了吧。写手是个很危险的职业,
  
  在家或者可以靠自己能力赚到钱的地方尝试写点东西吧,例如知乎,简书。国内seo方面网站不多,像百度文库什么的,就是白盒手段,很难写到厉害。也没必要去写,搜索引擎优化看重的是内容,只有写出独特的内容,对你来说才是出路,现在很多网站都是随便写写,点击量巨低。你可以尝试写写伪原创,等内容深厚了,再尝试seo进一步。
  跟着别人写就行,找跟你有共同爱好的,做相关内容。不要想着一个人做。
  tag要自己自定义,该加什么tag就加什么tag,网上的东西可以看看,但要学会总结分析。我就是想写点东西就写点东西,发发东西。结果传播量低的吓人。写东西真不容易啊,出了问题想要尽快解决也是会捉襟见肘的。好像在别人那发东西,动辄几百几千的阅读量,如果用心去做,粉丝量几百上千也不会像这样。写内容的人也是很苦逼的,不是每个人都有办法把自己的想法做成有人看有人转的内容。

博客搜索引擎优化可能有很多事情可以做但可能不全面

网站优化优采云 发表了文章 • 0 个评论 • 100 次浏览 • 2022-08-08 14:03 • 来自相关话题

  博客搜索引擎优化可能有很多事情可以做但可能不全面
  博客搜索引擎优化可能有很多事情可以做但可能不全面,你需要专业的技术。新闻网站?你搞新闻的基本要求还是需要的。可以考虑以seo为主进行产品营销,不一定就是学习新闻。
  
  除非你搞品牌关键词,否则我不认为你的产品的关键词一定是好的,我们从新闻学的角度应该尽量挖掘好的关键词。
  如果有实力,能申请第三方资源的话建议可以转行。
  
  现在的市场主要流行两个类型的产品:1,医疗2,教育今天我就以教育类关键词来举例分析一下,我主要从搜索引擎下面的相关搜索下拉框和搜索引擎的结果页的推荐来分析,这是我根据百度竞价产品推荐的,这些结果的好坏,好不好都取决于这个关键词自身的质量。比如下面这种关键词a:小学女生英语拼写练习a1a2。如果你的英语程度不是很好,且单词发音有错误,即使你单词拼写再规范,也一样没有效果,因为这个关键词自身质量不高。
  通过全面的分析,找到这个关键词再对关键词进行排名优化,会收到意想不到的效果。正确用词有:a1bcdefg。因为之前网站没有着陆页,这个词是没有效果的,但是我建议老板做权重比较高的词做长尾关键词。高关键词才是高质量的关键词,平时建议大家精选高关键词去优化。
  本人以前是市场公关公司的市场顾问,做培训的线下培训做销售,以及网络培训,2个月时间从20万做到150万,目前还是2线城市,一个月30-40万。如果需要具体方案的可以私信,销售额超过200万的都有,百度竞价排名投放也是一个关键。 查看全部

  博客搜索引擎优化可能有很多事情可以做但可能不全面
  博客搜索引擎优化可能有很多事情可以做但可能不全面,你需要专业的技术。新闻网站?你搞新闻的基本要求还是需要的。可以考虑以seo为主进行产品营销,不一定就是学习新闻。
  
  除非你搞品牌关键词,否则我不认为你的产品的关键词一定是好的,我们从新闻学的角度应该尽量挖掘好的关键词。
  如果有实力,能申请第三方资源的话建议可以转行。
  
  现在的市场主要流行两个类型的产品:1,医疗2,教育今天我就以教育类关键词来举例分析一下,我主要从搜索引擎下面的相关搜索下拉框和搜索引擎的结果页的推荐来分析,这是我根据百度竞价产品推荐的,这些结果的好坏,好不好都取决于这个关键词自身的质量。比如下面这种关键词a:小学女生英语拼写练习a1a2。如果你的英语程度不是很好,且单词发音有错误,即使你单词拼写再规范,也一样没有效果,因为这个关键词自身质量不高。
  通过全面的分析,找到这个关键词再对关键词进行排名优化,会收到意想不到的效果。正确用词有:a1bcdefg。因为之前网站没有着陆页,这个词是没有效果的,但是我建议老板做权重比较高的词做长尾关键词。高关键词才是高质量的关键词,平时建议大家精选高关键词去优化。
  本人以前是市场公关公司的市场顾问,做培训的线下培训做销售,以及网络培训,2个月时间从20万做到150万,目前还是2线城市,一个月30-40万。如果需要具体方案的可以私信,销售额超过200万的都有,百度竞价排名投放也是一个关键。

网站刚开始建设之初,该注意哪些呢??

网站优化优采云 发表了文章 • 0 个评论 • 80 次浏览 • 2022-08-03 12:04 • 来自相关话题

  网站刚开始建设之初,该注意哪些呢??
  博客搜索引擎优化或许是近些年才出现的新名词,它又是什么意思呢?日常生活中,我们用网站的大多数是在百度上搜索,可是为什么我们的网站没有排名,反而搜索引擎会给予我们很多搜索结果?这一切都要回溯到一个网站的建立之初。对于做互联网项目的企业,不管是域名空间还是程序代码等,万事都不容易,也是网站网站建设开发最耗时和最重要的基础。
  
  从网站域名到域名空间,从程序代码到网站,需要一步步进行,对于企业来说更是如此。今天我们就来说一说网站刚开始建设之初,该要注意哪些。关键词优化对于大多数的网站来说,每个页面的关键词定位一般都比较精准。但是对于国内域名空间来说,这就是最基本的问题。如果你在百度或者seo联盟优化域名空间中搜索关键词,要注意的是域名空间的某些关键词要和你要建设的网站的主关键词相一致。
  而对于国内的一些域名空间,在利用这些域名建设网站之初,一定要做一些持续性的优化工作,提升这些域名空间的关键词排名。关键词优化对于大多数的网站来说,关键词就是搜索引擎搜索结果第一页的词,所以一个网站的关键词一定要选对。如果域名空间的网站与第一页网站的主关键词重合,那么你就不要继续往下分词,直接把主关键词放到首页,效果将会更好。
  
  网站关键词优化一般来说有以下几个标准:“竞争大的核心词优化,竞争小的长尾词优化”。核心词和长尾词中虽然平行排列,但是一定要使用alt标签来帮助你来分割这些长尾词。关键词优化做不好,很可能是因为在域名空间建设期间缺少这些工作,在将关键词优化到第一页之后并没有获得长尾词得关键词优化技巧。另外,尽量多给网站做一些关键词的优化,这样可以确保你的网站能够获得更多的搜索结果,关键词优化之后也有利于你对网站进行tdk优化。
  根据网站的结构进行关键词优化tdk是一种网站结构化的优化关键词结构化的关键词数据库,通过对网站的关键词的数据分析,并提取对网站来说最需要的关键词,可以有效的提高网站的权重和收录等等。网站的主关键词和长尾关键词放在一个文件内,不能按照搜索引擎对于重要程度的排序进行优化。每个网站的结构都是各不相同,我们在做网站时要考虑到建设的完整性,再去考虑后期我们的关键词不易被搜索引擎发现。 查看全部

  网站刚开始建设之初,该注意哪些呢??
  博客搜索引擎优化或许是近些年才出现的新名词,它又是什么意思呢?日常生活中,我们用网站的大多数是在百度上搜索,可是为什么我们的网站没有排名,反而搜索引擎会给予我们很多搜索结果?这一切都要回溯到一个网站的建立之初。对于做互联网项目的企业,不管是域名空间还是程序代码等,万事都不容易,也是网站网站建设开发最耗时和最重要的基础。
  
  从网站域名到域名空间,从程序代码到网站,需要一步步进行,对于企业来说更是如此。今天我们就来说一说网站刚开始建设之初,该要注意哪些。关键词优化对于大多数的网站来说,每个页面的关键词定位一般都比较精准。但是对于国内域名空间来说,这就是最基本的问题。如果你在百度或者seo联盟优化域名空间中搜索关键词,要注意的是域名空间的某些关键词要和你要建设的网站的主关键词相一致。
  而对于国内的一些域名空间,在利用这些域名建设网站之初,一定要做一些持续性的优化工作,提升这些域名空间的关键词排名。关键词优化对于大多数的网站来说,关键词就是搜索引擎搜索结果第一页的词,所以一个网站的关键词一定要选对。如果域名空间的网站与第一页网站的主关键词重合,那么你就不要继续往下分词,直接把主关键词放到首页,效果将会更好。
  
  网站关键词优化一般来说有以下几个标准:“竞争大的核心词优化,竞争小的长尾词优化”。核心词和长尾词中虽然平行排列,但是一定要使用alt标签来帮助你来分割这些长尾词。关键词优化做不好,很可能是因为在域名空间建设期间缺少这些工作,在将关键词优化到第一页之后并没有获得长尾词得关键词优化技巧。另外,尽量多给网站做一些关键词的优化,这样可以确保你的网站能够获得更多的搜索结果,关键词优化之后也有利于你对网站进行tdk优化。
  根据网站的结构进行关键词优化tdk是一种网站结构化的优化关键词结构化的关键词数据库,通过对网站的关键词的数据分析,并提取对网站来说最需要的关键词,可以有效的提高网站的权重和收录等等。网站的主关键词和长尾关键词放在一个文件内,不能按照搜索引擎对于重要程度的排序进行优化。每个网站的结构都是各不相同,我们在做网站时要考虑到建设的完整性,再去考虑后期我们的关键词不易被搜索引擎发现。

博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示

网站优化优采云 发表了文章 • 0 个评论 • 127 次浏览 • 2022-07-29 17:01 • 来自相关话题

  博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示
  博客搜索引擎优化或者inurlsearch。
  我是做seo的,就是类似网页排名之类的东西,不过我要负责一个游戏网站,但是网站也是做的比较好了,游戏类目也很多,不知道您是什么方面的。seo做久了之后就很明显了,每天主要的精力是想办法让更多人进来,如果你不信的话,可以像我一样,在提交站点前先注册个号。
  
  两种情况:一种是真实用户,一种是托。这两种情况中,优化托是最好的,优化托能让有实力的提交者留存下来,老熟人提交者可以轻松放到后面,其他提交者可以直接被当次提交者替换掉。另外,所有提交者都有成为幸运exp的可能,好运的话,他们也会被重点提醒;而所有提交者都会有可能成为被诅咒的对象。
  做好优化的话,可以通过站长平台内的“网站发帖”功能。
  选择权多在自己手里,可以把提交托管给好友。也可以自己做,自己作为推广者为该网站推广,而通过其他推广者推广即可获得相应提成。
  
  凡是有网站的人都需要排名吧,seo专业人员来说,收录或者权重差了,
  线下尽力寻找帮助,是让自己更成功的最快方法;线上就需要你积极。
  对网站进行优化来增加网站展示的机会提高用户的体验度增加网站的真实性另外还要找到一些靠谱专业的人去帮你排名让你更快的赚钱 查看全部

  博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示
  博客搜索引擎优化或者inurlsearch。
  我是做seo的,就是类似网页排名之类的东西,不过我要负责一个游戏网站,但是网站也是做的比较好了,游戏类目也很多,不知道您是什么方面的。seo做久了之后就很明显了,每天主要的精力是想办法让更多人进来,如果你不信的话,可以像我一样,在提交站点前先注册个号。
  
  两种情况:一种是真实用户,一种是托。这两种情况中,优化托是最好的,优化托能让有实力的提交者留存下来,老熟人提交者可以轻松放到后面,其他提交者可以直接被当次提交者替换掉。另外,所有提交者都有成为幸运exp的可能,好运的话,他们也会被重点提醒;而所有提交者都会有可能成为被诅咒的对象。
  做好优化的话,可以通过站长平台内的“网站发帖”功能。
  选择权多在自己手里,可以把提交托管给好友。也可以自己做,自己作为推广者为该网站推广,而通过其他推广者推广即可获得相应提成。
  
  凡是有网站的人都需要排名吧,seo专业人员来说,收录或者权重差了,
  线下尽力寻找帮助,是让自己更成功的最快方法;线上就需要你积极。
  对网站进行优化来增加网站展示的机会提高用户的体验度增加网站的真实性另外还要找到一些靠谱专业的人去帮你排名让你更快的赚钱

博客搜索引擎优化和知乎相比在质量上远远不及

网站优化优采云 发表了文章 • 0 个评论 • 104 次浏览 • 2022-07-27 20:01 • 来自相关话题

  博客搜索引擎优化和知乎相比在质量上远远不及
  
  博客搜索引擎优化和知乎相比在质量上远远不及,这里也有一些错误,首先写论文就要把论文质量抓的很高,高质量论文到时是绝对容易过的,没过的比每天发200个软文的实验室还多。正规期刊杂志用vc6吧,比如机械工程软件可以用vc5.0.而知乎呢?用vc6.1版本就是最低要求了,百度也是必须用vc6.1.个人感觉vc5已经足够了!补充一句,可能有人说知乎的流量也够大了,也够知名,为什么说vc6.1是必须,因为vc6.1用的是符合ei的大数据方法,可以大数据指标比较,规避ei查重和风险,现在vc6.1也能再升级一个版本,到vc6.5或者vc6.6,好像是vc5.0没有增加强制指标。
  
  有人说现在发文章是看质量,其实不然,看大数据指标啊,比如先做一个大数据网站,ei和sci一起审,看看哪篇文章更加好!大数据方法现在citespace也能实现了,最近还有bigdataanalysisineconomics这本书里面也有讲到这个,不过大数据指标现在没有那么全面了。祝你好运吧!。
  针对你第一个问题,现在发文章,都要求是scientificreports和engineeringwork,但这些期刊发表难度并不大,一般都是在大学里通过学生竞赛(竞争非常激烈)或者老师推荐。第二个问题,如果没有sci、ei数据库接收,有很多学术会议论文,但你发的要求是必须发表的话,只能申请oraldissertation。文章一般都要求有数据库接收链接,你如果英文还可以可以多看看国外数据库,不一定需要发过来。 查看全部

  博客搜索引擎优化和知乎相比在质量上远远不及
  
  博客搜索引擎优化和知乎相比在质量上远远不及,这里也有一些错误,首先写论文就要把论文质量抓的很高,高质量论文到时是绝对容易过的,没过的比每天发200个软文的实验室还多。正规期刊杂志用vc6吧,比如机械工程软件可以用vc5.0.而知乎呢?用vc6.1版本就是最低要求了,百度也是必须用vc6.1.个人感觉vc5已经足够了!补充一句,可能有人说知乎的流量也够大了,也够知名,为什么说vc6.1是必须,因为vc6.1用的是符合ei的大数据方法,可以大数据指标比较,规避ei查重和风险,现在vc6.1也能再升级一个版本,到vc6.5或者vc6.6,好像是vc5.0没有增加强制指标。
  
  有人说现在发文章是看质量,其实不然,看大数据指标啊,比如先做一个大数据网站,ei和sci一起审,看看哪篇文章更加好!大数据方法现在citespace也能实现了,最近还有bigdataanalysisineconomics这本书里面也有讲到这个,不过大数据指标现在没有那么全面了。祝你好运吧!。
  针对你第一个问题,现在发文章,都要求是scientificreports和engineeringwork,但这些期刊发表难度并不大,一般都是在大学里通过学生竞赛(竞争非常激烈)或者老师推荐。第二个问题,如果没有sci、ei数据库接收,有很多学术会议论文,但你发的要求是必须发表的话,只能申请oraldissertation。文章一般都要求有数据库接收链接,你如果英文还可以可以多看看国外数据库,不一定需要发过来。

博客搜索引擎优化流量占据站长平台95%,你知道吗?

网站优化优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2022-06-24 21:06 • 来自相关话题

  博客搜索引擎优化流量占据站长平台95%,你知道吗?
  博客搜索引擎优化就是所有做网站的或是广告投放的人都要熟悉的东西。不管是搜索引擎还是站长平台,都需要去写博客,发东西。目前搜索引擎优化流量占据站长平台95%。分析网站访问趋势,站长平台是大部分站长去投放广告的首选平台。因为站长的存在,可以说方便了不少站长。网站代码是否有问题,页面优化有没有做好等等。需要一个人去写博客,需要一个人去优化。
  对于那些可以接受个人投放广告的站长来说,还是值得尝试的。至于那些做广告的普通站长来说,还是不建议这样。而是去做你的博客更好。当然,好好学习博客结构,分段化布局。把seo优化做得更好就更好了。还有,现在站长投放广告越来越贵,很多新站长会选择付费广告。一般会找两种广告,一种是博客代发,一种是独立广告。博客要学会去写技术博客,在文章中融入关键词,和地方干货,传递流量,才是最重要的。广告不在于多,投入的资金要控制在一定范围内,不是说多了就好,而是说适合自己的才好。
  最近发现网上的精品博客大全还蛮多的,一搜就能搜到。首先要学会搜索,进入一个你喜欢的网站。比如你喜欢长尾词,就可以搜索这个词的精品博客。或者搜索你想要的博客类型。选择一些你可以发布的技术博客,然后按照这个类型,顺着筛选下去。有一些质量不是很高的也有吧,但是大部分都是质量比较高的。慢慢寻找也比较方便,基本你会找到比较多,比较好的博客。
  此外想要提高的是,打造一个简洁干净的简历。这样很方便就看完了,让别人不想退出去,这样内容也容易打理。内容收集对比一下别人的简历,肯定不是同一套的。但是也得有个思路。可以互相对比下差别,然后可以修改下他的简历,相对来说更好看些。现在很多博客平台已经给出了功能,写博客也不是难事。坚持写,不断迭代产品,优化,做好推广,就能有不错的效果。 查看全部

  博客搜索引擎优化流量占据站长平台95%,你知道吗?
  博客搜索引擎优化就是所有做网站的或是广告投放的人都要熟悉的东西。不管是搜索引擎还是站长平台,都需要去写博客,发东西。目前搜索引擎优化流量占据站长平台95%。分析网站访问趋势,站长平台是大部分站长去投放广告的首选平台。因为站长的存在,可以说方便了不少站长。网站代码是否有问题,页面优化有没有做好等等。需要一个人去写博客,需要一个人去优化。
  对于那些可以接受个人投放广告的站长来说,还是值得尝试的。至于那些做广告的普通站长来说,还是不建议这样。而是去做你的博客更好。当然,好好学习博客结构,分段化布局。把seo优化做得更好就更好了。还有,现在站长投放广告越来越贵,很多新站长会选择付费广告。一般会找两种广告,一种是博客代发,一种是独立广告。博客要学会去写技术博客,在文章中融入关键词,和地方干货,传递流量,才是最重要的。广告不在于多,投入的资金要控制在一定范围内,不是说多了就好,而是说适合自己的才好。
  最近发现网上的精品博客大全还蛮多的,一搜就能搜到。首先要学会搜索,进入一个你喜欢的网站。比如你喜欢长尾词,就可以搜索这个词的精品博客。或者搜索你想要的博客类型。选择一些你可以发布的技术博客,然后按照这个类型,顺着筛选下去。有一些质量不是很高的也有吧,但是大部分都是质量比较高的。慢慢寻找也比较方便,基本你会找到比较多,比较好的博客。
  此外想要提高的是,打造一个简洁干净的简历。这样很方便就看完了,让别人不想退出去,这样内容也容易打理。内容收集对比一下别人的简历,肯定不是同一套的。但是也得有个思路。可以互相对比下差别,然后可以修改下他的简历,相对来说更好看些。现在很多博客平台已经给出了功能,写博客也不是难事。坚持写,不断迭代产品,优化,做好推广,就能有不错的效果。

VuePress 博客优化之开启 Algolia 全文搜索

网站优化优采云 发表了文章 • 0 个评论 • 101 次浏览 • 2022-06-23 06:38 • 来自相关话题

  VuePress 博客优化之开启 Algolia 全文搜索
  前言
  在《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档。
  文档链接:
  由于 VuePress 的内置搜索只会为页面的标题、h2 、 h3 以及 tags 构建搜索索引。如果你需要全文搜索,可则以使用 Algolia 搜索,本篇讲讲如何申请以及配置 Algolia 搜索。
  Algolia
  Algolia 是一个数据库实时搜索服务,能够提供毫秒级的数据库搜索服务,并且其服务能以 API 的形式方便地布局到网页、客户端、APP 等多种场景。
  像 VuePress 官方文档就是使用的 Algolia 搜索,使用 Algolia 搜索最大的好处就是方便,它会自动爬取网站的页面内容并构建索引,你只用申请一个 Algolia 服务,在网站上添加一些代码,就像添加统计代码一样,然后就可以实现一个全文搜索功能:
  
  申请
  搜索服务申请地址:
  打开后填写地址、邮箱和仓库地址等信息,这里注意,网站需要是公开可访问的:
  填写完后,等待一段时间(我等了三天),如果申请通过,我们就会收到邮件:
  
  此时需要回复邮件,告诉自己就是网站的维护者,并且可以修改代码:
  然后第二天就会收到包含 AppId 等所需信息的邮件:
  默认主题
  如果你用的是 VuePress 的默认主题,VuePress 直接提供了
  themeConfig.algolia选项来用 Algolia 搜索替换内置的搜索框:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />// .vuepress/config.js<br />module.exports = {<br />  themeConfig: {<br />    algolia: {<br />      apiKey: '',<br />      indexName: ''<br />      // 如果 Algolia 没有为你提供 `appId` ,使用 `BH4D9OD16A` 或者移除该配置项<br />      appId: '',<br />    }<br />  }<br />}<br /></p>
  你只用如此简单的配置即可实现全文搜索:
  
  搜索为空
  如果你搜任何数据,都显示搜索不到数据,那很可能是爬取的数据有问题,我们登陆
  打开管理后台,点击左侧选项栏里的 Search,查看对应的 indexName 数据,如果 Browse 这里没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的 Records:
  
  如果没有数据,那我们就查下爬取的逻辑,打开爬虫后台:,点击对应 indexName 进入后台:
  
  如果显示成功爬取,也有 Monitoring Success 的数据,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题,点击左侧选项栏中的 Editor,查看具体的爬虫逻辑:
  像 pathsToMatch 这里如果是**,但你的网址都是[**](**)开头的,那这里大概就是会提取错误,修改一下,然后点击右侧的数据进行测试:
  如果能像这样提取到数据,就说明没有什么问题了,点击右上角的Save,然后切换回 Overview,点击右上角的 Restart crawling,我们重新爬取一下数据:
  
  如果 Records 这里有数据,那搜索的时候基本也会有数据了。
  其他主题
  如果你用的不是 VuePress 的默认主题,就比如我用的是 vuepress-theme-reco,它的搜索栏是自己实现的,所以添加上述的配置是不会有效果的,这个时候就需要遵照邮件中的方法,手动添加 CSS 和 JavaScript 文件,然后在加载完毕的时候调用提供的 API。
  我们需要先修改下config.js:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />module.exports = {<br />    head: [<br />      [<br />        'link', { href: "https://cdn.jsdelivr.net/npm/% ... ot%3B, rel: "stylesheet" }<br />      ],<br />      [<br />        'script', { src: "https://cdn.jsdelivr.net/npm/% ... ot%3B }<br />      ]<br />    ]<br />}<br /></p>
  然后修改.vuepress/enhanceApp.js文件:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />export default ({ router, Vue, isServer }) => {<br />  Vue.mixin({<br />    mounted() {<br />      // 不加 setTimeout 会有报错,但不影响效果<br />      setTimeout(() => {<br />        try {<br />          docsearch({<br />            appId: "43GX903BPS",<br />            apiKey: "feff649032d8034cf2a636ef55d96054",<br />            indexName: "ts-yayujs",<br />            container: '.search-box',<br />            debug: false<br />          });<br />        } catch(e) {<br />          console.log(e);<br />        }<br />      }, 100)<br />    },<br />  });<br />};<br /></p>
  注意其中的 container,参考 docsearch 的官方仓库,这里提供的不是 input 输入框的选择器,而是一个挂载节点,比如 div 的选择器。
  此时展示效果如下:
  
  样式跟现有的主题有些不统一,不过没关系,我们可以修改 .vuepress/styles/index.styl覆盖目前的样式,比如我的修改代码为:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />.search-box .DocSearch.DocSearch-Button {<br />    cursor: text;<br />    width: 10rem;<br />    height: 2rem;<br />    color: #5b5b5b;<br />    border: 1px solid var(--border-color);<br />    border-radius: 0.25rem;<br />    font-size: 0.9rem;<br />    padding: 0 0.5rem 0 0rem;<br />    outline: none;<br />    transition: all 0.2s ease;<br />    background: transparent;<br />    background-size: 1rem;<br />}<br /><br />.search-box .DocSearch-Button-Container {<br />    margin-left: 0.4rem;<br />}<br /><br />.search-box .DocSearch-Button .DocSearch-Search-Icon {<br />    width: 16px;<br />    height: 16px;<br />    position: relative;<br />    top: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Placeholder {<br />    font-size: 0.8rem;<br />}<br /><br />.search-box .DocSearch-Button-Keys {<br />    position: absolute;<br />    right: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Key {<br />    font-size: 12px;<br />    line-height: 20px;<br />}<br /></p>
  最终使用的效果如下:
  
  如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。
  点击左下角阅读原文,到SegmentFault 思否社区和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台“回复“入群”即可加入我们的技术交流群,收获更多的技术文章~
  -END -
   查看全部

  VuePress 博客优化之开启 Algolia 全文搜索
  前言
  在《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档。
  文档链接:
  由于 VuePress 的内置搜索只会为页面的标题、h2 、 h3 以及 tags 构建搜索索引。如果你需要全文搜索,可则以使用 Algolia 搜索,本篇讲讲如何申请以及配置 Algolia 搜索。
  Algolia
  Algolia 是一个数据库实时搜索服务,能够提供毫秒级的数据库搜索服务,并且其服务能以 API 的形式方便地布局到网页、客户端、APP 等多种场景。
  像 VuePress 官方文档就是使用的 Algolia 搜索,使用 Algolia 搜索最大的好处就是方便,它会自动爬取网站的页面内容并构建索引,你只用申请一个 Algolia 服务,在网站上添加一些代码,就像添加统计代码一样,然后就可以实现一个全文搜索功能:
  
  申请
  搜索服务申请地址:
  打开后填写地址、邮箱和仓库地址等信息,这里注意,网站需要是公开可访问的:
  填写完后,等待一段时间(我等了三天),如果申请通过,我们就会收到邮件:
  
  此时需要回复邮件,告诉自己就是网站的维护者,并且可以修改代码:
  然后第二天就会收到包含 AppId 等所需信息的邮件:
  默认主题
  如果你用的是 VuePress 的默认主题,VuePress 直接提供了
  themeConfig.algolia选项来用 Algolia 搜索替换内置的搜索框:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />// .vuepress/config.js<br />module.exports = {<br />  themeConfig: {<br />    algolia: {<br />      apiKey: '',<br />      indexName: ''<br />      // 如果 Algolia 没有为你提供 `appId` ,使用 `BH4D9OD16A` 或者移除该配置项<br />      appId: '',<br />    }<br />  }<br />}<br /></p>
  你只用如此简单的配置即可实现全文搜索:
  
  搜索为空
  如果你搜任何数据,都显示搜索不到数据,那很可能是爬取的数据有问题,我们登陆
  打开管理后台,点击左侧选项栏里的 Search,查看对应的 indexName 数据,如果 Browse 这里没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的 Records:
  
  如果没有数据,那我们就查下爬取的逻辑,打开爬虫后台:,点击对应 indexName 进入后台:
  
  如果显示成功爬取,也有 Monitoring Success 的数据,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题,点击左侧选项栏中的 Editor,查看具体的爬虫逻辑:
  像 pathsToMatch 这里如果是**,但你的网址都是[**](**)开头的,那这里大概就是会提取错误,修改一下,然后点击右侧的数据进行测试:
  如果能像这样提取到数据,就说明没有什么问题了,点击右上角的Save,然后切换回 Overview,点击右上角的 Restart crawling,我们重新爬取一下数据:
  
  如果 Records 这里有数据,那搜索的时候基本也会有数据了。
  其他主题
  如果你用的不是 VuePress 的默认主题,就比如我用的是 vuepress-theme-reco,它的搜索栏是自己实现的,所以添加上述的配置是不会有效果的,这个时候就需要遵照邮件中的方法,手动添加 CSS 和 JavaScript 文件,然后在加载完毕的时候调用提供的 API。
  我们需要先修改下config.js:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />module.exports = {<br />    head: [<br />      [<br />        'link', { href: "https://cdn.jsdelivr.net/npm/% ... ot%3B, rel: "stylesheet" }<br />      ],<br />      [<br />        'script', { src: "https://cdn.jsdelivr.net/npm/% ... ot%3B }<br />      ]<br />    ]<br />}<br /></p>
  然后修改.vuepress/enhanceApp.js文件:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />export default ({ router, Vue, isServer }) => {<br />  Vue.mixin({<br />    mounted() {<br />      // 不加 setTimeout 会有报错,但不影响效果<br />      setTimeout(() => {<br />        try {<br />          docsearch({<br />            appId: "43GX903BPS",<br />            apiKey: "feff649032d8034cf2a636ef55d96054",<br />            indexName: "ts-yayujs",<br />            container: '.search-box',<br />            debug: false<br />          });<br />        } catch(e) {<br />          console.log(e);<br />        }<br />      }, 100)<br />    },<br />  });<br />};<br /></p>
  注意其中的 container,参考 docsearch 的官方仓库,这里提供的不是 input 输入框的选择器,而是一个挂载节点,比如 div 的选择器。
  此时展示效果如下:
  
  样式跟现有的主题有些不统一,不过没关系,我们可以修改 .vuepress/styles/index.styl覆盖目前的样式,比如我的修改代码为:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />.search-box .DocSearch.DocSearch-Button {<br />    cursor: text;<br />    width: 10rem;<br />    height: 2rem;<br />    color: #5b5b5b;<br />    border: 1px solid var(--border-color);<br />    border-radius: 0.25rem;<br />    font-size: 0.9rem;<br />    padding: 0 0.5rem 0 0rem;<br />    outline: none;<br />    transition: all 0.2s ease;<br />    background: transparent;<br />    background-size: 1rem;<br />}<br /><br />.search-box .DocSearch-Button-Container {<br />    margin-left: 0.4rem;<br />}<br /><br />.search-box .DocSearch-Button .DocSearch-Search-Icon {<br />    width: 16px;<br />    height: 16px;<br />    position: relative;<br />    top: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Placeholder {<br />    font-size: 0.8rem;<br />}<br /><br />.search-box .DocSearch-Button-Keys {<br />    position: absolute;<br />    right: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Key {<br />    font-size: 12px;<br />    line-height: 20px;<br />}<br /></p>
  最终使用的效果如下:
  
  如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。
  点击左下角阅读原文,到SegmentFault 思否社区和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台“回复“入群”即可加入我们的技术交流群,收获更多的技术文章~
  -END -
  

博客搜索引擎优化助手-最专业的网站seo工具箱

网站优化优采云 发表了文章 • 0 个评论 • 117 次浏览 • 2022-06-11 13:05 • 来自相关话题

  博客搜索引擎优化助手-最专业的网站seo工具箱
  博客搜索引擎优化是一个提高网站排名的一项技术,包括提高网站的文章和链接,以及友情链接。其中的友情链接对于搜索引擎来说也是非常重要的,尽量不要买仿冒品,比如你做教育行业的,尽量把一些大学的网站链接列入友情链接列表里,这样被蜘蛛抓取到就会带来更多的流量。这里推荐友情链接5118工具箱,5118网站优化助手-最专业的网站seo平台。
  1.目前建议百度提交到搜狗可以解决,当百度入口较差的时候,这是比较好的方式。2.新浪博客发文以及转载的时候,在原博客的评论里留有微信二维码或者公众号,是比较合适的方式,可以直接推广3.其它的地方可以利用seo+流量站发文,但是大多数博主并不收录甚至不支持推广。所以这是比较麻烦的事。
  没有花钱买的一些做竞价推广方式,在网站内容优化上,不让百度蜘蛛直接抓取,而是加一些文字上的链接,不过这个样子,这部分需要长期坚持,
  百度的adwords是可以做到很好的宣传效果的,例如npc过程啊,npc工艺流程(adroute)啊,其实都是很好的一些过程,就是价格贵,推广成本高,所以我一般都是配合其他工具一起用,只是上新工具很方便,但是可能上手难度有点高吧,外链推广,不过效果好像就不像竞价那么明显,就是难像付费推广一样看量。友情链接推广,也就是老带新,其实也有很多效果不错的,比如那种在原先网站留下链接,重新发布新的网站上新,外部链接这些好像都可以吧。
  seo推广,adwords只能靠量取胜,其他的比如qq,微信这些方式,量都很低,友情链接可以推一个,毕竟朋友关系都是靠友情撑起来的,外部链接比友情链接推广,有点效果。不过效果不好这也不错啊,用好seo推广,比用其他推广方式要好,友情链接和qq,微信这些,都只是增加点与网站的友情,推广效果不会很好。百度的地位也不容易撼动的。 查看全部

  博客搜索引擎优化助手-最专业的网站seo工具箱
  博客搜索引擎优化是一个提高网站排名的一项技术,包括提高网站的文章和链接,以及友情链接。其中的友情链接对于搜索引擎来说也是非常重要的,尽量不要买仿冒品,比如你做教育行业的,尽量把一些大学的网站链接列入友情链接列表里,这样被蜘蛛抓取到就会带来更多的流量。这里推荐友情链接5118工具箱,5118网站优化助手-最专业的网站seo平台。
  1.目前建议百度提交到搜狗可以解决,当百度入口较差的时候,这是比较好的方式。2.新浪博客发文以及转载的时候,在原博客的评论里留有微信二维码或者公众号,是比较合适的方式,可以直接推广3.其它的地方可以利用seo+流量站发文,但是大多数博主并不收录甚至不支持推广。所以这是比较麻烦的事。
  没有花钱买的一些做竞价推广方式,在网站内容优化上,不让百度蜘蛛直接抓取,而是加一些文字上的链接,不过这个样子,这部分需要长期坚持,
  百度的adwords是可以做到很好的宣传效果的,例如npc过程啊,npc工艺流程(adroute)啊,其实都是很好的一些过程,就是价格贵,推广成本高,所以我一般都是配合其他工具一起用,只是上新工具很方便,但是可能上手难度有点高吧,外链推广,不过效果好像就不像竞价那么明显,就是难像付费推广一样看量。友情链接推广,也就是老带新,其实也有很多效果不错的,比如那种在原先网站留下链接,重新发布新的网站上新,外部链接这些好像都可以吧。
  seo推广,adwords只能靠量取胜,其他的比如qq,微信这些方式,量都很低,友情链接可以推一个,毕竟朋友关系都是靠友情撑起来的,外部链接比友情链接推广,有点效果。不过效果不好这也不错啊,用好seo推广,比用其他推广方式要好,友情链接和qq,微信这些,都只是增加点与网站的友情,推广效果不会很好。百度的地位也不容易撼动的。

公众号搜索排名优化

网站优化优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2022-06-02 03:41 • 来自相关话题

  公众号搜索排名优化
  1:公众号的seo知识公众号搜索排名优化公众号是一个非常好的seo工具,它可以帮助你的网站在搜索引擎中获得更高的排名。公众号的seo有两个主要方面:一是公众号的内容,如果你的公众号中有好的内容,这将有助于你的网站在搜索引擎中获得更高的排名。二是公众号中连接到你网站的内容。如果你在公众号中连接到你的网站,这将有助于你的网站获得更高的权重。因此,如果你想要让你的网站在搜索引擎中获得更高的权重,就应该注意公众号上内容和外部链接。2:公众号搜索引擎优化在这个时代,越来越多的人使用公众号来进行信息的搜索。那么如何才能让自己的公众号排名更靠前呢?对于公众号而言,有一个很重要的因素就是内容。如果你的公众号里面的内容不好,人们是不会愿意关注你的。所以,第一步就是要让自己的公众号里面有好的内容。第二步就是多发布内容。这样才能增加你公众号里面的信息量,吸引更多人来关注你。第三步就是要做好SEO。这样才能让你的公众号在搜索引擎上更加靠前,人们也就能够更容易找到你。总之,想要在公众号搜索排名中得到好的成绩,就必须要做到以上这三点。努力吧,相信自己一定能够成功。3:如何提高公众号搜索引擎的排名如何提高公众号搜索引擎的排名?公众号搜索引擎优化(SEO)是一门艺术,需要考虑到很多因素。本文将介绍三个重要的技巧,帮助你在公众号搜索中脱颖而出。首先,你需要确保你的公众号名称包含关键词。这样做的目的是让搜索引擎能够更加容易地找到你的公众号。例如,如果你的公众号是“时尚女性”,你应该考虑将其命名为“时尚女性-时尚服装、化妆品、生活方式”。这样做能够显著增加你在相关关键词上的搜索结果数量。此外,还有一些高级的SEO 技巧可以帮助你进一步增加公众号的被发现性。例如,通过使用“文章标题”、“相关话题”或者“站内链接”来丰富你的文章内容。这样做能够帮助你的文章在用户在微信中进行相关词条或者话题的搜索时能够获得更好的展示。最后,别忘了分享! 如今,微信用户已经越来越倾向于通过朋友圈、微博或者群来分享感兴趣的内容,所以,一定要利用好这些平台来宣传自己的内容!通过执行上述三步,你一定能在人们通过微信对相应内容进行搜 索时提升自己电子书、博客或者公众号 等内容物 的 排 名 。
   查看全部

  公众号搜索排名优化
  1:公众号的seo知识公众号搜索排名优化公众号是一个非常好的seo工具,它可以帮助你的网站在搜索引擎中获得更高的排名。公众号的seo有两个主要方面:一是公众号的内容,如果你的公众号中有好的内容,这将有助于你的网站在搜索引擎中获得更高的排名。二是公众号中连接到你网站的内容。如果你在公众号中连接到你的网站,这将有助于你的网站获得更高的权重。因此,如果你想要让你的网站在搜索引擎中获得更高的权重,就应该注意公众号上内容和外部链接。2:公众号搜索引擎优化在这个时代,越来越多的人使用公众号来进行信息的搜索。那么如何才能让自己的公众号排名更靠前呢?对于公众号而言,有一个很重要的因素就是内容。如果你的公众号里面的内容不好,人们是不会愿意关注你的。所以,第一步就是要让自己的公众号里面有好的内容。第二步就是多发布内容。这样才能增加你公众号里面的信息量,吸引更多人来关注你。第三步就是要做好SEO。这样才能让你的公众号在搜索引擎上更加靠前,人们也就能够更容易找到你。总之,想要在公众号搜索排名中得到好的成绩,就必须要做到以上这三点。努力吧,相信自己一定能够成功。3:如何提高公众号搜索引擎的排名如何提高公众号搜索引擎的排名?公众号搜索引擎优化(SEO)是一门艺术,需要考虑到很多因素。本文将介绍三个重要的技巧,帮助你在公众号搜索中脱颖而出。首先,你需要确保你的公众号名称包含关键词。这样做的目的是让搜索引擎能够更加容易地找到你的公众号。例如,如果你的公众号是“时尚女性”,你应该考虑将其命名为“时尚女性-时尚服装、化妆品、生活方式”。这样做能够显著增加你在相关关键词上的搜索结果数量。此外,还有一些高级的SEO 技巧可以帮助你进一步增加公众号的被发现性。例如,通过使用“文章标题”、“相关话题”或者“站内链接”来丰富你的文章内容。这样做能够帮助你的文章在用户在微信中进行相关词条或者话题的搜索时能够获得更好的展示。最后,别忘了分享! 如今,微信用户已经越来越倾向于通过朋友圈、微博或者群来分享感兴趣的内容,所以,一定要利用好这些平台来宣传自己的内容!通过执行上述三步,你一定能在人们通过微信对相应内容进行搜 索时提升自己电子书、博客或者公众号 等内容物 的 排 名 。
  

如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~

网站优化优采云 发表了文章 • 0 个评论 • 101 次浏览 • 2022-05-14 19:02 • 来自相关话题

  如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~
  
  
  前言
  Beaver 是由日志易自主研发、安全可控的搜索引擎,由 Master、Broker 和 Datanode 三部分组成,已广泛应用于存储和分析大型分布式系统生成的日志。Beaver 拥有大量与性能相关的配置项,由于手动配置费时费力,并且有时需要修 改相关配置以适配特定环境,所以自动调整配置参数优化性能是当前迫切需要解 决的问题。
  一、背景调研
  目前业界有许多自动调参的项目和算法实现,例如 CMU 开源的关系型数据库自动调参工具 OtterTune[1]、PingCAP 仿作的 TiKV 自动调参工具[2]等,都为 我们提供了大量的论文以及开源算法代码。
  1、OtterTune
  数据库有很多参数,比如 MySQL 有几百个参数,Oracle 有上千个参数。这些参数控制着数据库的方方面面,很大程度上影响了如缓存容量和检查点频次等数据库性能。
  对于不同的硬件配置,不同的工作负载,对应的最优参数文件都是不同的, 这些复杂性令数据库调优变得更加困难。DBA(Database Administrator,即数据库管理员)不能简单地重复使用之前调好的参数文件,他们需要花大量时间根据经验来调优数据库的参数,而公司则需要花大价钱来雇佣资深 DBA。为解决上述问题,卡内基梅隆大学数据库小组的教授、学生和研究人员开发了一个数据库自动调参工具 OtterTune,它能利用机器学习对数据库的参数文件进行自动化调优,利用已有的数据训练机器学习模型,进而实现自动化地推荐最优参数。它能很好地帮助 DBA 进行数据库调优,将 DBA 从复杂繁琐的调参工 作中解放出来。OtterTune 的目的是为了帮助 DBA,让数据库部署和调优更加容易,用机器来代替数据库调参这个冗繁但又很重要的工作,让技术人员甚至不需要专业知识也能顺利完成。OtterTune 分为客户端和服务端,目标数据库是用户需要调优参数的数据库:客户端接收到推荐的配置文件后,配置到目标数据库上,并测量其性能。以上步骤可重复进行,直到用户对其推荐的配置文件满意为止。2、AutoTiKVAutoTikv 是一个用于对 TiKV 数据库进行自动调优的工具。它是根据 SIGMOD2017 年发表的一篇论文所设计[3],能够使用机器学习模型对数据库参数进行自动调优。AutoTiKV 吸取了 OtterTune 的设计理念,并简化了相关结构。设计的调优过程如下:
  
  图一:整个过程会循环跑 200 个 round(用户可自定义),或者定义为直到结果收敛为止。3、ML 模型AutoTikv 使用了和 OtterTune 一样的高斯过程回归(Gaussian Process Regression,以下简称 GP)来推荐新的 knob,它是基于高斯分布的一种非参数模型。
  在没有利用机器学习模型对参数文件的效果进行预测前,OtterTune 使用的是随机采样的方式来收集初始数据。
  当有足够的数据(X,Y)时,OtterTune 训练机器学习模型进行回归,即估计出函数 f:X→Y,表示对于参数文件 X,用 f(X)来估计数据库延迟 Y 的值。如此,问题则变为寻找合适的 X,使 f(X)的值尽量小。这样在 f 上面做梯度下降即可找 出合适的 X[4]。
  如图二所示,横坐标是两个参数:缓存大小和日志文件大小,纵坐标是数据库延迟(越低越好)。
  
  图二:OtterTune 高斯过程回归模型
  OtterTune 用高斯过程回归模型估计出了 f,即给定这两个参数值,估计出对应的数据库延迟。接着用梯度下降找到最合适的参数值,使延迟尽可能低。
  高斯过程回归的好处:
  和神经网络之类的方法相比,GP 属于无参数模型,算法计算量相对较低,而且在训练样本很少的情况下,GP 表现比神经网络算法( Neural Network ) 更好。
  它能估计样本的分布情况,即 X 的均值 m(X) 和标准差 s(X)。若 X 周围的数据不多,则它被估计出的标准差 s(X) 会偏大(表示这个样本 X 和其他数据点的差异大)。直观的理解是若数据不多,则不确定性会大,体 现在标准差偏大;反之,数据足够多时,不确定性减少,标准差会偏小。这个特性后面会用到。
  但 GP 本身其实只能估计样本的分布,为了得到最终的预测值,我们需要 把它应用到贝叶斯优化(Bayesian Optimization)中[5]。
  贝叶斯优化算法大致可分为两步:通过 GP 估计出函数的分布情况;通过采集函数(Acquisition Function)指导下一步的采样(也就是给出推荐值)。
  采集函数(Acquisition Function)的特性是在寻找新的推荐值的时候,能够进行平衡探索(Exploration)和利用(Exploitation)。
  在推荐的过程中,需要平衡上述两种指标。Exploitation 过多会导致结果陷入局部最优值(即重复推荐目前已知最好的点,但可能还有更好的点没被发现), 而 Exploration 过多又会导致搜索效率太低(即一直在探索新区域,而没有对当前比较好的区域进行深入尝试)。而平衡二者的核心思想,是当数据足够多时, 利用现有的数据推荐;当缺少数据时,在点最少的区域进行探索,探索最未知的 区域能够提供最大的信息量。贝叶斯优化的第二步就可以帮我们实现这一思想。前面提到,GP 可以帮我们估计 X 的均值 m(X) 和标准差 s(X),其中均值 m(X) 可以作为 Exploitation 的表征值,而标准差 s(X) 可以作为 Exploration 的表征值,这样就 可以用贝叶斯优化方法来求解了。使用置信区间上界(Upper Confidence Bound)作为采集函数。假设我们需要找 X 使 Y 值尽可能大,则 U(X) = m(X) + k*s(X),其中 k > 0 是可调的系数,我们只要找 X 使 U(X) 尽可能大即可。注意,其中系数 k 影响着探索和利用的比例,即 k 越大,越鼓励探索新的区域。
  在具体实现中,一开始随机生成若干个 candidate knobs,然后用上述模型计算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。二、可行性分析目前所有开源的自动调参工具实现原理基本上都是通过机器学习算法推荐 配置参数,应用至数据库或者其他引擎上,在不同的工作负载模式下,不断收集 metric 信息,丰富训练模型,直至推荐出最优的配置,以此替代频繁的手动修改 配置工作。由调研可以发现,OtterTune 是通用模型框架,在业界许多场景都能应用, 不仅能调优数据库的参数,还能够调优操作系统内核的参数,即只要能获取指标 信息,大部分软件都可以用此模型进行调优。同时可以借鉴 AutoTiKV 的测试代码,将目标 DB 替换为 Beaver_datanode, 通过修改不同的配置,测试 baimi 数据集,收集 search 的性能数据,经过模型训 练后不断推荐最优配置。baimi 数据集,即 Apache 访问日志,总日志行数 7078124,日志文件原始大小 2374265761 Byte,测试 Beaver 和 ES 的搜索性能对比中用到的数据集。
  AutoTiKV 代码分析:
  pipeline.py
  自动调参脚本入口,定义执行 round 数,自动推荐参数配置,修改配置文件 并重启相关 DB,收集 metric 数据训练算法模型,以文件形式持久化保存对象。
  settings.py
  脚本参数配置,需要测试的 knobs、metrics 及 workload,数据库连接配置。需要优化的 metric(仅支持优化一项目标 metric)、ansible 和 deploy 目录。
  controller.py
  knob 配置和 metric 获取相关函数,每一个需要修改的参数都需要在 knob_set 中定义,声明参数类型和取值范围,修改配置文件和重启数据库函数等。另外包 括一些工作负载相关的 workload 函数。
  datamodel.py
  初始化数据设置,存放数据模型,每次测试的配置参数和获取到的指标数据 都会存放在此模型中。gpmodel.py
  调用高斯过程回归类算法,传递并训练数据模型,根据算法推荐返回最佳配 置参数,用于下轮测试。注意,前十轮为随机生成的 knob。gpclass.py
  即高斯过程回归算法。showres.py
  展示过往测试结果,将持久化保存的对象文件反序列化,调用 datamodel.py
  函数中 GPDataSet 类输出测试结果。三、具体实现本着不重复造轮子的原则,本次测试决定使用 AutoTiKV 的算法代码,并修 改其中关于数据库的代码,使其适用于 Beaver_datanode。首先,TiKV 数据库使用的配置文件是 yaml 格式,而 Beaver 使用的是 flags 参数的形式(—max_concurrency_tasks_per_search=4),代码中使用的 ruamel.yaml 库文件并不适用于 Beaver。因此,对 controller.py 中 set_tikvyml 函数进行修改, 以“=”为分隔符,读取旧配置文件并将参数以键值对形式写入字典中,对需要 修改的配置项进行替换,最后把修改过后的配置参数写入到新配置文件中。需要修改的配置参数应在 settings.py 中提前声明,更新 target_knob_set 列表 中的参数,新增 wl_metrics 中 avgsearch 列表,并设置期望的 metric。在 controller.py 中补充参数的类型和取值范围,配置好 knob_set 和 metric_set。修改 metric 数据 获取函数,其中 read_search_latency()函数是基于已经索引好的 baimi 数据集,测 试某个场景的 search 性能。参考了 Esrally 的性能压测代码[7],调用 Beaver_broker 的 API 接口,通过传递 pb 格式的搜索语句,来获取不同场景下的 latnecy。本次自动调参测试中,使 用的搜索场景是从数据集中获取apache.resp_len字段的平均值,可以根据自己的 实际环境自定义场景。因为每次得到的性能数据可能受到各种因素影响,或产生较大误差,为了降低误差值,搜索请求预热 20 次,压测 100 次,并计算前 90th 的平均值作为最终的 metric 数据。
  算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。
  settings.py 中需要修改的配置:
  # beaver集群的broker地址和端口,主要用来测试搜索性能beaver_broker_ip="172.21.16.16"beaver_broker_port="50061"# 测试搜索性能需要的索引index_forsearch="ops-http_baimi-20210507"# pb类型搜索语句,求apache.resp_len字段的平均值pb_forsearch='search_info {query {type: kQueryMatchAll}fetch_source {fetch: true}size {value: 0} aggregations { aggs { type: kAggAvg name: "av(apache.resp_len)" body { field: "apache.resp_len__l__" } } } query_time_range {time_range {min: 0 max: 1620374828405}}}'# 不同工作负载模式下相关的指标,可以随意命名,workloadwl_metrics={ "avgsearch": ["search_latency","compaction_mem","compaction_cpu"],}# workload to be loadloadtype = "avgsearch"# workload to be runwltype = "avgsearch"# 需要优化的目标指标target_metric_name="search_latency"# 待调整的配置项target_knob_set=['--enable_query_cache', # 启用query cache '--max_concurrency_tasks_per_search', # 每个Search允许同时执行的数目 '--max_per_search_ram', # 单个Search最大占用的内存 '--max_per_sub_search_ram', # 单个SubSearch最大占用的内存 '--block_ids_per_batch'] # 每个SubSearch的Block数目
  以下是 knob 和 metric 在 controller.py 中的声明样板:
  <br />knob_set=\{"--max_concurrency_tasks_per_search": # 配置项 { "changebyyml": True, # True表示通过修改配置文件来调节 "set_func": None, # 若changebyyml==False,则在此指定修改参数的函数名(在controller.py中定义函数),一般是不需要重启beaver的配置 "minval": 0, # if type==int, indicate min possible value "maxval": 0, # if type==int, indicate max possible value "enumval": [4, 6, 8], # if type==enum, list all valid values "type": "enum", # int / enum "default": 0 # default value }}metric_set=\ {"search_latency": { "read_func": read_search_latency, # 声明查看该指标的函数(函数也定义在controller.py里) "lessisbetter": 1, # whether less value of this metric is better(1: yes) "calc": "ins", # ins表示该参数的值就是benchmark之后查看的结果。inc表示该参数是incremental的,需要把benchmark之后和之前的值相减作为结果。 },}
  Beaver 重启操作比较直接,使用 os.popen 管道命令直接在服务器上执行 kill 命令后更新配置文件重新启动,具体操作在 controller.py 文件的 restart_beaver_datanode()函数中。在本次测试中,脚本直接运行在 Beaver 所运行 的服务器中,首先需要在 settings.py 文件中声明 Beaver_datanode 的启动命令和 各项配置文件路径,指定配置文件临时存放路径。使用“ps -ef|grep beaver_datanode”即可查看 Beaver_datanode 的启动命令。具体配置示例如下:
  autotestdir="/tmp/auto_beaver_datanode"beaver_datanode_file="/opt/rizhiyi/parcels/beaver_datanode-3.7.0.0/bin/beaver_datanode"gflagsfile="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.gflags"config_path="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.pb"log_dir="/data/rizhiyi/logs/beaver_datanode"
  四、测试结果knobs
  此次测试主要测试了以下配置项:
  
  metrics
  我们选择了如下几个 metrics 作为优化指标。
  注意:knobs 和 metrics 均在 contorller.py 文件中定义
  脚本具体使用步骤
  安装 python3.6
  $ tar -xf Python-3.6.12.tgz -C /tmp
  # 编译前检查系统 openssl 版本是否为 1.0.2k 以上版本,并安装所需依赖包,否 则编译 Python 时会报错。$ yum install -y openssl* bzip2* xz-devel zlib-devel libffi-devel gcc gcc-c++ sqlite sqlite-devel$ cd /tmp/Python-3.6.12/$ ./configure# 编译无报错后可以执行 make 安装,默认会安装到/usr/local/lib/python3.6# 使用该命令参数可以安装到指定位置: ./configure --prefix=/xxx$ make && make install
  2. 安装虚拟环境,切换到 python3.6 环境,下载自动化调参工具,并使用 pip 安装相关依赖包
  $ python3.6 -m venv autoenv$ source autoenv/bin/activate(autoenv)$ git clone https://github.com/woxiang-H/auto-beaver.git (autoenv)$ cd auto-beaver(autoenv)$ pip install -r requirements.txt
  3. 按照之前具体实现中提到的需要修改的配置,修改 auto-beaver 下 settings.py 文件。
  4. 调整好 settings.py 之后,执行 python pipeline.py
  等待结果收敛,查看推荐配置
  ################## data ################## ------------------------------previous:------------------------------ rowlabels, finish_time, knobs, metrics1 , 2021-05-11 16:41:02 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 2 , 2021-05-11 16:43:41 , [0. 1. 0. 0. 0.] , [127.38888889 1.4 3 , 2021-05-11 16:46:10 , [1. 1. 0. 0. 0.] , [127.54444444 1.4 4 , 2021-05-11 16:48:48 , [0. 1. 0. 0. 2.] , [126.81111111 1.4 5 , 2021-05-11 16:51:27 , [1. 1. 0. 0. 2.] , [126.23333333 1.4 6 , 2021-05-11 16:54:06 , [0. 1. 0. 0. 2.] , [124.63333333 1.4 7 , 2021-05-11 16:56:35 , [1. 2. 0. 0. 1.] , [125.13333333 1.4 8 , 2021-05-11 16:59:14 , [1. 0. 0. 0. 1.] , [125.5 1.4 31.8]9 , 2021-05-11 17:01:53 , [1. 0. 0. 0. 2.] , [131.18888889 1.4 31.9 ]10 , 2021-05-11 17:04:31 , [0. 2. 0. 0. 1.] , [124.22222222 1.4 31.5 ]11 , 2021-05-11 17:07:53 , [0. 2. 0. 0. 2.] , [128.48888889 1.4 31.4 ]12 , 2021-05-11 17:11:14 , [0. 2. 0. 0. 1.] , [123.74444444 1.4 31.9 ]13 , 2021-05-11 17:14:35 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.1 ]14 , 2021-05-11 17:17:56 , [0. 2. 0. 0. 1.] , [127.08888889 1.4 31.5 ]15 , 2021-05-11 17:21:17 , [0. 0. 0. 0. 1.] , [124.66666667 1.4 31.8 ]16 , 2021-05-11 17:24:38 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.2 ]17 , 2021-05-11 17:27:59 , [0. 2. 0. 0. 1.] , [126.15555556 1.4 31.2 ]18 , 2021-05-11 17:31:21 , [0. 1. 0. 0. 1.] , [126.26666667 1.4 31.6 ]19 , 2021-05-11 17:34:41 , [0. 0. 0. 0. 1.] , [123.67777778 1.4 31.3 ]20 , 2021-05-11 17:38:04 , [0. 1. 0. 0. 1.] , [127.13333333 1.4 31.5 ]21 , 2021-05-11 17:41:15 , [0. 0. 0. 0. 1.] , [126.35555556 1.4 33.1 ]22 , 2021-05-11 17:44:36 , [0. 1. 0. 0. 1.] , [124.56666667 1.4 31.5 ]23 , 2021-05-11 17:47:57 , [0. 0. 0. 0. 1.] , [124.36666667 1.4 31.2 ]24 , 2021-05-11 17:51:19 , [0. 1. 0. 0. 1.] , [129.04444444 1.4 31.4 ]25 , 2021-05-11 17:54:39 , [0. 0. 0. 0. 1.] , [122.94444444 1.4 31.2 ]26 , 2021-05-11 17:58:01 , [0. 1. 0. 0. 1.] , [125.03333333 1.4 31.1 ]27 , 2021-05-11 18:01:22 , [0. 0. 0. 0. 1.] , [128.91111111 1.4 31.7 ]28 , 2021-05-11 18:04:42 , [0. 1. 0. 0. 1.] , [125.67777778 1.4 31.4 ] 29 , 2021-05-11 18:08:04 , [0. 0. 0. 0. 1.] , [124.78888889 1.4 31.2 ]30 , 2021-05-11 18:11:15 , [1. 1. 0. 0. 1.] , [125.37777778 1.4 32.7 ]31 , 2021-05-11 18:14:36 , [0. 0. 0. 0. 1.] , [126.62222222 1.4 31.3 ]32 , 2021-05-11 18:17:57 , [0. 2. 0. 0. 1.] , [123.52222222 1.4 31.4 ]33 , 2021-05-11 18:21:19 , [0. 0. 0. 0. 1.] , [125.54444444 1.4 31.3 ]34 , 2021-05-11 18:24:31 , [0. 2. 0. 0. 1.] , [126.58888889 1.4 32.9 ]35 , 2021-05-11 18:27:52 , [0. 0. 0. 0. 1.] , [123.44444444 1.4 31.4 ]36 , 2021-05-11 18:31:12 , [0. 2. 0. 0. 1.] , [125.65555556 1.4 31.4 ]37 , 2021-05-11 18:34:34 , [0. 0. 0. 0. 1.] , [125.83333333 1.4 31.5 ]38 , 2021-05-11 18:37:45 , [1. 1. 0. 0. 1.] , [128.74444444 1.4 32.8 ] 39 , 2021-05-11 18:41:06 , [0. 0. 0. 0. 1.] , [123.74444444 1.4 31.4 ] 40 , 2021-05-11 18:44:28 , [1. 2. 0. 0. 1.] , [127.13333333 1.4 31.7 ] 41 , 2021-05-11 18:47:49 , [0. 0. 0. 0. 1.] , [127.9 1.4 31.4]42 , 2021-05-11 18:51:00 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 32.9 ] 43 , 2021-05-11 18:54:21 , [0. 0. 0. 0. 1.] , [125.51111111 1.4 31.1 ] 44 , 2021-05-11 18:57:42 , [0. 1. 0. 0. 1.] , [123.42222222 1.4 31.4 ] 45 , 2021-05-11 19:01:03 , [0. 0. 0. 0. 1.] , [124.04444444 1.4 31.4 ] 46 , 2021-05-11 19:04:24 , [0. 1. 0. 0. 1.] , [124.28888889 1.4 31.2 ] 47 , 2021-05-11 19:07:35 , [0. 0. 0. 0. 1.] , [125.75555556 1.4 32.7 ] 48 , 2021-05-11 19:10:57 , [0. 1. 0. 0. 1.] , [127.17777778 1.4 31.3 ] 49 , 2021-05-11 19:14:17 , [0. 0. 0. 0. 1.] , [123.52222222 1.4 31.5 ] 50 , 2021-05-11 19:17:38 , [0. 1. 0. 0. 1.] , [125.33333333 1.4 31.5 ] 51 , 2021-05-11 19:20:58 , [0. 0. 0. 0. 1.] , [126.82222222 1.4 31.3 ] 52 , 2021-05-11 19:24:19 , [0. 1. 0. 0. 1.] , [124.15555556 1.4 31.4 ] 53 , 2021-05-11 19:27:40 , [0. 0. 0. 0. 1.] , [126.34444444 1.4 31.5 ] 54 , 2021-05-11 19:31:01 , [0. 1. 0. 0. 1.] , [124.68888889 1.4 31.4 ] 55 , 2021-05-11 19:34:23 , [0. 0. 0. 0. 0.] , [125.5 1.4 31.4]56 , 2021-05-11 19:37:44 , [0. 1. 0. 0. 1.] , [125.61111111 1.4 31.4 ] 57 , 2021-05-11 19:40:55 , [0. 0. 0. 0. 0.] , [125.16666667 1.4 32.8 ] 58 , 2021-05-11 19:44:16 , [0. 1. 0. 0. 1.] , [125.06666667 1.4 31.5 ] 59 , 2021-05-11 19:47:37 , [0. 0. 0. 0. 0.] , [125.54444444 1.4 31.2 ] 60 , 2021-05-11 19:50:58 , [0. 1. 0. 0. 1.] , [125.55555556 1.4 31.4 ] 61 , 2021-05-11 19:54:20 , [0. 0. 0. 0. 0.] , [128.92222222 1.4 31.5 ] 62 , 2021-05-11 19:57:31 , [0. 1. 0. 0. 1.] , [125.9 1.4 32.9] ------------------------------new:------------------------------knobs: [[0. 0. 0. 0. 0]]metrics: [[124.1 1.4 31.5]]rowlabels: [1]timestamp: 2021-05-11 20:00:52------------------------------TARGET:------------------------------knob: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] metric: search_latencymetric_lessisbetter: 1------------------------------------------------------------num of knobs == 5knobs: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] num of metrics == 3metrics: ['search_latency' 'compaction_mem' 'compaction_cpu'] ------------------------------------------------------------
  可以看到最佳推荐配置为[0. 0. 0. 0. 0.]和0. 1. 0. 0. 1.,具体配置参数如下
  set_beaver_datanode_gflags:: --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 4set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 16
  或者
  set_beaver_datanode_gflags::  --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 6set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 18
  结果显示,适当提高 search 并发数,或提高 SubSearch 的 block 数会优化 search 性能。五、存在的问题通过修改相关代码,目前自动调参工具能正常运行,但依然存在不足。本次 测试方案利用事前存储好的索引 baimi 数据集,仅测试影响 search 性能的参数, 因此可修改的配置项也相对较少。虽然舍弃了 AutoTiKV 的 workload,但代码依 然保留此功能,待后续有针对 Beaver 的工作负载方案之后,再添加相关 workload。此外 Beaver_datanode 的重启方式也并不优雅,有待提升。后续可优化:增加不同的 workload 模式,测试 index 性能和 search 性能(需要 Beaver 支持新的 index 方式),同时测试 index 相关的配置参数。优雅的重启 Beaver_datanode。目前重启等待 Beaver_datanode 可用的 wait 时间为 200s,在实际运行的 Beaver_datanode 中,索引恢复时间相对较长,需根据不同环境灵活变化。指标数据获取的准确度,会受到网络等因素的影响,有一定的波动。[参考文献]
  [1]OtterTune.
  [2]AutoTiKV.
  [3]Automatic Database Management System Tuning Through Large-scale Machine Learning.~ggordon/van-aken-etal-parameters.pdf
  [4]
  [5]
  [6]
  [7]Esrally.
  拓展内容
  精彩还在继续…2021年9月3日-4日,DevOps 国际峰会 2021 北京站,网易敏捷教练、于旭东为您分享“DevOps基础设施之环境管理,网易云音乐环境管理效率提升实践”,千万不要错过~
  
  近期好文:
  “高效运维”公众号诚邀广大技术人员投稿, 查看全部

  如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~
  
  
  前言
  Beaver 是由日志易自主研发、安全可控的搜索引擎,由 Master、Broker 和 Datanode 三部分组成,已广泛应用于存储和分析大型分布式系统生成的日志。Beaver 拥有大量与性能相关的配置项,由于手动配置费时费力,并且有时需要修 改相关配置以适配特定环境,所以自动调整配置参数优化性能是当前迫切需要解 决的问题。
  一、背景调研
  目前业界有许多自动调参的项目和算法实现,例如 CMU 开源的关系型数据库自动调参工具 OtterTune[1]、PingCAP 仿作的 TiKV 自动调参工具[2]等,都为 我们提供了大量的论文以及开源算法代码。
  1、OtterTune
  数据库有很多参数,比如 MySQL 有几百个参数,Oracle 有上千个参数。这些参数控制着数据库的方方面面,很大程度上影响了如缓存容量和检查点频次等数据库性能。
  对于不同的硬件配置,不同的工作负载,对应的最优参数文件都是不同的, 这些复杂性令数据库调优变得更加困难。DBA(Database Administrator,即数据库管理员)不能简单地重复使用之前调好的参数文件,他们需要花大量时间根据经验来调优数据库的参数,而公司则需要花大价钱来雇佣资深 DBA。为解决上述问题,卡内基梅隆大学数据库小组的教授、学生和研究人员开发了一个数据库自动调参工具 OtterTune,它能利用机器学习对数据库的参数文件进行自动化调优,利用已有的数据训练机器学习模型,进而实现自动化地推荐最优参数。它能很好地帮助 DBA 进行数据库调优,将 DBA 从复杂繁琐的调参工 作中解放出来。OtterTune 的目的是为了帮助 DBA,让数据库部署和调优更加容易,用机器来代替数据库调参这个冗繁但又很重要的工作,让技术人员甚至不需要专业知识也能顺利完成。OtterTune 分为客户端和服务端,目标数据库是用户需要调优参数的数据库:客户端接收到推荐的配置文件后,配置到目标数据库上,并测量其性能。以上步骤可重复进行,直到用户对其推荐的配置文件满意为止。2、AutoTiKVAutoTikv 是一个用于对 TiKV 数据库进行自动调优的工具。它是根据 SIGMOD2017 年发表的一篇论文所设计[3],能够使用机器学习模型对数据库参数进行自动调优。AutoTiKV 吸取了 OtterTune 的设计理念,并简化了相关结构。设计的调优过程如下:
  
  图一:整个过程会循环跑 200 个 round(用户可自定义),或者定义为直到结果收敛为止。3、ML 模型AutoTikv 使用了和 OtterTune 一样的高斯过程回归(Gaussian Process Regression,以下简称 GP)来推荐新的 knob,它是基于高斯分布的一种非参数模型。
  在没有利用机器学习模型对参数文件的效果进行预测前,OtterTune 使用的是随机采样的方式来收集初始数据。
  当有足够的数据(X,Y)时,OtterTune 训练机器学习模型进行回归,即估计出函数 f:X→Y,表示对于参数文件 X,用 f(X)来估计数据库延迟 Y 的值。如此,问题则变为寻找合适的 X,使 f(X)的值尽量小。这样在 f 上面做梯度下降即可找 出合适的 X[4]。
  如图二所示,横坐标是两个参数:缓存大小和日志文件大小,纵坐标是数据库延迟(越低越好)。
  
  图二:OtterTune 高斯过程回归模型
  OtterTune 用高斯过程回归模型估计出了 f,即给定这两个参数值,估计出对应的数据库延迟。接着用梯度下降找到最合适的参数值,使延迟尽可能低。
  高斯过程回归的好处:
  和神经网络之类的方法相比,GP 属于无参数模型,算法计算量相对较低,而且在训练样本很少的情况下,GP 表现比神经网络算法( Neural Network ) 更好。
  它能估计样本的分布情况,即 X 的均值 m(X) 和标准差 s(X)。若 X 周围的数据不多,则它被估计出的标准差 s(X) 会偏大(表示这个样本 X 和其他数据点的差异大)。直观的理解是若数据不多,则不确定性会大,体 现在标准差偏大;反之,数据足够多时,不确定性减少,标准差会偏小。这个特性后面会用到。
  但 GP 本身其实只能估计样本的分布,为了得到最终的预测值,我们需要 把它应用到贝叶斯优化(Bayesian Optimization)中[5]。
  贝叶斯优化算法大致可分为两步:通过 GP 估计出函数的分布情况;通过采集函数(Acquisition Function)指导下一步的采样(也就是给出推荐值)。
  采集函数(Acquisition Function)的特性是在寻找新的推荐值的时候,能够进行平衡探索(Exploration)和利用(Exploitation)。
  在推荐的过程中,需要平衡上述两种指标。Exploitation 过多会导致结果陷入局部最优值(即重复推荐目前已知最好的点,但可能还有更好的点没被发现), 而 Exploration 过多又会导致搜索效率太低(即一直在探索新区域,而没有对当前比较好的区域进行深入尝试)。而平衡二者的核心思想,是当数据足够多时, 利用现有的数据推荐;当缺少数据时,在点最少的区域进行探索,探索最未知的 区域能够提供最大的信息量。贝叶斯优化的第二步就可以帮我们实现这一思想。前面提到,GP 可以帮我们估计 X 的均值 m(X) 和标准差 s(X),其中均值 m(X) 可以作为 Exploitation 的表征值,而标准差 s(X) 可以作为 Exploration 的表征值,这样就 可以用贝叶斯优化方法来求解了。使用置信区间上界(Upper Confidence Bound)作为采集函数。假设我们需要找 X 使 Y 值尽可能大,则 U(X) = m(X) + k*s(X),其中 k > 0 是可调的系数,我们只要找 X 使 U(X) 尽可能大即可。注意,其中系数 k 影响着探索和利用的比例,即 k 越大,越鼓励探索新的区域。
  在具体实现中,一开始随机生成若干个 candidate knobs,然后用上述模型计算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。二、可行性分析目前所有开源的自动调参工具实现原理基本上都是通过机器学习算法推荐 配置参数,应用至数据库或者其他引擎上,在不同的工作负载模式下,不断收集 metric 信息,丰富训练模型,直至推荐出最优的配置,以此替代频繁的手动修改 配置工作。由调研可以发现,OtterTune 是通用模型框架,在业界许多场景都能应用, 不仅能调优数据库的参数,还能够调优操作系统内核的参数,即只要能获取指标 信息,大部分软件都可以用此模型进行调优。同时可以借鉴 AutoTiKV 的测试代码,将目标 DB 替换为 Beaver_datanode, 通过修改不同的配置,测试 baimi 数据集,收集 search 的性能数据,经过模型训 练后不断推荐最优配置。baimi 数据集,即 Apache 访问日志,总日志行数 7078124,日志文件原始大小 2374265761 Byte,测试 Beaver 和 ES 的搜索性能对比中用到的数据集。
  AutoTiKV 代码分析:
  pipeline.py
  自动调参脚本入口,定义执行 round 数,自动推荐参数配置,修改配置文件 并重启相关 DB,收集 metric 数据训练算法模型,以文件形式持久化保存对象。
  settings.py
  脚本参数配置,需要测试的 knobs、metrics 及 workload,数据库连接配置。需要优化的 metric(仅支持优化一项目标 metric)、ansible 和 deploy 目录。
  controller.py
  knob 配置和 metric 获取相关函数,每一个需要修改的参数都需要在 knob_set 中定义,声明参数类型和取值范围,修改配置文件和重启数据库函数等。另外包 括一些工作负载相关的 workload 函数。
  datamodel.py
  初始化数据设置,存放数据模型,每次测试的配置参数和获取到的指标数据 都会存放在此模型中。gpmodel.py
  调用高斯过程回归类算法,传递并训练数据模型,根据算法推荐返回最佳配 置参数,用于下轮测试。注意,前十轮为随机生成的 knob。gpclass.py
  即高斯过程回归算法。showres.py
  展示过往测试结果,将持久化保存的对象文件反序列化,调用 datamodel.py
  函数中 GPDataSet 类输出测试结果。三、具体实现本着不重复造轮子的原则,本次测试决定使用 AutoTiKV 的算法代码,并修 改其中关于数据库的代码,使其适用于 Beaver_datanode。首先,TiKV 数据库使用的配置文件是 yaml 格式,而 Beaver 使用的是 flags 参数的形式(—max_concurrency_tasks_per_search=4),代码中使用的 ruamel.yaml 库文件并不适用于 Beaver。因此,对 controller.py 中 set_tikvyml 函数进行修改, 以“=”为分隔符,读取旧配置文件并将参数以键值对形式写入字典中,对需要 修改的配置项进行替换,最后把修改过后的配置参数写入到新配置文件中。需要修改的配置参数应在 settings.py 中提前声明,更新 target_knob_set 列表 中的参数,新增 wl_metrics 中 avgsearch 列表,并设置期望的 metric。在 controller.py 中补充参数的类型和取值范围,配置好 knob_set 和 metric_set。修改 metric 数据 获取函数,其中 read_search_latency()函数是基于已经索引好的 baimi 数据集,测 试某个场景的 search 性能。参考了 Esrally 的性能压测代码[7],调用 Beaver_broker 的 API 接口,通过传递 pb 格式的搜索语句,来获取不同场景下的 latnecy。本次自动调参测试中,使 用的搜索场景是从数据集中获取apache.resp_len字段的平均值,可以根据自己的 实际环境自定义场景。因为每次得到的性能数据可能受到各种因素影响,或产生较大误差,为了降低误差值,搜索请求预热 20 次,压测 100 次,并计算前 90th 的平均值作为最终的 metric 数据。
  算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。
  settings.py 中需要修改的配置:
  # beaver集群的broker地址和端口,主要用来测试搜索性能beaver_broker_ip="172.21.16.16"beaver_broker_port="50061"# 测试搜索性能需要的索引index_forsearch="ops-http_baimi-20210507"# pb类型搜索语句,求apache.resp_len字段的平均值pb_forsearch='search_info {query {type: kQueryMatchAll}fetch_source {fetch: true}size {value: 0} aggregations { aggs { type: kAggAvg name: "av(apache.resp_len)" body { field: "apache.resp_len__l__" } } } query_time_range {time_range {min: 0 max: 1620374828405}}}'# 不同工作负载模式下相关的指标,可以随意命名,workloadwl_metrics={ "avgsearch": ["search_latency","compaction_mem","compaction_cpu"],}# workload to be loadloadtype = "avgsearch"# workload to be runwltype = "avgsearch"# 需要优化的目标指标target_metric_name="search_latency"# 待调整的配置项target_knob_set=['--enable_query_cache', # 启用query cache '--max_concurrency_tasks_per_search', # 每个Search允许同时执行的数目 '--max_per_search_ram', # 单个Search最大占用的内存 '--max_per_sub_search_ram', # 单个SubSearch最大占用的内存 '--block_ids_per_batch'] # 每个SubSearch的Block数目
  以下是 knob 和 metric 在 controller.py 中的声明样板:
  <br />knob_set=\{"--max_concurrency_tasks_per_search": # 配置项 { "changebyyml": True, # True表示通过修改配置文件来调节 "set_func": None, # 若changebyyml==False,则在此指定修改参数的函数名(在controller.py中定义函数),一般是不需要重启beaver的配置 "minval": 0, # if type==int, indicate min possible value "maxval": 0, # if type==int, indicate max possible value "enumval": [4, 6, 8], # if type==enum, list all valid values "type": "enum", # int / enum "default": 0 # default value }}metric_set=\ {"search_latency": { "read_func": read_search_latency, # 声明查看该指标的函数(函数也定义在controller.py里) "lessisbetter": 1, # whether less value of this metric is better(1: yes) "calc": "ins", # ins表示该参数的值就是benchmark之后查看的结果。inc表示该参数是incremental的,需要把benchmark之后和之前的值相减作为结果。 },}
  Beaver 重启操作比较直接,使用 os.popen 管道命令直接在服务器上执行 kill 命令后更新配置文件重新启动,具体操作在 controller.py 文件的 restart_beaver_datanode()函数中。在本次测试中,脚本直接运行在 Beaver 所运行 的服务器中,首先需要在 settings.py 文件中声明 Beaver_datanode 的启动命令和 各项配置文件路径,指定配置文件临时存放路径。使用“ps -ef|grep beaver_datanode”即可查看 Beaver_datanode 的启动命令。具体配置示例如下:
  autotestdir="/tmp/auto_beaver_datanode"beaver_datanode_file="/opt/rizhiyi/parcels/beaver_datanode-3.7.0.0/bin/beaver_datanode"gflagsfile="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.gflags"config_path="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.pb"log_dir="/data/rizhiyi/logs/beaver_datanode"
  四、测试结果knobs
  此次测试主要测试了以下配置项:
  
  metrics
  我们选择了如下几个 metrics 作为优化指标。
  注意:knobs 和 metrics 均在 contorller.py 文件中定义
  脚本具体使用步骤
  安装 python3.6
  $ tar -xf Python-3.6.12.tgz -C /tmp
  # 编译前检查系统 openssl 版本是否为 1.0.2k 以上版本,并安装所需依赖包,否 则编译 Python 时会报错。$ yum install -y openssl* bzip2* xz-devel zlib-devel libffi-devel gcc gcc-c++ sqlite sqlite-devel$ cd /tmp/Python-3.6.12/$ ./configure# 编译无报错后可以执行 make 安装,默认会安装到/usr/local/lib/python3.6# 使用该命令参数可以安装到指定位置: ./configure --prefix=/xxx$ make && make install
  2. 安装虚拟环境,切换到 python3.6 环境,下载自动化调参工具,并使用 pip 安装相关依赖包
  $ python3.6 -m venv autoenv$ source autoenv/bin/activate(autoenv)$ git clone https://github.com/woxiang-H/auto-beaver.git (autoenv)$ cd auto-beaver(autoenv)$ pip install -r requirements.txt
  3. 按照之前具体实现中提到的需要修改的配置,修改 auto-beaver 下 settings.py 文件。
  4. 调整好 settings.py 之后,执行 python pipeline.py
  等待结果收敛,查看推荐配置
  ################## data ################## ------------------------------previous:------------------------------ rowlabels, finish_time, knobs, metrics1 , 2021-05-11 16:41:02 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 2 , 2021-05-11 16:43:41 , [0. 1. 0. 0. 0.] , [127.38888889 1.4 3 , 2021-05-11 16:46:10 , [1. 1. 0. 0. 0.] , [127.54444444 1.4 4 , 2021-05-11 16:48:48 , [0. 1. 0. 0. 2.] , [126.81111111 1.4 5 , 2021-05-11 16:51:27 , [1. 1. 0. 0. 2.] , [126.23333333 1.4 6 , 2021-05-11 16:54:06 , [0. 1. 0. 0. 2.] , [124.63333333 1.4 7 , 2021-05-11 16:56:35 , [1. 2. 0. 0. 1.] , [125.13333333 1.4 8 , 2021-05-11 16:59:14 , [1. 0. 0. 0. 1.] , [125.5 1.4 31.8]9 , 2021-05-11 17:01:53 , [1. 0. 0. 0. 2.] , [131.18888889 1.4 31.9 ]10 , 2021-05-11 17:04:31 , [0. 2. 0. 0. 1.] , [124.22222222 1.4 31.5 ]11 , 2021-05-11 17:07:53 , [0. 2. 0. 0. 2.] , [128.48888889 1.4 31.4 ]12 , 2021-05-11 17:11:14 , [0. 2. 0. 0. 1.] , [123.74444444 1.4 31.9 ]13 , 2021-05-11 17:14:35 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.1 ]14 , 2021-05-11 17:17:56 , [0. 2. 0. 0. 1.] , [127.08888889 1.4 31.5 ]15 , 2021-05-11 17:21:17 , [0. 0. 0. 0. 1.] , [124.66666667 1.4 31.8 ]16 , 2021-05-11 17:24:38 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.2 ]17 , 2021-05-11 17:27:59 , [0. 2. 0. 0. 1.] , [126.15555556 1.4 31.2 ]18 , 2021-05-11 17:31:21 , [0. 1. 0. 0. 1.] , [126.26666667 1.4 31.6 ]19 , 2021-05-11 17:34:41 , [0. 0. 0. 0. 1.] , [123.67777778 1.4 31.3 ]20 , 2021-05-11 17:38:04 , [0. 1. 0. 0. 1.] , [127.13333333 1.4 31.5 ]21 , 2021-05-11 17:41:15 , [0. 0. 0. 0. 1.] , [126.35555556 1.4 33.1 ]22 , 2021-05-11 17:44:36 , [0. 1. 0. 0. 1.] , [124.56666667 1.4 31.5 ]23 , 2021-05-11 17:47:57 , [0. 0. 0. 0. 1.] , [124.36666667 1.4 31.2 ]24 , 2021-05-11 17:51:19 , [0. 1. 0. 0. 1.] , [129.04444444 1.4 31.4 ]25 , 2021-05-11 17:54:39 , [0. 0. 0. 0. 1.] , [122.94444444 1.4 31.2 ]26 , 2021-05-11 17:58:01 , [0. 1. 0. 0. 1.] , [125.03333333 1.4 31.1 ]27 , 2021-05-11 18:01:22 , [0. 0. 0. 0. 1.] , [128.91111111 1.4 31.7 ]28 , 2021-05-11 18:04:42 , [0. 1. 0. 0. 1.] , [125.67777778 1.4 31.4 ] 29 , 2021-05-11 18:08:04 , [0. 0. 0. 0. 1.] , [124.78888889 1.4 31.2 ]30 , 2021-05-11 18:11:15 , [1. 1. 0. 0. 1.] , [125.37777778 1.4 32.7 ]31 , 2021-05-11 18:14:36 , [0. 0. 0. 0. 1.] , [126.62222222 1.4 31.3 ]32 , 2021-05-11 18:17:57 , [0. 2. 0. 0. 1.] , [123.52222222 1.4 31.4 ]33 , 2021-05-11 18:21:19 , [0. 0. 0. 0. 1.] , [125.54444444 1.4 31.3 ]34 , 2021-05-11 18:24:31 , [0. 2. 0. 0. 1.] , [126.58888889 1.4 32.9 ]35 , 2021-05-11 18:27:52 , [0. 0. 0. 0. 1.] , [123.44444444 1.4 31.4 ]36 , 2021-05-11 18:31:12 , [0. 2. 0. 0. 1.] , [125.65555556 1.4 31.4 ]37 , 2021-05-11 18:34:34 , [0. 0. 0. 0. 1.] , [125.83333333 1.4 31.5 ]38 , 2021-05-11 18:37:45 , [1. 1. 0. 0. 1.] , [128.74444444 1.4 32.8 ] 39 , 2021-05-11 18:41:06 , [0. 0. 0. 0. 1.] , [123.74444444 1.4 31.4 ] 40 , 2021-05-11 18:44:28 , [1. 2. 0. 0. 1.] , [127.13333333 1.4 31.7 ] 41 , 2021-05-11 18:47:49 , [0. 0. 0. 0. 1.] , [127.9 1.4 31.4]42 , 2021-05-11 18:51:00 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 32.9 ] 43 , 2021-05-11 18:54:21 , [0. 0. 0. 0. 1.] , [125.51111111 1.4 31.1 ] 44 , 2021-05-11 18:57:42 , [0. 1. 0. 0. 1.] , [123.42222222 1.4 31.4 ] 45 , 2021-05-11 19:01:03 , [0. 0. 0. 0. 1.] , [124.04444444 1.4 31.4 ] 46 , 2021-05-11 19:04:24 , [0. 1. 0. 0. 1.] , [124.28888889 1.4 31.2 ] 47 , 2021-05-11 19:07:35 , [0. 0. 0. 0. 1.] , [125.75555556 1.4 32.7 ] 48 , 2021-05-11 19:10:57 , [0. 1. 0. 0. 1.] , [127.17777778 1.4 31.3 ] 49 , 2021-05-11 19:14:17 , [0. 0. 0. 0. 1.] , [123.52222222 1.4 31.5 ] 50 , 2021-05-11 19:17:38 , [0. 1. 0. 0. 1.] , [125.33333333 1.4 31.5 ] 51 , 2021-05-11 19:20:58 , [0. 0. 0. 0. 1.] , [126.82222222 1.4 31.3 ] 52 , 2021-05-11 19:24:19 , [0. 1. 0. 0. 1.] , [124.15555556 1.4 31.4 ] 53 , 2021-05-11 19:27:40 , [0. 0. 0. 0. 1.] , [126.34444444 1.4 31.5 ] 54 , 2021-05-11 19:31:01 , [0. 1. 0. 0. 1.] , [124.68888889 1.4 31.4 ] 55 , 2021-05-11 19:34:23 , [0. 0. 0. 0. 0.] , [125.5 1.4 31.4]56 , 2021-05-11 19:37:44 , [0. 1. 0. 0. 1.] , [125.61111111 1.4 31.4 ] 57 , 2021-05-11 19:40:55 , [0. 0. 0. 0. 0.] , [125.16666667 1.4 32.8 ] 58 , 2021-05-11 19:44:16 , [0. 1. 0. 0. 1.] , [125.06666667 1.4 31.5 ] 59 , 2021-05-11 19:47:37 , [0. 0. 0. 0. 0.] , [125.54444444 1.4 31.2 ] 60 , 2021-05-11 19:50:58 , [0. 1. 0. 0. 1.] , [125.55555556 1.4 31.4 ] 61 , 2021-05-11 19:54:20 , [0. 0. 0. 0. 0.] , [128.92222222 1.4 31.5 ] 62 , 2021-05-11 19:57:31 , [0. 1. 0. 0. 1.] , [125.9 1.4 32.9] ------------------------------new:------------------------------knobs: [[0. 0. 0. 0. 0]]metrics: [[124.1 1.4 31.5]]rowlabels: [1]timestamp: 2021-05-11 20:00:52------------------------------TARGET:------------------------------knob: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] metric: search_latencymetric_lessisbetter: 1------------------------------------------------------------num of knobs == 5knobs: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] num of metrics == 3metrics: ['search_latency' 'compaction_mem' 'compaction_cpu'] ------------------------------------------------------------
  可以看到最佳推荐配置为[0. 0. 0. 0. 0.]和0. 1. 0. 0. 1.,具体配置参数如下
  set_beaver_datanode_gflags:: --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 4set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 16
  或者
  set_beaver_datanode_gflags::  --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 6set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 18
  结果显示,适当提高 search 并发数,或提高 SubSearch 的 block 数会优化 search 性能。五、存在的问题通过修改相关代码,目前自动调参工具能正常运行,但依然存在不足。本次 测试方案利用事前存储好的索引 baimi 数据集,仅测试影响 search 性能的参数, 因此可修改的配置项也相对较少。虽然舍弃了 AutoTiKV 的 workload,但代码依 然保留此功能,待后续有针对 Beaver 的工作负载方案之后,再添加相关 workload。此外 Beaver_datanode 的重启方式也并不优雅,有待提升。后续可优化:增加不同的 workload 模式,测试 index 性能和 search 性能(需要 Beaver 支持新的 index 方式),同时测试 index 相关的配置参数。优雅的重启 Beaver_datanode。目前重启等待 Beaver_datanode 可用的 wait 时间为 200s,在实际运行的 Beaver_datanode 中,索引恢复时间相对较长,需根据不同环境灵活变化。指标数据获取的准确度,会受到网络等因素的影响,有一定的波动。[参考文献]
  [1]OtterTune.
  [2]AutoTiKV.
  [3]Automatic Database Management System Tuning Through Large-scale Machine Learning.~ggordon/van-aken-etal-parameters.pdf
  [4]
  [5]
  [6]
  [7]Esrally.
  拓展内容
  精彩还在继续…2021年9月3日-4日,DevOps 国际峰会 2021 北京站,网易敏捷教练、于旭东为您分享“DevOps基础设施之环境管理,网易云音乐环境管理效率提升实践”,千万不要错过~
  
  近期好文:
  “高效运维”公众号诚邀广大技术人员投稿,

VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据

网站优化优采云 发表了文章 • 0 个评论 • 92 次浏览 • 2022-05-10 02:33 • 来自相关话题

  VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲 SEO 中的 JSON-LD。
  JSON-LD
  如果我们打开掘金任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 script 标签:
  
  在思否等其他平台也是可以看到的:
  
  那这个 type 为 application/ld+json 的 script,到底是什么意思呢? 又是什么作用呢?
  这就是我们今天要介绍的 JSON-LD,英文全程:JavaScript Object Notation for Linked Data,官方地址:[4],简单的来说,就是用来描述网页的类型和内容,方便搜索引擎做展现。
  比如如果我们在 Google 搜索 「Chocolate in a mug」,我们会看到这样的搜索结果:
  
  我们打开页面,就可以看到搜索展示的内容对应了 application/ld+json 中的内容:
  
  添加 JSON-LD
  如果我们也要实现这样的效果,方便搜索引擎展现,该怎么做呢?
  在页面加入结构化数据的方法很简单,只用在页面添加这样一段脚本就可以了:
  <br />    // ...<br /><br />
  具体里面的内容需要参考比如 Google 搜索中心提供的《结构化数据常规指南》[5],因为我写的是具体的文章,所以参考 Article 章节[6]后,我决定写入以下这些属性:
  <br />     {<br />      "@context": "https://schema.org",<br />      "@type": "Article",<br />      "headline": "这里填写标题",<br />      "image": [<br />        "https://ts.yayujs.com/icon-144x144.png"<br />       ],<br />      "datePublished": "2021-11-10T22:06:06.000Z",<br />      "dateModified": "2022-03-04T16:00:00.000Z",<br />      "author": [{<br />          "@type": "Person",<br />          "name": "冴羽",<br />          "url": "https://github.com/mqyqingfeng/Blog"<br />        }]<br />    }<br /><br />
  VuePress 实现
  经过搜索,我并没有发现现成的插件,由于每个页面的标题、发布时间、更新时间都不同,那成吧,那就自己写个本地插件实现吧。
  其实要实现的内容很简单,就是在编译的时候在 head 中写入一个 script 脚本,脚本的内容根据页面的属性而定,但毕竟我用的是 vuepress 1.x,实现方式受制于工具,完全看工具提供了什么 API 来实现,我们直接看最终的实现方式:
  vuepress-plugin-jsonld
  在 .vuepress 目录下建立 vuepress-plugin-jsonld 文件夹,然后执行 npm init ,创建 package.json
  创建 index.js,代码写入:
  const { path } = require('@vuepress/shared-utils')<br /><br />module.exports = options => ({<br />  name: 'vuepress-plugin-jsonld',<br />  enhanceAppFiles () {<br />    return [path.resolve(__dirname, 'enhanceAppFile.js')]<br />  },<br />  globalUIComponents: ['JSONLD']<br />})<br />
  创建 enhanceAppFile.js,代码写入:
  import JSONLD from './JSONLD.vue'<br /><br />export default ({ Vue, options }) => {<br />  Vue.component('JSONLD', JSONLD)<br />}<br />
  创建 JSONLD.vue,代码写入:
  <br /><br /><br />export default {<br /> created() {<br /> if (typeof this.$ssrContext !== "undefined") {<br /> this.$ssrContext.userHeadTags += <br /> `<br /> {<br /> "@context": "https://schema.org",<br /> "@type": "Article",<br /> "headline": "${this.$page.title}",<br /> "url": "${'https://yayujs.com' + this.$page.path}",<br /> "image": [<br /> "https://ts.yayujs.com/icon-144x144.png"<br /> ],<br /> "datePublished": "${this.$page.frontmatter.date && (new Date(this.$page.frontmatter.date)).toISOString()}",<br /> "dateModified": "${this.$page.lastUpdated && (new Date(this.$page.lastUpdated)).toISOString()}",<br /> "author": [{<br /> "@type": "Person",<br /> "name": "冴羽",<br /> "url": "https://github.com/mqyqingfeng/Blog"<br /> }]<br /> }<br /> `;<br /> }<br /> }<br />};<br /><br />
  这里之所以能够给所有的页面都注入脚本内容,是因为借助了 globalUIComponents[7]:
  你可能想注入某些全局的 UI,并固定在页面中的某处,如 back-to-top, popup。在 VuePress 中,一个全局 UI 就是一个 Vue 组件。
  config.js
  接下来我们修改 config.js:
  module.exports = {<br />    title: 'title',<br />    description: 'description',<br />    plugins: [<br />      require('./vuepress-plugin-jsonld')<br />    ]<br />}<br />
  注意我们在本地运行的时候并不能看到,我们可以关闭 deploy.sh 推送到远程的命令,然后本地编译一下,查一下输出的 HTML:
  
  验证
  发布到线上后,我们可以在 Google 提供的富媒体搜索测试[8]中进行验证,打开网址,输入页面地址,就可以看到抓取的结构化数据:
  
  如果有错误,这里也会展示警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 31篇。 查看全部

  VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲 SEO 中的 JSON-LD。
  JSON-LD
  如果我们打开掘金任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 script 标签:
  
  在思否等其他平台也是可以看到的:
  
  那这个 type 为 application/ld+json 的 script,到底是什么意思呢? 又是什么作用呢?
  这就是我们今天要介绍的 JSON-LD,英文全程:JavaScript Object Notation for Linked Data,官方地址:[4],简单的来说,就是用来描述网页的类型和内容,方便搜索引擎做展现。
  比如如果我们在 Google 搜索 「Chocolate in a mug」,我们会看到这样的搜索结果:
  
  我们打开页面,就可以看到搜索展示的内容对应了 application/ld+json 中的内容:
  
  添加 JSON-LD
  如果我们也要实现这样的效果,方便搜索引擎展现,该怎么做呢?
  在页面加入结构化数据的方法很简单,只用在页面添加这样一段脚本就可以了:
  <br />    // ...<br /><br />
  具体里面的内容需要参考比如 Google 搜索中心提供的《结构化数据常规指南》[5],因为我写的是具体的文章,所以参考 Article 章节[6]后,我决定写入以下这些属性:
  <br />     {<br />      "@context": "https://schema.org",<br />      "@type": "Article",<br />      "headline": "这里填写标题",<br />      "image": [<br />        "https://ts.yayujs.com/icon-144x144.png"<br />       ],<br />      "datePublished": "2021-11-10T22:06:06.000Z",<br />      "dateModified": "2022-03-04T16:00:00.000Z",<br />      "author": [{<br />          "@type": "Person",<br />          "name": "冴羽",<br />          "url": "https://github.com/mqyqingfeng/Blog"<br />        }]<br />    }<br /><br />
  VuePress 实现
  经过搜索,我并没有发现现成的插件,由于每个页面的标题、发布时间、更新时间都不同,那成吧,那就自己写个本地插件实现吧。
  其实要实现的内容很简单,就是在编译的时候在 head 中写入一个 script 脚本,脚本的内容根据页面的属性而定,但毕竟我用的是 vuepress 1.x,实现方式受制于工具,完全看工具提供了什么 API 来实现,我们直接看最终的实现方式:
  vuepress-plugin-jsonld
  在 .vuepress 目录下建立 vuepress-plugin-jsonld 文件夹,然后执行 npm init ,创建 package.json
  创建 index.js,代码写入:
  const { path } = require('@vuepress/shared-utils')<br /><br />module.exports = options => ({<br />  name: 'vuepress-plugin-jsonld',<br />  enhanceAppFiles () {<br />    return [path.resolve(__dirname, 'enhanceAppFile.js')]<br />  },<br />  globalUIComponents: ['JSONLD']<br />})<br />
  创建 enhanceAppFile.js,代码写入:
  import JSONLD from './JSONLD.vue'<br /><br />export default ({ Vue, options }) => {<br />  Vue.component('JSONLD', JSONLD)<br />}<br />
  创建 JSONLD.vue,代码写入:
  <br /><br /><br />export default {<br /> created() {<br /> if (typeof this.$ssrContext !== "undefined") {<br /> this.$ssrContext.userHeadTags += <br /> `<br /> {<br /> "@context": "https://schema.org",<br /> "@type": "Article",<br /> "headline": "${this.$page.title}",<br /> "url": "${'https://yayujs.com' + this.$page.path}",<br /> "image": [<br /> "https://ts.yayujs.com/icon-144x144.png"<br /> ],<br /> "datePublished": "${this.$page.frontmatter.date && (new Date(this.$page.frontmatter.date)).toISOString()}",<br /> "dateModified": "${this.$page.lastUpdated && (new Date(this.$page.lastUpdated)).toISOString()}",<br /> "author": [{<br /> "@type": "Person",<br /> "name": "冴羽",<br /> "url": "https://github.com/mqyqingfeng/Blog"<br /> }]<br /> }<br /> `;<br /> }<br /> }<br />};<br /><br />
  这里之所以能够给所有的页面都注入脚本内容,是因为借助了 globalUIComponents[7]:
  你可能想注入某些全局的 UI,并固定在页面中的某处,如 back-to-top, popup。在 VuePress 中,一个全局 UI 就是一个 Vue 组件。
  config.js
  接下来我们修改 config.js:
  module.exports = {<br />    title: 'title',<br />    description: 'description',<br />    plugins: [<br />      require('./vuepress-plugin-jsonld')<br />    ]<br />}<br />
  注意我们在本地运行的时候并不能看到,我们可以关闭 deploy.sh 推送到远程的命令,然后本地编译一下,查一下输出的 HTML:
  
  验证
  发布到线上后,我们可以在 Google 提供的富媒体搜索测试[8]中进行验证,打开网址,输入页面地址,就可以看到抓取的结构化数据:
  
  如果有错误,这里也会展示警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 31篇。

VuePress 博客之 SEO 优化(四) Open Graph protoc

网站优化优采云 发表了文章 • 0 个评论 • 89 次浏览 • 2022-05-10 02:23 • 来自相关话题

  VuePress 博客之 SEO 优化(四) Open Graph protoc
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲讲 SEO 优化中的 Open Graph protocol。
  meta 标签
  如果我们打开思否任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 meta 标签:
  
  我们可以发现 name 都是以 og: 开头,这是什么意思呢,又是什么作用呢?
  其实这是 Facebook 提出的 Open Graph Protocol,官方地址:[4],用来标注页面类型和描述页面内容,从而方便在社交媒体中进行传播。
  简单的来说,按照这个协议描述页面信息,社交网站按就会按照页面上 og 标签的内容呈现给用户,由于使用广泛,目前也已经被搜索引擎支持,参照这个非常老的帖子[5]的内容:
  参与到 Open Graph Protocol 的好处:
  标记示例
  参照网站管理员分享指南[6],以下就是一个使用 OG 协议标记文章、新闻动态或博文:
  <br /><br /><br /><br /><br />
  这些属性包括我们在用户分享文章时具体想要呈现的与文章有关的描述性元数据。
  其中 og:type,表示内容的媒体类型。此标签会影响内容在动态中的显示方式。完整的类型参阅对象类型参考文档[7]。
  这里我选择的是 article 类型,查看 The Open Graph protocol[8],可以看到 article 类型下还有其他可以展示的属性:
  
  使用 OG 协议
  虽然我们可以借助 config.js 和 Front Matter 自定义每个页面的 og 属性,但我们也可以借助现有的插件比如 vuepress-plugin-seo[9] 来快速的实现
  1. 安装
  yarn add vuepress-plugin-seo@0.1.4 -D<br />
  注意,因为我们使用的是 vuepress 1.x,所以对应的插件应该使用 v0.1.4,如果是用的 2.x,就安装最新的版本即可。
  2. 使用
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      ['seo', {<br />        siteTitle: (_, $site) => 'TypeScript中文文档',<br />        title: $page => $page.title,<br />        description: $page => $page.frontmatter.description,<br />        author: (_, $site) => '冴羽',<br />        type: $page => 'article',<br />        url: (_, $site, path) => 'https://ts.yayujs.com' + path,<br />        image: ($page, $site) => "https://www.typescriptlang.org ... ot%3B,<br />        publishedAt: $page => $page.frontmatter.date && new Date($page.frontmatter.date),<br />        modifiedAt: $page => $page.lastUpdated && new Date($page.lastUpdated),<br />     }]<br />   ]<br />}<br />
  这里我根据自己的情况,自定义了一些属性的展示,要注意这里的 publishedAt,即发布时间,是需要借助 Front Matter 以 date 为名称,写在每个 md 文件中的:
  title: TypeScript中文文档_入门进阶必备<br />description: TypeScript 系列文章由官方文档翻译、重难点解析、实践技巧与总结三个部分组成,预计 40 篇左右。目前已完成了官方文档 Handbooks 的翻译,正在准备重难点解读部分。<br />date: 2021/11/11 06:06:06<br />
  3. 顺序问题
  在实际开发的过程中,如果你还用到了 @vuepress/last-updated 和 sitemap,建议按照这样的顺序:
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      [<br />        '@vuepress/last-updated',<br />        {<br />          transformer: (timestamp, lang) => {<br />            return new Date(timestamp).toLocaleDateString();<br />          }<br />        }<br />      ],<br />      [<br />        'sitemap',<br />        {<br />          hostname: 'https://ts.yayujs.com'<br />        }<br />      ],<br />      ['seo', {<br />        ...<br />     }]<br />   ]<br />}<br />
  否则 modifiedAt会展示不出来。
  4. 效果展示
  现在我们查看 DOM 元素,就会有 og 标签了,不仅如此,seo 这个插件还为我们写了 twitter 标签,至于这个标签,你可以理解为这是 twitter 推出的协议,与 og 一样,都是为了方便展示。
  
  5. 工具验证
  你可以使用 Facebook Object Debugger[10] 这个官方提供的工具进行验证:
  
  这个工具会展现在 Facebook 分享的效果,以及提供一些警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 30 篇。 查看全部

  VuePress 博客之 SEO 优化(四) Open Graph protoc
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲讲 SEO 优化中的 Open Graph protocol。
  meta 标签
  如果我们打开思否任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 meta 标签:
  
  我们可以发现 name 都是以 og: 开头,这是什么意思呢,又是什么作用呢?
  其实这是 Facebook 提出的 Open Graph Protocol,官方地址:[4],用来标注页面类型和描述页面内容,从而方便在社交媒体中进行传播。
  简单的来说,按照这个协议描述页面信息,社交网站按就会按照页面上 og 标签的内容呈现给用户,由于使用广泛,目前也已经被搜索引擎支持,参照这个非常老的帖子[5]的内容:
  参与到 Open Graph Protocol 的好处:
  标记示例
  参照网站管理员分享指南[6],以下就是一个使用 OG 协议标记文章、新闻动态或博文:
  <br /><br /><br /><br /><br />
  这些属性包括我们在用户分享文章时具体想要呈现的与文章有关的描述性元数据。
  其中 og:type,表示内容的媒体类型。此标签会影响内容在动态中的显示方式。完整的类型参阅对象类型参考文档[7]。
  这里我选择的是 article 类型,查看 The Open Graph protocol[8],可以看到 article 类型下还有其他可以展示的属性:
  
  使用 OG 协议
  虽然我们可以借助 config.js 和 Front Matter 自定义每个页面的 og 属性,但我们也可以借助现有的插件比如 vuepress-plugin-seo[9] 来快速的实现
  1. 安装
  yarn add vuepress-plugin-seo@0.1.4 -D<br />
  注意,因为我们使用的是 vuepress 1.x,所以对应的插件应该使用 v0.1.4,如果是用的 2.x,就安装最新的版本即可。
  2. 使用
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      ['seo', {<br />        siteTitle: (_, $site) => 'TypeScript中文文档',<br />        title: $page => $page.title,<br />        description: $page => $page.frontmatter.description,<br />        author: (_, $site) => '冴羽',<br />        type: $page => 'article',<br />        url: (_, $site, path) => 'https://ts.yayujs.com' + path,<br />        image: ($page, $site) => "https://www.typescriptlang.org ... ot%3B,<br />        publishedAt: $page => $page.frontmatter.date && new Date($page.frontmatter.date),<br />        modifiedAt: $page => $page.lastUpdated && new Date($page.lastUpdated),<br />     }]<br />   ]<br />}<br />
  这里我根据自己的情况,自定义了一些属性的展示,要注意这里的 publishedAt,即发布时间,是需要借助 Front Matter 以 date 为名称,写在每个 md 文件中的:
  title: TypeScript中文文档_入门进阶必备<br />description: TypeScript 系列文章由官方文档翻译、重难点解析、实践技巧与总结三个部分组成,预计 40 篇左右。目前已完成了官方文档 Handbooks 的翻译,正在准备重难点解读部分。<br />date: 2021/11/11 06:06:06<br />
  3. 顺序问题
  在实际开发的过程中,如果你还用到了 @vuepress/last-updated 和 sitemap,建议按照这样的顺序:
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      [<br />        '@vuepress/last-updated',<br />        {<br />          transformer: (timestamp, lang) => {<br />            return new Date(timestamp).toLocaleDateString();<br />          }<br />        }<br />      ],<br />      [<br />        'sitemap',<br />        {<br />          hostname: 'https://ts.yayujs.com'<br />        }<br />      ],<br />      ['seo', {<br />        ...<br />     }]<br />   ]<br />}<br />
  否则 modifiedAt会展示不出来。
  4. 效果展示
  现在我们查看 DOM 元素,就会有 og 标签了,不仅如此,seo 这个插件还为我们写了 twitter 标签,至于这个标签,你可以理解为这是 twitter 推出的协议,与 og 一样,都是为了方便展示。
  
  5. 工具验证
  你可以使用 Facebook Object Debugger[10] 这个官方提供的工具进行验证:
  
  这个工具会展现在 Facebook 分享的效果,以及提供一些警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 30 篇。

个人博客 SEO 优化(2):站内优化

网站优化优采云 发表了文章 • 0 个评论 • 111 次浏览 • 2022-05-06 01:15 • 来自相关话题

  个人博客 SEO 优化(2):站内优化
  文章首发于我的博客:个人博客 SEO 优化(2):站内优化对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍
  SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:
  网站结构优化简单概括有下面几个要素:
  网站结构优化物理及链接结构
  物理结构指的就是网站真实目录及文件所在的位置决定的结构。一般来说,比较合理的两种物理结构是扁平式和树形结构。扁平式就是所有的页面都放在一级,一般来说,这种方式只适合页面数量少的网站。更多的都是采用树形结构的方式。比如利用 hexo 构建的博客就是采用树形结构:
  
  链接结构指的是网站内部页面的链接所形成的结构。链接结构通常也是树形结构:
  
  H 代表着网站首页。C1 和 C2 代表着网站的分类首页。P1~4 则是具体的每个页面。这只是演示的结构,实际的结构会比这个更加复杂。
  对于搜索引擎来说,链接结构会比物理结构来得更有意义。在上一篇 个人博客 SEO 优化(1):搜索引擎原理介绍 中有介绍到,与首页点击距离越近的页面被 spider 爬行的概率也大,即权重越高。这里的点击距离指的就是链接结构的距离。比如同样是属于第三层级的 P3 页面,由于被首页直接链接指向,它的首页点击距离比其他页面来得短,因此会有更高的权重。
  设置合理的网站的链接结构有利于页面权重的分配。
  清晰的导航
  清晰的导航系统是网站设计的重要目标。毕竟你肯定不想你的用户进入你的网站首页后,面对混乱的导航,难以找到想到的页面。对于搜索引擎的 spider 也是如此,混乱的导航会降低 spider 爬行概率。
  在设置网站导航应该注意下面几点:
  子域名和目录
  搜索引擎通常会把子域名当成独立的站点。而目录就是该域名名下的一部分。比如 只是 的一个子域名。 就是一个目录。
  因此对主域名所做的优化,对于子域名的网站而言,同样需要再做一遍。一般的网站和博客不需要子域名。只有大型的网站才会需要。
  禁止收录机制
  你如果你不想某些具体的页面不被收录,可以通过 robots 文件或者 Meta Robots 标签来指定,确保页面不会被搜索引擎收录。
  robots 文件
  该文件是搜索引擎爬行网站第一个访问的,用于告诉搜索引擎那些内容可以爬取,哪些内容禁止爬取。如果没有写规则或者没有 robots 文件的话,就是默认全部没有都可以爬取。
  但是由于有的网站服务器设置问题,如果不存在 robots.txt 文件的时候,会返回 200 状态码及一些错误信息。可能会导致 spider 错误解读信息。所以建议,至少也要放一个空的 robots.txt 文件在网站根目录下。
  robots 的格式如下:
  <p>User-agent: *
  Disallow: /</p>
  上面的文件代表禁止所有搜索引擎爬取所有内容。 User-agent:* 表示运行所有的搜索引擎。我们知道,不同的搜索引擎的 spider 名称也不同。在 User-agent 上你也可以设置名称,只允许特定的搜索引擎爬取。如 User-agent:Googlebot、 Disallow 不添加任何路径就表示运行爬取任何内容。需要注意的是:如果要 Disallow 多个文件夹或者文件,需要写成多行。每一行 Disallow 只能写一个。
  meta robots 标签
  通过 name="robots"content="noindex,nofollow"> 也可以设置禁止搜索引擎索引本页的内容,禁止跟踪本页的链接。其中 content 的参数有:
  每个参数中间需要已逗号隔开。
  nofollow
  格式如下:
  <p>nofollow</p>
  nofollow 标签是由 Google 领头创新的一个“反垃圾链接”的标签,并被市场上其他主流搜索引擎广泛支持。nofollow 是 a 标签的一个属性值。用于告诉搜索引擎不要追踪此链接,因为这个链接不是作者所信任的。这里的 nofollow 与上面说的 meta 标签上的 nofollow 区别在于:a 标签上的 nofollow 是指单个链接,而 meta 上的 nofollow 是指整个页面所有的链接。
  nofollow 通常用于博客评论、论坛帖子、社交网站、留言板等地方。因为这些地方的内容都是用户可以自由留下链接,站长并不知道这些链接是否可信。经过测试发现,你在 segmentfault 或者掘金发表文章时,文章的外部链接都会加上 rel="nofollow"。
  同时对于网站内部一些重复内容的页面或者是一些无需被收录的链接都可以加上该标签,可以防止网站权重浪费。比如像联系我们、隐私政策等页面,就可以使用 nofollow 标签了。
  URL 静态化
  我们都知道,对于动态页面对应 spider 爬取是不友好的。因此需要将 URL 静态化才能更好的让 spider 爬取。
  这点对于 hexo 博客来说不成问题。毕竟本身都是静态博客,所有的页面都是 HTML 页面。
  网址规范化问题
  网址规范指的是尽量使用唯一的 URL,而不要使用多个 URL。比如下面的 url 虽然访问都是同样的内容,但是搜索引擎会把他们当做不同的页面。
  复制内容
  复制内容也称重复内容,指的是多个 URL 的内容相同或者非常相似。复制内容既可能发生在同一网站内,也可能发生在不同网站上。
  如果一个网站的复制内容过多的话,会带来害处。一是有可能使搜索引擎对网站的质量产生怀疑,导致惩罚。另外一种情况就是,同一个站内的复制内容过多的话,会分散权重。
  那么该如何消除复制内容?
  网站地图
  无论站点的多少,网站地图都是需要的。网站地图有 HTML 和 XML 两种版本。
  HTML 版本的网站地图就是一个页面列出网站的结构。而 XML 版本则是通过在根目录添加 sitemap.xml文件。
  <p>  
      http://chenhuichao.com/2018/04 ... iple/
      2018-04-13T13:49:50.000Z
      monthly
      1
    </p>
  一个 XML 版本的网站地图是上面那样。其中的标签含义如下:
  priority 可选 页面权重
  除了 url 和 loc 是必须之外,其他的标签都为可选,只是主动告诉搜索引擎页面的一些信息,具体还是得根据搜索引擎自己的判断。
  制作好网站地图后,需要主动告诉搜索引擎。有两种方式:主动在站长工具提交 sitemap、robots.txt 文件指明位置
  比如 针对 Google 搜索引擎可以在 Google 网站站长 上提交。
  另外一种方式是在 robots.txt 文件中指出 sitemap.xml 的位置也能让搜索引擎知道网站地图的位置。
  <p>Sitemap: http://www.chenhuichao.com/sitemap.xml</p>
  内部链接及权限分配
  一个网站的首页权重是最高的,接着是二级分类页面,与我们前面提到的链接结构一样,也是成一个树结构。内部权限分配有几个原则:
  锚文字对于内部权限分配也是非常重要的一个手段。这方面 维基百科绝对是做得最好的。
  404 页面
  当访问的页面不存在时,需要一个专门的 404 页面。404 页面的设计需要注意几点:
  404 页面与外链的一个小技巧:
  由于搜索引擎并不会无缘无故得爬行一些不存在的原因的。肯定是有外部链接指向这些地址,比如别人的博客页面引用等,而原文可能你已经删除或者更换 url 了。所以我们可以通过 Google 网站站长工具发现我们网站存在的错误链接,将错误地址做 301 跳转到正确的页面或者直接在本来不存在的 URL 上新建一个页面,接收这些外部链接的权重。
  
  页面优化
  网址页面优化可以从下面几个角度进行:
  页面标题
  页面标题是页面优化最重要的因素。格式如下:
  <p>个人博客 SEO</p>
  在优化标题的时候需要注意:
  description 标签
  Description 标签用于说明网页的主体内容。格式如下:
  <p>H6 的重要性依次降低。
  所以建议在页面的 H1 和 H2 标签中混入关键词。
  图片 ALT 文字
  对于前端攻城狮而言,这是个常规操作了。毕竟图片都是需要添加 ALT 文字的,用于在图片不显示的情况下显示 ALT 文字。图片 ALT 文字出现的关键词对页面相关性也有一定的影响。同样的,也不要在 ALT 上堆砌关键词。
  内部链接及锚文字
  内部链接对于爬行和收录具有很重要的意义。内部链接对页面关键词相关性也有影响,最主要的就是在内部链接中使用锚文字。
  锚文字是告诉搜索引擎被链接页面主题内容的最重要依据之一。我们有时候可能无法控制外部链接的锚文字,但是对于站内的内部链接锚文字我们可以控制。不过有几点需要注意:
  导出链接及锚文字
  导出链接有可能会有两种情况:
  页面更新
  毋庸置疑,保持更新能提高排名。毕竟页面更新率也是吸引 spider 返回抓取的因素之一。
  通过上面的一些介绍,基本上把站内优化的基本要素覆盖了。虽然对于网站 SEO 而言,站外链接的优化意义要远远重要于站内优化,但是这并不意味着你不需要站内优化。只有把一些基本的站内优化细节做好,保持高质量的内容更新,才能吸引更多的用户。
  所以下一篇文章就要介绍如何针对 hexo 主题进行 SEO 改造。
   查看全部

  个人博客 SEO 优化(2):站内优化
  文章首发于我的博客:个人博客 SEO 优化(2):站内优化对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍
  SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:
  网站结构优化简单概括有下面几个要素:
  网站结构优化物理及链接结构
  物理结构指的就是网站真实目录及文件所在的位置决定的结构。一般来说,比较合理的两种物理结构是扁平式和树形结构。扁平式就是所有的页面都放在一级,一般来说,这种方式只适合页面数量少的网站。更多的都是采用树形结构的方式。比如利用 hexo 构建的博客就是采用树形结构:
  
  链接结构指的是网站内部页面的链接所形成的结构。链接结构通常也是树形结构:
  
  H 代表着网站首页。C1 和 C2 代表着网站的分类首页。P1~4 则是具体的每个页面。这只是演示的结构,实际的结构会比这个更加复杂。
  对于搜索引擎来说,链接结构会比物理结构来得更有意义。在上一篇 个人博客 SEO 优化(1):搜索引擎原理介绍 中有介绍到,与首页点击距离越近的页面被 spider 爬行的概率也大,即权重越高。这里的点击距离指的就是链接结构的距离。比如同样是属于第三层级的 P3 页面,由于被首页直接链接指向,它的首页点击距离比其他页面来得短,因此会有更高的权重。
  设置合理的网站的链接结构有利于页面权重的分配。
  清晰的导航
  清晰的导航系统是网站设计的重要目标。毕竟你肯定不想你的用户进入你的网站首页后,面对混乱的导航,难以找到想到的页面。对于搜索引擎的 spider 也是如此,混乱的导航会降低 spider 爬行概率。
  在设置网站导航应该注意下面几点:
  子域名和目录
  搜索引擎通常会把子域名当成独立的站点。而目录就是该域名名下的一部分。比如 只是 的一个子域名。 就是一个目录。
  因此对主域名所做的优化,对于子域名的网站而言,同样需要再做一遍。一般的网站和博客不需要子域名。只有大型的网站才会需要。
  禁止收录机制
  你如果你不想某些具体的页面不被收录,可以通过 robots 文件或者 Meta Robots 标签来指定,确保页面不会被搜索引擎收录。
  robots 文件
  该文件是搜索引擎爬行网站第一个访问的,用于告诉搜索引擎那些内容可以爬取,哪些内容禁止爬取。如果没有写规则或者没有 robots 文件的话,就是默认全部没有都可以爬取。
  但是由于有的网站服务器设置问题,如果不存在 robots.txt 文件的时候,会返回 200 状态码及一些错误信息。可能会导致 spider 错误解读信息。所以建议,至少也要放一个空的 robots.txt 文件在网站根目录下。
  robots 的格式如下:
  <p>User-agent: *
  Disallow: /</p>
  上面的文件代表禁止所有搜索引擎爬取所有内容。 User-agent:* 表示运行所有的搜索引擎。我们知道,不同的搜索引擎的 spider 名称也不同。在 User-agent 上你也可以设置名称,只允许特定的搜索引擎爬取。如 User-agent:Googlebot、 Disallow 不添加任何路径就表示运行爬取任何内容。需要注意的是:如果要 Disallow 多个文件夹或者文件,需要写成多行。每一行 Disallow 只能写一个。
  meta robots 标签
  通过 name="robots"content="noindex,nofollow"> 也可以设置禁止搜索引擎索引本页的内容,禁止跟踪本页的链接。其中 content 的参数有:
  每个参数中间需要已逗号隔开。
  nofollow
  格式如下:
  <p>nofollow</p>
  nofollow 标签是由 Google 领头创新的一个“反垃圾链接”的标签,并被市场上其他主流搜索引擎广泛支持。nofollow 是 a 标签的一个属性值。用于告诉搜索引擎不要追踪此链接,因为这个链接不是作者所信任的。这里的 nofollow 与上面说的 meta 标签上的 nofollow 区别在于:a 标签上的 nofollow 是指单个链接,而 meta 上的 nofollow 是指整个页面所有的链接。
  nofollow 通常用于博客评论、论坛帖子、社交网站、留言板等地方。因为这些地方的内容都是用户可以自由留下链接,站长并不知道这些链接是否可信。经过测试发现,你在 segmentfault 或者掘金发表文章时,文章的外部链接都会加上 rel="nofollow"。
  同时对于网站内部一些重复内容的页面或者是一些无需被收录的链接都可以加上该标签,可以防止网站权重浪费。比如像联系我们、隐私政策等页面,就可以使用 nofollow 标签了。
  URL 静态化
  我们都知道,对于动态页面对应 spider 爬取是不友好的。因此需要将 URL 静态化才能更好的让 spider 爬取。
  这点对于 hexo 博客来说不成问题。毕竟本身都是静态博客,所有的页面都是 HTML 页面。
  网址规范化问题
  网址规范指的是尽量使用唯一的 URL,而不要使用多个 URL。比如下面的 url 虽然访问都是同样的内容,但是搜索引擎会把他们当做不同的页面。
  复制内容
  复制内容也称重复内容,指的是多个 URL 的内容相同或者非常相似。复制内容既可能发生在同一网站内,也可能发生在不同网站上。
  如果一个网站的复制内容过多的话,会带来害处。一是有可能使搜索引擎对网站的质量产生怀疑,导致惩罚。另外一种情况就是,同一个站内的复制内容过多的话,会分散权重。
  那么该如何消除复制内容?
  网站地图
  无论站点的多少,网站地图都是需要的。网站地图有 HTML 和 XML 两种版本。
  HTML 版本的网站地图就是一个页面列出网站的结构。而 XML 版本则是通过在根目录添加 sitemap.xml文件。
  <p>  
      http://chenhuichao.com/2018/04 ... iple/
      2018-04-13T13:49:50.000Z
      monthly
      1
    </p>
  一个 XML 版本的网站地图是上面那样。其中的标签含义如下:
  priority 可选 页面权重
  除了 url 和 loc 是必须之外,其他的标签都为可选,只是主动告诉搜索引擎页面的一些信息,具体还是得根据搜索引擎自己的判断。
  制作好网站地图后,需要主动告诉搜索引擎。有两种方式:主动在站长工具提交 sitemap、robots.txt 文件指明位置
  比如 针对 Google 搜索引擎可以在 Google 网站站长 上提交。
  另外一种方式是在 robots.txt 文件中指出 sitemap.xml 的位置也能让搜索引擎知道网站地图的位置。
  <p>Sitemap: http://www.chenhuichao.com/sitemap.xml</p>
  内部链接及权限分配
  一个网站的首页权重是最高的,接着是二级分类页面,与我们前面提到的链接结构一样,也是成一个树结构。内部权限分配有几个原则:
  锚文字对于内部权限分配也是非常重要的一个手段。这方面 维基百科绝对是做得最好的。
  404 页面
  当访问的页面不存在时,需要一个专门的 404 页面。404 页面的设计需要注意几点:
  404 页面与外链的一个小技巧:
  由于搜索引擎并不会无缘无故得爬行一些不存在的原因的。肯定是有外部链接指向这些地址,比如别人的博客页面引用等,而原文可能你已经删除或者更换 url 了。所以我们可以通过 Google 网站站长工具发现我们网站存在的错误链接,将错误地址做 301 跳转到正确的页面或者直接在本来不存在的 URL 上新建一个页面,接收这些外部链接的权重。
  
  页面优化
  网址页面优化可以从下面几个角度进行:
  页面标题
  页面标题是页面优化最重要的因素。格式如下:
  <p>个人博客 SEO</p>
  在优化标题的时候需要注意:
  description 标签
  Description 标签用于说明网页的主体内容。格式如下:
  <p>H6 的重要性依次降低。
  所以建议在页面的 H1 和 H2 标签中混入关键词。
  图片 ALT 文字
  对于前端攻城狮而言,这是个常规操作了。毕竟图片都是需要添加 ALT 文字的,用于在图片不显示的情况下显示 ALT 文字。图片 ALT 文字出现的关键词对页面相关性也有一定的影响。同样的,也不要在 ALT 上堆砌关键词。
  内部链接及锚文字
  内部链接对于爬行和收录具有很重要的意义。内部链接对页面关键词相关性也有影响,最主要的就是在内部链接中使用锚文字。
  锚文字是告诉搜索引擎被链接页面主题内容的最重要依据之一。我们有时候可能无法控制外部链接的锚文字,但是对于站内的内部链接锚文字我们可以控制。不过有几点需要注意:
  导出链接及锚文字
  导出链接有可能会有两种情况:
  页面更新
  毋庸置疑,保持更新能提高排名。毕竟页面更新率也是吸引 spider 返回抓取的因素之一。
  通过上面的一些介绍,基本上把站内优化的基本要素覆盖了。虽然对于网站 SEO 而言,站外链接的优化意义要远远重要于站内优化,但是这并不意味着你不需要站内优化。只有把一些基本的站内优化细节做好,保持高质量的内容更新,才能吸引更多的用户。
  所以下一篇文章就要介绍如何针对 hexo 主题进行 SEO 改造。
  

图片alt标签是什么?如何优化Alt标签

网站优化优采云 发表了文章 • 0 个评论 • 270 次浏览 • 2022-05-03 23:44 • 来自相关话题

  图片alt标签是什么?如何优化Alt标签
  今天要跟大家聊聊图片中alt属性,不要小看这个图片的alt属性,谷歌对于这个属性还是很器重的,对于提升网站排名也有一定作用,不然谷歌也不会花好几篇文章去说明alt属性,这篇文章把谷歌官方的几篇文章提取出来,来说说图片alt属性以及如何优化。
  什么是Alt属性?我们在做这件事之前,首先需要明白为什么做这件事,Alt属性最重要的功能就是在图片无法显示,作为替代说明文字,比如在网络不好的时候,图片加载比较慢,首先浏览器就会使用alt属性内的文本作为占位标记显示在网页上,让读者有个大体的概念,这个图片表达的内容含义是什么。Alt属性的作用Alt属性不同Title属性和其他说明性属性,这个属性是图片所特有的属性,在其他Html标签上是用不到Alt属性的,所以这个属性有两点很重要的作用:第一点前面已经说过了,就是在图片无法加载的时候,作为图片辅助说明性文字,第二点是最重要的一点,因为做好Alt优化,能够提升网站排名,获得更多流量,虽然各大搜索引擎在积极发展图片识别技术,但是还是无法做到像人类一样准确理解图片的意思,这时候我们就需要使用Alt属性,帮助搜索引擎理解图片,写好Alt属性文本内容,就像写好文章Title一样,能够带来更多的关键词排名,各大搜索引擎都有图片搜索的功能,那些图片就是搜索引擎建立索引,并给予排名的,可以看到那些图片都是有相关信息描述的
  
  怎么写好Alt属性
  下面简单举个例子,来说明下什么样的Alt文本内容,才是符合SEO要求;首先来看看最简单的Logo图片标签:
  seozen-logo.jpg
  LOGO的图片属性,可以看到图片文件名是有意义的名称,不是随机的字母或者数字,这是第一个要注意的地方,上传图片之前,要尽量重命名图片,让他语义话,之后Alt属性内部,是英文描述的图片功能,表达的是这个图片是LOGO,如果是国内不做谷歌排名的朋友,这里用中文就好,Alt标签一般使用的是英文描述,这是比较好的方式,一般的方式是把图片语义化后的文件名,去掉后缀放到Alt属性里面,这样也是可以的,但是肯定没有功能描述的好。下面在优化Alt属性的时候,有几点需要注意: 查看全部

  图片alt标签是什么?如何优化Alt标签
  今天要跟大家聊聊图片中alt属性,不要小看这个图片的alt属性,谷歌对于这个属性还是很器重的,对于提升网站排名也有一定作用,不然谷歌也不会花好几篇文章去说明alt属性,这篇文章把谷歌官方的几篇文章提取出来,来说说图片alt属性以及如何优化。
  什么是Alt属性?我们在做这件事之前,首先需要明白为什么做这件事,Alt属性最重要的功能就是在图片无法显示,作为替代说明文字,比如在网络不好的时候,图片加载比较慢,首先浏览器就会使用alt属性内的文本作为占位标记显示在网页上,让读者有个大体的概念,这个图片表达的内容含义是什么。Alt属性的作用Alt属性不同Title属性和其他说明性属性,这个属性是图片所特有的属性,在其他Html标签上是用不到Alt属性的,所以这个属性有两点很重要的作用:第一点前面已经说过了,就是在图片无法加载的时候,作为图片辅助说明性文字,第二点是最重要的一点,因为做好Alt优化,能够提升网站排名,获得更多流量,虽然各大搜索引擎在积极发展图片识别技术,但是还是无法做到像人类一样准确理解图片的意思,这时候我们就需要使用Alt属性,帮助搜索引擎理解图片,写好Alt属性文本内容,就像写好文章Title一样,能够带来更多的关键词排名,各大搜索引擎都有图片搜索的功能,那些图片就是搜索引擎建立索引,并给予排名的,可以看到那些图片都是有相关信息描述的
  
  怎么写好Alt属性
  下面简单举个例子,来说明下什么样的Alt文本内容,才是符合SEO要求;首先来看看最简单的Logo图片标签:
  seozen-logo.jpg
  LOGO的图片属性,可以看到图片文件名是有意义的名称,不是随机的字母或者数字,这是第一个要注意的地方,上传图片之前,要尽量重命名图片,让他语义话,之后Alt属性内部,是英文描述的图片功能,表达的是这个图片是LOGO,如果是国内不做谷歌排名的朋友,这里用中文就好,Alt标签一般使用的是英文描述,这是比较好的方式,一般的方式是把图片语义化后的文件名,去掉后缀放到Alt属性里面,这样也是可以的,但是肯定没有功能描述的好。下面在优化Alt属性的时候,有几点需要注意:

怎么做网站优化呢(做网站优化的6个建议)

网站优化优采云 发表了文章 • 0 个评论 • 93 次浏览 • 2022-05-02 04:05 • 来自相关话题

  怎么做网站优化呢(做网站优化的6个建议)
  
  
  怎么样做网站优化?网站优化就是对网页的程序、内容、版块、布局等多方面的优化调整,使其适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得的排名提升,增强搜索引擎营销的效果。除了网站安全维护和内容更新外,网站优化还必须要掌握许多的技巧和思路。
  1.百度搜索长尾词
  我们搜索某一个关键词的时候,你会发现搜索词汇后百度会给出相对应的长尾词或者扩展词汇,比如:网站建设,会出现网站建设公司,我们在搜索这类词汇的时候又可以进行扩展,如许可更新的内容话题就有了。
  2.百度相关搜索
  在做网站优化的时候,要重新思考一下自身网站的定位是什么,针对的用户是什么样的,要像用户显示什么样的内容,网站的结构和栏目又是什么样的,这些问题都要重新思考好,以免日后需要经常改动,网站的定位就像一个大纲一样,只有确定好大纲后面的进一步优化才有可能。
  
  3.百度百科
  我们搜索某个词汇的时候,一样平常首页最前面的都是该词汇百度百科的介绍,介绍甚至会分为多个点进行,比如搜索:SEO优化,会包括:特性特点,优化内容,优化步骤等等,这些小的点都可以针对性的做为一篇网站内容更新的话题去写作。
  4.词库等关键词分析网站
  还有一种网站是用来专门分析某些关键词相干长尾词的,比如:词库。我们随便搜索一个关键词都可以查询到跟这个词汇有关系的一些有指数的相干内容,通过这种体例也可以找寻到许多跟自身网站主题相干的话题内容进行编辑写作。
  5.统计工具分析的长尾词
  搜索引擎比较喜欢新颖的内容,同时用户在浏览网站的时候也比较喜欢新颖的内容,所以,在写文章的时候,尽量要写原创文章,这样可以避免在搜索引擎中出现大量重复内容,同时有利于网站在搜索引擎中的评级。
  
  6、日常网站外部链接建设
  网站推广人员除了做日常的网站内容更新以外,还必要适当的给网站做一些外部链接建设,以便进步网站权重,外部链接建设可以通过:软文投稿,博客留链接,以及论坛发帖留外链,等体例进行,每天发布的外链根据网站的当前情况和人力情况来决定,网站假如刚上线,内容更新维护又做了一些,那么这个时候就可以去做外部链接建设了,日均做个20-30条即可。
  以上就是我们对怎么样做网站优化的一些建议,内容的好坏与更新频率对网站优化效果和搜索引擎排名的影响非常之大,企业在日常运维中应该给予足够的重视。
   查看全部

  怎么做网站优化呢(做网站优化的6个建议)
  
  
  怎么样做网站优化?网站优化就是对网页的程序、内容、版块、布局等多方面的优化调整,使其适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得的排名提升,增强搜索引擎营销的效果。除了网站安全维护和内容更新外,网站优化还必须要掌握许多的技巧和思路。
  1.百度搜索长尾词
  我们搜索某一个关键词的时候,你会发现搜索词汇后百度会给出相对应的长尾词或者扩展词汇,比如:网站建设,会出现网站建设公司,我们在搜索这类词汇的时候又可以进行扩展,如许可更新的内容话题就有了。
  2.百度相关搜索
  在做网站优化的时候,要重新思考一下自身网站的定位是什么,针对的用户是什么样的,要像用户显示什么样的内容,网站的结构和栏目又是什么样的,这些问题都要重新思考好,以免日后需要经常改动,网站的定位就像一个大纲一样,只有确定好大纲后面的进一步优化才有可能。
  
  3.百度百科
  我们搜索某个词汇的时候,一样平常首页最前面的都是该词汇百度百科的介绍,介绍甚至会分为多个点进行,比如搜索:SEO优化,会包括:特性特点,优化内容,优化步骤等等,这些小的点都可以针对性的做为一篇网站内容更新的话题去写作。
  4.词库等关键词分析网站
  还有一种网站是用来专门分析某些关键词相干长尾词的,比如:词库。我们随便搜索一个关键词都可以查询到跟这个词汇有关系的一些有指数的相干内容,通过这种体例也可以找寻到许多跟自身网站主题相干的话题内容进行编辑写作。
  5.统计工具分析的长尾词
  搜索引擎比较喜欢新颖的内容,同时用户在浏览网站的时候也比较喜欢新颖的内容,所以,在写文章的时候,尽量要写原创文章,这样可以避免在搜索引擎中出现大量重复内容,同时有利于网站在搜索引擎中的评级。
  
  6、日常网站外部链接建设
  网站推广人员除了做日常的网站内容更新以外,还必要适当的给网站做一些外部链接建设,以便进步网站权重,外部链接建设可以通过:软文投稿,博客留链接,以及论坛发帖留外链,等体例进行,每天发布的外链根据网站的当前情况和人力情况来决定,网站假如刚上线,内容更新维护又做了一些,那么这个时候就可以去做外部链接建设了,日均做个20-30条即可。
  以上就是我们对怎么样做网站优化的一些建议,内容的好坏与更新频率对网站优化效果和搜索引擎排名的影响非常之大,企业在日常运维中应该给予足够的重视。
  

大佬们都在使用的博客,你不来看看?

网站优化优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2022-04-30 13:19 • 来自相关话题

  大佬们都在使用的博客,你不来看看?
  
  哈喽,大家好,我是指北君。
  最近我准备搭建一个自己的个人博客,在网上也找个许多开源的博客,经过多项对比,最终选择了WordPress,WordPress有着非常强大的功能,堪称是最完美的建站程序。
  一、WordPress的优点
  WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;
  
  WordPress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;
  
  适合DIY,如果你是喜欢丰富内容的网站,那么WordPress可以很好地符合你的胃口。
  主题很多,网站上有许多WordPress的主题,各色各样,应有尽有!
  
  WordPress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。
  
  WordPress有强大的社区支持,有上千万的开发者贡献和审查WordPress,所以WordPress是安全并且活跃的。
  二、功能介绍
  因为WordPress强大的扩展性,很多网站已经开始使用WordPress作为内容管理系统来架设商业网站。WordPress提供的功能包括:
  文章发布、分类、归档、收藏,统计阅读次数。
  提供文章、评论、分类等多种形式的RSS聚合。
  提供链接的添加、归类功能。
  支持评论的管理,垃圾信息过滤功能。
  支持多样式CSS和PHP程序的直接编辑、修改。
  在Blog系统外,方便添加所需页面。
  通过对各种参数进行设置,使Blog更具个性化。
  在某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。
  通过选择不同主题,方便地改变页面的显示效果。
  通过添加插件,可提供多种特殊的功能。
  支持针对某些其它blog软件、平台的导入功能。
  支持会员注册登录,后台管理功能。
  三、特色
  所见即所得的文章编辑器。
  模板系统,也成为主题系统。
  统一的链接管理功能。
  为搜索引擎而优化的永久链接(PermaLink)系统。
  支持使用扩充其功能的插件。
  对于文章可以进行嵌套的分类,同一文章也可属于多个分类。
  TrackBack和Pingback的功能。
  能产生适当的文字的格式和式样的排版滤镜。
  生成和使用静态页面的功能。
  多作者共同写作的功能。
  可以保存访问过网站的用户列表。
  可以禁止来自一定IP段的用户的访问。
  支持使用标签(Tags)。
  四、安装使用
  推荐使用容器化安装 (需要MYSQL5.6+或者MariaDB版本10.1+以上数据库)
  docker run \<br />--name wordpress-apache \<br />-v /home/wp/html:/var/www/html \<br />-p 80:80 \<br />-d wordpress:5.8.3-php8.0-apache\<br /><br />#下面为介绍<br />docker run \#启动容器<br />--name wordpress-apache \ #指定容器的名字<br />-v /home/wp/html:/var/www/html \ # 挂载的路径<br />-p 80:80 \ #端口映射<br />-d wordpress:5.8.3-php8.0-apache\ # 镜像的名字<br />
  
  #查看是否启动<br />docker ps<br />#进入容器:<br />docker exec -it wordpress-apache /bin/bash<br />
  
  启动后,使用:端口/wp-admin/install.php,进行著名的五分钟安装。
  
  按照要求进行填写信息便可完成安装,安装完成后便可以登录后台开始你的创作了,更多的功能需要你一步步探索了。
  
  五、指北君有话说
  指北君个人也是一直使用的WordPress,平常写写个人想法、技术文章、进行个人总结、分享。生活中我们也应该经常进行总结。
  开源指北,立志做最好的开源分享平台,分享有趣实用的开源项目。欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。还有简历模板、各种技术面试资料等100G的资源等着你领取哦。公众号回复888马上加入,快来一起来聊一聊吧! 查看全部

  大佬们都在使用的博客,你不来看看?
  
  哈喽,大家好,我是指北君。
  最近我准备搭建一个自己的个人博客,在网上也找个许多开源的博客,经过多项对比,最终选择了WordPress,WordPress有着非常强大的功能,堪称是最完美的建站程序。
  一、WordPress的优点
  WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;
  
  WordPress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;
  
  适合DIY,如果你是喜欢丰富内容的网站,那么WordPress可以很好地符合你的胃口。
  主题很多,网站上有许多WordPress的主题,各色各样,应有尽有!
  
  WordPress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。
  
  WordPress有强大的社区支持,有上千万的开发者贡献和审查WordPress,所以WordPress是安全并且活跃的。
  二、功能介绍
  因为WordPress强大的扩展性,很多网站已经开始使用WordPress作为内容管理系统来架设商业网站。WordPress提供的功能包括:
  文章发布、分类、归档、收藏,统计阅读次数。
  提供文章、评论、分类等多种形式的RSS聚合。
  提供链接的添加、归类功能。
  支持评论的管理,垃圾信息过滤功能。
  支持多样式CSS和PHP程序的直接编辑、修改。
  在Blog系统外,方便添加所需页面。
  通过对各种参数进行设置,使Blog更具个性化。
  在某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。
  通过选择不同主题,方便地改变页面的显示效果。
  通过添加插件,可提供多种特殊的功能。
  支持针对某些其它blog软件、平台的导入功能。
  支持会员注册登录,后台管理功能。
  三、特色
  所见即所得的文章编辑器。
  模板系统,也成为主题系统。
  统一的链接管理功能。
  为搜索引擎而优化的永久链接(PermaLink)系统。
  支持使用扩充其功能的插件。
  对于文章可以进行嵌套的分类,同一文章也可属于多个分类。
  TrackBack和Pingback的功能。
  能产生适当的文字的格式和式样的排版滤镜。
  生成和使用静态页面的功能。
  多作者共同写作的功能。
  可以保存访问过网站的用户列表。
  可以禁止来自一定IP段的用户的访问。
  支持使用标签(Tags)。
  四、安装使用
  推荐使用容器化安装 (需要MYSQL5.6+或者MariaDB版本10.1+以上数据库)
  docker run \<br />--name wordpress-apache \<br />-v /home/wp/html:/var/www/html \<br />-p 80:80 \<br />-d wordpress:5.8.3-php8.0-apache\<br /><br />#下面为介绍<br />docker run \#启动容器<br />--name wordpress-apache \ #指定容器的名字<br />-v /home/wp/html:/var/www/html \ # 挂载的路径<br />-p 80:80 \ #端口映射<br />-d wordpress:5.8.3-php8.0-apache\ # 镜像的名字<br />
  
  #查看是否启动<br />docker ps<br />#进入容器:<br />docker exec -it wordpress-apache /bin/bash<br />
  
  启动后,使用:端口/wp-admin/install.php,进行著名的五分钟安装。
  
  按照要求进行填写信息便可完成安装,安装完成后便可以登录后台开始你的创作了,更多的功能需要你一步步探索了。
  
  五、指北君有话说
  指北君个人也是一直使用的WordPress,平常写写个人想法、技术文章、进行个人总结、分享。生活中我们也应该经常进行总结。
  开源指北,立志做最好的开源分享平台,分享有趣实用的开源项目。欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。还有简历模板、各种技术面试资料等100G的资源等着你领取哦。公众号回复888马上加入,快来一起来聊一聊吧!

博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)

网站优化优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2022-04-20 11:28 • 来自相关话题

  博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)
  如何将搜索引擎前三名网站优化为最佳网站排名,实际上意味着我们在搜索引擎的有效搜索点击中产生网站生成关键词。根据百度的点击算法,作者将有效排名定义为搜索引擎排名前20。
  不过我今天要分享的SEO网站优化经验不限于前20,而是最好的排名,也就是前三名的搜索引擎,让更多的用户点击获得更多自然流量。
  这里又要重复老话题了,绿萝卜算法的链接拦截规则,它告诉SEOer有很多不自然的链接,追求数量而不关心质量的链接注定会被“抛弃”搜索引擎。将网站的基础优化到极致,从而保证网站的质量。
  首先,站点中的链接路径是完整的——创建一个面包屑路径
  面包屑路是中国尚品一直强调的面包屑导航。我们知道,面包屑导航是一种扁平的树状结构展示,可以明确用户浏览页面在整个网站中的位置,提升用户体验。同时,面包屑导航其实是网站的内部链接,其基本点还是在网站的首页,相对集中了首页的权重。但是,在网站中,链接点通常是超链接的形式,实际上是把链接的词当成关键词,但是像homepage这样的词出现在关键词搜索中确实没有'没有意义,所以我们可以将主页更改为 网站关键词,这将提高 关键词 参与度排名。
  二、为内容划分权重,细化决策——标签优化和快速排名
  更新网站内容信息时,一般是直接发帖。值得注意的是,以关键字超链接的形式建立内部链接来推荐内容。然而,这只是一个版本。事实上,我们可以在更新内容时使用标签来提炼基本信息。最常用的页面元素是 h 标签、标题、alt 和 nofollow。内容发帖可以使用文章中的H1标签或者title标签来确定页面的主题,可以提升网站的参与度排名。这里需要强调一下,H1标签在一个页面中只能使用一次,而H2标签可以多次使用。
  搜索引擎和用户喜欢有图有真相的内容信息,所以在写文章的时候尽量加图,把文章做成图文的形式。对于文章中的图片,我们可以使用alt来添加图片属性,最好是图片的大小。但是在添加alt图片属性的时候,要注意图片的描述,而不是简单的关键词展示。
  为了保持权重集中,我们经常使用nofollow标签,这在页面中非常重要。添加了nofollow标签的页面的内容信息仍然会被收录,但不会参与页面排名,权重会集中,阻止搜索引擎再次点击链接。对于企业网站,我们可以在不需要参与排名的栏目中添加nofollow标签,比如“联系我们”,这样就可以“修复”网站首页相对集中的权重。
  三、选择站点中的信息,并减少和简化——聪明的使用JS没有那么死板
  过多的模板词会影响 网站 上的搜索引擎得分。当模板词频繁出现在开头、结尾和左边时,会给搜索引擎一种“无聊”的感觉,因此在判断页面质量时会被扣分。因此,网站 中的无用信息越少越好。对于必须出现的信息词,我们应该尽量让搜索引擎主观地忽略它。也许你会想,有没有这样的方法!其实很简单,就是可以被搜索引擎抓取不到的JS代码调用。以目前搜索引擎的能力,爬取JS代码程序是不可能的,所以SEO可以把握住这一点,将必要的模板文字以JS调用的形式放在网页的网站中,这样既不会影响页面设计,不会被搜索引擎抓到,一石二鸟。 查看全部

  博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)
  如何将搜索引擎前三名网站优化为最佳网站排名,实际上意味着我们在搜索引擎的有效搜索点击中产生网站生成关键词。根据百度的点击算法,作者将有效排名定义为搜索引擎排名前20。
  不过我今天要分享的SEO网站优化经验不限于前20,而是最好的排名,也就是前三名的搜索引擎,让更多的用户点击获得更多自然流量。
  这里又要重复老话题了,绿萝卜算法的链接拦截规则,它告诉SEOer有很多不自然的链接,追求数量而不关心质量的链接注定会被“抛弃”搜索引擎。将网站的基础优化到极致,从而保证网站的质量。
  首先,站点中的链接路径是完整的——创建一个面包屑路径
  面包屑路是中国尚品一直强调的面包屑导航。我们知道,面包屑导航是一种扁平的树状结构展示,可以明确用户浏览页面在整个网站中的位置,提升用户体验。同时,面包屑导航其实是网站的内部链接,其基本点还是在网站的首页,相对集中了首页的权重。但是,在网站中,链接点通常是超链接的形式,实际上是把链接的词当成关键词,但是像homepage这样的词出现在关键词搜索中确实没有'没有意义,所以我们可以将主页更改为 网站关键词,这将提高 关键词 参与度排名。
  二、为内容划分权重,细化决策——标签优化和快速排名
  更新网站内容信息时,一般是直接发帖。值得注意的是,以关键字超链接的形式建立内部链接来推荐内容。然而,这只是一个版本。事实上,我们可以在更新内容时使用标签来提炼基本信息。最常用的页面元素是 h 标签、标题、alt 和 nofollow。内容发帖可以使用文章中的H1标签或者title标签来确定页面的主题,可以提升网站的参与度排名。这里需要强调一下,H1标签在一个页面中只能使用一次,而H2标签可以多次使用。
  搜索引擎和用户喜欢有图有真相的内容信息,所以在写文章的时候尽量加图,把文章做成图文的形式。对于文章中的图片,我们可以使用alt来添加图片属性,最好是图片的大小。但是在添加alt图片属性的时候,要注意图片的描述,而不是简单的关键词展示。
  为了保持权重集中,我们经常使用nofollow标签,这在页面中非常重要。添加了nofollow标签的页面的内容信息仍然会被收录,但不会参与页面排名,权重会集中,阻止搜索引擎再次点击链接。对于企业网站,我们可以在不需要参与排名的栏目中添加nofollow标签,比如“联系我们”,这样就可以“修复”网站首页相对集中的权重。
  三、选择站点中的信息,并减少和简化——聪明的使用JS没有那么死板
  过多的模板词会影响 网站 上的搜索引擎得分。当模板词频繁出现在开头、结尾和左边时,会给搜索引擎一种“无聊”的感觉,因此在判断页面质量时会被扣分。因此,网站 中的无用信息越少越好。对于必须出现的信息词,我们应该尽量让搜索引擎主观地忽略它。也许你会想,有没有这样的方法!其实很简单,就是可以被搜索引擎抓取不到的JS代码调用。以目前搜索引擎的能力,爬取JS代码程序是不可能的,所以SEO可以把握住这一点,将必要的模板文字以JS调用的形式放在网页的网站中,这样既不会影响页面设计,不会被搜索引擎抓到,一石二鸟。

详解:博客搜索引擎优化的原理,二手链接的构造【一】

网站优化优采云 发表了文章 • 0 个评论 • 91 次浏览 • 2022-09-24 06:04 • 来自相关话题

  详解:博客搜索引擎优化的原理,二手链接的构造【一】
  博客搜索引擎优化的原理,来源现代搜索引擎广告,二手链接的构造一.通用原理:1.1搜索引擎中的链接是怎么来的?不难理解,当你看一个站点,首先要有一个int连接,这个int连接是建立在各种用户体验上的,如果你是搜索的发起者,一般一个单独搜索框只能有一个int,这就是为什么很多网站首页都有一个网址入口,这样搜索看到的不止是该站点的站点的站点的站点,还有里面的各种数据,如商品列表,招聘信息,搜索关键词,社交关系等等。
  
  1.2为什么没有百度的我也可以搜?搜索引擎通过点击链接来获取的链接作为你搜索的相应的内容。1.3为什么搜索引擎会收录我的网站,我也可以收录别人的网站?很简单,搜索引擎会查找你网站上其他人是否有点击过这个网址,如果你的网站上没有相应的内容,你当然也不会被收录。但是可以收录别人的网站,其实很简单,你的网站是个独立的个体,被很多个人点击了,这就是百度收录别人网站的原因。
  1.4除了搜索引擎以外,在哪里可以找到搜索引擎链接?答案:在百度的各种生成工具中可以找到。1.5其他网站是如何通过他们与搜索引擎链接的?是否存在竞争关系,要建立一条条链接规则?答案:目前国内的互联网相关行业的网站都建立了一套系统来和搜索引擎进行对抗,如果你没有被竞争,大家基本上不会建立链接规则,竞争程度越低越好,收录多就算结果好。
  
  1.6如何区分链接的来源?答案:你可以把所有竞争相对较小的网站作为一个整体查看,你会发现会有一些在前端表现上像搜索引擎链接的是百度聚合的,你可以在百度生成工具中查看链接。1.7我并不想找到竞争对手网站,而是希望搜索引擎认同我的站点,如何办?答案:可以使用搜索引擎强制加载的代码,如baiduspider提供了这种代码。
  1.8搜索引擎收录我网站需要收录哪些内容?答案:自己的,别人的,站长分享的。1.9在没有明确用途的情况下,如何收录?答案:目前,搜索引擎在没有经过你同意的情况下会强制抓取全网站,包括但不限于:a.域名解析b.虚拟主机,独立空间等等。1.10检查发起者有没有付费来获取搜索引擎一些高级的搜索结果?答案:目前免费的网站发起者不但获取了收录,还获取了一些好的搜索结果,当然,高级的搜索结果是需要付费的。
  1.11什么是百度站长工具?答案:就是一个搜索引擎看行情的地方,有一定可用性,但是没有太多的可参考性。1.12使用通用的方法能否收录你的网站?答案:肯定收录,和你的网站的内容质量有关,但是不是绝对的。1.13什么是网站的seo?答案:建议你自己学着看看看。 查看全部

  详解:博客搜索引擎优化的原理,二手链接的构造【一】
  博客搜索引擎优化的原理,来源现代搜索引擎广告,二手链接的构造一.通用原理:1.1搜索引擎中的链接是怎么来的?不难理解,当你看一个站点,首先要有一个int连接,这个int连接是建立在各种用户体验上的,如果你是搜索的发起者,一般一个单独搜索框只能有一个int,这就是为什么很多网站首页都有一个网址入口,这样搜索看到的不止是该站点的站点的站点的站点,还有里面的各种数据,如商品列表,招聘信息,搜索关键词,社交关系等等。
  
  1.2为什么没有百度的我也可以搜?搜索引擎通过点击链接来获取的链接作为你搜索的相应的内容。1.3为什么搜索引擎会收录我的网站,我也可以收录别人的网站?很简单,搜索引擎会查找你网站上其他人是否有点击过这个网址,如果你的网站上没有相应的内容,你当然也不会被收录。但是可以收录别人的网站,其实很简单,你的网站是个独立的个体,被很多个人点击了,这就是百度收录别人网站的原因。
  1.4除了搜索引擎以外,在哪里可以找到搜索引擎链接?答案:在百度的各种生成工具中可以找到。1.5其他网站是如何通过他们与搜索引擎链接的?是否存在竞争关系,要建立一条条链接规则?答案:目前国内的互联网相关行业的网站都建立了一套系统来和搜索引擎进行对抗,如果你没有被竞争,大家基本上不会建立链接规则,竞争程度越低越好,收录多就算结果好。
  
  1.6如何区分链接的来源?答案:你可以把所有竞争相对较小的网站作为一个整体查看,你会发现会有一些在前端表现上像搜索引擎链接的是百度聚合的,你可以在百度生成工具中查看链接。1.7我并不想找到竞争对手网站,而是希望搜索引擎认同我的站点,如何办?答案:可以使用搜索引擎强制加载的代码,如baiduspider提供了这种代码。
  1.8搜索引擎收录我网站需要收录哪些内容?答案:自己的,别人的,站长分享的。1.9在没有明确用途的情况下,如何收录?答案:目前,搜索引擎在没有经过你同意的情况下会强制抓取全网站,包括但不限于:a.域名解析b.虚拟主机,独立空间等等。1.10检查发起者有没有付费来获取搜索引擎一些高级的搜索结果?答案:目前免费的网站发起者不但获取了收录,还获取了一些好的搜索结果,当然,高级的搜索结果是需要付费的。
  1.11什么是百度站长工具?答案:就是一个搜索引擎看行情的地方,有一定可用性,但是没有太多的可参考性。1.12使用通用的方法能否收录你的网站?答案:肯定收录,和你的网站的内容质量有关,但是不是绝对的。1.13什么是网站的seo?答案:建议你自己学着看看看。

解决方案:网站推广的八种基本方法

网站优化优采云 发表了文章 • 0 个评论 • 120 次浏览 • 2022-09-23 14:08 • 来自相关话题

  解决方案:网站推广的八种基本方法
  1.搜索引擎推广方式
  搜索引擎推广是指利用具有在线信息检索功能的搜索引擎、目录等网络工具进行网站推广的方式。由于搜索引擎的基本形式可以分为网络蜘蛛式搜索引擎(简称搜索引擎)和基于人工类别的搜索引擎(简称类别),因此搜索引擎推广的形式还包括基于搜索的方法基于搜索引擎的引擎和方法。分类的方法,前者包括搜索引擎优化、关键词广告、PPC、固定排名、基于内容的广告等形式,而后者主要是在分类目录网站的相应类别中进行@>登录。随着搜索引擎形式的进一步发展和变化,也出现了其他形式的搜索引擎,但大多是基于这两种形式。
  搜索引擎推广的方法可以分为多种不同的形式。常见的有:登录免费类、登录付费类、搜索引擎优化、关键词广告、关键词 PPC、Web内容定向广告等。
  从目前的发展趋势来看,搜索引擎在网络营销中的地位依然重要,被越来越多的企业所认可。搜索引擎营销的方法也在不断的演变,所以要根据环境的变化来选择。搜索引擎营销的正确方式。
  2. 电子邮件营销方法
  电子邮件是主要的推广手段网站,常用的方式有电子刊物、会员通讯、专业服务商的电子邮件广告等。
  基于用户许可的邮件营销不同于垃圾邮件,许可营销相对于传统的推广方式或无许可的邮件营销具有明显优势,比如减少广告对用户的滋扰,增加潜在客户定位的准确性,增强与用户的关系客户,提高品牌忠诚度等。根据电子邮件营销许可的用户电子邮件地址资源的所有形式,可以分为内部列表电子邮件营销和外部列表电子邮件营销,或者简单地分为内部列表和外部列表。内部列表也称为邮件列表,是利用网站的注册用户信息进行Email营销的一种方式,如新闻邮件、会员快讯、电子刊物等。外部列表Email营销是使用专业服务提供商的用户电子邮件地址进行电子邮件营销,即以电子邮件广告的形式向服务提供商的用户发送信息。授权邮件营销是一种相对独立的网络营销方法体系,可以与其他网络营销方法相结合,也可以独立应用。
  
  3.资源合作推广方式
  通过网站链接交换、广告交换、内容合作、用户资源合作等方式,达到目标相近者相互促进的目的网站,其中最常用的资源合作方式是网站链接策略,利用网站合作伙伴之间的流量资源相互促进。
  每个企业网站都可以拥有自己的资源,可以表现为一定的流量、注册用户信息、有价值的内容和功能、在线广告位等,使用网站资源与合作伙伴合作,达到资源共享,共同扩大利益的目的。在这些资源合作形式中,交换链接是最简单的合作方式,调查显示,这也是推广新网站的有效方式之一。交换链接或互惠链接是网站之间的一种简单的合作形式,具有一定的优势互补,即把对方网站的LOGO或网站@放在自己的网站 分别。 >命名并设置对方网站的超链接,让用户从合作网站中发现自己的网站,从而达到相互促进的目的。交换链接的作用主要表现在几个方面:获得流量,增加用户浏览时的印象,增加搜索引擎排名优势,通过合作网站的推荐增加访问者的可信度。交换链接比能不能达到直接的效果,有着更深层次的意义。一般来说,每个网站都倾向于链接到其他网站的链接值较高的网站,从而获得其他网站的链接也意味着得到伙伴和同行的认可网站 @> 在字段中。
  4.信息发布推广方式
  在网站上发布其他潜在用户可能访问的相关网站宣传信息,并利用用户在这些网站中获取信息的机会达到网站的目的@>促销,网站适用于这些信息发布包括网络黄页、分类广告、论坛、博客网站、供求信息平台、行业网站等。信息发布是其中之一免费网站推广的常用方法之一,尤其是在互联网发展初期,网上信息量比较少的时候,往往通过信息发布取得满意的效果,但随着网上信息爆炸的作用这种依靠免费信息发布的方式正在减少,并且由于越来越多有效的网站推广方式的出现,信息发布在常用的网站推广方式中。信息的重要性也明显下降,依靠大量免费信息的发送方式并没有太大的价值,但一些针对性强、专业性强的信息还是能引起人们的极大关注,尤其是当信息以高度的方式发布时相关的。
  5.病毒式营销方法
  病毒式营销方式不是传播病毒,而是利用用户之间的主动交流,让信息像病毒一样传播,从而达到推广的目的。病毒式营销方式本质上是为用户提供有价值的免费服务,同时附上一些促销信息。常用工具包括免费电子书、免费软件、免费FLASH作品、免费贺卡、免费邮箱、免费即时聊天工具等,可以为用户带来信息、网络服务使用、娱乐等便捷的工具和内容如果应用得当,这种病毒式营销策略通常可以以非常低的成本取得非常显着的效果。病毒式营销的详细介绍和案例要素请参考作者《网络营销基础与实践》第2版(下)相关内容,新上线的《120网站推广实用方法》系列营销观察文章中也会有适当的介绍。
  
  6.快速网址推广方法
  即合理利用网络实名、常用网址等类似关键词网站快捷访问方式,实现网站推广方式。快捷网址使用自然语言与网站网址建立对应关系,为习惯使用中文的用户提供了极大的便利。用户只需要输入一个比英文 URL 更容易记住的快捷 URL。您可以访问 网站 并使用您的母语或其他简单词汇来“替换”一个更容易记住且更容易反映 网站 品牌形象的 URL,例如选择公司名称或商标,主要产品名称等。作为一个中文网站,这可以极大地弥补英文网站宣传的不便,因为它具有一定的网站推广价值。随着企业注册快捷网站数量的增加,这些快捷网站的用户数据也可以相当于一个搜索引擎。这样,当用户使用某个关键词进行搜索时,即使与某个网站注册的中文网站不一致,也有被用户发现的机会。
  7.网络广告推广方式
  网络广告是常用的网络营销策略之一,在网络品牌推广、产品推广、网站促销等方面发挥着重要作用。常见的网络广告形式有:BANNER广告、关键词广告、分类广告、赞助广告、Email广告等。BANNER广告所依赖的媒体是网页,关键词广告是一种搜索形式引擎营销和电子邮件广告是一种许可的电子邮件营销。可见,网络广告不可能独立存在,需要与各种网络工具相结合。只有结合起来,才能实现信息传递的功能。因此,也可以认为网络广告存在于各种网络营销工具中,但具体表现形式不同。网络广告用户推广网站具有网络媒体可选范围广、形式多样、适用性强、投放及时等优点,适用于网站初始发布的任何阶段和运营周期。
  8.综合网站促销方式
  除了上面介绍的常见的网站推广方式外,还有很多特殊的、临时性的网站推广方式,比如有奖问答、网上优惠券、有奖调查、网上购物网站通过比较购物和购物搜索引擎等方式进行推广。有的甚至通过建立辅助网站进行推广。有的网站推广方式可能很巧妙,有的网站可能会使用某种强制的方式来达到推广的目的,比如修改用户浏览器的默认首页设置,自动添加到采集夹,甚至在用户的计算机上。真正值得推广的是合理文明的网站推广方式,强制和破坏性的网站推广方式应该拒绝和反对。
  网站推广是一个系统工程,而不仅仅是各种网站推广方式的简单应用。在新的竞技网站推广综合解决方案中,上述网站推广方式作为常规网站推广方式使用。在网站整体推广策略的指导下,针对不同的网站,会根据其特点选择相应的方式。在此基础上,将采用各种方法。 网站推广方法的有效组合,以及更高级的网站推广技巧
  解决方法:【链接存档】Flash 停止运营后,这 4 个方法可以让你继续用上 Flash
  以下仅用于信息归档
  经过三年的过渡,Adobe 终于在 2020 年的最后一天正式结束对 Flash 技术的支持。这一次 Adob​​e 还联合了众多浏览器开发者和操作系统巨头,誓言要彻底让 Flash 从每个人的世界中消失。技术手段和使用环境。
  但就像 Windows 7 一样,官方的“死刑判决”并不意味着我们不再需要使用它。事实上,由于中国互联网环境比较特殊,要彻底告别Flash技术可能还“为时过早”。Flash作为曾经相当火爆的多媒体技术,被一些尚未进行技术升级的政府企业采用。@网站、电视直播、企业内网业务培训等页面的出勤率仍然相当高。
  部分学校官网仍大量使用Flash
  考虑到主流操作系统平台和浏览器都会比较激进地限制Flash的使用,如何在这个“后Flash时代”继续使用这种“过时”的技术?
  ▍留在旧版本/选择国产浏览器
  是的,如果您不关心新系统、新功能和浏览器的安全性,选择支持Fl​​ash的旧操作系统和浏览器自然会解决上述问题。
  操作系统方面,目前微软只向Windows8.1和Windows 10推送“移除Flash组件”更新,而已经停止支持的Windows 7不在本次更新的推送范围内。
  在浏览器方面,只有使用 Chromium v​​88 及以上(包括 v88) 内核的浏览器不再支持 Flash,只要版本低于此版本,就可以继续“加载”Flash 组件。通过以上小“小后门”我们可以在一定程度上继续浏览Flash内容。
  与紧跟Chromium上游版本的国外各大浏览器厂商相比,国内各大浏览器的Chromium版本还停留在v80之前。虽然在安全性和新技术应用方面稍显落后,但在Flash支持方面已经成为一大优势。因此,如果您主要使用浏览器访问国内网络服务,可以选择合适的国内浏览器。
  例如,QQ浏览器最新版本的Chromium版本仍然是v70。安装的时候会问要不要安装Flash,经过我的测试,检查Flash后要安装的版本其实是国内特制版Flash(虽然签名还是Adobe),不过好处是不会植入广告组件如独立安装Flash特别版(独立安装中文特别版flash Player会被系统安全软件直接屏蔽)。
  这种方案的好处是完全不用折腾,特别是对于浏览器主要用于访问国内互联网服务的朋友,几乎没有浏览器或使用习惯的适配和调整。当然,如果你的主浏览器是 Edge 或 Chrome,这个方案实际上是为系统额外安装了一个浏览器,并引入了潜在的浏览器广告弹窗等一系列隐私问题,并不适用于 macOS。用户(仅限 Windows 系统)。
  ▍ 使用开源替代品:Ruffle
  在 Adob​​e 宣布结束对 Flash 的支持后不久,开发人员推出了 Ruffle,这是该技术的开源替代品。
  Ruffle 是使用 Rust 编程语言构建的,本质上是一个 Flash Player 模拟器。它通过 WebAssembly 在浏览器上运行,运行时是浏览器扩展的形式——所以 Ruffle 也运行在沙箱中。与之前安装更多低级应用插件的做法相比,浏览器和操作系统受到了限制。影响也较小。
  目前,Ruffle 还处于持续开发阶段,因此尚未在各大浏览器的扩展商城上架。如果使用安装,需要在其GitHub[1]主页下载当前扩展编译包,手动运行。
  打开Chrome的扩展管理页面,勾选右上角的“开发者模式”,点击“加载解压的扩展”,选择之前解压过的Ruffle扩展包,就会进入浏览器的扩展栏。找到了Ruffle并开始了它。
<p>此时,您使用浏览器打开收录 Flash 内容的网页。此时,当前网页中的所有 Flash 元素都会变成一个播放按钮。单击播放以显示 Flash 内容。只是Ruffle目前对基于早期Flash技术(Flash Player 9之前)的内容支持较好,而对较新Flash技术的支持才刚刚开始,所以建议有老版本浏览需求的用户 查看全部

  解决方案:网站推广的八种基本方法
  1.搜索引擎推广方式
  搜索引擎推广是指利用具有在线信息检索功能的搜索引擎、目录等网络工具进行网站推广的方式。由于搜索引擎的基本形式可以分为网络蜘蛛式搜索引擎(简称搜索引擎)和基于人工类别的搜索引擎(简称类别),因此搜索引擎推广的形式还包括基于搜索的方法基于搜索引擎的引擎和方法。分类的方法,前者包括搜索引擎优化、关键词广告、PPC、固定排名、基于内容的广告等形式,而后者主要是在分类目录网站的相应类别中进行@>登录。随着搜索引擎形式的进一步发展和变化,也出现了其他形式的搜索引擎,但大多是基于这两种形式。
  搜索引擎推广的方法可以分为多种不同的形式。常见的有:登录免费类、登录付费类、搜索引擎优化、关键词广告、关键词 PPC、Web内容定向广告等。
  从目前的发展趋势来看,搜索引擎在网络营销中的地位依然重要,被越来越多的企业所认可。搜索引擎营销的方法也在不断的演变,所以要根据环境的变化来选择。搜索引擎营销的正确方式。
  2. 电子邮件营销方法
  电子邮件是主要的推广手段网站,常用的方式有电子刊物、会员通讯、专业服务商的电子邮件广告等。
  基于用户许可的邮件营销不同于垃圾邮件,许可营销相对于传统的推广方式或无许可的邮件营销具有明显优势,比如减少广告对用户的滋扰,增加潜在客户定位的准确性,增强与用户的关系客户,提高品牌忠诚度等。根据电子邮件营销许可的用户电子邮件地址资源的所有形式,可以分为内部列表电子邮件营销和外部列表电子邮件营销,或者简单地分为内部列表和外部列表。内部列表也称为邮件列表,是利用网站的注册用户信息进行Email营销的一种方式,如新闻邮件、会员快讯、电子刊物等。外部列表Email营销是使用专业服务提供商的用户电子邮件地址进行电子邮件营销,即以电子邮件广告的形式向服务提供商的用户发送信息。授权邮件营销是一种相对独立的网络营销方法体系,可以与其他网络营销方法相结合,也可以独立应用。
  
  3.资源合作推广方式
  通过网站链接交换、广告交换、内容合作、用户资源合作等方式,达到目标相近者相互促进的目的网站,其中最常用的资源合作方式是网站链接策略,利用网站合作伙伴之间的流量资源相互促进。
  每个企业网站都可以拥有自己的资源,可以表现为一定的流量、注册用户信息、有价值的内容和功能、在线广告位等,使用网站资源与合作伙伴合作,达到资源共享,共同扩大利益的目的。在这些资源合作形式中,交换链接是最简单的合作方式,调查显示,这也是推广新网站的有效方式之一。交换链接或互惠链接是网站之间的一种简单的合作形式,具有一定的优势互补,即把对方网站的LOGO或网站@放在自己的网站 分别。 >命名并设置对方网站的超链接,让用户从合作网站中发现自己的网站,从而达到相互促进的目的。交换链接的作用主要表现在几个方面:获得流量,增加用户浏览时的印象,增加搜索引擎排名优势,通过合作网站的推荐增加访问者的可信度。交换链接比能不能达到直接的效果,有着更深层次的意义。一般来说,每个网站都倾向于链接到其他网站的链接值较高的网站,从而获得其他网站的链接也意味着得到伙伴和同行的认可网站 @> 在字段中。
  4.信息发布推广方式
  在网站上发布其他潜在用户可能访问的相关网站宣传信息,并利用用户在这些网站中获取信息的机会达到网站的目的@>促销,网站适用于这些信息发布包括网络黄页、分类广告、论坛、博客网站、供求信息平台、行业网站等。信息发布是其中之一免费网站推广的常用方法之一,尤其是在互联网发展初期,网上信息量比较少的时候,往往通过信息发布取得满意的效果,但随着网上信息爆炸的作用这种依靠免费信息发布的方式正在减少,并且由于越来越多有效的网站推广方式的出现,信息发布在常用的网站推广方式中。信息的重要性也明显下降,依靠大量免费信息的发送方式并没有太大的价值,但一些针对性强、专业性强的信息还是能引起人们的极大关注,尤其是当信息以高度的方式发布时相关的。
  5.病毒式营销方法
  病毒式营销方式不是传播病毒,而是利用用户之间的主动交流,让信息像病毒一样传播,从而达到推广的目的。病毒式营销方式本质上是为用户提供有价值的免费服务,同时附上一些促销信息。常用工具包括免费电子书、免费软件、免费FLASH作品、免费贺卡、免费邮箱、免费即时聊天工具等,可以为用户带来信息、网络服务使用、娱乐等便捷的工具和内容如果应用得当,这种病毒式营销策略通常可以以非常低的成本取得非常显着的效果。病毒式营销的详细介绍和案例要素请参考作者《网络营销基础与实践》第2版(下)相关内容,新上线的《120网站推广实用方法》系列营销观察文章中也会有适当的介绍。
  
  6.快速网址推广方法
  即合理利用网络实名、常用网址等类似关键词网站快捷访问方式,实现网站推广方式。快捷网址使用自然语言与网站网址建立对应关系,为习惯使用中文的用户提供了极大的便利。用户只需要输入一个比英文 URL 更容易记住的快捷 URL。您可以访问 网站 并使用您的母语或其他简单词汇来“替换”一个更容易记住且更容易反映 网站 品牌形象的 URL,例如选择公司名称或商标,主要产品名称等。作为一个中文网站,这可以极大地弥补英文网站宣传的不便,因为它具有一定的网站推广价值。随着企业注册快捷网站数量的增加,这些快捷网站的用户数据也可以相当于一个搜索引擎。这样,当用户使用某个关键词进行搜索时,即使与某个网站注册的中文网站不一致,也有被用户发现的机会。
  7.网络广告推广方式
  网络广告是常用的网络营销策略之一,在网络品牌推广、产品推广、网站促销等方面发挥着重要作用。常见的网络广告形式有:BANNER广告、关键词广告、分类广告、赞助广告、Email广告等。BANNER广告所依赖的媒体是网页,关键词广告是一种搜索形式引擎营销和电子邮件广告是一种许可的电子邮件营销。可见,网络广告不可能独立存在,需要与各种网络工具相结合。只有结合起来,才能实现信息传递的功能。因此,也可以认为网络广告存在于各种网络营销工具中,但具体表现形式不同。网络广告用户推广网站具有网络媒体可选范围广、形式多样、适用性强、投放及时等优点,适用于网站初始发布的任何阶段和运营周期。
  8.综合网站促销方式
  除了上面介绍的常见的网站推广方式外,还有很多特殊的、临时性的网站推广方式,比如有奖问答、网上优惠券、有奖调查、网上购物网站通过比较购物和购物搜索引擎等方式进行推广。有的甚至通过建立辅助网站进行推广。有的网站推广方式可能很巧妙,有的网站可能会使用某种强制的方式来达到推广的目的,比如修改用户浏览器的默认首页设置,自动添加到采集夹,甚至在用户的计算机上。真正值得推广的是合理文明的网站推广方式,强制和破坏性的网站推广方式应该拒绝和反对。
  网站推广是一个系统工程,而不仅仅是各种网站推广方式的简单应用。在新的竞技网站推广综合解决方案中,上述网站推广方式作为常规网站推广方式使用。在网站整体推广策略的指导下,针对不同的网站,会根据其特点选择相应的方式。在此基础上,将采用各种方法。 网站推广方法的有效组合,以及更高级的网站推广技巧
  解决方法:【链接存档】Flash 停止运营后,这 4 个方法可以让你继续用上 Flash
  以下仅用于信息归档
  经过三年的过渡,Adobe 终于在 2020 年的最后一天正式结束对 Flash 技术的支持。这一次 Adob​​e 还联合了众多浏览器开发者和操作系统巨头,誓言要彻底让 Flash 从每个人的世界中消失。技术手段和使用环境。
  但就像 Windows 7 一样,官方的“死刑判决”并不意味着我们不再需要使用它。事实上,由于中国互联网环境比较特殊,要彻底告别Flash技术可能还“为时过早”。Flash作为曾经相当火爆的多媒体技术,被一些尚未进行技术升级的政府企业采用。@网站、电视直播、企业内网业务培训等页面的出勤率仍然相当高。
  部分学校官网仍大量使用Flash
  考虑到主流操作系统平台和浏览器都会比较激进地限制Flash的使用,如何在这个“后Flash时代”继续使用这种“过时”的技术?
  ▍留在旧版本/选择国产浏览器
  是的,如果您不关心新系统、新功能和浏览器的安全性,选择支持Fl​​ash的旧操作系统和浏览器自然会解决上述问题。
  操作系统方面,目前微软只向Windows8.1和Windows 10推送“移除Flash组件”更新,而已经停止支持的Windows 7不在本次更新的推送范围内。
  在浏览器方面,只有使用 Chromium v​​88 及以上(包括 v88) 内核的浏览器不再支持 Flash,只要版本低于此版本,就可以继续“加载”Flash 组件。通过以上小“小后门”我们可以在一定程度上继续浏览Flash内容。
  与紧跟Chromium上游版本的国外各大浏览器厂商相比,国内各大浏览器的Chromium版本还停留在v80之前。虽然在安全性和新技术应用方面稍显落后,但在Flash支持方面已经成为一大优势。因此,如果您主要使用浏览器访问国内网络服务,可以选择合适的国内浏览器。
  例如,QQ浏览器最新版本的Chromium版本仍然是v70。安装的时候会问要不要安装Flash,经过我的测试,检查Flash后要安装的版本其实是国内特制版Flash(虽然签名还是Adobe),不过好处是不会植入广告组件如独立安装Flash特别版(独立安装中文特别版flash Player会被系统安全软件直接屏蔽)。
  这种方案的好处是完全不用折腾,特别是对于浏览器主要用于访问国内互联网服务的朋友,几乎没有浏览器或使用习惯的适配和调整。当然,如果你的主浏览器是 Edge 或 Chrome,这个方案实际上是为系统额外安装了一个浏览器,并引入了潜在的浏览器广告弹窗等一系列隐私问题,并不适用于 macOS。用户(仅限 Windows 系统)。
  ▍ 使用开源替代品:Ruffle
  在 Adob​​e 宣布结束对 Flash 的支持后不久,开发人员推出了 Ruffle,这是该技术的开源替代品。
  Ruffle 是使用 Rust 编程语言构建的,本质上是一个 Flash Player 模拟器。它通过 WebAssembly 在浏览器上运行,运行时是浏览器扩展的形式——所以 Ruffle 也运行在沙箱中。与之前安装更多低级应用插件的做法相比,浏览器和操作系统受到了限制。影响也较小。
  目前,Ruffle 还处于持续开发阶段,因此尚未在各大浏览器的扩展商城上架。如果使用安装,需要在其GitHub[1]主页下载当前扩展编译包,手动运行。
  打开Chrome的扩展管理页面,勾选右上角的“开发者模式”,点击“加载解压的扩展”,选择之前解压过的Ruffle扩展包,就会进入浏览器的扩展栏。找到了Ruffle并开始了它。
<p>此时,您使用浏览器打开收录 Flash 内容的网页。此时,当前网页中的所有 Flash 元素都会变成一个播放按钮。单击播放以显示 Flash 内容。只是Ruffle目前对基于早期Flash技术(Flash Player 9之前)的内容支持较好,而对较新Flash技术的支持才刚刚开始,所以建议有老版本浏览需求的用户

解决方案:一般文章重定向到站外的路由器是怎么做的

网站优化优采云 发表了文章 • 0 个评论 • 73 次浏览 • 2022-09-22 00:02 • 来自相关话题

  解决方案:一般文章重定向到站外的路由器是怎么做的
  博客搜索引擎优化的内容主要包括标题、标签、图片、正文、描述、关键词、作者、网站结构等。以标题为例,关键词和标题上传网站后还需要抓取过来,重新用域名.解析到网站正文,一般文章重定向到站外的路由器抓取重定向页面的站内页面,以及百度搜狗谷歌搜索。
  如果你是指:给用户标注书签并且为用户推荐的话,因为书签的抓取是基于用户上网的行为,所以你要做的就是加入用户标注的书签,并且要对网站的定位明确,提升用户体验,然后通过正常的推荐算法,给用户一个合理的书签集,使得用户能够通过网站的推荐书签和你的推荐的标注的高度重合,达到一个良性循环,你的书签获取的越多,用户通过你的书签寻找资源的效率越高,你的网站就越有价值。
  
  1、以改善站内为主,
  2、推荐的策略:一般站内推荐主要靠两个渠道:1.用户常行为轨迹的推荐,比如在文章标题出现一些元素,包括但不限于标签,链接,网站结构等等,给用户推荐;2.网站/产品价值感的推荐,简单来说就是推荐站内与产品定位相关的相关性高的资源,比如app,
  
  3、在推荐策略上要注意,要抓住不同用户的喜好,但尽量不要偏差太大,
  4、在某一领域的资源掌握程度,站内时间久的或常行为轨迹多的,这个不用多说了,
  5、站内推荐策略要突出一点:一定要在自己擅长的领域,站内的短板也要突出,尽量关联度高,比如产品论坛,一般会被推荐文章。要做到每篇文章与用户关联性要高,如果不能一步到位,要给用户先推荐当前热度高的产品推荐策略有几个典型的例子:1.小米论坛2.豆瓣小组,就像小米上面用户都叫好的小米4手机推荐3.小红书4.腾讯微信文章推荐5.豆瓣小组推荐7.appstore发布新功能的时候推荐比如社区相关的,豆瓣的豆瓣时光小组,小红书的xx食谱发布,腾讯微信的微信互推。 查看全部

  解决方案:一般文章重定向到站外的路由器是怎么做的
  博客搜索引擎优化的内容主要包括标题、标签、图片、正文、描述、关键词、作者、网站结构等。以标题为例,关键词和标题上传网站后还需要抓取过来,重新用域名.解析到网站正文,一般文章重定向到站外的路由器抓取重定向页面的站内页面,以及百度搜狗谷歌搜索。
  如果你是指:给用户标注书签并且为用户推荐的话,因为书签的抓取是基于用户上网的行为,所以你要做的就是加入用户标注的书签,并且要对网站的定位明确,提升用户体验,然后通过正常的推荐算法,给用户一个合理的书签集,使得用户能够通过网站的推荐书签和你的推荐的标注的高度重合,达到一个良性循环,你的书签获取的越多,用户通过你的书签寻找资源的效率越高,你的网站就越有价值。
  
  1、以改善站内为主,
  2、推荐的策略:一般站内推荐主要靠两个渠道:1.用户常行为轨迹的推荐,比如在文章标题出现一些元素,包括但不限于标签,链接,网站结构等等,给用户推荐;2.网站/产品价值感的推荐,简单来说就是推荐站内与产品定位相关的相关性高的资源,比如app,
  
  3、在推荐策略上要注意,要抓住不同用户的喜好,但尽量不要偏差太大,
  4、在某一领域的资源掌握程度,站内时间久的或常行为轨迹多的,这个不用多说了,
  5、站内推荐策略要突出一点:一定要在自己擅长的领域,站内的短板也要突出,尽量关联度高,比如产品论坛,一般会被推荐文章。要做到每篇文章与用户关联性要高,如果不能一步到位,要给用户先推荐当前热度高的产品推荐策略有几个典型的例子:1.小米论坛2.豆瓣小组,就像小米上面用户都叫好的小米4手机推荐3.小红书4.腾讯微信文章推荐5.豆瓣小组推荐7.appstore发布新功能的时候推荐比如社区相关的,豆瓣的豆瓣时光小组,小红书的xx食谱发布,腾讯微信的微信互推。

博客搜索引擎优化,还可以做seo,写写seo博客

网站优化优采云 发表了文章 • 0 个评论 • 102 次浏览 • 2022-08-13 12:36 • 来自相关话题

  博客搜索引擎优化,还可以做seo,写写seo博客
  博客搜索引擎优化,还可以做seo,写写seo博客,如果你要做外链建议你如果是新手,你可以去我博客看看吧,
  我以前做过,写了两三篇文章,目前还是徒劳,不是没努力去做,而是没有可供参考的信息去寻找,那点流量,不足挂齿,与其换着花样去做,不如真正做好,是否认清一个道理,
  
  准备好作品,然后。不。写。字。
  有兴趣就要从实际行动开始,如果你对这个东西感兴趣并且有自己的干货心得经验那肯定要成为站长,不然就找机会学好下一步干什么,
  去装饰门户网站,大门户就去大平台的那种,一个人关键就是要有技术!这也算是入门了吧。写手是个很危险的职业,
  
  在家或者可以靠自己能力赚到钱的地方尝试写点东西吧,例如知乎,简书。国内seo方面网站不多,像百度文库什么的,就是白盒手段,很难写到厉害。也没必要去写,搜索引擎优化看重的是内容,只有写出独特的内容,对你来说才是出路,现在很多网站都是随便写写,点击量巨低。你可以尝试写写伪原创,等内容深厚了,再尝试seo进一步。
  跟着别人写就行,找跟你有共同爱好的,做相关内容。不要想着一个人做。
  tag要自己自定义,该加什么tag就加什么tag,网上的东西可以看看,但要学会总结分析。我就是想写点东西就写点东西,发发东西。结果传播量低的吓人。写东西真不容易啊,出了问题想要尽快解决也是会捉襟见肘的。好像在别人那发东西,动辄几百几千的阅读量,如果用心去做,粉丝量几百上千也不会像这样。写内容的人也是很苦逼的,不是每个人都有办法把自己的想法做成有人看有人转的内容。 查看全部

  博客搜索引擎优化,还可以做seo,写写seo博客
  博客搜索引擎优化,还可以做seo,写写seo博客,如果你要做外链建议你如果是新手,你可以去我博客看看吧,
  我以前做过,写了两三篇文章,目前还是徒劳,不是没努力去做,而是没有可供参考的信息去寻找,那点流量,不足挂齿,与其换着花样去做,不如真正做好,是否认清一个道理,
  
  准备好作品,然后。不。写。字。
  有兴趣就要从实际行动开始,如果你对这个东西感兴趣并且有自己的干货心得经验那肯定要成为站长,不然就找机会学好下一步干什么,
  去装饰门户网站,大门户就去大平台的那种,一个人关键就是要有技术!这也算是入门了吧。写手是个很危险的职业,
  
  在家或者可以靠自己能力赚到钱的地方尝试写点东西吧,例如知乎,简书。国内seo方面网站不多,像百度文库什么的,就是白盒手段,很难写到厉害。也没必要去写,搜索引擎优化看重的是内容,只有写出独特的内容,对你来说才是出路,现在很多网站都是随便写写,点击量巨低。你可以尝试写写伪原创,等内容深厚了,再尝试seo进一步。
  跟着别人写就行,找跟你有共同爱好的,做相关内容。不要想着一个人做。
  tag要自己自定义,该加什么tag就加什么tag,网上的东西可以看看,但要学会总结分析。我就是想写点东西就写点东西,发发东西。结果传播量低的吓人。写东西真不容易啊,出了问题想要尽快解决也是会捉襟见肘的。好像在别人那发东西,动辄几百几千的阅读量,如果用心去做,粉丝量几百上千也不会像这样。写内容的人也是很苦逼的,不是每个人都有办法把自己的想法做成有人看有人转的内容。

博客搜索引擎优化可能有很多事情可以做但可能不全面

网站优化优采云 发表了文章 • 0 个评论 • 100 次浏览 • 2022-08-08 14:03 • 来自相关话题

  博客搜索引擎优化可能有很多事情可以做但可能不全面
  博客搜索引擎优化可能有很多事情可以做但可能不全面,你需要专业的技术。新闻网站?你搞新闻的基本要求还是需要的。可以考虑以seo为主进行产品营销,不一定就是学习新闻。
  
  除非你搞品牌关键词,否则我不认为你的产品的关键词一定是好的,我们从新闻学的角度应该尽量挖掘好的关键词。
  如果有实力,能申请第三方资源的话建议可以转行。
  
  现在的市场主要流行两个类型的产品:1,医疗2,教育今天我就以教育类关键词来举例分析一下,我主要从搜索引擎下面的相关搜索下拉框和搜索引擎的结果页的推荐来分析,这是我根据百度竞价产品推荐的,这些结果的好坏,好不好都取决于这个关键词自身的质量。比如下面这种关键词a:小学女生英语拼写练习a1a2。如果你的英语程度不是很好,且单词发音有错误,即使你单词拼写再规范,也一样没有效果,因为这个关键词自身质量不高。
  通过全面的分析,找到这个关键词再对关键词进行排名优化,会收到意想不到的效果。正确用词有:a1bcdefg。因为之前网站没有着陆页,这个词是没有效果的,但是我建议老板做权重比较高的词做长尾关键词。高关键词才是高质量的关键词,平时建议大家精选高关键词去优化。
  本人以前是市场公关公司的市场顾问,做培训的线下培训做销售,以及网络培训,2个月时间从20万做到150万,目前还是2线城市,一个月30-40万。如果需要具体方案的可以私信,销售额超过200万的都有,百度竞价排名投放也是一个关键。 查看全部

  博客搜索引擎优化可能有很多事情可以做但可能不全面
  博客搜索引擎优化可能有很多事情可以做但可能不全面,你需要专业的技术。新闻网站?你搞新闻的基本要求还是需要的。可以考虑以seo为主进行产品营销,不一定就是学习新闻。
  
  除非你搞品牌关键词,否则我不认为你的产品的关键词一定是好的,我们从新闻学的角度应该尽量挖掘好的关键词。
  如果有实力,能申请第三方资源的话建议可以转行。
  
  现在的市场主要流行两个类型的产品:1,医疗2,教育今天我就以教育类关键词来举例分析一下,我主要从搜索引擎下面的相关搜索下拉框和搜索引擎的结果页的推荐来分析,这是我根据百度竞价产品推荐的,这些结果的好坏,好不好都取决于这个关键词自身的质量。比如下面这种关键词a:小学女生英语拼写练习a1a2。如果你的英语程度不是很好,且单词发音有错误,即使你单词拼写再规范,也一样没有效果,因为这个关键词自身质量不高。
  通过全面的分析,找到这个关键词再对关键词进行排名优化,会收到意想不到的效果。正确用词有:a1bcdefg。因为之前网站没有着陆页,这个词是没有效果的,但是我建议老板做权重比较高的词做长尾关键词。高关键词才是高质量的关键词,平时建议大家精选高关键词去优化。
  本人以前是市场公关公司的市场顾问,做培训的线下培训做销售,以及网络培训,2个月时间从20万做到150万,目前还是2线城市,一个月30-40万。如果需要具体方案的可以私信,销售额超过200万的都有,百度竞价排名投放也是一个关键。

网站刚开始建设之初,该注意哪些呢??

网站优化优采云 发表了文章 • 0 个评论 • 80 次浏览 • 2022-08-03 12:04 • 来自相关话题

  网站刚开始建设之初,该注意哪些呢??
  博客搜索引擎优化或许是近些年才出现的新名词,它又是什么意思呢?日常生活中,我们用网站的大多数是在百度上搜索,可是为什么我们的网站没有排名,反而搜索引擎会给予我们很多搜索结果?这一切都要回溯到一个网站的建立之初。对于做互联网项目的企业,不管是域名空间还是程序代码等,万事都不容易,也是网站网站建设开发最耗时和最重要的基础。
  
  从网站域名到域名空间,从程序代码到网站,需要一步步进行,对于企业来说更是如此。今天我们就来说一说网站刚开始建设之初,该要注意哪些。关键词优化对于大多数的网站来说,每个页面的关键词定位一般都比较精准。但是对于国内域名空间来说,这就是最基本的问题。如果你在百度或者seo联盟优化域名空间中搜索关键词,要注意的是域名空间的某些关键词要和你要建设的网站的主关键词相一致。
  而对于国内的一些域名空间,在利用这些域名建设网站之初,一定要做一些持续性的优化工作,提升这些域名空间的关键词排名。关键词优化对于大多数的网站来说,关键词就是搜索引擎搜索结果第一页的词,所以一个网站的关键词一定要选对。如果域名空间的网站与第一页网站的主关键词重合,那么你就不要继续往下分词,直接把主关键词放到首页,效果将会更好。
  
  网站关键词优化一般来说有以下几个标准:“竞争大的核心词优化,竞争小的长尾词优化”。核心词和长尾词中虽然平行排列,但是一定要使用alt标签来帮助你来分割这些长尾词。关键词优化做不好,很可能是因为在域名空间建设期间缺少这些工作,在将关键词优化到第一页之后并没有获得长尾词得关键词优化技巧。另外,尽量多给网站做一些关键词的优化,这样可以确保你的网站能够获得更多的搜索结果,关键词优化之后也有利于你对网站进行tdk优化。
  根据网站的结构进行关键词优化tdk是一种网站结构化的优化关键词结构化的关键词数据库,通过对网站的关键词的数据分析,并提取对网站来说最需要的关键词,可以有效的提高网站的权重和收录等等。网站的主关键词和长尾关键词放在一个文件内,不能按照搜索引擎对于重要程度的排序进行优化。每个网站的结构都是各不相同,我们在做网站时要考虑到建设的完整性,再去考虑后期我们的关键词不易被搜索引擎发现。 查看全部

  网站刚开始建设之初,该注意哪些呢??
  博客搜索引擎优化或许是近些年才出现的新名词,它又是什么意思呢?日常生活中,我们用网站的大多数是在百度上搜索,可是为什么我们的网站没有排名,反而搜索引擎会给予我们很多搜索结果?这一切都要回溯到一个网站的建立之初。对于做互联网项目的企业,不管是域名空间还是程序代码等,万事都不容易,也是网站网站建设开发最耗时和最重要的基础。
  
  从网站域名到域名空间,从程序代码到网站,需要一步步进行,对于企业来说更是如此。今天我们就来说一说网站刚开始建设之初,该要注意哪些。关键词优化对于大多数的网站来说,每个页面的关键词定位一般都比较精准。但是对于国内域名空间来说,这就是最基本的问题。如果你在百度或者seo联盟优化域名空间中搜索关键词,要注意的是域名空间的某些关键词要和你要建设的网站的主关键词相一致。
  而对于国内的一些域名空间,在利用这些域名建设网站之初,一定要做一些持续性的优化工作,提升这些域名空间的关键词排名。关键词优化对于大多数的网站来说,关键词就是搜索引擎搜索结果第一页的词,所以一个网站的关键词一定要选对。如果域名空间的网站与第一页网站的主关键词重合,那么你就不要继续往下分词,直接把主关键词放到首页,效果将会更好。
  
  网站关键词优化一般来说有以下几个标准:“竞争大的核心词优化,竞争小的长尾词优化”。核心词和长尾词中虽然平行排列,但是一定要使用alt标签来帮助你来分割这些长尾词。关键词优化做不好,很可能是因为在域名空间建设期间缺少这些工作,在将关键词优化到第一页之后并没有获得长尾词得关键词优化技巧。另外,尽量多给网站做一些关键词的优化,这样可以确保你的网站能够获得更多的搜索结果,关键词优化之后也有利于你对网站进行tdk优化。
  根据网站的结构进行关键词优化tdk是一种网站结构化的优化关键词结构化的关键词数据库,通过对网站的关键词的数据分析,并提取对网站来说最需要的关键词,可以有效的提高网站的权重和收录等等。网站的主关键词和长尾关键词放在一个文件内,不能按照搜索引擎对于重要程度的排序进行优化。每个网站的结构都是各不相同,我们在做网站时要考虑到建设的完整性,再去考虑后期我们的关键词不易被搜索引擎发现。

博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示

网站优化优采云 发表了文章 • 0 个评论 • 127 次浏览 • 2022-07-29 17:01 • 来自相关话题

  博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示
  博客搜索引擎优化或者inurlsearch。
  我是做seo的,就是类似网页排名之类的东西,不过我要负责一个游戏网站,但是网站也是做的比较好了,游戏类目也很多,不知道您是什么方面的。seo做久了之后就很明显了,每天主要的精力是想办法让更多人进来,如果你不信的话,可以像我一样,在提交站点前先注册个号。
  
  两种情况:一种是真实用户,一种是托。这两种情况中,优化托是最好的,优化托能让有实力的提交者留存下来,老熟人提交者可以轻松放到后面,其他提交者可以直接被当次提交者替换掉。另外,所有提交者都有成为幸运exp的可能,好运的话,他们也会被重点提醒;而所有提交者都会有可能成为被诅咒的对象。
  做好优化的话,可以通过站长平台内的“网站发帖”功能。
  选择权多在自己手里,可以把提交托管给好友。也可以自己做,自己作为推广者为该网站推广,而通过其他推广者推广即可获得相应提成。
  
  凡是有网站的人都需要排名吧,seo专业人员来说,收录或者权重差了,
  线下尽力寻找帮助,是让自己更成功的最快方法;线上就需要你积极。
  对网站进行优化来增加网站展示的机会提高用户的体验度增加网站的真实性另外还要找到一些靠谱专业的人去帮你排名让你更快的赚钱 查看全部

  博客搜索引擎优化或者inurlsearch专业人员如何做好网站展示
  博客搜索引擎优化或者inurlsearch。
  我是做seo的,就是类似网页排名之类的东西,不过我要负责一个游戏网站,但是网站也是做的比较好了,游戏类目也很多,不知道您是什么方面的。seo做久了之后就很明显了,每天主要的精力是想办法让更多人进来,如果你不信的话,可以像我一样,在提交站点前先注册个号。
  
  两种情况:一种是真实用户,一种是托。这两种情况中,优化托是最好的,优化托能让有实力的提交者留存下来,老熟人提交者可以轻松放到后面,其他提交者可以直接被当次提交者替换掉。另外,所有提交者都有成为幸运exp的可能,好运的话,他们也会被重点提醒;而所有提交者都会有可能成为被诅咒的对象。
  做好优化的话,可以通过站长平台内的“网站发帖”功能。
  选择权多在自己手里,可以把提交托管给好友。也可以自己做,自己作为推广者为该网站推广,而通过其他推广者推广即可获得相应提成。
  
  凡是有网站的人都需要排名吧,seo专业人员来说,收录或者权重差了,
  线下尽力寻找帮助,是让自己更成功的最快方法;线上就需要你积极。
  对网站进行优化来增加网站展示的机会提高用户的体验度增加网站的真实性另外还要找到一些靠谱专业的人去帮你排名让你更快的赚钱

博客搜索引擎优化和知乎相比在质量上远远不及

网站优化优采云 发表了文章 • 0 个评论 • 104 次浏览 • 2022-07-27 20:01 • 来自相关话题

  博客搜索引擎优化和知乎相比在质量上远远不及
  
  博客搜索引擎优化和知乎相比在质量上远远不及,这里也有一些错误,首先写论文就要把论文质量抓的很高,高质量论文到时是绝对容易过的,没过的比每天发200个软文的实验室还多。正规期刊杂志用vc6吧,比如机械工程软件可以用vc5.0.而知乎呢?用vc6.1版本就是最低要求了,百度也是必须用vc6.1.个人感觉vc5已经足够了!补充一句,可能有人说知乎的流量也够大了,也够知名,为什么说vc6.1是必须,因为vc6.1用的是符合ei的大数据方法,可以大数据指标比较,规避ei查重和风险,现在vc6.1也能再升级一个版本,到vc6.5或者vc6.6,好像是vc5.0没有增加强制指标。
  
  有人说现在发文章是看质量,其实不然,看大数据指标啊,比如先做一个大数据网站,ei和sci一起审,看看哪篇文章更加好!大数据方法现在citespace也能实现了,最近还有bigdataanalysisineconomics这本书里面也有讲到这个,不过大数据指标现在没有那么全面了。祝你好运吧!。
  针对你第一个问题,现在发文章,都要求是scientificreports和engineeringwork,但这些期刊发表难度并不大,一般都是在大学里通过学生竞赛(竞争非常激烈)或者老师推荐。第二个问题,如果没有sci、ei数据库接收,有很多学术会议论文,但你发的要求是必须发表的话,只能申请oraldissertation。文章一般都要求有数据库接收链接,你如果英文还可以可以多看看国外数据库,不一定需要发过来。 查看全部

  博客搜索引擎优化和知乎相比在质量上远远不及
  
  博客搜索引擎优化和知乎相比在质量上远远不及,这里也有一些错误,首先写论文就要把论文质量抓的很高,高质量论文到时是绝对容易过的,没过的比每天发200个软文的实验室还多。正规期刊杂志用vc6吧,比如机械工程软件可以用vc5.0.而知乎呢?用vc6.1版本就是最低要求了,百度也是必须用vc6.1.个人感觉vc5已经足够了!补充一句,可能有人说知乎的流量也够大了,也够知名,为什么说vc6.1是必须,因为vc6.1用的是符合ei的大数据方法,可以大数据指标比较,规避ei查重和风险,现在vc6.1也能再升级一个版本,到vc6.5或者vc6.6,好像是vc5.0没有增加强制指标。
  
  有人说现在发文章是看质量,其实不然,看大数据指标啊,比如先做一个大数据网站,ei和sci一起审,看看哪篇文章更加好!大数据方法现在citespace也能实现了,最近还有bigdataanalysisineconomics这本书里面也有讲到这个,不过大数据指标现在没有那么全面了。祝你好运吧!。
  针对你第一个问题,现在发文章,都要求是scientificreports和engineeringwork,但这些期刊发表难度并不大,一般都是在大学里通过学生竞赛(竞争非常激烈)或者老师推荐。第二个问题,如果没有sci、ei数据库接收,有很多学术会议论文,但你发的要求是必须发表的话,只能申请oraldissertation。文章一般都要求有数据库接收链接,你如果英文还可以可以多看看国外数据库,不一定需要发过来。

博客搜索引擎优化流量占据站长平台95%,你知道吗?

网站优化优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2022-06-24 21:06 • 来自相关话题

  博客搜索引擎优化流量占据站长平台95%,你知道吗?
  博客搜索引擎优化就是所有做网站的或是广告投放的人都要熟悉的东西。不管是搜索引擎还是站长平台,都需要去写博客,发东西。目前搜索引擎优化流量占据站长平台95%。分析网站访问趋势,站长平台是大部分站长去投放广告的首选平台。因为站长的存在,可以说方便了不少站长。网站代码是否有问题,页面优化有没有做好等等。需要一个人去写博客,需要一个人去优化。
  对于那些可以接受个人投放广告的站长来说,还是值得尝试的。至于那些做广告的普通站长来说,还是不建议这样。而是去做你的博客更好。当然,好好学习博客结构,分段化布局。把seo优化做得更好就更好了。还有,现在站长投放广告越来越贵,很多新站长会选择付费广告。一般会找两种广告,一种是博客代发,一种是独立广告。博客要学会去写技术博客,在文章中融入关键词,和地方干货,传递流量,才是最重要的。广告不在于多,投入的资金要控制在一定范围内,不是说多了就好,而是说适合自己的才好。
  最近发现网上的精品博客大全还蛮多的,一搜就能搜到。首先要学会搜索,进入一个你喜欢的网站。比如你喜欢长尾词,就可以搜索这个词的精品博客。或者搜索你想要的博客类型。选择一些你可以发布的技术博客,然后按照这个类型,顺着筛选下去。有一些质量不是很高的也有吧,但是大部分都是质量比较高的。慢慢寻找也比较方便,基本你会找到比较多,比较好的博客。
  此外想要提高的是,打造一个简洁干净的简历。这样很方便就看完了,让别人不想退出去,这样内容也容易打理。内容收集对比一下别人的简历,肯定不是同一套的。但是也得有个思路。可以互相对比下差别,然后可以修改下他的简历,相对来说更好看些。现在很多博客平台已经给出了功能,写博客也不是难事。坚持写,不断迭代产品,优化,做好推广,就能有不错的效果。 查看全部

  博客搜索引擎优化流量占据站长平台95%,你知道吗?
  博客搜索引擎优化就是所有做网站的或是广告投放的人都要熟悉的东西。不管是搜索引擎还是站长平台,都需要去写博客,发东西。目前搜索引擎优化流量占据站长平台95%。分析网站访问趋势,站长平台是大部分站长去投放广告的首选平台。因为站长的存在,可以说方便了不少站长。网站代码是否有问题,页面优化有没有做好等等。需要一个人去写博客,需要一个人去优化。
  对于那些可以接受个人投放广告的站长来说,还是值得尝试的。至于那些做广告的普通站长来说,还是不建议这样。而是去做你的博客更好。当然,好好学习博客结构,分段化布局。把seo优化做得更好就更好了。还有,现在站长投放广告越来越贵,很多新站长会选择付费广告。一般会找两种广告,一种是博客代发,一种是独立广告。博客要学会去写技术博客,在文章中融入关键词,和地方干货,传递流量,才是最重要的。广告不在于多,投入的资金要控制在一定范围内,不是说多了就好,而是说适合自己的才好。
  最近发现网上的精品博客大全还蛮多的,一搜就能搜到。首先要学会搜索,进入一个你喜欢的网站。比如你喜欢长尾词,就可以搜索这个词的精品博客。或者搜索你想要的博客类型。选择一些你可以发布的技术博客,然后按照这个类型,顺着筛选下去。有一些质量不是很高的也有吧,但是大部分都是质量比较高的。慢慢寻找也比较方便,基本你会找到比较多,比较好的博客。
  此外想要提高的是,打造一个简洁干净的简历。这样很方便就看完了,让别人不想退出去,这样内容也容易打理。内容收集对比一下别人的简历,肯定不是同一套的。但是也得有个思路。可以互相对比下差别,然后可以修改下他的简历,相对来说更好看些。现在很多博客平台已经给出了功能,写博客也不是难事。坚持写,不断迭代产品,优化,做好推广,就能有不错的效果。

VuePress 博客优化之开启 Algolia 全文搜索

网站优化优采云 发表了文章 • 0 个评论 • 101 次浏览 • 2022-06-23 06:38 • 来自相关话题

  VuePress 博客优化之开启 Algolia 全文搜索
  前言
  在《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档。
  文档链接:
  由于 VuePress 的内置搜索只会为页面的标题、h2 、 h3 以及 tags 构建搜索索引。如果你需要全文搜索,可则以使用 Algolia 搜索,本篇讲讲如何申请以及配置 Algolia 搜索。
  Algolia
  Algolia 是一个数据库实时搜索服务,能够提供毫秒级的数据库搜索服务,并且其服务能以 API 的形式方便地布局到网页、客户端、APP 等多种场景。
  像 VuePress 官方文档就是使用的 Algolia 搜索,使用 Algolia 搜索最大的好处就是方便,它会自动爬取网站的页面内容并构建索引,你只用申请一个 Algolia 服务,在网站上添加一些代码,就像添加统计代码一样,然后就可以实现一个全文搜索功能:
  
  申请
  搜索服务申请地址:
  打开后填写地址、邮箱和仓库地址等信息,这里注意,网站需要是公开可访问的:
  填写完后,等待一段时间(我等了三天),如果申请通过,我们就会收到邮件:
  
  此时需要回复邮件,告诉自己就是网站的维护者,并且可以修改代码:
  然后第二天就会收到包含 AppId 等所需信息的邮件:
  默认主题
  如果你用的是 VuePress 的默认主题,VuePress 直接提供了
  themeConfig.algolia选项来用 Algolia 搜索替换内置的搜索框:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />// .vuepress/config.js<br />module.exports = {<br />  themeConfig: {<br />    algolia: {<br />      apiKey: '',<br />      indexName: ''<br />      // 如果 Algolia 没有为你提供 `appId` ,使用 `BH4D9OD16A` 或者移除该配置项<br />      appId: '',<br />    }<br />  }<br />}<br /></p>
  你只用如此简单的配置即可实现全文搜索:
  
  搜索为空
  如果你搜任何数据,都显示搜索不到数据,那很可能是爬取的数据有问题,我们登陆
  打开管理后台,点击左侧选项栏里的 Search,查看对应的 indexName 数据,如果 Browse 这里没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的 Records:
  
  如果没有数据,那我们就查下爬取的逻辑,打开爬虫后台:,点击对应 indexName 进入后台:
  
  如果显示成功爬取,也有 Monitoring Success 的数据,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题,点击左侧选项栏中的 Editor,查看具体的爬虫逻辑:
  像 pathsToMatch 这里如果是**,但你的网址都是[**](**)开头的,那这里大概就是会提取错误,修改一下,然后点击右侧的数据进行测试:
  如果能像这样提取到数据,就说明没有什么问题了,点击右上角的Save,然后切换回 Overview,点击右上角的 Restart crawling,我们重新爬取一下数据:
  
  如果 Records 这里有数据,那搜索的时候基本也会有数据了。
  其他主题
  如果你用的不是 VuePress 的默认主题,就比如我用的是 vuepress-theme-reco,它的搜索栏是自己实现的,所以添加上述的配置是不会有效果的,这个时候就需要遵照邮件中的方法,手动添加 CSS 和 JavaScript 文件,然后在加载完毕的时候调用提供的 API。
  我们需要先修改下config.js:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />module.exports = {<br />    head: [<br />      [<br />        'link', { href: "https://cdn.jsdelivr.net/npm/% ... ot%3B, rel: "stylesheet" }<br />      ],<br />      [<br />        'script', { src: "https://cdn.jsdelivr.net/npm/% ... ot%3B }<br />      ]<br />    ]<br />}<br /></p>
  然后修改.vuepress/enhanceApp.js文件:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />export default ({ router, Vue, isServer }) => {<br />  Vue.mixin({<br />    mounted() {<br />      // 不加 setTimeout 会有报错,但不影响效果<br />      setTimeout(() => {<br />        try {<br />          docsearch({<br />            appId: "43GX903BPS",<br />            apiKey: "feff649032d8034cf2a636ef55d96054",<br />            indexName: "ts-yayujs",<br />            container: '.search-box',<br />            debug: false<br />          });<br />        } catch(e) {<br />          console.log(e);<br />        }<br />      }, 100)<br />    },<br />  });<br />};<br /></p>
  注意其中的 container,参考 docsearch 的官方仓库,这里提供的不是 input 输入框的选择器,而是一个挂载节点,比如 div 的选择器。
  此时展示效果如下:
  
  样式跟现有的主题有些不统一,不过没关系,我们可以修改 .vuepress/styles/index.styl覆盖目前的样式,比如我的修改代码为:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />.search-box .DocSearch.DocSearch-Button {<br />    cursor: text;<br />    width: 10rem;<br />    height: 2rem;<br />    color: #5b5b5b;<br />    border: 1px solid var(--border-color);<br />    border-radius: 0.25rem;<br />    font-size: 0.9rem;<br />    padding: 0 0.5rem 0 0rem;<br />    outline: none;<br />    transition: all 0.2s ease;<br />    background: transparent;<br />    background-size: 1rem;<br />}<br /><br />.search-box .DocSearch-Button-Container {<br />    margin-left: 0.4rem;<br />}<br /><br />.search-box .DocSearch-Button .DocSearch-Search-Icon {<br />    width: 16px;<br />    height: 16px;<br />    position: relative;<br />    top: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Placeholder {<br />    font-size: 0.8rem;<br />}<br /><br />.search-box .DocSearch-Button-Keys {<br />    position: absolute;<br />    right: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Key {<br />    font-size: 12px;<br />    line-height: 20px;<br />}<br /></p>
  最终使用的效果如下:
  
  如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。
  点击左下角阅读原文,到SegmentFault 思否社区和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台“回复“入群”即可加入我们的技术交流群,收获更多的技术文章~
  -END -
   查看全部

  VuePress 博客优化之开启 Algolia 全文搜索
  前言
  在《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档。
  文档链接:
  由于 VuePress 的内置搜索只会为页面的标题、h2 、 h3 以及 tags 构建搜索索引。如果你需要全文搜索,可则以使用 Algolia 搜索,本篇讲讲如何申请以及配置 Algolia 搜索。
  Algolia
  Algolia 是一个数据库实时搜索服务,能够提供毫秒级的数据库搜索服务,并且其服务能以 API 的形式方便地布局到网页、客户端、APP 等多种场景。
  像 VuePress 官方文档就是使用的 Algolia 搜索,使用 Algolia 搜索最大的好处就是方便,它会自动爬取网站的页面内容并构建索引,你只用申请一个 Algolia 服务,在网站上添加一些代码,就像添加统计代码一样,然后就可以实现一个全文搜索功能:
  
  申请
  搜索服务申请地址:
  打开后填写地址、邮箱和仓库地址等信息,这里注意,网站需要是公开可访问的:
  填写完后,等待一段时间(我等了三天),如果申请通过,我们就会收到邮件:
  
  此时需要回复邮件,告诉自己就是网站的维护者,并且可以修改代码:
  然后第二天就会收到包含 AppId 等所需信息的邮件:
  默认主题
  如果你用的是 VuePress 的默认主题,VuePress 直接提供了
  themeConfig.algolia选项来用 Algolia 搜索替换内置的搜索框:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />// .vuepress/config.js<br />module.exports = {<br />  themeConfig: {<br />    algolia: {<br />      apiKey: '',<br />      indexName: ''<br />      // 如果 Algolia 没有为你提供 `appId` ,使用 `BH4D9OD16A` 或者移除该配置项<br />      appId: '',<br />    }<br />  }<br />}<br /></p>
  你只用如此简单的配置即可实现全文搜索:
  
  搜索为空
  如果你搜任何数据,都显示搜索不到数据,那很可能是爬取的数据有问题,我们登陆
  打开管理后台,点击左侧选项栏里的 Search,查看对应的 indexName 数据,如果 Browse 这里没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的 Records:
  
  如果没有数据,那我们就查下爬取的逻辑,打开爬虫后台:,点击对应 indexName 进入后台:
  
  如果显示成功爬取,也有 Monitoring Success 的数据,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题,点击左侧选项栏中的 Editor,查看具体的爬虫逻辑:
  像 pathsToMatch 这里如果是**,但你的网址都是[**](**)开头的,那这里大概就是会提取错误,修改一下,然后点击右侧的数据进行测试:
  如果能像这样提取到数据,就说明没有什么问题了,点击右上角的Save,然后切换回 Overview,点击右上角的 Restart crawling,我们重新爬取一下数据:
  
  如果 Records 这里有数据,那搜索的时候基本也会有数据了。
  其他主题
  如果你用的不是 VuePress 的默认主题,就比如我用的是 vuepress-theme-reco,它的搜索栏是自己实现的,所以添加上述的配置是不会有效果的,这个时候就需要遵照邮件中的方法,手动添加 CSS 和 JavaScript 文件,然后在加载完毕的时候调用提供的 API。
  我们需要先修改下config.js:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />module.exports = {<br />    head: [<br />      [<br />        'link', { href: "https://cdn.jsdelivr.net/npm/% ... ot%3B, rel: "stylesheet" }<br />      ],<br />      [<br />        'script', { src: "https://cdn.jsdelivr.net/npm/% ... ot%3B }<br />      ]<br />    ]<br />}<br /></p>
  然后修改.vuepress/enhanceApp.js文件:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />export default ({ router, Vue, isServer }) => {<br />  Vue.mixin({<br />    mounted() {<br />      // 不加 setTimeout 会有报错,但不影响效果<br />      setTimeout(() => {<br />        try {<br />          docsearch({<br />            appId: "43GX903BPS",<br />            apiKey: "feff649032d8034cf2a636ef55d96054",<br />            indexName: "ts-yayujs",<br />            container: '.search-box',<br />            debug: false<br />          });<br />        } catch(e) {<br />          console.log(e);<br />        }<br />      }, 100)<br />    },<br />  });<br />};<br /></p>
  注意其中的 container,参考 docsearch 的官方仓库,这里提供的不是 input 输入框的选择器,而是一个挂载节点,比如 div 的选择器。
  此时展示效果如下:
  
  样式跟现有的主题有些不统一,不过没关系,我们可以修改 .vuepress/styles/index.styl覆盖目前的样式,比如我的修改代码为:
  <p style="margin-left: 8px;margin-right: 8px;line-height: 1.75em;"><br />.search-box .DocSearch.DocSearch-Button {<br />    cursor: text;<br />    width: 10rem;<br />    height: 2rem;<br />    color: #5b5b5b;<br />    border: 1px solid var(--border-color);<br />    border-radius: 0.25rem;<br />    font-size: 0.9rem;<br />    padding: 0 0.5rem 0 0rem;<br />    outline: none;<br />    transition: all 0.2s ease;<br />    background: transparent;<br />    background-size: 1rem;<br />}<br /><br />.search-box .DocSearch-Button-Container {<br />    margin-left: 0.4rem;<br />}<br /><br />.search-box .DocSearch-Button .DocSearch-Search-Icon {<br />    width: 16px;<br />    height: 16px;<br />    position: relative;<br />    top: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Placeholder {<br />    font-size: 0.8rem;<br />}<br /><br />.search-box .DocSearch-Button-Keys {<br />    position: absolute;<br />    right: 0.1rem;<br />}<br /><br />.search-box .DocSearch-Button-Key {<br />    font-size: 12px;<br />    line-height: 20px;<br />}<br /></p>
  最终使用的效果如下:
  
  如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。
  点击左下角阅读原文,到SegmentFault 思否社区和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台“回复“入群”即可加入我们的技术交流群,收获更多的技术文章~
  -END -
  

博客搜索引擎优化助手-最专业的网站seo工具箱

网站优化优采云 发表了文章 • 0 个评论 • 117 次浏览 • 2022-06-11 13:05 • 来自相关话题

  博客搜索引擎优化助手-最专业的网站seo工具箱
  博客搜索引擎优化是一个提高网站排名的一项技术,包括提高网站的文章和链接,以及友情链接。其中的友情链接对于搜索引擎来说也是非常重要的,尽量不要买仿冒品,比如你做教育行业的,尽量把一些大学的网站链接列入友情链接列表里,这样被蜘蛛抓取到就会带来更多的流量。这里推荐友情链接5118工具箱,5118网站优化助手-最专业的网站seo平台。
  1.目前建议百度提交到搜狗可以解决,当百度入口较差的时候,这是比较好的方式。2.新浪博客发文以及转载的时候,在原博客的评论里留有微信二维码或者公众号,是比较合适的方式,可以直接推广3.其它的地方可以利用seo+流量站发文,但是大多数博主并不收录甚至不支持推广。所以这是比较麻烦的事。
  没有花钱买的一些做竞价推广方式,在网站内容优化上,不让百度蜘蛛直接抓取,而是加一些文字上的链接,不过这个样子,这部分需要长期坚持,
  百度的adwords是可以做到很好的宣传效果的,例如npc过程啊,npc工艺流程(adroute)啊,其实都是很好的一些过程,就是价格贵,推广成本高,所以我一般都是配合其他工具一起用,只是上新工具很方便,但是可能上手难度有点高吧,外链推广,不过效果好像就不像竞价那么明显,就是难像付费推广一样看量。友情链接推广,也就是老带新,其实也有很多效果不错的,比如那种在原先网站留下链接,重新发布新的网站上新,外部链接这些好像都可以吧。
  seo推广,adwords只能靠量取胜,其他的比如qq,微信这些方式,量都很低,友情链接可以推一个,毕竟朋友关系都是靠友情撑起来的,外部链接比友情链接推广,有点效果。不过效果不好这也不错啊,用好seo推广,比用其他推广方式要好,友情链接和qq,微信这些,都只是增加点与网站的友情,推广效果不会很好。百度的地位也不容易撼动的。 查看全部

  博客搜索引擎优化助手-最专业的网站seo工具箱
  博客搜索引擎优化是一个提高网站排名的一项技术,包括提高网站的文章和链接,以及友情链接。其中的友情链接对于搜索引擎来说也是非常重要的,尽量不要买仿冒品,比如你做教育行业的,尽量把一些大学的网站链接列入友情链接列表里,这样被蜘蛛抓取到就会带来更多的流量。这里推荐友情链接5118工具箱,5118网站优化助手-最专业的网站seo平台。
  1.目前建议百度提交到搜狗可以解决,当百度入口较差的时候,这是比较好的方式。2.新浪博客发文以及转载的时候,在原博客的评论里留有微信二维码或者公众号,是比较合适的方式,可以直接推广3.其它的地方可以利用seo+流量站发文,但是大多数博主并不收录甚至不支持推广。所以这是比较麻烦的事。
  没有花钱买的一些做竞价推广方式,在网站内容优化上,不让百度蜘蛛直接抓取,而是加一些文字上的链接,不过这个样子,这部分需要长期坚持,
  百度的adwords是可以做到很好的宣传效果的,例如npc过程啊,npc工艺流程(adroute)啊,其实都是很好的一些过程,就是价格贵,推广成本高,所以我一般都是配合其他工具一起用,只是上新工具很方便,但是可能上手难度有点高吧,外链推广,不过效果好像就不像竞价那么明显,就是难像付费推广一样看量。友情链接推广,也就是老带新,其实也有很多效果不错的,比如那种在原先网站留下链接,重新发布新的网站上新,外部链接这些好像都可以吧。
  seo推广,adwords只能靠量取胜,其他的比如qq,微信这些方式,量都很低,友情链接可以推一个,毕竟朋友关系都是靠友情撑起来的,外部链接比友情链接推广,有点效果。不过效果不好这也不错啊,用好seo推广,比用其他推广方式要好,友情链接和qq,微信这些,都只是增加点与网站的友情,推广效果不会很好。百度的地位也不容易撼动的。

公众号搜索排名优化

网站优化优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2022-06-02 03:41 • 来自相关话题

  公众号搜索排名优化
  1:公众号的seo知识公众号搜索排名优化公众号是一个非常好的seo工具,它可以帮助你的网站在搜索引擎中获得更高的排名。公众号的seo有两个主要方面:一是公众号的内容,如果你的公众号中有好的内容,这将有助于你的网站在搜索引擎中获得更高的排名。二是公众号中连接到你网站的内容。如果你在公众号中连接到你的网站,这将有助于你的网站获得更高的权重。因此,如果你想要让你的网站在搜索引擎中获得更高的权重,就应该注意公众号上内容和外部链接。2:公众号搜索引擎优化在这个时代,越来越多的人使用公众号来进行信息的搜索。那么如何才能让自己的公众号排名更靠前呢?对于公众号而言,有一个很重要的因素就是内容。如果你的公众号里面的内容不好,人们是不会愿意关注你的。所以,第一步就是要让自己的公众号里面有好的内容。第二步就是多发布内容。这样才能增加你公众号里面的信息量,吸引更多人来关注你。第三步就是要做好SEO。这样才能让你的公众号在搜索引擎上更加靠前,人们也就能够更容易找到你。总之,想要在公众号搜索排名中得到好的成绩,就必须要做到以上这三点。努力吧,相信自己一定能够成功。3:如何提高公众号搜索引擎的排名如何提高公众号搜索引擎的排名?公众号搜索引擎优化(SEO)是一门艺术,需要考虑到很多因素。本文将介绍三个重要的技巧,帮助你在公众号搜索中脱颖而出。首先,你需要确保你的公众号名称包含关键词。这样做的目的是让搜索引擎能够更加容易地找到你的公众号。例如,如果你的公众号是“时尚女性”,你应该考虑将其命名为“时尚女性-时尚服装、化妆品、生活方式”。这样做能够显著增加你在相关关键词上的搜索结果数量。此外,还有一些高级的SEO 技巧可以帮助你进一步增加公众号的被发现性。例如,通过使用“文章标题”、“相关话题”或者“站内链接”来丰富你的文章内容。这样做能够帮助你的文章在用户在微信中进行相关词条或者话题的搜索时能够获得更好的展示。最后,别忘了分享! 如今,微信用户已经越来越倾向于通过朋友圈、微博或者群来分享感兴趣的内容,所以,一定要利用好这些平台来宣传自己的内容!通过执行上述三步,你一定能在人们通过微信对相应内容进行搜 索时提升自己电子书、博客或者公众号 等内容物 的 排 名 。
   查看全部

  公众号搜索排名优化
  1:公众号的seo知识公众号搜索排名优化公众号是一个非常好的seo工具,它可以帮助你的网站在搜索引擎中获得更高的排名。公众号的seo有两个主要方面:一是公众号的内容,如果你的公众号中有好的内容,这将有助于你的网站在搜索引擎中获得更高的排名。二是公众号中连接到你网站的内容。如果你在公众号中连接到你的网站,这将有助于你的网站获得更高的权重。因此,如果你想要让你的网站在搜索引擎中获得更高的权重,就应该注意公众号上内容和外部链接。2:公众号搜索引擎优化在这个时代,越来越多的人使用公众号来进行信息的搜索。那么如何才能让自己的公众号排名更靠前呢?对于公众号而言,有一个很重要的因素就是内容。如果你的公众号里面的内容不好,人们是不会愿意关注你的。所以,第一步就是要让自己的公众号里面有好的内容。第二步就是多发布内容。这样才能增加你公众号里面的信息量,吸引更多人来关注你。第三步就是要做好SEO。这样才能让你的公众号在搜索引擎上更加靠前,人们也就能够更容易找到你。总之,想要在公众号搜索排名中得到好的成绩,就必须要做到以上这三点。努力吧,相信自己一定能够成功。3:如何提高公众号搜索引擎的排名如何提高公众号搜索引擎的排名?公众号搜索引擎优化(SEO)是一门艺术,需要考虑到很多因素。本文将介绍三个重要的技巧,帮助你在公众号搜索中脱颖而出。首先,你需要确保你的公众号名称包含关键词。这样做的目的是让搜索引擎能够更加容易地找到你的公众号。例如,如果你的公众号是“时尚女性”,你应该考虑将其命名为“时尚女性-时尚服装、化妆品、生活方式”。这样做能够显著增加你在相关关键词上的搜索结果数量。此外,还有一些高级的SEO 技巧可以帮助你进一步增加公众号的被发现性。例如,通过使用“文章标题”、“相关话题”或者“站内链接”来丰富你的文章内容。这样做能够帮助你的文章在用户在微信中进行相关词条或者话题的搜索时能够获得更好的展示。最后,别忘了分享! 如今,微信用户已经越来越倾向于通过朋友圈、微博或者群来分享感兴趣的内容,所以,一定要利用好这些平台来宣传自己的内容!通过执行上述三步,你一定能在人们通过微信对相应内容进行搜 索时提升自己电子书、博客或者公众号 等内容物 的 排 名 。
  

如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~

网站优化优采云 发表了文章 • 0 个评论 • 101 次浏览 • 2022-05-14 19:02 • 来自相关话题

  如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~
  
  
  前言
  Beaver 是由日志易自主研发、安全可控的搜索引擎,由 Master、Broker 和 Datanode 三部分组成,已广泛应用于存储和分析大型分布式系统生成的日志。Beaver 拥有大量与性能相关的配置项,由于手动配置费时费力,并且有时需要修 改相关配置以适配特定环境,所以自动调整配置参数优化性能是当前迫切需要解 决的问题。
  一、背景调研
  目前业界有许多自动调参的项目和算法实现,例如 CMU 开源的关系型数据库自动调参工具 OtterTune[1]、PingCAP 仿作的 TiKV 自动调参工具[2]等,都为 我们提供了大量的论文以及开源算法代码。
  1、OtterTune
  数据库有很多参数,比如 MySQL 有几百个参数,Oracle 有上千个参数。这些参数控制着数据库的方方面面,很大程度上影响了如缓存容量和检查点频次等数据库性能。
  对于不同的硬件配置,不同的工作负载,对应的最优参数文件都是不同的, 这些复杂性令数据库调优变得更加困难。DBA(Database Administrator,即数据库管理员)不能简单地重复使用之前调好的参数文件,他们需要花大量时间根据经验来调优数据库的参数,而公司则需要花大价钱来雇佣资深 DBA。为解决上述问题,卡内基梅隆大学数据库小组的教授、学生和研究人员开发了一个数据库自动调参工具 OtterTune,它能利用机器学习对数据库的参数文件进行自动化调优,利用已有的数据训练机器学习模型,进而实现自动化地推荐最优参数。它能很好地帮助 DBA 进行数据库调优,将 DBA 从复杂繁琐的调参工 作中解放出来。OtterTune 的目的是为了帮助 DBA,让数据库部署和调优更加容易,用机器来代替数据库调参这个冗繁但又很重要的工作,让技术人员甚至不需要专业知识也能顺利完成。OtterTune 分为客户端和服务端,目标数据库是用户需要调优参数的数据库:客户端接收到推荐的配置文件后,配置到目标数据库上,并测量其性能。以上步骤可重复进行,直到用户对其推荐的配置文件满意为止。2、AutoTiKVAutoTikv 是一个用于对 TiKV 数据库进行自动调优的工具。它是根据 SIGMOD2017 年发表的一篇论文所设计[3],能够使用机器学习模型对数据库参数进行自动调优。AutoTiKV 吸取了 OtterTune 的设计理念,并简化了相关结构。设计的调优过程如下:
  
  图一:整个过程会循环跑 200 个 round(用户可自定义),或者定义为直到结果收敛为止。3、ML 模型AutoTikv 使用了和 OtterTune 一样的高斯过程回归(Gaussian Process Regression,以下简称 GP)来推荐新的 knob,它是基于高斯分布的一种非参数模型。
  在没有利用机器学习模型对参数文件的效果进行预测前,OtterTune 使用的是随机采样的方式来收集初始数据。
  当有足够的数据(X,Y)时,OtterTune 训练机器学习模型进行回归,即估计出函数 f:X→Y,表示对于参数文件 X,用 f(X)来估计数据库延迟 Y 的值。如此,问题则变为寻找合适的 X,使 f(X)的值尽量小。这样在 f 上面做梯度下降即可找 出合适的 X[4]。
  如图二所示,横坐标是两个参数:缓存大小和日志文件大小,纵坐标是数据库延迟(越低越好)。
  
  图二:OtterTune 高斯过程回归模型
  OtterTune 用高斯过程回归模型估计出了 f,即给定这两个参数值,估计出对应的数据库延迟。接着用梯度下降找到最合适的参数值,使延迟尽可能低。
  高斯过程回归的好处:
  和神经网络之类的方法相比,GP 属于无参数模型,算法计算量相对较低,而且在训练样本很少的情况下,GP 表现比神经网络算法( Neural Network ) 更好。
  它能估计样本的分布情况,即 X 的均值 m(X) 和标准差 s(X)。若 X 周围的数据不多,则它被估计出的标准差 s(X) 会偏大(表示这个样本 X 和其他数据点的差异大)。直观的理解是若数据不多,则不确定性会大,体 现在标准差偏大;反之,数据足够多时,不确定性减少,标准差会偏小。这个特性后面会用到。
  但 GP 本身其实只能估计样本的分布,为了得到最终的预测值,我们需要 把它应用到贝叶斯优化(Bayesian Optimization)中[5]。
  贝叶斯优化算法大致可分为两步:通过 GP 估计出函数的分布情况;通过采集函数(Acquisition Function)指导下一步的采样(也就是给出推荐值)。
  采集函数(Acquisition Function)的特性是在寻找新的推荐值的时候,能够进行平衡探索(Exploration)和利用(Exploitation)。
  在推荐的过程中,需要平衡上述两种指标。Exploitation 过多会导致结果陷入局部最优值(即重复推荐目前已知最好的点,但可能还有更好的点没被发现), 而 Exploration 过多又会导致搜索效率太低(即一直在探索新区域,而没有对当前比较好的区域进行深入尝试)。而平衡二者的核心思想,是当数据足够多时, 利用现有的数据推荐;当缺少数据时,在点最少的区域进行探索,探索最未知的 区域能够提供最大的信息量。贝叶斯优化的第二步就可以帮我们实现这一思想。前面提到,GP 可以帮我们估计 X 的均值 m(X) 和标准差 s(X),其中均值 m(X) 可以作为 Exploitation 的表征值,而标准差 s(X) 可以作为 Exploration 的表征值,这样就 可以用贝叶斯优化方法来求解了。使用置信区间上界(Upper Confidence Bound)作为采集函数。假设我们需要找 X 使 Y 值尽可能大,则 U(X) = m(X) + k*s(X),其中 k > 0 是可调的系数,我们只要找 X 使 U(X) 尽可能大即可。注意,其中系数 k 影响着探索和利用的比例,即 k 越大,越鼓励探索新的区域。
  在具体实现中,一开始随机生成若干个 candidate knobs,然后用上述模型计算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。二、可行性分析目前所有开源的自动调参工具实现原理基本上都是通过机器学习算法推荐 配置参数,应用至数据库或者其他引擎上,在不同的工作负载模式下,不断收集 metric 信息,丰富训练模型,直至推荐出最优的配置,以此替代频繁的手动修改 配置工作。由调研可以发现,OtterTune 是通用模型框架,在业界许多场景都能应用, 不仅能调优数据库的参数,还能够调优操作系统内核的参数,即只要能获取指标 信息,大部分软件都可以用此模型进行调优。同时可以借鉴 AutoTiKV 的测试代码,将目标 DB 替换为 Beaver_datanode, 通过修改不同的配置,测试 baimi 数据集,收集 search 的性能数据,经过模型训 练后不断推荐最优配置。baimi 数据集,即 Apache 访问日志,总日志行数 7078124,日志文件原始大小 2374265761 Byte,测试 Beaver 和 ES 的搜索性能对比中用到的数据集。
  AutoTiKV 代码分析:
  pipeline.py
  自动调参脚本入口,定义执行 round 数,自动推荐参数配置,修改配置文件 并重启相关 DB,收集 metric 数据训练算法模型,以文件形式持久化保存对象。
  settings.py
  脚本参数配置,需要测试的 knobs、metrics 及 workload,数据库连接配置。需要优化的 metric(仅支持优化一项目标 metric)、ansible 和 deploy 目录。
  controller.py
  knob 配置和 metric 获取相关函数,每一个需要修改的参数都需要在 knob_set 中定义,声明参数类型和取值范围,修改配置文件和重启数据库函数等。另外包 括一些工作负载相关的 workload 函数。
  datamodel.py
  初始化数据设置,存放数据模型,每次测试的配置参数和获取到的指标数据 都会存放在此模型中。gpmodel.py
  调用高斯过程回归类算法,传递并训练数据模型,根据算法推荐返回最佳配 置参数,用于下轮测试。注意,前十轮为随机生成的 knob。gpclass.py
  即高斯过程回归算法。showres.py
  展示过往测试结果,将持久化保存的对象文件反序列化,调用 datamodel.py
  函数中 GPDataSet 类输出测试结果。三、具体实现本着不重复造轮子的原则,本次测试决定使用 AutoTiKV 的算法代码,并修 改其中关于数据库的代码,使其适用于 Beaver_datanode。首先,TiKV 数据库使用的配置文件是 yaml 格式,而 Beaver 使用的是 flags 参数的形式(—max_concurrency_tasks_per_search=4),代码中使用的 ruamel.yaml 库文件并不适用于 Beaver。因此,对 controller.py 中 set_tikvyml 函数进行修改, 以“=”为分隔符,读取旧配置文件并将参数以键值对形式写入字典中,对需要 修改的配置项进行替换,最后把修改过后的配置参数写入到新配置文件中。需要修改的配置参数应在 settings.py 中提前声明,更新 target_knob_set 列表 中的参数,新增 wl_metrics 中 avgsearch 列表,并设置期望的 metric。在 controller.py 中补充参数的类型和取值范围,配置好 knob_set 和 metric_set。修改 metric 数据 获取函数,其中 read_search_latency()函数是基于已经索引好的 baimi 数据集,测 试某个场景的 search 性能。参考了 Esrally 的性能压测代码[7],调用 Beaver_broker 的 API 接口,通过传递 pb 格式的搜索语句,来获取不同场景下的 latnecy。本次自动调参测试中,使 用的搜索场景是从数据集中获取apache.resp_len字段的平均值,可以根据自己的 实际环境自定义场景。因为每次得到的性能数据可能受到各种因素影响,或产生较大误差,为了降低误差值,搜索请求预热 20 次,压测 100 次,并计算前 90th 的平均值作为最终的 metric 数据。
  算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。
  settings.py 中需要修改的配置:
  # beaver集群的broker地址和端口,主要用来测试搜索性能beaver_broker_ip="172.21.16.16"beaver_broker_port="50061"# 测试搜索性能需要的索引index_forsearch="ops-http_baimi-20210507"# pb类型搜索语句,求apache.resp_len字段的平均值pb_forsearch='search_info {query {type: kQueryMatchAll}fetch_source {fetch: true}size {value: 0} aggregations { aggs { type: kAggAvg name: "av(apache.resp_len)" body { field: "apache.resp_len__l__" } } } query_time_range {time_range {min: 0 max: 1620374828405}}}'# 不同工作负载模式下相关的指标,可以随意命名,workloadwl_metrics={ "avgsearch": ["search_latency","compaction_mem","compaction_cpu"],}# workload to be loadloadtype = "avgsearch"# workload to be runwltype = "avgsearch"# 需要优化的目标指标target_metric_name="search_latency"# 待调整的配置项target_knob_set=['--enable_query_cache', # 启用query cache '--max_concurrency_tasks_per_search', # 每个Search允许同时执行的数目 '--max_per_search_ram', # 单个Search最大占用的内存 '--max_per_sub_search_ram', # 单个SubSearch最大占用的内存 '--block_ids_per_batch'] # 每个SubSearch的Block数目
  以下是 knob 和 metric 在 controller.py 中的声明样板:
  <br />knob_set=\{"--max_concurrency_tasks_per_search": # 配置项 { "changebyyml": True, # True表示通过修改配置文件来调节 "set_func": None, # 若changebyyml==False,则在此指定修改参数的函数名(在controller.py中定义函数),一般是不需要重启beaver的配置 "minval": 0, # if type==int, indicate min possible value "maxval": 0, # if type==int, indicate max possible value "enumval": [4, 6, 8], # if type==enum, list all valid values "type": "enum", # int / enum "default": 0 # default value }}metric_set=\ {"search_latency": { "read_func": read_search_latency, # 声明查看该指标的函数(函数也定义在controller.py里) "lessisbetter": 1, # whether less value of this metric is better(1: yes) "calc": "ins", # ins表示该参数的值就是benchmark之后查看的结果。inc表示该参数是incremental的,需要把benchmark之后和之前的值相减作为结果。 },}
  Beaver 重启操作比较直接,使用 os.popen 管道命令直接在服务器上执行 kill 命令后更新配置文件重新启动,具体操作在 controller.py 文件的 restart_beaver_datanode()函数中。在本次测试中,脚本直接运行在 Beaver 所运行 的服务器中,首先需要在 settings.py 文件中声明 Beaver_datanode 的启动命令和 各项配置文件路径,指定配置文件临时存放路径。使用“ps -ef|grep beaver_datanode”即可查看 Beaver_datanode 的启动命令。具体配置示例如下:
  autotestdir="/tmp/auto_beaver_datanode"beaver_datanode_file="/opt/rizhiyi/parcels/beaver_datanode-3.7.0.0/bin/beaver_datanode"gflagsfile="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.gflags"config_path="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.pb"log_dir="/data/rizhiyi/logs/beaver_datanode"
  四、测试结果knobs
  此次测试主要测试了以下配置项:
  
  metrics
  我们选择了如下几个 metrics 作为优化指标。
  注意:knobs 和 metrics 均在 contorller.py 文件中定义
  脚本具体使用步骤
  安装 python3.6
  $ tar -xf Python-3.6.12.tgz -C /tmp
  # 编译前检查系统 openssl 版本是否为 1.0.2k 以上版本,并安装所需依赖包,否 则编译 Python 时会报错。$ yum install -y openssl* bzip2* xz-devel zlib-devel libffi-devel gcc gcc-c++ sqlite sqlite-devel$ cd /tmp/Python-3.6.12/$ ./configure# 编译无报错后可以执行 make 安装,默认会安装到/usr/local/lib/python3.6# 使用该命令参数可以安装到指定位置: ./configure --prefix=/xxx$ make && make install
  2. 安装虚拟环境,切换到 python3.6 环境,下载自动化调参工具,并使用 pip 安装相关依赖包
  $ python3.6 -m venv autoenv$ source autoenv/bin/activate(autoenv)$ git clone https://github.com/woxiang-H/auto-beaver.git (autoenv)$ cd auto-beaver(autoenv)$ pip install -r requirements.txt
  3. 按照之前具体实现中提到的需要修改的配置,修改 auto-beaver 下 settings.py 文件。
  4. 调整好 settings.py 之后,执行 python pipeline.py
  等待结果收敛,查看推荐配置
  ################## data ################## ------------------------------previous:------------------------------ rowlabels, finish_time, knobs, metrics1 , 2021-05-11 16:41:02 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 2 , 2021-05-11 16:43:41 , [0. 1. 0. 0. 0.] , [127.38888889 1.4 3 , 2021-05-11 16:46:10 , [1. 1. 0. 0. 0.] , [127.54444444 1.4 4 , 2021-05-11 16:48:48 , [0. 1. 0. 0. 2.] , [126.81111111 1.4 5 , 2021-05-11 16:51:27 , [1. 1. 0. 0. 2.] , [126.23333333 1.4 6 , 2021-05-11 16:54:06 , [0. 1. 0. 0. 2.] , [124.63333333 1.4 7 , 2021-05-11 16:56:35 , [1. 2. 0. 0. 1.] , [125.13333333 1.4 8 , 2021-05-11 16:59:14 , [1. 0. 0. 0. 1.] , [125.5 1.4 31.8]9 , 2021-05-11 17:01:53 , [1. 0. 0. 0. 2.] , [131.18888889 1.4 31.9 ]10 , 2021-05-11 17:04:31 , [0. 2. 0. 0. 1.] , [124.22222222 1.4 31.5 ]11 , 2021-05-11 17:07:53 , [0. 2. 0. 0. 2.] , [128.48888889 1.4 31.4 ]12 , 2021-05-11 17:11:14 , [0. 2. 0. 0. 1.] , [123.74444444 1.4 31.9 ]13 , 2021-05-11 17:14:35 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.1 ]14 , 2021-05-11 17:17:56 , [0. 2. 0. 0. 1.] , [127.08888889 1.4 31.5 ]15 , 2021-05-11 17:21:17 , [0. 0. 0. 0. 1.] , [124.66666667 1.4 31.8 ]16 , 2021-05-11 17:24:38 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.2 ]17 , 2021-05-11 17:27:59 , [0. 2. 0. 0. 1.] , [126.15555556 1.4 31.2 ]18 , 2021-05-11 17:31:21 , [0. 1. 0. 0. 1.] , [126.26666667 1.4 31.6 ]19 , 2021-05-11 17:34:41 , [0. 0. 0. 0. 1.] , [123.67777778 1.4 31.3 ]20 , 2021-05-11 17:38:04 , [0. 1. 0. 0. 1.] , [127.13333333 1.4 31.5 ]21 , 2021-05-11 17:41:15 , [0. 0. 0. 0. 1.] , [126.35555556 1.4 33.1 ]22 , 2021-05-11 17:44:36 , [0. 1. 0. 0. 1.] , [124.56666667 1.4 31.5 ]23 , 2021-05-11 17:47:57 , [0. 0. 0. 0. 1.] , [124.36666667 1.4 31.2 ]24 , 2021-05-11 17:51:19 , [0. 1. 0. 0. 1.] , [129.04444444 1.4 31.4 ]25 , 2021-05-11 17:54:39 , [0. 0. 0. 0. 1.] , [122.94444444 1.4 31.2 ]26 , 2021-05-11 17:58:01 , [0. 1. 0. 0. 1.] , [125.03333333 1.4 31.1 ]27 , 2021-05-11 18:01:22 , [0. 0. 0. 0. 1.] , [128.91111111 1.4 31.7 ]28 , 2021-05-11 18:04:42 , [0. 1. 0. 0. 1.] , [125.67777778 1.4 31.4 ] 29 , 2021-05-11 18:08:04 , [0. 0. 0. 0. 1.] , [124.78888889 1.4 31.2 ]30 , 2021-05-11 18:11:15 , [1. 1. 0. 0. 1.] , [125.37777778 1.4 32.7 ]31 , 2021-05-11 18:14:36 , [0. 0. 0. 0. 1.] , [126.62222222 1.4 31.3 ]32 , 2021-05-11 18:17:57 , [0. 2. 0. 0. 1.] , [123.52222222 1.4 31.4 ]33 , 2021-05-11 18:21:19 , [0. 0. 0. 0. 1.] , [125.54444444 1.4 31.3 ]34 , 2021-05-11 18:24:31 , [0. 2. 0. 0. 1.] , [126.58888889 1.4 32.9 ]35 , 2021-05-11 18:27:52 , [0. 0. 0. 0. 1.] , [123.44444444 1.4 31.4 ]36 , 2021-05-11 18:31:12 , [0. 2. 0. 0. 1.] , [125.65555556 1.4 31.4 ]37 , 2021-05-11 18:34:34 , [0. 0. 0. 0. 1.] , [125.83333333 1.4 31.5 ]38 , 2021-05-11 18:37:45 , [1. 1. 0. 0. 1.] , [128.74444444 1.4 32.8 ] 39 , 2021-05-11 18:41:06 , [0. 0. 0. 0. 1.] , [123.74444444 1.4 31.4 ] 40 , 2021-05-11 18:44:28 , [1. 2. 0. 0. 1.] , [127.13333333 1.4 31.7 ] 41 , 2021-05-11 18:47:49 , [0. 0. 0. 0. 1.] , [127.9 1.4 31.4]42 , 2021-05-11 18:51:00 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 32.9 ] 43 , 2021-05-11 18:54:21 , [0. 0. 0. 0. 1.] , [125.51111111 1.4 31.1 ] 44 , 2021-05-11 18:57:42 , [0. 1. 0. 0. 1.] , [123.42222222 1.4 31.4 ] 45 , 2021-05-11 19:01:03 , [0. 0. 0. 0. 1.] , [124.04444444 1.4 31.4 ] 46 , 2021-05-11 19:04:24 , [0. 1. 0. 0. 1.] , [124.28888889 1.4 31.2 ] 47 , 2021-05-11 19:07:35 , [0. 0. 0. 0. 1.] , [125.75555556 1.4 32.7 ] 48 , 2021-05-11 19:10:57 , [0. 1. 0. 0. 1.] , [127.17777778 1.4 31.3 ] 49 , 2021-05-11 19:14:17 , [0. 0. 0. 0. 1.] , [123.52222222 1.4 31.5 ] 50 , 2021-05-11 19:17:38 , [0. 1. 0. 0. 1.] , [125.33333333 1.4 31.5 ] 51 , 2021-05-11 19:20:58 , [0. 0. 0. 0. 1.] , [126.82222222 1.4 31.3 ] 52 , 2021-05-11 19:24:19 , [0. 1. 0. 0. 1.] , [124.15555556 1.4 31.4 ] 53 , 2021-05-11 19:27:40 , [0. 0. 0. 0. 1.] , [126.34444444 1.4 31.5 ] 54 , 2021-05-11 19:31:01 , [0. 1. 0. 0. 1.] , [124.68888889 1.4 31.4 ] 55 , 2021-05-11 19:34:23 , [0. 0. 0. 0. 0.] , [125.5 1.4 31.4]56 , 2021-05-11 19:37:44 , [0. 1. 0. 0. 1.] , [125.61111111 1.4 31.4 ] 57 , 2021-05-11 19:40:55 , [0. 0. 0. 0. 0.] , [125.16666667 1.4 32.8 ] 58 , 2021-05-11 19:44:16 , [0. 1. 0. 0. 1.] , [125.06666667 1.4 31.5 ] 59 , 2021-05-11 19:47:37 , [0. 0. 0. 0. 0.] , [125.54444444 1.4 31.2 ] 60 , 2021-05-11 19:50:58 , [0. 1. 0. 0. 1.] , [125.55555556 1.4 31.4 ] 61 , 2021-05-11 19:54:20 , [0. 0. 0. 0. 0.] , [128.92222222 1.4 31.5 ] 62 , 2021-05-11 19:57:31 , [0. 1. 0. 0. 1.] , [125.9 1.4 32.9] ------------------------------new:------------------------------knobs: [[0. 0. 0. 0. 0]]metrics: [[124.1 1.4 31.5]]rowlabels: [1]timestamp: 2021-05-11 20:00:52------------------------------TARGET:------------------------------knob: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] metric: search_latencymetric_lessisbetter: 1------------------------------------------------------------num of knobs == 5knobs: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] num of metrics == 3metrics: ['search_latency' 'compaction_mem' 'compaction_cpu'] ------------------------------------------------------------
  可以看到最佳推荐配置为[0. 0. 0. 0. 0.]和0. 1. 0. 0. 1.,具体配置参数如下
  set_beaver_datanode_gflags:: --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 4set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 16
  或者
  set_beaver_datanode_gflags::  --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 6set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 18
  结果显示,适当提高 search 并发数,或提高 SubSearch 的 block 数会优化 search 性能。五、存在的问题通过修改相关代码,目前自动调参工具能正常运行,但依然存在不足。本次 测试方案利用事前存储好的索引 baimi 数据集,仅测试影响 search 性能的参数, 因此可修改的配置项也相对较少。虽然舍弃了 AutoTiKV 的 workload,但代码依 然保留此功能,待后续有针对 Beaver 的工作负载方案之后,再添加相关 workload。此外 Beaver_datanode 的重启方式也并不优雅,有待提升。后续可优化:增加不同的 workload 模式,测试 index 性能和 search 性能(需要 Beaver 支持新的 index 方式),同时测试 index 相关的配置参数。优雅的重启 Beaver_datanode。目前重启等待 Beaver_datanode 可用的 wait 时间为 200s,在实际运行的 Beaver_datanode 中,索引恢复时间相对较长,需根据不同环境灵活变化。指标数据获取的准确度,会受到网络等因素的影响,有一定的波动。[参考文献]
  [1]OtterTune.
  [2]AutoTiKV.
  [3]Automatic Database Management System Tuning Through Large-scale Machine Learning.~ggordon/van-aken-etal-parameters.pdf
  [4]
  [5]
  [6]
  [7]Esrally.
  拓展内容
  精彩还在继续…2021年9月3日-4日,DevOps 国际峰会 2021 北京站,网易敏捷教练、于旭东为您分享“DevOps基础设施之环境管理,网易云音乐环境管理效率提升实践”,千万不要错过~
  
  近期好文:
  “高效运维”公众号诚邀广大技术人员投稿, 查看全部

  如何用一杯茶的功夫调优日志搜索引擎性能,看这一篇就够了~
  
  
  前言
  Beaver 是由日志易自主研发、安全可控的搜索引擎,由 Master、Broker 和 Datanode 三部分组成,已广泛应用于存储和分析大型分布式系统生成的日志。Beaver 拥有大量与性能相关的配置项,由于手动配置费时费力,并且有时需要修 改相关配置以适配特定环境,所以自动调整配置参数优化性能是当前迫切需要解 决的问题。
  一、背景调研
  目前业界有许多自动调参的项目和算法实现,例如 CMU 开源的关系型数据库自动调参工具 OtterTune[1]、PingCAP 仿作的 TiKV 自动调参工具[2]等,都为 我们提供了大量的论文以及开源算法代码。
  1、OtterTune
  数据库有很多参数,比如 MySQL 有几百个参数,Oracle 有上千个参数。这些参数控制着数据库的方方面面,很大程度上影响了如缓存容量和检查点频次等数据库性能。
  对于不同的硬件配置,不同的工作负载,对应的最优参数文件都是不同的, 这些复杂性令数据库调优变得更加困难。DBA(Database Administrator,即数据库管理员)不能简单地重复使用之前调好的参数文件,他们需要花大量时间根据经验来调优数据库的参数,而公司则需要花大价钱来雇佣资深 DBA。为解决上述问题,卡内基梅隆大学数据库小组的教授、学生和研究人员开发了一个数据库自动调参工具 OtterTune,它能利用机器学习对数据库的参数文件进行自动化调优,利用已有的数据训练机器学习模型,进而实现自动化地推荐最优参数。它能很好地帮助 DBA 进行数据库调优,将 DBA 从复杂繁琐的调参工 作中解放出来。OtterTune 的目的是为了帮助 DBA,让数据库部署和调优更加容易,用机器来代替数据库调参这个冗繁但又很重要的工作,让技术人员甚至不需要专业知识也能顺利完成。OtterTune 分为客户端和服务端,目标数据库是用户需要调优参数的数据库:客户端接收到推荐的配置文件后,配置到目标数据库上,并测量其性能。以上步骤可重复进行,直到用户对其推荐的配置文件满意为止。2、AutoTiKVAutoTikv 是一个用于对 TiKV 数据库进行自动调优的工具。它是根据 SIGMOD2017 年发表的一篇论文所设计[3],能够使用机器学习模型对数据库参数进行自动调优。AutoTiKV 吸取了 OtterTune 的设计理念,并简化了相关结构。设计的调优过程如下:
  
  图一:整个过程会循环跑 200 个 round(用户可自定义),或者定义为直到结果收敛为止。3、ML 模型AutoTikv 使用了和 OtterTune 一样的高斯过程回归(Gaussian Process Regression,以下简称 GP)来推荐新的 knob,它是基于高斯分布的一种非参数模型。
  在没有利用机器学习模型对参数文件的效果进行预测前,OtterTune 使用的是随机采样的方式来收集初始数据。
  当有足够的数据(X,Y)时,OtterTune 训练机器学习模型进行回归,即估计出函数 f:X→Y,表示对于参数文件 X,用 f(X)来估计数据库延迟 Y 的值。如此,问题则变为寻找合适的 X,使 f(X)的值尽量小。这样在 f 上面做梯度下降即可找 出合适的 X[4]。
  如图二所示,横坐标是两个参数:缓存大小和日志文件大小,纵坐标是数据库延迟(越低越好)。
  
  图二:OtterTune 高斯过程回归模型
  OtterTune 用高斯过程回归模型估计出了 f,即给定这两个参数值,估计出对应的数据库延迟。接着用梯度下降找到最合适的参数值,使延迟尽可能低。
  高斯过程回归的好处:
  和神经网络之类的方法相比,GP 属于无参数模型,算法计算量相对较低,而且在训练样本很少的情况下,GP 表现比神经网络算法( Neural Network ) 更好。
  它能估计样本的分布情况,即 X 的均值 m(X) 和标准差 s(X)。若 X 周围的数据不多,则它被估计出的标准差 s(X) 会偏大(表示这个样本 X 和其他数据点的差异大)。直观的理解是若数据不多,则不确定性会大,体 现在标准差偏大;反之,数据足够多时,不确定性减少,标准差会偏小。这个特性后面会用到。
  但 GP 本身其实只能估计样本的分布,为了得到最终的预测值,我们需要 把它应用到贝叶斯优化(Bayesian Optimization)中[5]。
  贝叶斯优化算法大致可分为两步:通过 GP 估计出函数的分布情况;通过采集函数(Acquisition Function)指导下一步的采样(也就是给出推荐值)。
  采集函数(Acquisition Function)的特性是在寻找新的推荐值的时候,能够进行平衡探索(Exploration)和利用(Exploitation)。
  在推荐的过程中,需要平衡上述两种指标。Exploitation 过多会导致结果陷入局部最优值(即重复推荐目前已知最好的点,但可能还有更好的点没被发现), 而 Exploration 过多又会导致搜索效率太低(即一直在探索新区域,而没有对当前比较好的区域进行深入尝试)。而平衡二者的核心思想,是当数据足够多时, 利用现有的数据推荐;当缺少数据时,在点最少的区域进行探索,探索最未知的 区域能够提供最大的信息量。贝叶斯优化的第二步就可以帮我们实现这一思想。前面提到,GP 可以帮我们估计 X 的均值 m(X) 和标准差 s(X),其中均值 m(X) 可以作为 Exploitation 的表征值,而标准差 s(X) 可以作为 Exploration 的表征值,这样就 可以用贝叶斯优化方法来求解了。使用置信区间上界(Upper Confidence Bound)作为采集函数。假设我们需要找 X 使 Y 值尽可能大,则 U(X) = m(X) + k*s(X),其中 k > 0 是可调的系数,我们只要找 X 使 U(X) 尽可能大即可。注意,其中系数 k 影响着探索和利用的比例,即 k 越大,越鼓励探索新的区域。
  在具体实现中,一开始随机生成若干个 candidate knobs,然后用上述模型计算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。二、可行性分析目前所有开源的自动调参工具实现原理基本上都是通过机器学习算法推荐 配置参数,应用至数据库或者其他引擎上,在不同的工作负载模式下,不断收集 metric 信息,丰富训练模型,直至推荐出最优的配置,以此替代频繁的手动修改 配置工作。由调研可以发现,OtterTune 是通用模型框架,在业界许多场景都能应用, 不仅能调优数据库的参数,还能够调优操作系统内核的参数,即只要能获取指标 信息,大部分软件都可以用此模型进行调优。同时可以借鉴 AutoTiKV 的测试代码,将目标 DB 替换为 Beaver_datanode, 通过修改不同的配置,测试 baimi 数据集,收集 search 的性能数据,经过模型训 练后不断推荐最优配置。baimi 数据集,即 Apache 访问日志,总日志行数 7078124,日志文件原始大小 2374265761 Byte,测试 Beaver 和 ES 的搜索性能对比中用到的数据集。
  AutoTiKV 代码分析:
  pipeline.py
  自动调参脚本入口,定义执行 round 数,自动推荐参数配置,修改配置文件 并重启相关 DB,收集 metric 数据训练算法模型,以文件形式持久化保存对象。
  settings.py
  脚本参数配置,需要测试的 knobs、metrics 及 workload,数据库连接配置。需要优化的 metric(仅支持优化一项目标 metric)、ansible 和 deploy 目录。
  controller.py
  knob 配置和 metric 获取相关函数,每一个需要修改的参数都需要在 knob_set 中定义,声明参数类型和取值范围,修改配置文件和重启数据库函数等。另外包 括一些工作负载相关的 workload 函数。
  datamodel.py
  初始化数据设置,存放数据模型,每次测试的配置参数和获取到的指标数据 都会存放在此模型中。gpmodel.py
  调用高斯过程回归类算法,传递并训练数据模型,根据算法推荐返回最佳配 置参数,用于下轮测试。注意,前十轮为随机生成的 knob。gpclass.py
  即高斯过程回归算法。showres.py
  展示过往测试结果,将持久化保存的对象文件反序列化,调用 datamodel.py
  函数中 GPDataSet 类输出测试结果。三、具体实现本着不重复造轮子的原则,本次测试决定使用 AutoTiKV 的算法代码,并修 改其中关于数据库的代码,使其适用于 Beaver_datanode。首先,TiKV 数据库使用的配置文件是 yaml 格式,而 Beaver 使用的是 flags 参数的形式(—max_concurrency_tasks_per_search=4),代码中使用的 ruamel.yaml 库文件并不适用于 Beaver。因此,对 controller.py 中 set_tikvyml 函数进行修改, 以“=”为分隔符,读取旧配置文件并将参数以键值对形式写入字典中,对需要 修改的配置项进行替换,最后把修改过后的配置参数写入到新配置文件中。需要修改的配置参数应在 settings.py 中提前声明,更新 target_knob_set 列表 中的参数,新增 wl_metrics 中 avgsearch 列表,并设置期望的 metric。在 controller.py 中补充参数的类型和取值范围,配置好 knob_set 和 metric_set。修改 metric 数据 获取函数,其中 read_search_latency()函数是基于已经索引好的 baimi 数据集,测 试某个场景的 search 性能。参考了 Esrally 的性能压测代码[7],调用 Beaver_broker 的 API 接口,通过传递 pb 格式的搜索语句,来获取不同场景下的 latnecy。本次自动调参测试中,使 用的搜索场景是从数据集中获取apache.resp_len字段的平均值,可以根据自己的 实际环境自定义场景。因为每次得到的性能数据可能受到各种因素影响,或产生较大误差,为了降低误差值,搜索请求预热 20 次,压测 100 次,并计算前 90th 的平均值作为最终的 metric 数据。
  算出它们的 U(X),找出 U(X) 最大的那一个作为本次推荐的结果。
  settings.py 中需要修改的配置:
  # beaver集群的broker地址和端口,主要用来测试搜索性能beaver_broker_ip="172.21.16.16"beaver_broker_port="50061"# 测试搜索性能需要的索引index_forsearch="ops-http_baimi-20210507"# pb类型搜索语句,求apache.resp_len字段的平均值pb_forsearch='search_info {query {type: kQueryMatchAll}fetch_source {fetch: true}size {value: 0} aggregations { aggs { type: kAggAvg name: "av(apache.resp_len)" body { field: "apache.resp_len__l__" } } } query_time_range {time_range {min: 0 max: 1620374828405}}}'# 不同工作负载模式下相关的指标,可以随意命名,workloadwl_metrics={ "avgsearch": ["search_latency","compaction_mem","compaction_cpu"],}# workload to be loadloadtype = "avgsearch"# workload to be runwltype = "avgsearch"# 需要优化的目标指标target_metric_name="search_latency"# 待调整的配置项target_knob_set=['--enable_query_cache', # 启用query cache '--max_concurrency_tasks_per_search', # 每个Search允许同时执行的数目 '--max_per_search_ram', # 单个Search最大占用的内存 '--max_per_sub_search_ram', # 单个SubSearch最大占用的内存 '--block_ids_per_batch'] # 每个SubSearch的Block数目
  以下是 knob 和 metric 在 controller.py 中的声明样板:
  <br />knob_set=\{"--max_concurrency_tasks_per_search": # 配置项 { "changebyyml": True, # True表示通过修改配置文件来调节 "set_func": None, # 若changebyyml==False,则在此指定修改参数的函数名(在controller.py中定义函数),一般是不需要重启beaver的配置 "minval": 0, # if type==int, indicate min possible value "maxval": 0, # if type==int, indicate max possible value "enumval": [4, 6, 8], # if type==enum, list all valid values "type": "enum", # int / enum "default": 0 # default value }}metric_set=\ {"search_latency": { "read_func": read_search_latency, # 声明查看该指标的函数(函数也定义在controller.py里) "lessisbetter": 1, # whether less value of this metric is better(1: yes) "calc": "ins", # ins表示该参数的值就是benchmark之后查看的结果。inc表示该参数是incremental的,需要把benchmark之后和之前的值相减作为结果。 },}
  Beaver 重启操作比较直接,使用 os.popen 管道命令直接在服务器上执行 kill 命令后更新配置文件重新启动,具体操作在 controller.py 文件的 restart_beaver_datanode()函数中。在本次测试中,脚本直接运行在 Beaver 所运行 的服务器中,首先需要在 settings.py 文件中声明 Beaver_datanode 的启动命令和 各项配置文件路径,指定配置文件临时存放路径。使用“ps -ef|grep beaver_datanode”即可查看 Beaver_datanode 的启动命令。具体配置示例如下:
  autotestdir="/tmp/auto_beaver_datanode"beaver_datanode_file="/opt/rizhiyi/parcels/beaver_datanode-3.7.0.0/bin/beaver_datanode"gflagsfile="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.gflags"config_path="/run/rizhiyi_manager_agent/process/2002-beaver_datanode/config/beaver_datanode.pb"log_dir="/data/rizhiyi/logs/beaver_datanode"
  四、测试结果knobs
  此次测试主要测试了以下配置项:
  
  metrics
  我们选择了如下几个 metrics 作为优化指标。
  注意:knobs 和 metrics 均在 contorller.py 文件中定义
  脚本具体使用步骤
  安装 python3.6
  $ tar -xf Python-3.6.12.tgz -C /tmp
  # 编译前检查系统 openssl 版本是否为 1.0.2k 以上版本,并安装所需依赖包,否 则编译 Python 时会报错。$ yum install -y openssl* bzip2* xz-devel zlib-devel libffi-devel gcc gcc-c++ sqlite sqlite-devel$ cd /tmp/Python-3.6.12/$ ./configure# 编译无报错后可以执行 make 安装,默认会安装到/usr/local/lib/python3.6# 使用该命令参数可以安装到指定位置: ./configure --prefix=/xxx$ make && make install
  2. 安装虚拟环境,切换到 python3.6 环境,下载自动化调参工具,并使用 pip 安装相关依赖包
  $ python3.6 -m venv autoenv$ source autoenv/bin/activate(autoenv)$ git clone https://github.com/woxiang-H/auto-beaver.git (autoenv)$ cd auto-beaver(autoenv)$ pip install -r requirements.txt
  3. 按照之前具体实现中提到的需要修改的配置,修改 auto-beaver 下 settings.py 文件。
  4. 调整好 settings.py 之后,执行 python pipeline.py
  等待结果收敛,查看推荐配置
  ################## data ################## ------------------------------previous:------------------------------ rowlabels, finish_time, knobs, metrics1 , 2021-05-11 16:41:02 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 2 , 2021-05-11 16:43:41 , [0. 1. 0. 0. 0.] , [127.38888889 1.4 3 , 2021-05-11 16:46:10 , [1. 1. 0. 0. 0.] , [127.54444444 1.4 4 , 2021-05-11 16:48:48 , [0. 1. 0. 0. 2.] , [126.81111111 1.4 5 , 2021-05-11 16:51:27 , [1. 1. 0. 0. 2.] , [126.23333333 1.4 6 , 2021-05-11 16:54:06 , [0. 1. 0. 0. 2.] , [124.63333333 1.4 7 , 2021-05-11 16:56:35 , [1. 2. 0. 0. 1.] , [125.13333333 1.4 8 , 2021-05-11 16:59:14 , [1. 0. 0. 0. 1.] , [125.5 1.4 31.8]9 , 2021-05-11 17:01:53 , [1. 0. 0. 0. 2.] , [131.18888889 1.4 31.9 ]10 , 2021-05-11 17:04:31 , [0. 2. 0. 0. 1.] , [124.22222222 1.4 31.5 ]11 , 2021-05-11 17:07:53 , [0. 2. 0. 0. 2.] , [128.48888889 1.4 31.4 ]12 , 2021-05-11 17:11:14 , [0. 2. 0. 0. 1.] , [123.74444444 1.4 31.9 ]13 , 2021-05-11 17:14:35 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.1 ]14 , 2021-05-11 17:17:56 , [0. 2. 0. 0. 1.] , [127.08888889 1.4 31.5 ]15 , 2021-05-11 17:21:17 , [0. 0. 0. 0. 1.] , [124.66666667 1.4 31.8 ]16 , 2021-05-11 17:24:38 , [0. 1. 0. 0. 1.] , [123.34444444 1.4 31.2 ]17 , 2021-05-11 17:27:59 , [0. 2. 0. 0. 1.] , [126.15555556 1.4 31.2 ]18 , 2021-05-11 17:31:21 , [0. 1. 0. 0. 1.] , [126.26666667 1.4 31.6 ]19 , 2021-05-11 17:34:41 , [0. 0. 0. 0. 1.] , [123.67777778 1.4 31.3 ]20 , 2021-05-11 17:38:04 , [0. 1. 0. 0. 1.] , [127.13333333 1.4 31.5 ]21 , 2021-05-11 17:41:15 , [0. 0. 0. 0. 1.] , [126.35555556 1.4 33.1 ]22 , 2021-05-11 17:44:36 , [0. 1. 0. 0. 1.] , [124.56666667 1.4 31.5 ]23 , 2021-05-11 17:47:57 , [0. 0. 0. 0. 1.] , [124.36666667 1.4 31.2 ]24 , 2021-05-11 17:51:19 , [0. 1. 0. 0. 1.] , [129.04444444 1.4 31.4 ]25 , 2021-05-11 17:54:39 , [0. 0. 0. 0. 1.] , [122.94444444 1.4 31.2 ]26 , 2021-05-11 17:58:01 , [0. 1. 0. 0. 1.] , [125.03333333 1.4 31.1 ]27 , 2021-05-11 18:01:22 , [0. 0. 0. 0. 1.] , [128.91111111 1.4 31.7 ]28 , 2021-05-11 18:04:42 , [0. 1. 0. 0. 1.] , [125.67777778 1.4 31.4 ] 29 , 2021-05-11 18:08:04 , [0. 0. 0. 0. 1.] , [124.78888889 1.4 31.2 ]30 , 2021-05-11 18:11:15 , [1. 1. 0. 0. 1.] , [125.37777778 1.4 32.7 ]31 , 2021-05-11 18:14:36 , [0. 0. 0. 0. 1.] , [126.62222222 1.4 31.3 ]32 , 2021-05-11 18:17:57 , [0. 2. 0. 0. 1.] , [123.52222222 1.4 31.4 ]33 , 2021-05-11 18:21:19 , [0. 0. 0. 0. 1.] , [125.54444444 1.4 31.3 ]34 , 2021-05-11 18:24:31 , [0. 2. 0. 0. 1.] , [126.58888889 1.4 32.9 ]35 , 2021-05-11 18:27:52 , [0. 0. 0. 0. 1.] , [123.44444444 1.4 31.4 ]36 , 2021-05-11 18:31:12 , [0. 2. 0. 0. 1.] , [125.65555556 1.4 31.4 ]37 , 2021-05-11 18:34:34 , [0. 0. 0. 0. 1.] , [125.83333333 1.4 31.5 ]38 , 2021-05-11 18:37:45 , [1. 1. 0. 0. 1.] , [128.74444444 1.4 32.8 ] 39 , 2021-05-11 18:41:06 , [0. 0. 0. 0. 1.] , [123.74444444 1.4 31.4 ] 40 , 2021-05-11 18:44:28 , [1. 2. 0. 0. 1.] , [127.13333333 1.4 31.7 ] 41 , 2021-05-11 18:47:49 , [0. 0. 0. 0. 1.] , [127.9 1.4 31.4]42 , 2021-05-11 18:51:00 , [0. 1. 0. 0. 1.] , [124.71111111 1.4 32.9 ] 43 , 2021-05-11 18:54:21 , [0. 0. 0. 0. 1.] , [125.51111111 1.4 31.1 ] 44 , 2021-05-11 18:57:42 , [0. 1. 0. 0. 1.] , [123.42222222 1.4 31.4 ] 45 , 2021-05-11 19:01:03 , [0. 0. 0. 0. 1.] , [124.04444444 1.4 31.4 ] 46 , 2021-05-11 19:04:24 , [0. 1. 0. 0. 1.] , [124.28888889 1.4 31.2 ] 47 , 2021-05-11 19:07:35 , [0. 0. 0. 0. 1.] , [125.75555556 1.4 32.7 ] 48 , 2021-05-11 19:10:57 , [0. 1. 0. 0. 1.] , [127.17777778 1.4 31.3 ] 49 , 2021-05-11 19:14:17 , [0. 0. 0. 0. 1.] , [123.52222222 1.4 31.5 ] 50 , 2021-05-11 19:17:38 , [0. 1. 0. 0. 1.] , [125.33333333 1.4 31.5 ] 51 , 2021-05-11 19:20:58 , [0. 0. 0. 0. 1.] , [126.82222222 1.4 31.3 ] 52 , 2021-05-11 19:24:19 , [0. 1. 0. 0. 1.] , [124.15555556 1.4 31.4 ] 53 , 2021-05-11 19:27:40 , [0. 0. 0. 0. 1.] , [126.34444444 1.4 31.5 ] 54 , 2021-05-11 19:31:01 , [0. 1. 0. 0. 1.] , [124.68888889 1.4 31.4 ] 55 , 2021-05-11 19:34:23 , [0. 0. 0. 0. 0.] , [125.5 1.4 31.4]56 , 2021-05-11 19:37:44 , [0. 1. 0. 0. 1.] , [125.61111111 1.4 31.4 ] 57 , 2021-05-11 19:40:55 , [0. 0. 0. 0. 0.] , [125.16666667 1.4 32.8 ] 58 , 2021-05-11 19:44:16 , [0. 1. 0. 0. 1.] , [125.06666667 1.4 31.5 ] 59 , 2021-05-11 19:47:37 , [0. 0. 0. 0. 0.] , [125.54444444 1.4 31.2 ] 60 , 2021-05-11 19:50:58 , [0. 1. 0. 0. 1.] , [125.55555556 1.4 31.4 ] 61 , 2021-05-11 19:54:20 , [0. 0. 0. 0. 0.] , [128.92222222 1.4 31.5 ] 62 , 2021-05-11 19:57:31 , [0. 1. 0. 0. 1.] , [125.9 1.4 32.9] ------------------------------new:------------------------------knobs: [[0. 0. 0. 0. 0]]metrics: [[124.1 1.4 31.5]]rowlabels: [1]timestamp: 2021-05-11 20:00:52------------------------------TARGET:------------------------------knob: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] metric: search_latencymetric_lessisbetter: 1------------------------------------------------------------num of knobs == 5knobs: ['--enable_query_cache' '--max_concurrency_tasks_per_search''--max_per_search_ram' '--max_per_sub_search_ram' '--block_ids_per_batch'] num of metrics == 3metrics: ['search_latency' 'compaction_mem' 'compaction_cpu'] ------------------------------------------------------------
  可以看到最佳推荐配置为[0. 0. 0. 0. 0.]和0. 1. 0. 0. 1.,具体配置参数如下
  set_beaver_datanode_gflags:: --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 4set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 16
  或者
  set_beaver_datanode_gflags::  --enable_query_cache falseset_beaver_datanode_gflags:: --max_concurrency_tasks_per_search 6set_beaver_datanode_gflags:: --max_per_search_ram 198mset_beaver_datanode_gflags:: --max_per_sub_search_ram 99mset_beaver_datanode_gflags:: --block_ids_per_batch 18
  结果显示,适当提高 search 并发数,或提高 SubSearch 的 block 数会优化 search 性能。五、存在的问题通过修改相关代码,目前自动调参工具能正常运行,但依然存在不足。本次 测试方案利用事前存储好的索引 baimi 数据集,仅测试影响 search 性能的参数, 因此可修改的配置项也相对较少。虽然舍弃了 AutoTiKV 的 workload,但代码依 然保留此功能,待后续有针对 Beaver 的工作负载方案之后,再添加相关 workload。此外 Beaver_datanode 的重启方式也并不优雅,有待提升。后续可优化:增加不同的 workload 模式,测试 index 性能和 search 性能(需要 Beaver 支持新的 index 方式),同时测试 index 相关的配置参数。优雅的重启 Beaver_datanode。目前重启等待 Beaver_datanode 可用的 wait 时间为 200s,在实际运行的 Beaver_datanode 中,索引恢复时间相对较长,需根据不同环境灵活变化。指标数据获取的准确度,会受到网络等因素的影响,有一定的波动。[参考文献]
  [1]OtterTune.
  [2]AutoTiKV.
  [3]Automatic Database Management System Tuning Through Large-scale Machine Learning.~ggordon/van-aken-etal-parameters.pdf
  [4]
  [5]
  [6]
  [7]Esrally.
  拓展内容
  精彩还在继续…2021年9月3日-4日,DevOps 国际峰会 2021 北京站,网易敏捷教练、于旭东为您分享“DevOps基础设施之环境管理,网易云音乐环境管理效率提升实践”,千万不要错过~
  
  近期好文:
  “高效运维”公众号诚邀广大技术人员投稿,

VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据

网站优化优采云 发表了文章 • 0 个评论 • 92 次浏览 • 2022-05-10 02:33 • 来自相关话题

  VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲 SEO 中的 JSON-LD。
  JSON-LD
  如果我们打开掘金任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 script 标签:
  
  在思否等其他平台也是可以看到的:
  
  那这个 type 为 application/ld+json 的 script,到底是什么意思呢? 又是什么作用呢?
  这就是我们今天要介绍的 JSON-LD,英文全程:JavaScript Object Notation for Linked Data,官方地址:[4],简单的来说,就是用来描述网页的类型和内容,方便搜索引擎做展现。
  比如如果我们在 Google 搜索 「Chocolate in a mug」,我们会看到这样的搜索结果:
  
  我们打开页面,就可以看到搜索展示的内容对应了 application/ld+json 中的内容:
  
  添加 JSON-LD
  如果我们也要实现这样的效果,方便搜索引擎展现,该怎么做呢?
  在页面加入结构化数据的方法很简单,只用在页面添加这样一段脚本就可以了:
  <br />    // ...<br /><br />
  具体里面的内容需要参考比如 Google 搜索中心提供的《结构化数据常规指南》[5],因为我写的是具体的文章,所以参考 Article 章节[6]后,我决定写入以下这些属性:
  <br />     {<br />      "@context": "https://schema.org",<br />      "@type": "Article",<br />      "headline": "这里填写标题",<br />      "image": [<br />        "https://ts.yayujs.com/icon-144x144.png"<br />       ],<br />      "datePublished": "2021-11-10T22:06:06.000Z",<br />      "dateModified": "2022-03-04T16:00:00.000Z",<br />      "author": [{<br />          "@type": "Person",<br />          "name": "冴羽",<br />          "url": "https://github.com/mqyqingfeng/Blog"<br />        }]<br />    }<br /><br />
  VuePress 实现
  经过搜索,我并没有发现现成的插件,由于每个页面的标题、发布时间、更新时间都不同,那成吧,那就自己写个本地插件实现吧。
  其实要实现的内容很简单,就是在编译的时候在 head 中写入一个 script 脚本,脚本的内容根据页面的属性而定,但毕竟我用的是 vuepress 1.x,实现方式受制于工具,完全看工具提供了什么 API 来实现,我们直接看最终的实现方式:
  vuepress-plugin-jsonld
  在 .vuepress 目录下建立 vuepress-plugin-jsonld 文件夹,然后执行 npm init ,创建 package.json
  创建 index.js,代码写入:
  const { path } = require('@vuepress/shared-utils')<br /><br />module.exports = options => ({<br />  name: 'vuepress-plugin-jsonld',<br />  enhanceAppFiles () {<br />    return [path.resolve(__dirname, 'enhanceAppFile.js')]<br />  },<br />  globalUIComponents: ['JSONLD']<br />})<br />
  创建 enhanceAppFile.js,代码写入:
  import JSONLD from './JSONLD.vue'<br /><br />export default ({ Vue, options }) => {<br />  Vue.component('JSONLD', JSONLD)<br />}<br />
  创建 JSONLD.vue,代码写入:
  <br /><br /><br />export default {<br /> created() {<br /> if (typeof this.$ssrContext !== "undefined") {<br /> this.$ssrContext.userHeadTags += <br /> `<br /> {<br /> "@context": "https://schema.org",<br /> "@type": "Article",<br /> "headline": "${this.$page.title}",<br /> "url": "${'https://yayujs.com' + this.$page.path}",<br /> "image": [<br /> "https://ts.yayujs.com/icon-144x144.png"<br /> ],<br /> "datePublished": "${this.$page.frontmatter.date && (new Date(this.$page.frontmatter.date)).toISOString()}",<br /> "dateModified": "${this.$page.lastUpdated && (new Date(this.$page.lastUpdated)).toISOString()}",<br /> "author": [{<br /> "@type": "Person",<br /> "name": "冴羽",<br /> "url": "https://github.com/mqyqingfeng/Blog"<br /> }]<br /> }<br /> `;<br /> }<br /> }<br />};<br /><br />
  这里之所以能够给所有的页面都注入脚本内容,是因为借助了 globalUIComponents[7]:
  你可能想注入某些全局的 UI,并固定在页面中的某处,如 back-to-top, popup。在 VuePress 中,一个全局 UI 就是一个 Vue 组件。
  config.js
  接下来我们修改 config.js:
  module.exports = {<br />    title: 'title',<br />    description: 'description',<br />    plugins: [<br />      require('./vuepress-plugin-jsonld')<br />    ]<br />}<br />
  注意我们在本地运行的时候并不能看到,我们可以关闭 deploy.sh 推送到远程的命令,然后本地编译一下,查一下输出的 HTML:
  
  验证
  发布到线上后,我们可以在 Google 提供的富媒体搜索测试[8]中进行验证,打开网址,输入页面地址,就可以看到抓取的结构化数据:
  
  如果有错误,这里也会展示警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 31篇。 查看全部

  VuePress 博客之 SEO 优化(五)添加 JSON-LD 数据
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲 SEO 中的 JSON-LD。
  JSON-LD
  如果我们打开掘金任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 script 标签:
  
  在思否等其他平台也是可以看到的:
  
  那这个 type 为 application/ld+json 的 script,到底是什么意思呢? 又是什么作用呢?
  这就是我们今天要介绍的 JSON-LD,英文全程:JavaScript Object Notation for Linked Data,官方地址:[4],简单的来说,就是用来描述网页的类型和内容,方便搜索引擎做展现。
  比如如果我们在 Google 搜索 「Chocolate in a mug」,我们会看到这样的搜索结果:
  
  我们打开页面,就可以看到搜索展示的内容对应了 application/ld+json 中的内容:
  
  添加 JSON-LD
  如果我们也要实现这样的效果,方便搜索引擎展现,该怎么做呢?
  在页面加入结构化数据的方法很简单,只用在页面添加这样一段脚本就可以了:
  <br />    // ...<br /><br />
  具体里面的内容需要参考比如 Google 搜索中心提供的《结构化数据常规指南》[5],因为我写的是具体的文章,所以参考 Article 章节[6]后,我决定写入以下这些属性:
  <br />     {<br />      "@context": "https://schema.org",<br />      "@type": "Article",<br />      "headline": "这里填写标题",<br />      "image": [<br />        "https://ts.yayujs.com/icon-144x144.png"<br />       ],<br />      "datePublished": "2021-11-10T22:06:06.000Z",<br />      "dateModified": "2022-03-04T16:00:00.000Z",<br />      "author": [{<br />          "@type": "Person",<br />          "name": "冴羽",<br />          "url": "https://github.com/mqyqingfeng/Blog"<br />        }]<br />    }<br /><br />
  VuePress 实现
  经过搜索,我并没有发现现成的插件,由于每个页面的标题、发布时间、更新时间都不同,那成吧,那就自己写个本地插件实现吧。
  其实要实现的内容很简单,就是在编译的时候在 head 中写入一个 script 脚本,脚本的内容根据页面的属性而定,但毕竟我用的是 vuepress 1.x,实现方式受制于工具,完全看工具提供了什么 API 来实现,我们直接看最终的实现方式:
  vuepress-plugin-jsonld
  在 .vuepress 目录下建立 vuepress-plugin-jsonld 文件夹,然后执行 npm init ,创建 package.json
  创建 index.js,代码写入:
  const { path } = require('@vuepress/shared-utils')<br /><br />module.exports = options => ({<br />  name: 'vuepress-plugin-jsonld',<br />  enhanceAppFiles () {<br />    return [path.resolve(__dirname, 'enhanceAppFile.js')]<br />  },<br />  globalUIComponents: ['JSONLD']<br />})<br />
  创建 enhanceAppFile.js,代码写入:
  import JSONLD from './JSONLD.vue'<br /><br />export default ({ Vue, options }) => {<br />  Vue.component('JSONLD', JSONLD)<br />}<br />
  创建 JSONLD.vue,代码写入:
  <br /><br /><br />export default {<br /> created() {<br /> if (typeof this.$ssrContext !== "undefined") {<br /> this.$ssrContext.userHeadTags += <br /> `<br /> {<br /> "@context": "https://schema.org",<br /> "@type": "Article",<br /> "headline": "${this.$page.title}",<br /> "url": "${'https://yayujs.com' + this.$page.path}",<br /> "image": [<br /> "https://ts.yayujs.com/icon-144x144.png"<br /> ],<br /> "datePublished": "${this.$page.frontmatter.date && (new Date(this.$page.frontmatter.date)).toISOString()}",<br /> "dateModified": "${this.$page.lastUpdated && (new Date(this.$page.lastUpdated)).toISOString()}",<br /> "author": [{<br /> "@type": "Person",<br /> "name": "冴羽",<br /> "url": "https://github.com/mqyqingfeng/Blog"<br /> }]<br /> }<br /> `;<br /> }<br /> }<br />};<br /><br />
  这里之所以能够给所有的页面都注入脚本内容,是因为借助了 globalUIComponents[7]:
  你可能想注入某些全局的 UI,并固定在页面中的某处,如 back-to-top, popup。在 VuePress 中,一个全局 UI 就是一个 Vue 组件。
  config.js
  接下来我们修改 config.js:
  module.exports = {<br />    title: 'title',<br />    description: 'description',<br />    plugins: [<br />      require('./vuepress-plugin-jsonld')<br />    ]<br />}<br />
  注意我们在本地运行的时候并不能看到,我们可以关闭 deploy.sh 推送到远程的命令,然后本地编译一下,查一下输出的 HTML:
  
  验证
  发布到线上后,我们可以在 Google 提供的富媒体搜索测试[8]中进行验证,打开网址,输入页面地址,就可以看到抓取的结构化数据:
  
  如果有错误,这里也会展示警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 31篇。

VuePress 博客之 SEO 优化(四) Open Graph protoc

网站优化优采云 发表了文章 • 0 个评论 • 89 次浏览 • 2022-05-10 02:23 • 来自相关话题

  VuePress 博客之 SEO 优化(四) Open Graph protoc
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲讲 SEO 优化中的 Open Graph protocol。
  meta 标签
  如果我们打开思否任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 meta 标签:
  
  我们可以发现 name 都是以 og: 开头,这是什么意思呢,又是什么作用呢?
  其实这是 Facebook 提出的 Open Graph Protocol,官方地址:[4],用来标注页面类型和描述页面内容,从而方便在社交媒体中进行传播。
  简单的来说,按照这个协议描述页面信息,社交网站按就会按照页面上 og 标签的内容呈现给用户,由于使用广泛,目前也已经被搜索引擎支持,参照这个非常老的帖子[5]的内容:
  参与到 Open Graph Protocol 的好处:
  标记示例
  参照网站管理员分享指南[6],以下就是一个使用 OG 协议标记文章、新闻动态或博文:
  <br /><br /><br /><br /><br />
  这些属性包括我们在用户分享文章时具体想要呈现的与文章有关的描述性元数据。
  其中 og:type,表示内容的媒体类型。此标签会影响内容在动态中的显示方式。完整的类型参阅对象类型参考文档[7]。
  这里我选择的是 article 类型,查看 The Open Graph protocol[8],可以看到 article 类型下还有其他可以展示的属性:
  
  使用 OG 协议
  虽然我们可以借助 config.js 和 Front Matter 自定义每个页面的 og 属性,但我们也可以借助现有的插件比如 vuepress-plugin-seo[9] 来快速的实现
  1. 安装
  yarn add vuepress-plugin-seo@0.1.4 -D<br />
  注意,因为我们使用的是 vuepress 1.x,所以对应的插件应该使用 v0.1.4,如果是用的 2.x,就安装最新的版本即可。
  2. 使用
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      ['seo', {<br />        siteTitle: (_, $site) => 'TypeScript中文文档',<br />        title: $page => $page.title,<br />        description: $page => $page.frontmatter.description,<br />        author: (_, $site) => '冴羽',<br />        type: $page => 'article',<br />        url: (_, $site, path) => 'https://ts.yayujs.com' + path,<br />        image: ($page, $site) => "https://www.typescriptlang.org ... ot%3B,<br />        publishedAt: $page => $page.frontmatter.date && new Date($page.frontmatter.date),<br />        modifiedAt: $page => $page.lastUpdated && new Date($page.lastUpdated),<br />     }]<br />   ]<br />}<br />
  这里我根据自己的情况,自定义了一些属性的展示,要注意这里的 publishedAt,即发布时间,是需要借助 Front Matter 以 date 为名称,写在每个 md 文件中的:
  title: TypeScript中文文档_入门进阶必备<br />description: TypeScript 系列文章由官方文档翻译、重难点解析、实践技巧与总结三个部分组成,预计 40 篇左右。目前已完成了官方文档 Handbooks 的翻译,正在准备重难点解读部分。<br />date: 2021/11/11 06:06:06<br />
  3. 顺序问题
  在实际开发的过程中,如果你还用到了 @vuepress/last-updated 和 sitemap,建议按照这样的顺序:
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      [<br />        '@vuepress/last-updated',<br />        {<br />          transformer: (timestamp, lang) => {<br />            return new Date(timestamp).toLocaleDateString();<br />          }<br />        }<br />      ],<br />      [<br />        'sitemap',<br />        {<br />          hostname: 'https://ts.yayujs.com'<br />        }<br />      ],<br />      ['seo', {<br />        ...<br />     }]<br />   ]<br />}<br />
  否则 modifiedAt会展示不出来。
  4. 效果展示
  现在我们查看 DOM 元素,就会有 og 标签了,不仅如此,seo 这个插件还为我们写了 twitter 标签,至于这个标签,你可以理解为这是 twitter 推出的协议,与 og 一样,都是为了方便展示。
  
  5. 工具验证
  你可以使用 Facebook Object Debugger[10] 这个官方提供的工具进行验证:
  
  这个工具会展现在 Facebook 分享的效果,以及提供一些警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 30 篇。 查看全部

  VuePress 博客之 SEO 优化(四) Open Graph protoc
  前言
  在 《一篇带你用 VuePress + Github Pages 搭建博客》[1]中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档[2]。
  本篇讲讲 SEO 优化中的 Open Graph protocol。
  meta 标签
  如果我们打开思否任意一篇文章,比如这篇《VuePress 博客优化之增加 Vssue 评论功能》[3],查看 DOM 元素,我们可以在 head 中找到这样一段 meta 标签:
  
  我们可以发现 name 都是以 og: 开头,这是什么意思呢,又是什么作用呢?
  其实这是 Facebook 提出的 Open Graph Protocol,官方地址:[4],用来标注页面类型和描述页面内容,从而方便在社交媒体中进行传播。
  简单的来说,按照这个协议描述页面信息,社交网站按就会按照页面上 og 标签的内容呈现给用户,由于使用广泛,目前也已经被搜索引擎支持,参照这个非常老的帖子[5]的内容:
  参与到 Open Graph Protocol 的好处:
  标记示例
  参照网站管理员分享指南[6],以下就是一个使用 OG 协议标记文章、新闻动态或博文:
  <br /><br /><br /><br /><br />
  这些属性包括我们在用户分享文章时具体想要呈现的与文章有关的描述性元数据。
  其中 og:type,表示内容的媒体类型。此标签会影响内容在动态中的显示方式。完整的类型参阅对象类型参考文档[7]。
  这里我选择的是 article 类型,查看 The Open Graph protocol[8],可以看到 article 类型下还有其他可以展示的属性:
  
  使用 OG 协议
  虽然我们可以借助 config.js 和 Front Matter 自定义每个页面的 og 属性,但我们也可以借助现有的插件比如 vuepress-plugin-seo[9] 来快速的实现
  1. 安装
  yarn add vuepress-plugin-seo@0.1.4 -D<br />
  注意,因为我们使用的是 vuepress 1.x,所以对应的插件应该使用 v0.1.4,如果是用的 2.x,就安装最新的版本即可。
  2. 使用
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      ['seo', {<br />        siteTitle: (_, $site) => 'TypeScript中文文档',<br />        title: $page => $page.title,<br />        description: $page => $page.frontmatter.description,<br />        author: (_, $site) => '冴羽',<br />        type: $page => 'article',<br />        url: (_, $site, path) => 'https://ts.yayujs.com' + path,<br />        image: ($page, $site) => "https://www.typescriptlang.org ... ot%3B,<br />        publishedAt: $page => $page.frontmatter.date && new Date($page.frontmatter.date),<br />        modifiedAt: $page => $page.lastUpdated && new Date($page.lastUpdated),<br />     }]<br />   ]<br />}<br />
  这里我根据自己的情况,自定义了一些属性的展示,要注意这里的 publishedAt,即发布时间,是需要借助 Front Matter 以 date 为名称,写在每个 md 文件中的:
  title: TypeScript中文文档_入门进阶必备<br />description: TypeScript 系列文章由官方文档翻译、重难点解析、实践技巧与总结三个部分组成,预计 40 篇左右。目前已完成了官方文档 Handbooks 的翻译,正在准备重难点解读部分。<br />date: 2021/11/11 06:06:06<br />
  3. 顺序问题
  在实际开发的过程中,如果你还用到了 @vuepress/last-updated 和 sitemap,建议按照这样的顺序:
  // config.js<br /><br />module.exports = {<br />    title: 'title',<br />    description: 'description',<br />   plugins: [<br />      [<br />        '@vuepress/last-updated',<br />        {<br />          transformer: (timestamp, lang) => {<br />            return new Date(timestamp).toLocaleDateString();<br />          }<br />        }<br />      ],<br />      [<br />        'sitemap',<br />        {<br />          hostname: 'https://ts.yayujs.com'<br />        }<br />      ],<br />      ['seo', {<br />        ...<br />     }]<br />   ]<br />}<br />
  否则 modifiedAt会展示不出来。
  4. 效果展示
  现在我们查看 DOM 元素,就会有 og 标签了,不仅如此,seo 这个插件还为我们写了 twitter 标签,至于这个标签,你可以理解为这是 twitter 推出的协议,与 og 一样,都是为了方便展示。
  
  5. 工具验证
  你可以使用 Facebook Object Debugger[10] 这个官方提供的工具进行验证:
  
  这个工具会展现在 Facebook 分享的效果,以及提供一些警告。
  系列文章
  博客搭建系列,讲解如何使用 VuePress 搭建博客,并部署到 GitHub、Gitee、个人服务器等平台,预计 20 篇左右,本篇是第 30 篇。

个人博客 SEO 优化(2):站内优化

网站优化优采云 发表了文章 • 0 个评论 • 111 次浏览 • 2022-05-06 01:15 • 来自相关话题

  个人博客 SEO 优化(2):站内优化
  文章首发于我的博客:个人博客 SEO 优化(2):站内优化对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍
  SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:
  网站结构优化简单概括有下面几个要素:
  网站结构优化物理及链接结构
  物理结构指的就是网站真实目录及文件所在的位置决定的结构。一般来说,比较合理的两种物理结构是扁平式和树形结构。扁平式就是所有的页面都放在一级,一般来说,这种方式只适合页面数量少的网站。更多的都是采用树形结构的方式。比如利用 hexo 构建的博客就是采用树形结构:
  
  链接结构指的是网站内部页面的链接所形成的结构。链接结构通常也是树形结构:
  
  H 代表着网站首页。C1 和 C2 代表着网站的分类首页。P1~4 则是具体的每个页面。这只是演示的结构,实际的结构会比这个更加复杂。
  对于搜索引擎来说,链接结构会比物理结构来得更有意义。在上一篇 个人博客 SEO 优化(1):搜索引擎原理介绍 中有介绍到,与首页点击距离越近的页面被 spider 爬行的概率也大,即权重越高。这里的点击距离指的就是链接结构的距离。比如同样是属于第三层级的 P3 页面,由于被首页直接链接指向,它的首页点击距离比其他页面来得短,因此会有更高的权重。
  设置合理的网站的链接结构有利于页面权重的分配。
  清晰的导航
  清晰的导航系统是网站设计的重要目标。毕竟你肯定不想你的用户进入你的网站首页后,面对混乱的导航,难以找到想到的页面。对于搜索引擎的 spider 也是如此,混乱的导航会降低 spider 爬行概率。
  在设置网站导航应该注意下面几点:
  子域名和目录
  搜索引擎通常会把子域名当成独立的站点。而目录就是该域名名下的一部分。比如 只是 的一个子域名。 就是一个目录。
  因此对主域名所做的优化,对于子域名的网站而言,同样需要再做一遍。一般的网站和博客不需要子域名。只有大型的网站才会需要。
  禁止收录机制
  你如果你不想某些具体的页面不被收录,可以通过 robots 文件或者 Meta Robots 标签来指定,确保页面不会被搜索引擎收录。
  robots 文件
  该文件是搜索引擎爬行网站第一个访问的,用于告诉搜索引擎那些内容可以爬取,哪些内容禁止爬取。如果没有写规则或者没有 robots 文件的话,就是默认全部没有都可以爬取。
  但是由于有的网站服务器设置问题,如果不存在 robots.txt 文件的时候,会返回 200 状态码及一些错误信息。可能会导致 spider 错误解读信息。所以建议,至少也要放一个空的 robots.txt 文件在网站根目录下。
  robots 的格式如下:
  <p>User-agent: *
  Disallow: /</p>
  上面的文件代表禁止所有搜索引擎爬取所有内容。 User-agent:* 表示运行所有的搜索引擎。我们知道,不同的搜索引擎的 spider 名称也不同。在 User-agent 上你也可以设置名称,只允许特定的搜索引擎爬取。如 User-agent:Googlebot、 Disallow 不添加任何路径就表示运行爬取任何内容。需要注意的是:如果要 Disallow 多个文件夹或者文件,需要写成多行。每一行 Disallow 只能写一个。
  meta robots 标签
  通过 name="robots"content="noindex,nofollow"> 也可以设置禁止搜索引擎索引本页的内容,禁止跟踪本页的链接。其中 content 的参数有:
  每个参数中间需要已逗号隔开。
  nofollow
  格式如下:
  <p>nofollow</p>
  nofollow 标签是由 Google 领头创新的一个“反垃圾链接”的标签,并被市场上其他主流搜索引擎广泛支持。nofollow 是 a 标签的一个属性值。用于告诉搜索引擎不要追踪此链接,因为这个链接不是作者所信任的。这里的 nofollow 与上面说的 meta 标签上的 nofollow 区别在于:a 标签上的 nofollow 是指单个链接,而 meta 上的 nofollow 是指整个页面所有的链接。
  nofollow 通常用于博客评论、论坛帖子、社交网站、留言板等地方。因为这些地方的内容都是用户可以自由留下链接,站长并不知道这些链接是否可信。经过测试发现,你在 segmentfault 或者掘金发表文章时,文章的外部链接都会加上 rel="nofollow"。
  同时对于网站内部一些重复内容的页面或者是一些无需被收录的链接都可以加上该标签,可以防止网站权重浪费。比如像联系我们、隐私政策等页面,就可以使用 nofollow 标签了。
  URL 静态化
  我们都知道,对于动态页面对应 spider 爬取是不友好的。因此需要将 URL 静态化才能更好的让 spider 爬取。
  这点对于 hexo 博客来说不成问题。毕竟本身都是静态博客,所有的页面都是 HTML 页面。
  网址规范化问题
  网址规范指的是尽量使用唯一的 URL,而不要使用多个 URL。比如下面的 url 虽然访问都是同样的内容,但是搜索引擎会把他们当做不同的页面。
  复制内容
  复制内容也称重复内容,指的是多个 URL 的内容相同或者非常相似。复制内容既可能发生在同一网站内,也可能发生在不同网站上。
  如果一个网站的复制内容过多的话,会带来害处。一是有可能使搜索引擎对网站的质量产生怀疑,导致惩罚。另外一种情况就是,同一个站内的复制内容过多的话,会分散权重。
  那么该如何消除复制内容?
  网站地图
  无论站点的多少,网站地图都是需要的。网站地图有 HTML 和 XML 两种版本。
  HTML 版本的网站地图就是一个页面列出网站的结构。而 XML 版本则是通过在根目录添加 sitemap.xml文件。
  <p>  
      http://chenhuichao.com/2018/04 ... iple/
      2018-04-13T13:49:50.000Z
      monthly
      1
    </p>
  一个 XML 版本的网站地图是上面那样。其中的标签含义如下:
  priority 可选 页面权重
  除了 url 和 loc 是必须之外,其他的标签都为可选,只是主动告诉搜索引擎页面的一些信息,具体还是得根据搜索引擎自己的判断。
  制作好网站地图后,需要主动告诉搜索引擎。有两种方式:主动在站长工具提交 sitemap、robots.txt 文件指明位置
  比如 针对 Google 搜索引擎可以在 Google 网站站长 上提交。
  另外一种方式是在 robots.txt 文件中指出 sitemap.xml 的位置也能让搜索引擎知道网站地图的位置。
  <p>Sitemap: http://www.chenhuichao.com/sitemap.xml</p>
  内部链接及权限分配
  一个网站的首页权重是最高的,接着是二级分类页面,与我们前面提到的链接结构一样,也是成一个树结构。内部权限分配有几个原则:
  锚文字对于内部权限分配也是非常重要的一个手段。这方面 维基百科绝对是做得最好的。
  404 页面
  当访问的页面不存在时,需要一个专门的 404 页面。404 页面的设计需要注意几点:
  404 页面与外链的一个小技巧:
  由于搜索引擎并不会无缘无故得爬行一些不存在的原因的。肯定是有外部链接指向这些地址,比如别人的博客页面引用等,而原文可能你已经删除或者更换 url 了。所以我们可以通过 Google 网站站长工具发现我们网站存在的错误链接,将错误地址做 301 跳转到正确的页面或者直接在本来不存在的 URL 上新建一个页面,接收这些外部链接的权重。
  
  页面优化
  网址页面优化可以从下面几个角度进行:
  页面标题
  页面标题是页面优化最重要的因素。格式如下:
  <p>个人博客 SEO</p>
  在优化标题的时候需要注意:
  description 标签
  Description 标签用于说明网页的主体内容。格式如下:
  <p>H6 的重要性依次降低。
  所以建议在页面的 H1 和 H2 标签中混入关键词。
  图片 ALT 文字
  对于前端攻城狮而言,这是个常规操作了。毕竟图片都是需要添加 ALT 文字的,用于在图片不显示的情况下显示 ALT 文字。图片 ALT 文字出现的关键词对页面相关性也有一定的影响。同样的,也不要在 ALT 上堆砌关键词。
  内部链接及锚文字
  内部链接对于爬行和收录具有很重要的意义。内部链接对页面关键词相关性也有影响,最主要的就是在内部链接中使用锚文字。
  锚文字是告诉搜索引擎被链接页面主题内容的最重要依据之一。我们有时候可能无法控制外部链接的锚文字,但是对于站内的内部链接锚文字我们可以控制。不过有几点需要注意:
  导出链接及锚文字
  导出链接有可能会有两种情况:
  页面更新
  毋庸置疑,保持更新能提高排名。毕竟页面更新率也是吸引 spider 返回抓取的因素之一。
  通过上面的一些介绍,基本上把站内优化的基本要素覆盖了。虽然对于网站 SEO 而言,站外链接的优化意义要远远重要于站内优化,但是这并不意味着你不需要站内优化。只有把一些基本的站内优化细节做好,保持高质量的内容更新,才能吸引更多的用户。
  所以下一篇文章就要介绍如何针对 hexo 主题进行 SEO 改造。
   查看全部

  个人博客 SEO 优化(2):站内优化
  文章首发于我的博客:个人博客 SEO 优化(2):站内优化对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍
  SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:
  网站结构优化简单概括有下面几个要素:
  网站结构优化物理及链接结构
  物理结构指的就是网站真实目录及文件所在的位置决定的结构。一般来说,比较合理的两种物理结构是扁平式和树形结构。扁平式就是所有的页面都放在一级,一般来说,这种方式只适合页面数量少的网站。更多的都是采用树形结构的方式。比如利用 hexo 构建的博客就是采用树形结构:
  
  链接结构指的是网站内部页面的链接所形成的结构。链接结构通常也是树形结构:
  
  H 代表着网站首页。C1 和 C2 代表着网站的分类首页。P1~4 则是具体的每个页面。这只是演示的结构,实际的结构会比这个更加复杂。
  对于搜索引擎来说,链接结构会比物理结构来得更有意义。在上一篇 个人博客 SEO 优化(1):搜索引擎原理介绍 中有介绍到,与首页点击距离越近的页面被 spider 爬行的概率也大,即权重越高。这里的点击距离指的就是链接结构的距离。比如同样是属于第三层级的 P3 页面,由于被首页直接链接指向,它的首页点击距离比其他页面来得短,因此会有更高的权重。
  设置合理的网站的链接结构有利于页面权重的分配。
  清晰的导航
  清晰的导航系统是网站设计的重要目标。毕竟你肯定不想你的用户进入你的网站首页后,面对混乱的导航,难以找到想到的页面。对于搜索引擎的 spider 也是如此,混乱的导航会降低 spider 爬行概率。
  在设置网站导航应该注意下面几点:
  子域名和目录
  搜索引擎通常会把子域名当成独立的站点。而目录就是该域名名下的一部分。比如 只是 的一个子域名。 就是一个目录。
  因此对主域名所做的优化,对于子域名的网站而言,同样需要再做一遍。一般的网站和博客不需要子域名。只有大型的网站才会需要。
  禁止收录机制
  你如果你不想某些具体的页面不被收录,可以通过 robots 文件或者 Meta Robots 标签来指定,确保页面不会被搜索引擎收录。
  robots 文件
  该文件是搜索引擎爬行网站第一个访问的,用于告诉搜索引擎那些内容可以爬取,哪些内容禁止爬取。如果没有写规则或者没有 robots 文件的话,就是默认全部没有都可以爬取。
  但是由于有的网站服务器设置问题,如果不存在 robots.txt 文件的时候,会返回 200 状态码及一些错误信息。可能会导致 spider 错误解读信息。所以建议,至少也要放一个空的 robots.txt 文件在网站根目录下。
  robots 的格式如下:
  <p>User-agent: *
  Disallow: /</p>
  上面的文件代表禁止所有搜索引擎爬取所有内容。 User-agent:* 表示运行所有的搜索引擎。我们知道,不同的搜索引擎的 spider 名称也不同。在 User-agent 上你也可以设置名称,只允许特定的搜索引擎爬取。如 User-agent:Googlebot、 Disallow 不添加任何路径就表示运行爬取任何内容。需要注意的是:如果要 Disallow 多个文件夹或者文件,需要写成多行。每一行 Disallow 只能写一个。
  meta robots 标签
  通过 name="robots"content="noindex,nofollow"> 也可以设置禁止搜索引擎索引本页的内容,禁止跟踪本页的链接。其中 content 的参数有:
  每个参数中间需要已逗号隔开。
  nofollow
  格式如下:
  <p>nofollow</p>
  nofollow 标签是由 Google 领头创新的一个“反垃圾链接”的标签,并被市场上其他主流搜索引擎广泛支持。nofollow 是 a 标签的一个属性值。用于告诉搜索引擎不要追踪此链接,因为这个链接不是作者所信任的。这里的 nofollow 与上面说的 meta 标签上的 nofollow 区别在于:a 标签上的 nofollow 是指单个链接,而 meta 上的 nofollow 是指整个页面所有的链接。
  nofollow 通常用于博客评论、论坛帖子、社交网站、留言板等地方。因为这些地方的内容都是用户可以自由留下链接,站长并不知道这些链接是否可信。经过测试发现,你在 segmentfault 或者掘金发表文章时,文章的外部链接都会加上 rel="nofollow"。
  同时对于网站内部一些重复内容的页面或者是一些无需被收录的链接都可以加上该标签,可以防止网站权重浪费。比如像联系我们、隐私政策等页面,就可以使用 nofollow 标签了。
  URL 静态化
  我们都知道,对于动态页面对应 spider 爬取是不友好的。因此需要将 URL 静态化才能更好的让 spider 爬取。
  这点对于 hexo 博客来说不成问题。毕竟本身都是静态博客,所有的页面都是 HTML 页面。
  网址规范化问题
  网址规范指的是尽量使用唯一的 URL,而不要使用多个 URL。比如下面的 url 虽然访问都是同样的内容,但是搜索引擎会把他们当做不同的页面。
  复制内容
  复制内容也称重复内容,指的是多个 URL 的内容相同或者非常相似。复制内容既可能发生在同一网站内,也可能发生在不同网站上。
  如果一个网站的复制内容过多的话,会带来害处。一是有可能使搜索引擎对网站的质量产生怀疑,导致惩罚。另外一种情况就是,同一个站内的复制内容过多的话,会分散权重。
  那么该如何消除复制内容?
  网站地图
  无论站点的多少,网站地图都是需要的。网站地图有 HTML 和 XML 两种版本。
  HTML 版本的网站地图就是一个页面列出网站的结构。而 XML 版本则是通过在根目录添加 sitemap.xml文件。
  <p>  
      http://chenhuichao.com/2018/04 ... iple/
      2018-04-13T13:49:50.000Z
      monthly
      1
    </p>
  一个 XML 版本的网站地图是上面那样。其中的标签含义如下:
  priority 可选 页面权重
  除了 url 和 loc 是必须之外,其他的标签都为可选,只是主动告诉搜索引擎页面的一些信息,具体还是得根据搜索引擎自己的判断。
  制作好网站地图后,需要主动告诉搜索引擎。有两种方式:主动在站长工具提交 sitemap、robots.txt 文件指明位置
  比如 针对 Google 搜索引擎可以在 Google 网站站长 上提交。
  另外一种方式是在 robots.txt 文件中指出 sitemap.xml 的位置也能让搜索引擎知道网站地图的位置。
  <p>Sitemap: http://www.chenhuichao.com/sitemap.xml</p>
  内部链接及权限分配
  一个网站的首页权重是最高的,接着是二级分类页面,与我们前面提到的链接结构一样,也是成一个树结构。内部权限分配有几个原则:
  锚文字对于内部权限分配也是非常重要的一个手段。这方面 维基百科绝对是做得最好的。
  404 页面
  当访问的页面不存在时,需要一个专门的 404 页面。404 页面的设计需要注意几点:
  404 页面与外链的一个小技巧:
  由于搜索引擎并不会无缘无故得爬行一些不存在的原因的。肯定是有外部链接指向这些地址,比如别人的博客页面引用等,而原文可能你已经删除或者更换 url 了。所以我们可以通过 Google 网站站长工具发现我们网站存在的错误链接,将错误地址做 301 跳转到正确的页面或者直接在本来不存在的 URL 上新建一个页面,接收这些外部链接的权重。
  
  页面优化
  网址页面优化可以从下面几个角度进行:
  页面标题
  页面标题是页面优化最重要的因素。格式如下:
  <p>个人博客 SEO</p>
  在优化标题的时候需要注意:
  description 标签
  Description 标签用于说明网页的主体内容。格式如下:
  <p>H6 的重要性依次降低。
  所以建议在页面的 H1 和 H2 标签中混入关键词。
  图片 ALT 文字
  对于前端攻城狮而言,这是个常规操作了。毕竟图片都是需要添加 ALT 文字的,用于在图片不显示的情况下显示 ALT 文字。图片 ALT 文字出现的关键词对页面相关性也有一定的影响。同样的,也不要在 ALT 上堆砌关键词。
  内部链接及锚文字
  内部链接对于爬行和收录具有很重要的意义。内部链接对页面关键词相关性也有影响,最主要的就是在内部链接中使用锚文字。
  锚文字是告诉搜索引擎被链接页面主题内容的最重要依据之一。我们有时候可能无法控制外部链接的锚文字,但是对于站内的内部链接锚文字我们可以控制。不过有几点需要注意:
  导出链接及锚文字
  导出链接有可能会有两种情况:
  页面更新
  毋庸置疑,保持更新能提高排名。毕竟页面更新率也是吸引 spider 返回抓取的因素之一。
  通过上面的一些介绍,基本上把站内优化的基本要素覆盖了。虽然对于网站 SEO 而言,站外链接的优化意义要远远重要于站内优化,但是这并不意味着你不需要站内优化。只有把一些基本的站内优化细节做好,保持高质量的内容更新,才能吸引更多的用户。
  所以下一篇文章就要介绍如何针对 hexo 主题进行 SEO 改造。
  

图片alt标签是什么?如何优化Alt标签

网站优化优采云 发表了文章 • 0 个评论 • 270 次浏览 • 2022-05-03 23:44 • 来自相关话题

  图片alt标签是什么?如何优化Alt标签
  今天要跟大家聊聊图片中alt属性,不要小看这个图片的alt属性,谷歌对于这个属性还是很器重的,对于提升网站排名也有一定作用,不然谷歌也不会花好几篇文章去说明alt属性,这篇文章把谷歌官方的几篇文章提取出来,来说说图片alt属性以及如何优化。
  什么是Alt属性?我们在做这件事之前,首先需要明白为什么做这件事,Alt属性最重要的功能就是在图片无法显示,作为替代说明文字,比如在网络不好的时候,图片加载比较慢,首先浏览器就会使用alt属性内的文本作为占位标记显示在网页上,让读者有个大体的概念,这个图片表达的内容含义是什么。Alt属性的作用Alt属性不同Title属性和其他说明性属性,这个属性是图片所特有的属性,在其他Html标签上是用不到Alt属性的,所以这个属性有两点很重要的作用:第一点前面已经说过了,就是在图片无法加载的时候,作为图片辅助说明性文字,第二点是最重要的一点,因为做好Alt优化,能够提升网站排名,获得更多流量,虽然各大搜索引擎在积极发展图片识别技术,但是还是无法做到像人类一样准确理解图片的意思,这时候我们就需要使用Alt属性,帮助搜索引擎理解图片,写好Alt属性文本内容,就像写好文章Title一样,能够带来更多的关键词排名,各大搜索引擎都有图片搜索的功能,那些图片就是搜索引擎建立索引,并给予排名的,可以看到那些图片都是有相关信息描述的
  
  怎么写好Alt属性
  下面简单举个例子,来说明下什么样的Alt文本内容,才是符合SEO要求;首先来看看最简单的Logo图片标签:
  seozen-logo.jpg
  LOGO的图片属性,可以看到图片文件名是有意义的名称,不是随机的字母或者数字,这是第一个要注意的地方,上传图片之前,要尽量重命名图片,让他语义话,之后Alt属性内部,是英文描述的图片功能,表达的是这个图片是LOGO,如果是国内不做谷歌排名的朋友,这里用中文就好,Alt标签一般使用的是英文描述,这是比较好的方式,一般的方式是把图片语义化后的文件名,去掉后缀放到Alt属性里面,这样也是可以的,但是肯定没有功能描述的好。下面在优化Alt属性的时候,有几点需要注意: 查看全部

  图片alt标签是什么?如何优化Alt标签
  今天要跟大家聊聊图片中alt属性,不要小看这个图片的alt属性,谷歌对于这个属性还是很器重的,对于提升网站排名也有一定作用,不然谷歌也不会花好几篇文章去说明alt属性,这篇文章把谷歌官方的几篇文章提取出来,来说说图片alt属性以及如何优化。
  什么是Alt属性?我们在做这件事之前,首先需要明白为什么做这件事,Alt属性最重要的功能就是在图片无法显示,作为替代说明文字,比如在网络不好的时候,图片加载比较慢,首先浏览器就会使用alt属性内的文本作为占位标记显示在网页上,让读者有个大体的概念,这个图片表达的内容含义是什么。Alt属性的作用Alt属性不同Title属性和其他说明性属性,这个属性是图片所特有的属性,在其他Html标签上是用不到Alt属性的,所以这个属性有两点很重要的作用:第一点前面已经说过了,就是在图片无法加载的时候,作为图片辅助说明性文字,第二点是最重要的一点,因为做好Alt优化,能够提升网站排名,获得更多流量,虽然各大搜索引擎在积极发展图片识别技术,但是还是无法做到像人类一样准确理解图片的意思,这时候我们就需要使用Alt属性,帮助搜索引擎理解图片,写好Alt属性文本内容,就像写好文章Title一样,能够带来更多的关键词排名,各大搜索引擎都有图片搜索的功能,那些图片就是搜索引擎建立索引,并给予排名的,可以看到那些图片都是有相关信息描述的
  
  怎么写好Alt属性
  下面简单举个例子,来说明下什么样的Alt文本内容,才是符合SEO要求;首先来看看最简单的Logo图片标签:
  seozen-logo.jpg
  LOGO的图片属性,可以看到图片文件名是有意义的名称,不是随机的字母或者数字,这是第一个要注意的地方,上传图片之前,要尽量重命名图片,让他语义话,之后Alt属性内部,是英文描述的图片功能,表达的是这个图片是LOGO,如果是国内不做谷歌排名的朋友,这里用中文就好,Alt标签一般使用的是英文描述,这是比较好的方式,一般的方式是把图片语义化后的文件名,去掉后缀放到Alt属性里面,这样也是可以的,但是肯定没有功能描述的好。下面在优化Alt属性的时候,有几点需要注意:

怎么做网站优化呢(做网站优化的6个建议)

网站优化优采云 发表了文章 • 0 个评论 • 93 次浏览 • 2022-05-02 04:05 • 来自相关话题

  怎么做网站优化呢(做网站优化的6个建议)
  
  
  怎么样做网站优化?网站优化就是对网页的程序、内容、版块、布局等多方面的优化调整,使其适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得的排名提升,增强搜索引擎营销的效果。除了网站安全维护和内容更新外,网站优化还必须要掌握许多的技巧和思路。
  1.百度搜索长尾词
  我们搜索某一个关键词的时候,你会发现搜索词汇后百度会给出相对应的长尾词或者扩展词汇,比如:网站建设,会出现网站建设公司,我们在搜索这类词汇的时候又可以进行扩展,如许可更新的内容话题就有了。
  2.百度相关搜索
  在做网站优化的时候,要重新思考一下自身网站的定位是什么,针对的用户是什么样的,要像用户显示什么样的内容,网站的结构和栏目又是什么样的,这些问题都要重新思考好,以免日后需要经常改动,网站的定位就像一个大纲一样,只有确定好大纲后面的进一步优化才有可能。
  
  3.百度百科
  我们搜索某个词汇的时候,一样平常首页最前面的都是该词汇百度百科的介绍,介绍甚至会分为多个点进行,比如搜索:SEO优化,会包括:特性特点,优化内容,优化步骤等等,这些小的点都可以针对性的做为一篇网站内容更新的话题去写作。
  4.词库等关键词分析网站
  还有一种网站是用来专门分析某些关键词相干长尾词的,比如:词库。我们随便搜索一个关键词都可以查询到跟这个词汇有关系的一些有指数的相干内容,通过这种体例也可以找寻到许多跟自身网站主题相干的话题内容进行编辑写作。
  5.统计工具分析的长尾词
  搜索引擎比较喜欢新颖的内容,同时用户在浏览网站的时候也比较喜欢新颖的内容,所以,在写文章的时候,尽量要写原创文章,这样可以避免在搜索引擎中出现大量重复内容,同时有利于网站在搜索引擎中的评级。
  
  6、日常网站外部链接建设
  网站推广人员除了做日常的网站内容更新以外,还必要适当的给网站做一些外部链接建设,以便进步网站权重,外部链接建设可以通过:软文投稿,博客留链接,以及论坛发帖留外链,等体例进行,每天发布的外链根据网站的当前情况和人力情况来决定,网站假如刚上线,内容更新维护又做了一些,那么这个时候就可以去做外部链接建设了,日均做个20-30条即可。
  以上就是我们对怎么样做网站优化的一些建议,内容的好坏与更新频率对网站优化效果和搜索引擎排名的影响非常之大,企业在日常运维中应该给予足够的重视。
   查看全部

  怎么做网站优化呢(做网站优化的6个建议)
  
  
  怎么样做网站优化?网站优化就是对网页的程序、内容、版块、布局等多方面的优化调整,使其适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得的排名提升,增强搜索引擎营销的效果。除了网站安全维护和内容更新外,网站优化还必须要掌握许多的技巧和思路。
  1.百度搜索长尾词
  我们搜索某一个关键词的时候,你会发现搜索词汇后百度会给出相对应的长尾词或者扩展词汇,比如:网站建设,会出现网站建设公司,我们在搜索这类词汇的时候又可以进行扩展,如许可更新的内容话题就有了。
  2.百度相关搜索
  在做网站优化的时候,要重新思考一下自身网站的定位是什么,针对的用户是什么样的,要像用户显示什么样的内容,网站的结构和栏目又是什么样的,这些问题都要重新思考好,以免日后需要经常改动,网站的定位就像一个大纲一样,只有确定好大纲后面的进一步优化才有可能。
  
  3.百度百科
  我们搜索某个词汇的时候,一样平常首页最前面的都是该词汇百度百科的介绍,介绍甚至会分为多个点进行,比如搜索:SEO优化,会包括:特性特点,优化内容,优化步骤等等,这些小的点都可以针对性的做为一篇网站内容更新的话题去写作。
  4.词库等关键词分析网站
  还有一种网站是用来专门分析某些关键词相干长尾词的,比如:词库。我们随便搜索一个关键词都可以查询到跟这个词汇有关系的一些有指数的相干内容,通过这种体例也可以找寻到许多跟自身网站主题相干的话题内容进行编辑写作。
  5.统计工具分析的长尾词
  搜索引擎比较喜欢新颖的内容,同时用户在浏览网站的时候也比较喜欢新颖的内容,所以,在写文章的时候,尽量要写原创文章,这样可以避免在搜索引擎中出现大量重复内容,同时有利于网站在搜索引擎中的评级。
  
  6、日常网站外部链接建设
  网站推广人员除了做日常的网站内容更新以外,还必要适当的给网站做一些外部链接建设,以便进步网站权重,外部链接建设可以通过:软文投稿,博客留链接,以及论坛发帖留外链,等体例进行,每天发布的外链根据网站的当前情况和人力情况来决定,网站假如刚上线,内容更新维护又做了一些,那么这个时候就可以去做外部链接建设了,日均做个20-30条即可。
  以上就是我们对怎么样做网站优化的一些建议,内容的好坏与更新频率对网站优化效果和搜索引擎排名的影响非常之大,企业在日常运维中应该给予足够的重视。
  

大佬们都在使用的博客,你不来看看?

网站优化优采云 发表了文章 • 0 个评论 • 96 次浏览 • 2022-04-30 13:19 • 来自相关话题

  大佬们都在使用的博客,你不来看看?
  
  哈喽,大家好,我是指北君。
  最近我准备搭建一个自己的个人博客,在网上也找个许多开源的博客,经过多项对比,最终选择了WordPress,WordPress有着非常强大的功能,堪称是最完美的建站程序。
  一、WordPress的优点
  WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;
  
  WordPress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;
  
  适合DIY,如果你是喜欢丰富内容的网站,那么WordPress可以很好地符合你的胃口。
  主题很多,网站上有许多WordPress的主题,各色各样,应有尽有!
  
  WordPress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。
  
  WordPress有强大的社区支持,有上千万的开发者贡献和审查WordPress,所以WordPress是安全并且活跃的。
  二、功能介绍
  因为WordPress强大的扩展性,很多网站已经开始使用WordPress作为内容管理系统来架设商业网站。WordPress提供的功能包括:
  文章发布、分类、归档、收藏,统计阅读次数。
  提供文章、评论、分类等多种形式的RSS聚合。
  提供链接的添加、归类功能。
  支持评论的管理,垃圾信息过滤功能。
  支持多样式CSS和PHP程序的直接编辑、修改。
  在Blog系统外,方便添加所需页面。
  通过对各种参数进行设置,使Blog更具个性化。
  在某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。
  通过选择不同主题,方便地改变页面的显示效果。
  通过添加插件,可提供多种特殊的功能。
  支持针对某些其它blog软件、平台的导入功能。
  支持会员注册登录,后台管理功能。
  三、特色
  所见即所得的文章编辑器。
  模板系统,也成为主题系统。
  统一的链接管理功能。
  为搜索引擎而优化的永久链接(PermaLink)系统。
  支持使用扩充其功能的插件。
  对于文章可以进行嵌套的分类,同一文章也可属于多个分类。
  TrackBack和Pingback的功能。
  能产生适当的文字的格式和式样的排版滤镜。
  生成和使用静态页面的功能。
  多作者共同写作的功能。
  可以保存访问过网站的用户列表。
  可以禁止来自一定IP段的用户的访问。
  支持使用标签(Tags)。
  四、安装使用
  推荐使用容器化安装 (需要MYSQL5.6+或者MariaDB版本10.1+以上数据库)
  docker run \<br />--name wordpress-apache \<br />-v /home/wp/html:/var/www/html \<br />-p 80:80 \<br />-d wordpress:5.8.3-php8.0-apache\<br /><br />#下面为介绍<br />docker run \#启动容器<br />--name wordpress-apache \ #指定容器的名字<br />-v /home/wp/html:/var/www/html \ # 挂载的路径<br />-p 80:80 \ #端口映射<br />-d wordpress:5.8.3-php8.0-apache\ # 镜像的名字<br />
  
  #查看是否启动<br />docker ps<br />#进入容器:<br />docker exec -it wordpress-apache /bin/bash<br />
  
  启动后,使用:端口/wp-admin/install.php,进行著名的五分钟安装。
  
  按照要求进行填写信息便可完成安装,安装完成后便可以登录后台开始你的创作了,更多的功能需要你一步步探索了。
  
  五、指北君有话说
  指北君个人也是一直使用的WordPress,平常写写个人想法、技术文章、进行个人总结、分享。生活中我们也应该经常进行总结。
  开源指北,立志做最好的开源分享平台,分享有趣实用的开源项目。欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。还有简历模板、各种技术面试资料等100G的资源等着你领取哦。公众号回复888马上加入,快来一起来聊一聊吧! 查看全部

  大佬们都在使用的博客,你不来看看?
  
  哈喽,大家好,我是指北君。
  最近我准备搭建一个自己的个人博客,在网上也找个许多开源的博客,经过多项对比,最终选择了WordPress,WordPress有着非常强大的功能,堪称是最完美的建站程序。
  一、WordPress的优点
  WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;
  
  WordPress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;
  
  适合DIY,如果你是喜欢丰富内容的网站,那么WordPress可以很好地符合你的胃口。
  主题很多,网站上有许多WordPress的主题,各色各样,应有尽有!
  
  WordPress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。
  
  WordPress有强大的社区支持,有上千万的开发者贡献和审查WordPress,所以WordPress是安全并且活跃的。
  二、功能介绍
  因为WordPress强大的扩展性,很多网站已经开始使用WordPress作为内容管理系统来架设商业网站。WordPress提供的功能包括:
  文章发布、分类、归档、收藏,统计阅读次数。
  提供文章、评论、分类等多种形式的RSS聚合。
  提供链接的添加、归类功能。
  支持评论的管理,垃圾信息过滤功能。
  支持多样式CSS和PHP程序的直接编辑、修改。
  在Blog系统外,方便添加所需页面。
  通过对各种参数进行设置,使Blog更具个性化。
  在某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。
  通过选择不同主题,方便地改变页面的显示效果。
  通过添加插件,可提供多种特殊的功能。
  支持针对某些其它blog软件、平台的导入功能。
  支持会员注册登录,后台管理功能。
  三、特色
  所见即所得的文章编辑器。
  模板系统,也成为主题系统。
  统一的链接管理功能。
  为搜索引擎而优化的永久链接(PermaLink)系统。
  支持使用扩充其功能的插件。
  对于文章可以进行嵌套的分类,同一文章也可属于多个分类。
  TrackBack和Pingback的功能。
  能产生适当的文字的格式和式样的排版滤镜。
  生成和使用静态页面的功能。
  多作者共同写作的功能。
  可以保存访问过网站的用户列表。
  可以禁止来自一定IP段的用户的访问。
  支持使用标签(Tags)。
  四、安装使用
  推荐使用容器化安装 (需要MYSQL5.6+或者MariaDB版本10.1+以上数据库)
  docker run \<br />--name wordpress-apache \<br />-v /home/wp/html:/var/www/html \<br />-p 80:80 \<br />-d wordpress:5.8.3-php8.0-apache\<br /><br />#下面为介绍<br />docker run \#启动容器<br />--name wordpress-apache \ #指定容器的名字<br />-v /home/wp/html:/var/www/html \ # 挂载的路径<br />-p 80:80 \ #端口映射<br />-d wordpress:5.8.3-php8.0-apache\ # 镜像的名字<br />
  
  #查看是否启动<br />docker ps<br />#进入容器:<br />docker exec -it wordpress-apache /bin/bash<br />
  
  启动后,使用:端口/wp-admin/install.php,进行著名的五分钟安装。
  
  按照要求进行填写信息便可完成安装,安装完成后便可以登录后台开始你的创作了,更多的功能需要你一步步探索了。
  
  五、指北君有话说
  指北君个人也是一直使用的WordPress,平常写写个人想法、技术文章、进行个人总结、分享。生活中我们也应该经常进行总结。
  开源指北,立志做最好的开源分享平台,分享有趣实用的开源项目。欢迎加入交流群,你可以摸鱼、划水、吐槽、咨询。还有简历模板、各种技术面试资料等100G的资源等着你领取哦。公众号回复888马上加入,快来一起来聊一聊吧!

博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)

网站优化优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2022-04-20 11:28 • 来自相关话题

  博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)
  如何将搜索引擎前三名网站优化为最佳网站排名,实际上意味着我们在搜索引擎的有效搜索点击中产生网站生成关键词。根据百度的点击算法,作者将有效排名定义为搜索引擎排名前20。
  不过我今天要分享的SEO网站优化经验不限于前20,而是最好的排名,也就是前三名的搜索引擎,让更多的用户点击获得更多自然流量。
  这里又要重复老话题了,绿萝卜算法的链接拦截规则,它告诉SEOer有很多不自然的链接,追求数量而不关心质量的链接注定会被“抛弃”搜索引擎。将网站的基础优化到极致,从而保证网站的质量。
  首先,站点中的链接路径是完整的——创建一个面包屑路径
  面包屑路是中国尚品一直强调的面包屑导航。我们知道,面包屑导航是一种扁平的树状结构展示,可以明确用户浏览页面在整个网站中的位置,提升用户体验。同时,面包屑导航其实是网站的内部链接,其基本点还是在网站的首页,相对集中了首页的权重。但是,在网站中,链接点通常是超链接的形式,实际上是把链接的词当成关键词,但是像homepage这样的词出现在关键词搜索中确实没有'没有意义,所以我们可以将主页更改为 网站关键词,这将提高 关键词 参与度排名。
  二、为内容划分权重,细化决策——标签优化和快速排名
  更新网站内容信息时,一般是直接发帖。值得注意的是,以关键字超链接的形式建立内部链接来推荐内容。然而,这只是一个版本。事实上,我们可以在更新内容时使用标签来提炼基本信息。最常用的页面元素是 h 标签、标题、alt 和 nofollow。内容发帖可以使用文章中的H1标签或者title标签来确定页面的主题,可以提升网站的参与度排名。这里需要强调一下,H1标签在一个页面中只能使用一次,而H2标签可以多次使用。
  搜索引擎和用户喜欢有图有真相的内容信息,所以在写文章的时候尽量加图,把文章做成图文的形式。对于文章中的图片,我们可以使用alt来添加图片属性,最好是图片的大小。但是在添加alt图片属性的时候,要注意图片的描述,而不是简单的关键词展示。
  为了保持权重集中,我们经常使用nofollow标签,这在页面中非常重要。添加了nofollow标签的页面的内容信息仍然会被收录,但不会参与页面排名,权重会集中,阻止搜索引擎再次点击链接。对于企业网站,我们可以在不需要参与排名的栏目中添加nofollow标签,比如“联系我们”,这样就可以“修复”网站首页相对集中的权重。
  三、选择站点中的信息,并减少和简化——聪明的使用JS没有那么死板
  过多的模板词会影响 网站 上的搜索引擎得分。当模板词频繁出现在开头、结尾和左边时,会给搜索引擎一种“无聊”的感觉,因此在判断页面质量时会被扣分。因此,网站 中的无用信息越少越好。对于必须出现的信息词,我们应该尽量让搜索引擎主观地忽略它。也许你会想,有没有这样的方法!其实很简单,就是可以被搜索引擎抓取不到的JS代码调用。以目前搜索引擎的能力,爬取JS代码程序是不可能的,所以SEO可以把握住这一点,将必要的模板文字以JS调用的形式放在网页的网站中,这样既不会影响页面设计,不会被搜索引擎抓到,一石二鸟。 查看全部

  博客搜索引擎优化(搜索引擎前三名的网站是如何优化的做最好的的)
  如何将搜索引擎前三名网站优化为最佳网站排名,实际上意味着我们在搜索引擎的有效搜索点击中产生网站生成关键词。根据百度的点击算法,作者将有效排名定义为搜索引擎排名前20。
  不过我今天要分享的SEO网站优化经验不限于前20,而是最好的排名,也就是前三名的搜索引擎,让更多的用户点击获得更多自然流量。
  这里又要重复老话题了,绿萝卜算法的链接拦截规则,它告诉SEOer有很多不自然的链接,追求数量而不关心质量的链接注定会被“抛弃”搜索引擎。将网站的基础优化到极致,从而保证网站的质量。
  首先,站点中的链接路径是完整的——创建一个面包屑路径
  面包屑路是中国尚品一直强调的面包屑导航。我们知道,面包屑导航是一种扁平的树状结构展示,可以明确用户浏览页面在整个网站中的位置,提升用户体验。同时,面包屑导航其实是网站的内部链接,其基本点还是在网站的首页,相对集中了首页的权重。但是,在网站中,链接点通常是超链接的形式,实际上是把链接的词当成关键词,但是像homepage这样的词出现在关键词搜索中确实没有'没有意义,所以我们可以将主页更改为 网站关键词,这将提高 关键词 参与度排名。
  二、为内容划分权重,细化决策——标签优化和快速排名
  更新网站内容信息时,一般是直接发帖。值得注意的是,以关键字超链接的形式建立内部链接来推荐内容。然而,这只是一个版本。事实上,我们可以在更新内容时使用标签来提炼基本信息。最常用的页面元素是 h 标签、标题、alt 和 nofollow。内容发帖可以使用文章中的H1标签或者title标签来确定页面的主题,可以提升网站的参与度排名。这里需要强调一下,H1标签在一个页面中只能使用一次,而H2标签可以多次使用。
  搜索引擎和用户喜欢有图有真相的内容信息,所以在写文章的时候尽量加图,把文章做成图文的形式。对于文章中的图片,我们可以使用alt来添加图片属性,最好是图片的大小。但是在添加alt图片属性的时候,要注意图片的描述,而不是简单的关键词展示。
  为了保持权重集中,我们经常使用nofollow标签,这在页面中非常重要。添加了nofollow标签的页面的内容信息仍然会被收录,但不会参与页面排名,权重会集中,阻止搜索引擎再次点击链接。对于企业网站,我们可以在不需要参与排名的栏目中添加nofollow标签,比如“联系我们”,这样就可以“修复”网站首页相对集中的权重。
  三、选择站点中的信息,并减少和简化——聪明的使用JS没有那么死板
  过多的模板词会影响 网站 上的搜索引擎得分。当模板词频繁出现在开头、结尾和左边时,会给搜索引擎一种“无聊”的感觉,因此在判断页面质量时会被扣分。因此,网站 中的无用信息越少越好。对于必须出现的信息词,我们应该尽量让搜索引擎主观地忽略它。也许你会想,有没有这样的方法!其实很简单,就是可以被搜索引擎抓取不到的JS代码调用。以目前搜索引擎的能力,爬取JS代码程序是不可能的,所以SEO可以把握住这一点,将必要的模板文字以JS调用的形式放在网页的网站中,这样既不会影响页面设计,不会被搜索引擎抓到,一石二鸟。

官方客服QQ群

微信人工客服

QQ人工客服


线