Jekyll建站后简单的SEO
用Jekyll在Github上建站之后发现即使提交给搜索引擎,也很难被收录或者能被搜索到。如果使用JekyllBootstrapper,已经做了相关的SEO,所以问题不大。但如果是使用其他主题分享或者自己写一个theme,那么就不得不考虑一下SEO的相关问题了。虽然我也从未接触过SEO,不过查阅一些资料,折腾一番还是有收获的。
其中受益于掌心的这篇文章,特别感谢。
提示:为了文章正常显示,取消了代码中解析site或page属性的双大括号,以及if语句中的大括号加百分号。
准备工作
优化工作需要从以下几方面着手:
- 站点标题,副标题,描述
- 页面标题,关键字,描述
- 文章标题,关键字,描述
- 文章格式及注意事项
- 站点地图
- 站点dns稳定性
首先我们需要了解当前主题的网站结构,找到解析站点和页面信息的文件,在之后的操作中需要修改这个文件。由于每个主题的结构不一样,这里举两个例子抛砖引玉。
例子一
在_layouts
文件夹下找到page和post文件用记事本打开,发现他们都是使用了另一个layout作为模板。
1 | --- |
那么我们打开default,查找解析站点信息的地方
1 | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
例子二
同样在_layouts
文件夹下找到page和post文件用记事本打开,分析一下下面的内容引用了什么
1 | <html class="no-js" lang="en"><!--<![endif]--> |
在head中可以看到include head.html
,也就是说引用了head.html
这个文件,然后我们需要找到这个文件,在这个例子中该文件在_includes
文件夹下。打开看看它的内容:
1 | <title> |
这里就解析了站点的title等信息。
找到这个文件后我们就可以可以做优化工作了。
如何实现
1.站点标题,副标题,描述
站点信息在_config.yml
文件中配置
1 | title: site title |
- 标题 title : 站点的名称,是站点最重要的信息,一般建议主标题用
h1
标签 - 描述 description : 提供站点主要内容的描述,有时候可以当做副标题,一般建议用
h2
标签
这里提到站点的标题用H1标签,那么我们找到显示站点标题的文件,也许你能在_layouts
文件夹的page,default或者文件中找到类似下面的语句
1 | <h1 class="entry-title"> if page.headline page.headline else page.title endif </h1> |
那么如果没有title没有h1
标签,就加上,同理副标题或者description也要加h2
。我们不需要给网站加关键字,因为我们将会对每个页面加关键字。
2.页面标题,关键字,描述
页面的信息在index.html,tags.html,articles.html或者对应的md文件中设置,给你所有的需要显示的页面都加入标题,关键字和描述信息。例如
1 | --- |
3.文章标题,关键字,描述
其实文章信息同页面信息是一样的,我们需要给_posts
文件夹下的每一篇文章都添加title,description和keywords信息
1 | --- |
设置好信息后就需要添加解析方法了。回到上一节中提到的解析站点和页面信息的文件。替换或加入下面内容:
1 | <title> |
其中title是网页打开后标签显示的名称,这里设置的是页面名称加横杠再加站点名称,比如Index-Baidu.com.格式建议设置成这样或者只显示page的title不显示site的title。
description要放在meta
标签中,这里显示页面的描述。
keywords也要放在meta
标签中,值得一提的是很多主题把page的tag当做keywords解析到keywords的meta标签中,这里是不推荐的,如果是这样,就把tag替换成keywords。
4.文章格式及注意事项
由于我的站点是从wordpress导过来的,很多格式都出现了问题,还是需要一篇篇调整,这是一个需要耐性的工作。在调整格式的过程中可以给文章添加描述关键字等信息,最好给文章都加入categories属性。
每篇文章应注意使用h1
,h2
,h3
等标签,有助于调整层次。当然不要过量使用,可能会被搜索引擎识别为造假。给关键字添加strong
标签,strong
同b
标签以及加粗都是一个效果,使用strong
会更容易让搜索引擎分析。
掌心的文章中也指出了处理链接的问题,我们要避免搜索引擎重复抓取链接,比如index页面列出了最近10篇文章,articles页面列出了所有文章,那么搜索引擎会重复抓取文章的链接,会导致权重下降。那我们就把不必要页面或者链接让蜘蛛抓取。这时候需要设置nofollow标签,方法有下面两种:
1 | <meta name="robots" content="nofollow" /> |
第一种放在meta
标签中,表示整个页面都不让蜘蛛抓取。
第二种放在a
链接中,表示这个超链接不让蜘蛛抓取,比如主页显示的文章有readmore超链接,就可以这样设置。
5.站点地图
一般的主题都会自带一个订阅和一个站点地图,如果没有站点地图,可以在站点根目录下新建sitemap.xml
,格式可以参考这里
然后我们可以把它提交给谷歌,bing,yahoo等。但是百度没有提供这一功能。
用谷歌举例https://www.google.com/webmasters,我们在google的webmaster管理工具中提交。
6.站点dns稳定性
使用国外的域名提供商的dns很有可能不稳定,这时候需要更换dns,保证页面不会经常解析失败。同时要确保站点内所有的页面都能正常访问。出现404错误会降低站点权重。
通过上述几种方法可以提高网站被搜索引擎收录的几率。当然,还可以深入的去做seo,这里就不再多说了。
Jekyll建站后简单的SEO