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

seoxin 05-06 8:10 21次浏览

文章首发于我的博客:个人博客 SEO 优化(2):站内优化

对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍

SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:

网站结构优化简单概括有下面几个要素:

物理结构指的就是网站真实目录及文件所在的位置决定的结构。一般来说,比较合理的两种物理结构是扁平式和树形结构。扁平式就是所有的页面都放在一级,一般来说站内seo,这种方式只适合页面数量少的网站。更多的都是采用树形结构的方式。比如利用 hexo 构建的博客就是采用树形结构:

SEO 站内优化-物理结构树形图

链接结构指的是网站内部页面的链接所形成的结构。链接结构通常也是树形结构:

SEO 站内优化-树形链接结构

H 代表着网站首页。C1 和 C2 代表着网站的分类首页。P1~4 则是具体的每个页面。这只是演示的结构,实际的结构会比这个更加复杂。

对于搜索引擎来说,链接结构会比物理结构来得更有意义。在上一篇 个人博客 SEO 优化(1):搜索引擎原理介绍 中有介绍到,与首页点击距离越近的页面被 spider 爬行的概率也大,即权重越高。这里的点击距离指的就是链接结构的距离。比如同样是属于第三层级的 P3 页面,由于被首页直接链接指向,它的首页点击距离比其他页面来得短,因此会有更高的权重。

设置合理的网站的链接结构有利于页面权重的分配。

清晰的导航系统是网站设计的重要目标。毕竟你肯定不想你的用户进入你的网站首页后,面对混乱的导航,难以找到想到的页面。对于搜索引擎的 spider 也是如此,混乱的导航会降低 spider 爬行概率。

在设置网站导航应该注意下面几点:

搜索引擎通常会把子域名当成独立的站点。而目录就是该域名名下的一部分。比如 只是 的一个子域名。

就是一个目录。

因此对主域名所做的优化,对于子域名的网站而言,同样需要再做一遍。一般的网站和博客不需要子域名。只有大型的网站才会需要。

你如果你不想某些具体的页面不被收录,可以通过 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 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 的内容相同或者非常相似。复制内容既可能发生在同一网站内,也可能发生在不同网站上。

如果一个网站的复制内容过多的话,会带来害处。一是有可能使搜索引擎对网站的质量产生怀疑,导致惩罚。另外一种情况就是站内seo,同一个站内的复制内容过多的话,会分散权重。

那么该如何消除复制内容?

无论站点的多少,网站地图都是需要的。网站地图有 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 版本的网站地图是上面那样。其中的标签含义如下:

priority 可选 页面权重

除了 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 上新建一个页面,接收这些外部链接的权重。