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