Google搜索成最大入口,简单谈下个人博客的SEO
个人静态博客SEO该考虑哪些问题呢?本篇文章给你答案
咖啡君在开始写文章时首选了微信公众号作为发布平台,但公众号在PC端的体验并不好,连最基本的文章列表都没有,所以就搭建了运维咖啡吧的网站,可以通过点击文章底部“阅读原文”访问网站体验
为了方便管理及节约成本,选择了免费的Github Pages作为网站运行平台。用Django写了个管理后台来管理文章,管理后台跑在我的电脑上,它可以将markdown格式的内容生成静态页面并自动上传至Github,管理后台的介绍看这篇文章:利用Django徒手写个静态页面生成工具
由于Github拒绝百度爬虫(这也是为什么在百度里搜索不到Github仓库的原因),且网站没有备案,所以针对百度的SEO优化就直接放弃了,把精力放在了Google搜索上,下图是当前访问网站的用户来源饼图,可以看出优化的效果

目前来自Google的搜索流量已经成了网站用户最大的来源,甚至超过了我的主动分享。达到这样的效果我都做了哪些事情呢?接着往下看
收录
新部署的网站并不能在短时间内被Google自动收录,我们需要手动提交给Google,需要做的是:
为你的站点生成sitemap
登陆Google Search Console,提交你的sitemap

sitemap内记录了整个网站哪些网页可以被搜索引擎所抓取,可以理解为网站所有url的集合,不同的搜索引擎支持不同的sitemap格式,最简单的可以像我一样将网站的所有url逐行记录进一个文本文件内
sitemap提交后搜索引擎蜘蛛并不会立即去抓取,你可以通过上方的搜索框输入你的网页url搜索确认是否编入索引,如果没有则可以手动请求编入索引,这样收录更快速一点
网站被收录之后,就需要考虑如何能尽可能多的展示给搜索的用户,网页能否被搜索引擎展示的最重要原因是网页是否对用户友好,所以所有的SEO都应该是围绕对用户友好展开的,主要包含以下几块的优化:内容、描述、性能、移动端兼容性
内容
内容一定是第一位的,原创的优质的内容能得到更多用户的青睐,同时对于搜索引擎来说也更喜欢,Google搜索出来的内容大多数情况下贴合度都比较高,所以考虑SEO的第一步就应该是内容足够好
搜索引擎如何判定你的内容足够优秀呢?有两个数据很重要:跳出率和会话时长

上图来自与Google的分析工具Analytics(以下简称GA),建议给网站内添加GA检测代码,虽然国内不能访问Google,但是GA检测代码是不受影响的,添加之后可以关注一下这两个值,努力将跳出率降低以及提升用户会话时长
为了降低跳出率和提升用户会话时长,我将博客内原本跳转到微信公众号的链接都给改成了博客内链接,这也是你点击知乎或者简书之类的平台外链时先跳转到本地地址询问你是否跳转站外的一个原因,就是为了降低跳出率,每篇文章底部的相关文章推荐阅读也能降低跳出率,当然这一切的前提是内容质量要够好,对用户有吸引力,对于会话时长也一样,好内容用户更有兴趣读下去,就会停留更长的时间
描述
对于一个网页的描述,主要由以下几部分组成:URL,Title,Keywords,Description,应尽量使用清晰的、能准确说明网页内容的描述
URL应尽量简短且唯一,最好可读性强
不同的页面要有不同的URL,不要使用同一URL去展示不同的内容,这里ajax异步请求替换页面内容是不推荐的,像vue之类的单页面应用也不推荐,这些对SEO都不友好,因为SEO在投放时实际上是按照页面维度进行投放的,如果你所有的内容都只有一个URL,那么你就只能投放一次,正常情况下肯定是投放的地址越多,被搜索到的概率也越大
Title和Description非常重要,title告诉用户和搜索引擎特定的网页主题是什么,description则描述了网页大概的内容,这两个标记直接影响SEO的搜索词和搜索结果的展现

Google的搜索结果会展示Title、URL、Description信息,需要说明的是这里的Description可能跟你html里配置的不一致,这是因为Google觉得你的description描述不准确,会选择能更好的匹配用户查询的内容作为description信息展示给用户
Title、Description和Keywords都应尽量清晰、准确的描述文章的内容,且要保持每个网页唯一,不可重复
准确描述网页的内容有利于蜘蛛更好的理解网页,从而更准确的推送给搜索的用户,带来更高的点击
性能
网页打开速度快也是对用户友好很重要的一个指标,如果你的网页打开很慢很容易被用户关闭,对于搜索引擎的爬虫来说也一样,并且搜索引擎的爬虫对每个网站抓取配额是有限制的,网页打开越快,爬虫抓取效率越高,收录的网页数就会越多,被搜索到的概率就越大,所以应尽量让网页打开的快一点
大多数的爬虫目前仍然是对网页源码进行抓取,并不做渲染,所以让主要内容直接显示在网页源码中非常重要,虽然Google蜘蛛已经能抓取解析简单的JS,但效率偏低,所以Google建议重要内容同步展示,这也是尽量不要用ajax异步加载内容的原因,个人博客因为是生成的静态html页面,所以没有这个问题
由于博客网站数据都存储在github上,所以即便是再优化效果也可能不会太好,但还是有一些优化可以做的,网页本身已经是纯静态文件了,所以加载速度与页面加载的资源有很大的关系,尽量使页面简单,使加载的页面资源尽量少、尽量小,同时将图片等静态资源放在CDN上也可以一定程度上加快网页的加载速度
移动端兼容
随着移动设备的普及,有很多用户会在移动端搜索内容,所以博客的移动端兼容性也非常重要,并且Google已经推出了以移动端网页作为主权重页面的移动网页索引,如果网页在PC端表现很好但对移动端不兼容,那么可能用户通过移动端搜索你的内容就会被过滤不展示
个人感觉技术类的网站移动端流量应该不会很高,但事实是运维咖啡吧网站移动端的流量占比超过16%,并且这个数据还有上升的趋势,所以移动端兼容不可忽视

写在最后
很多小伙伴问咖啡君:既然有了网站,是否还有必要关注公众号呢?
我觉得很有必要,公众号更新粉丝会收到消息通知,可以在上下班路上等碎片时间打开看看,看讲到的知识点,看解决方案,看处理思路,有个印象,这样在自己需要解决一样或相似问题时,即便是不知道准确的处理方法,也大概知道处理思路和关键点,再借助搜索引擎就能很快的搞定
没有头绪可能就是一脸蒙蔽,连搜索都不知道搜什么,这也是为什么大家一样的百度谷歌,有的人能快速找到解决方案,有些人不行,很多时候就在这里,对于网站,可能会收藏,但你真的会主动打开查看吗?

相关文章推荐阅读:
Google搜索成最大入口,简单谈下个人博客的SEO的更多相关文章
- 全栈前端入门必看 koa2+mysql+vue+vant 构建简单版移动端博客
koa2+mysql+vue+vant 构建简单版移动端博客 具体内容展示 开始正文 github地址 <br/> 觉得对你有帮助的话,可以star一下^_^必须安装:<br/> ...
- 用mkdocs在gitee码云上建立一个简单的文档博客
利用mkdocs建立简单的文档博客 一.概述 MkDocs 是一个用于创建项目文档的 快速, 简单 , 完美华丽 的静态站点生成器. 文档源码使用 Markdown 来撰写, 用一个 YAML 文件作 ...
- w10环境下Hexo博客搭建
w10使用hexo+github手把手搭建自己的第一个博客 对一个程序员来说,博客的重要性不言而喻,不但可以积累知识,还可以更好的给别人分享自己的心得.今天就以时下比较流行的hexo博客搭建属于自己的 ...
- .NET作品集:linux下的博客程序
博客程序架构 本博客程序是博主11年的时候参考loachs小泥鳅博客内核开发的.net跨平台博客cms,距今已有6年多了,个人博客网站一直在用,虽然没有wordpress那么强大,但是当时在深究.ne ...
- 从开发到部署,使用django创建一个简单可用的个人博客
本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...
- 【简单版】hexo博客搭建流程梳理
前言 本文章会为你梳理一个搭建hexo博客的流程 相关网址: Docs: https://hexo.io/docs/ Themes: https://hexo.io/themes/ 安装hexo 准备 ...
- Word 测试下发布博客
目录 语法. 3 NULL,TRUE,FALSE 3 大小端存储 4 类型转换 4 转义字符 5 运算符的优先级 5 表达式(a=b=c) 7 *pa++=* ...
- TP5中隐藏入口文件的问题 - CSDN博客
使用phpstudy和linux部署的时候 tp5中的官方说明是在入口文件的同级目录下添加一个.htaccess文件 文件内容如下: <IfModule mod_rewrite.c>Opt ...
- Linux 下Wordpress博客搭建
Wordpress # 下载安装文件 cd /usr/local/nginx/html/blog wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN ...
随机推荐
- laravel post提交数据时显示异常
post提交数据时候显示如下: The page has expired due to inactivity. Please refresh and try again 这是由于在laravel框架中 ...
- 【js】vue 2.5.1 源码学习(二) 策略合并
一. 整体思路 1 首先是代码的大体构造,先判断引入代码的环境,即对应amd 和cmd的处理 2 vue_init 需要借助 initMinxin ==>>> ...
- The Function() Constructor
Functions are usually defined using the function keyword, either in the form of a function definitio ...
- 2019-11-20-Github-给仓库上传-NuGet-库
title author date CreateTime categories Github 给仓库上传 NuGet 库 lindexi 2019-11-20 08:18:14 +0800 2019- ...
- js快速替换json里的key值
需求是将b根据a的值替换对象中的key值 let a = ["code","name","date","font"]; ...
- 2018.10.26 浪在ACM 集训队第二次测试赛
2018.10.26 浪在ACM 集训队第二次测试赛 整理人:苗学林 A海港 参考博客:[1]:李继朋https://www.cnblogs.com/violet-acmer/p/9859006.ht ...
- Oracle如何分组排序并产生序号
SELECT C.ORG_SHORTNAME, B.USER_NAME, ROW_NUMBER () OVER ( PARTITION BY B.ORG_ID ORDER BY A.TOTAL_SCO ...
- [译文] C# 已成旧闻, 向前, 抵达 C# 9!
C# 8 is old news. Onward, to C# 9! (C# 已成旧闻, 向前, 抵达 C# 9!) Did you know that planning is already und ...
- springboot前后端分离项目redis做验证码及用户信息存储验证长时间不操作失效问题解决
1.错误回显:Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: MISCO ...
- 洛谷$P2055\ [ZJOI2009]$ 假期的宿舍 最大流
正解:最大流 解题报告: 传送门$QwQ$ 这种一看就很网络流鸭,直接说咋建图趴. 考虑把在校的人拆成人和床.$S$连向所有不回家的人,所有床连向$T$,认识的人之间人向床连边,跑个最大流就成. $o ...