辛苦搭建的网站为什么搜不到,原因找到了...

 
 
大厂技术  高级前端  Node进阶
点击上方 程序员成长指北,关注公众号
回复1,加入高级Node交流群

前言

以前开发独立站,涉及过一些SEO的内容,为了避免后面会遗忘,感觉有必要记录下相关经验,也算是一次总结吧!

SEO概念

SEO 是 Search Engine Optimizatio(搜索引擎优化) 的首字母缩写,利用搜索引擎的规则对网站进行内部及外部的调整优化,提高网页或网站在搜索引擎中关键词的自然排名, 以求得获得更多的展现量和吸引免费的点击流量,从而达到互联网营销及品牌建设的目标。

SEO的方式

1. Title标签

对页面点击率有直接影响,因为这是用户对网站页面的第一印象,而且也是爬虫重点的爬取对象,填写的文字要对网页内容有准确而简洁的描述,能够吸引用户点击,而且长度要适中。

2. Meta标签

meta标签共有两个属性,分别是http-equiv属性和name属性,不同的属性又有不同的参数值,另外还有主要作用于社交平台的OG标签。

(1) name属性
  • Meta Keywords: Meta Keywords是排名的重要组成部分,因为早期的搜索引擎机器人使用该值对网站进行分类,但在后来逐渐被放弃了。

(1) Google 在2009年正式宣布[1],keyword标签不再是排名的一部分。

(2) 在百度站长论坛上官方曾表示这个标签目前对SEO的影响可以忽略不计。

<meta name ="keywords" content="这是keywords的内容">
  • description: 告诉搜索引擎你的网站主要内容

<meta name ="description" content="这是description的内容">
  • robots: 告诉搜索机器人哪些页面需要索引,哪些页面不需要索引

<meta name ="robots" content="none">
  • author: 标注网页的作者

<meta name="author" content="广白,掘金">
(2)http-equiv属性
  • Expires: 可以用于设定网页的到期时间,一旦网页过期,必须到服务器上重新传输

<!-- 必须使用GMT的时间格式 -->
<meta http-equiv="expires" content="Fri, 12 Jan 2001 18:18:18 GMT">
  • Pragma: 禁止浏览器从本地计算机的缓存中访问页面内容

<!--  -->
<meta http-equiv="Pragma" content="no-cache">
  • Refresh: 自动刷新并指向新页面

<!-- 其中的2是指停留2秒钟后自动刷新到URL网址 -->
<meta http-equiv="Refresh" content="2;URL=http://www.juejin.com">
  • Set-Cookie: 如果网页过期,那么存盘的cookie将被删除

<!-- 必须使用GMT的时间格式 -->
<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday, 10-Nov-2023 18:18:18 GMT;path=/">
  • Window-target: 强制页面在当前窗口以独立页面显

<!-- 用来防止别人在框架里调用自己的页面 -->
<meta http-equiv="Window-target" content="_top">
  • content-Type: 设定页面使用的字符集

<!-- 设定页面使用的字符集 -->
<meta http-equiv="content-Type" content="text/html; charset=gb2312">
(3) OG标签

它是 Facebook 在 2010 年 F8 开发者大会公布的一种网页元信息(Meta Information)标记协议,属于 Meta Tag (Meta 标签)的范畴,是一种为社交分享而生的 Meta 标签。为了让信息内容加速流动和准确呈现,Facebook 早年极力推动这个协议,到目前几乎主流的社交媒体网站都支持 OG 协议。包括 Twitter、Pinterest、LinkedIn 和 Google+ 都可以识别 OG 协议。虽然 Twitter 也有自家的 Twitter Cards 协议,但是 Twitter 只要发现网页上没有使用自家的协议,就会用 OG 协议代替。国内的百度、360 搜索、微博、微信、人人网等也支持该协议。

  • 使用方法

<html prefix="og: https://ogp.me/ns#">
<head>
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="https://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="https://ia.media-imdb.com/images/rock.jpg" />
...
</head>
...
</html>
  • 作用:

OG在社交媒体上具有丰富的内容展示,比如分享一个网址链接在社交平台后,这个链接会显示缩略图、标题和描述等,增加访客点进来的概率,左图加了OG标签,右图没有

c9fdec53df440924fdf4975a21c13bf7.jpeg
image.png

图片参考自:zhuanlan.zhihu.com/p/36072541[2] , 文章对OG介绍的也挺好

标签属性可以看官网:ogp.me/[3]

3. 语义化标签
H系列标签

从H1到H6(重要性从高到低)一共有6个,而且在页面中的作用性极高,所以不能乱用,得根据内容的重要性进行排列,最后不要有断层,比如从H1直接到H3,错过了H2;另外,H1标签最好只存在一个,更多细节可以网上搜下。

img标签

img的alt属性,为搜索引擎提供替代文本,图片使用alt标签优化,对搜索引擎排名产生积极影响;另外,网速不佳等原因造成无法加载图片文件时,将在图片的位置显示alt里的文字

其他

还有HTML5新出的 Header, Nav,Aside,Article,Footer等语义化标签,这些都能帮助爬虫更好的获取页面内容

4. sitemap(站点地图)

站点地图一般是xml格式的文件,放在网站的根目录下,有些网站甚至可以通过 网址/sitemap.xml 直接访问到(手动狗头),文件里包含了每个网页的链接(loc),更新时间(lastmod),权重(priority)等信息,权重从0到1,依次递增,一般主页设为1,然后其他按重要性递减,拿掘金

6b77cdee15bbba3b13fbb399bcfbbc88.jpeg
005387F8.jpg
390c3d3f90be8de60893f22bbcaf004e.jpeg
image.png

搜索引擎可以通过查看站点地图快速获取网站的整体结构,并将精力集中在重要页面的索引上,这对于提高搜索引擎的爬行效率和索引速度非常有帮助。

5. robots文件

robots.txt,是一个给爬虫下指令的文本文件,能让其合理地抓取网站内资源,而且可以将网站不重要的内容、模块等进行屏蔽,从而抓取更多有价值高质量的内容和网页,提高网站排名。大多数网站都可以通过网址/robots.txt进行获取, 还是拿掘金来举例:

197647cbd7de17d2e88a3154642e66a6.jpeg
image.png
  • User-agent: 后面填你要针对的搜索引擎,*代表全部搜索引擎

  • Disallow: 后面填你要禁止抓取的网站内容和文件夹,/做前缀

  • Allow: 后面填你允许抓取的网站内容,文件夹和链接,/做前缀

  • Crawl-delay: 后面填数字,意思是抓取延迟,小网站不建议使用

  • Sitemap: 站点地图的存放位置

6. 内链和外链
内链

在自己的网站当中通过链接的方式在各个内容页面之间相互链接,从而提高爬虫以及一些搜索引擎对于网站的爬行索引效率;另外,为了避免内链起到反作用,在进行网站待更新的时候,一定要注意定期清理死链和断链,方便爬虫可以顺着链接进行收录爬行,达到更好的收录效果。

外链

通过在其他一些高流量的网站放置自己的链接,相较于内链的内部操作,外链可以达到网络之间的信息分享,不再让我们的网站内容形成孤立,可以很快的增加网站的浏览数量,提升搜索排名,这对一个刚刚建立起来的新站来说,外链的数量基本上可以成为这个网站快速提升流量的关键所在,不过对于后期优化,外链的发布一定要以质量为主,数量为辅。

nofollow
  • 作用: 超链接a标签中的一个属性(还有meta标签),意思是不向这个页面导出权重,也就是说,加上了nofollow标签的链接,目的是告诉搜索引擎不要跟踪加这个链接,不要传递链接权重,不要在搜索算法中计算这个链接。通过设置nofollow标签,我们可以控制网站权重的流动(也就是说常说的“集中权重”),避免链接指向垃圾页面,这样就可以让网站主要的页面能够更快的获得关键词排名了。有的公司在导航上有在线留言,这个就可以加上,因为这个是没有用的,属于垃圾页面,页面会向这个页面导出权重,权重就分散了,另外还有类似广告链接等无意义的页面

  • nofollow 和 external nofollow: 从字面上意思来看,external是“外部的”,nofollow是“不要追踪”,综合来看extenal nofollow 则表示“外部的不要追踪”,这两根本就是同一个意思,external nofollow 只是nofollow比较规范的书写而已。

<a href="login.html" rel="nofollow">登录</a>
<a href="login.html" rel="external nofollow">登录</a>
7.数据结构化标记

结构化数据标记并不能直接帮助提高搜索排名,但它能带来很多好处:

(1)丰富搜索结果

比如搜索 掘金 出现的页面,红色框部分就是结构化标记的成果,从框内可以更好的了解该网站的内容,而且占据了大版面也有利于吸引用户注意。

faf890025a6e088748f66904bbdf109f.jpeg
image.png
(2)进入知识图表

进入知识图表最直接的结果就是拥有一个知识面板,该面版可提供更高的品牌知名度和权威性,如下图的右侧红框:

498aeb3784f5f63dbd47749116bec843.jpeg
image.png
(3)支持语义搜索

专注于搜索问题背后的含义,而不是传统的关键词匹配。当你搜索如下模糊内容时,Google 会通过这种方式设法返回合适的结果:429574c7057eb884bf11436340dfa3c6.jpeg

(4)体现E-A‑T

E‑A-T 意思 是专业(Expertise), 权威(Authoritativeness)和可信(Trustworthiness)的缩写, E-A-T是谷歌算法的一部分,并被写入谷歌搜索质量评估指南[4]中。

结构化数据形式

结构化数据有三种形式:JSON-LD,Microdata和RDFa。个人之前一直用的JSON-LD,如下:

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Organization",
  "name": "Ahrefs",
  "url": "https://ahrefs.com/",
  "description": "Ahrefs is a software company that develops online SEO tools and free educational materials for marketing professionals.",
  "email": "support@ahrefs.com"
}
</script>
Tips

这段代码可以放在<head> 或 <body>  HTML 部分的任意位置,更多的JSON-LD款式可以参考Google官方[5]

8.面包屑导航
  1. 告诉爬虫当前所处的位置,提供抓取路径的引导,让其更快速的了解网站的整体架构,在抓取网页时也能清楚知道网页的层级及分类索引,有助于提升搜索结果的排名。此外,设定面包屑之后,网站在搜索结果页上也会呈现网址路径,因此可以适时在面包屑的名称中加入关键词,增加用户点击率

  2. 优化用户体验,让用户清楚的知道自己所在的位置,更容易筛选自己需要的信息

54a7611247956786c1b03c483d4de9ad.jpeg
image.png
9.服务端渲染(SSR)

爬虫只会爬取源码,不会执行网站的Js脚本,使用了Vue或者React之类的框架后,页面大多数DOM元素都是在客户端根据js动态生成,可供爬虫抓取分析的内容大大减少。另外,浏览器爬虫不会等待我们的数据完成之后再去抓取我们的页面数据。服务端渲染返回给客户端的是已经获取了异步数据并执行Js脚本的最终HTML,网络爬中就可以抓取到完整页面的信息,所以就要用到SSR渲染了。

如果是项目开始的时候,就知道要做SEO,建议使用比较成熟的SSR框架

  1. 基于Vue的 Nuxtjs[6]

  2. 基于Reactde Nextjs[7]

如果是项目已经成形或者只想优化部分页面,建议使用一些插件来实现,比如 prerender-spa-plugin[8]、vue-server-renderer ( 适用于Vue )[9]

Tips: 爬虫不会抓取iFrame里的内容,所以尽量避免使用

10.网站地址
  1. 和产品关键词或者公司名字高度相关的域名,能够有效提升网站的SEO排名,比如下图的红框,搜索的关键词和域名地址匹配到了会高亮。

  2. 各个页面的路径地址尽量不要过长,以及不能出现中文,否则会影响收录。

  3. 由于网站改版或者其他因素,可能会出现部分链接地址生效,这时候可以进行301重定向到新的页面,尽量避免出现过多的死链(404页面),如果死链太多,搜索引擎可能认为网站不可靠,从而影响网站的排名和流量。

  4. 下面两个链接都是百度页面,像这种有多个URL为相同页面的情况,就是网址规范化问题。无论是对搜索引擎还是网站来说,多个URL为相同页面,浪费了抓取资源,而且如果多个网址内容相同时或者高度相同,可能会认为网站重复页面过多一类的因素导致影响收录甚至降权。在一个页面有多个URL时,还会对页面找出权重分散,降低了页面排名能力,网站无意义收录等问题 当页面出现URL规范问题,搜索引擎也会自动判断并选择一个认为是规范的页面进行索引。

  • baidu.com[10]

  • www.baidu.com[11]

解决方案:可通过在每个非规范版本的 HTML 网页的 <head> 部分中,添加一个 rel="canonical" 链接来进行指定规范网址。

<!-- href填写要作为标准的网址 -->
    <link rel="canonical" href="http://baidu.com">

更详细的使用可以参考 zhuanlan.zhihu.com/p/584123965[12]

11.网站性能

网站打开速度越快,识别效果越好,否则爬虫会认为该网站对用户不友好,降低爬取效率,这时候就要考虑压缩文件体积之类的性能优化了。

12. 使用https

Google和其他搜索引擎已经明确表示,他们更喜欢使用HTTPS,因为它提供更高的安全性和更好的用户体验。当您的网站使用HTTPS时,搜索引擎会将其视为更可信和更安全的网站,从而为其排名增加积极因素。

13.提交站点收录

将创建好的网站地图提交给搜索引擎,以便搜索引擎能够更快更及时地抓取和索引网站。

  1. 百度[13]

  2. google[14]

  3. Bing[15]

0c60d5a971ae37cb0f9fafe9128fbc0d.jpeg
image.png

网站访问数据

后期维护需要一定的网站访问数据做分析,比如流量来源,页面点击,地域分布等,不同的搜索引擎都有自己的一套分析工具,我们只要按照官网的教程,把埋点的代码嵌入到项目即可。

  • *百度统计*[16]

  • *Google Analytics*[17]

附赠

  1. *检测Title Tag & Meta Description优化*[18]

  2. *站点地图生成*[19]

  3. *Web Developer*[20] , 一个Chrome插件,集成了各种各样的 Web 开发工具,比如可以使用下图红框里的选项(图1),查看网页的Title,Meta,H标签等(图2,3)。

图 (1)

5540461e7baeb5ab6db109d04b23e01b.jpeg
image.png

图 (2)

00f0243716badf786372449b4fab269f.jpeg
image.png

图 (3)

53c7ec58b52cb5e735066b53b9093e56.jpeg
image.png

总结

个人觉得,前端的工作都是集中在项目前期,后面的话主要是一些维护工作,比如公司之前开发了一个支持富文本内容的文章发布平台,然后运营部门就可以自己发一些引流的文章了,和开发关系不大。另外,公司专门请了一个增长黑客(其实就是SEO优化工程师的角色),负责每周给公司写文章的同学提供关键词,分析网站访客数据,提交网站收录,寻找外链资源等。

作者:广白

原文:https://juejin.cn/post/7300118821532778511

Node 社群

 
 

我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加 考拉 好友回复「Node」即可。

9735744b7bad2ef1d7654204afe581c2.png

“分享、点赞、在看” 支持一下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值