这是很久以前的工做了,以前还没用vue spa 作项目的时候,都是用的原生js写项目,纯html,css,js写项目,真的是每一个页面引用css,js各类文件写到头痛,那个时候作一个大型网站,基本都是各类ui框架,bootstrap,layui,amazy-ui,mui,weui,jqueryweui,zui,各类框架各类组合,代码也是混乱不堪,项目体积大,对爬虫不是特别友好,后来项目上线的时候,公司要求作seo,就开始了漫长的项目规范,优化代码过程。在这过程当中也总结了好多经验,再次记录下来,方便之后学习更新使用。css
全称:Search English Optimization,搜索引擎优化。自从有了搜索引擎,SEO便诞生了。
存在的意义:为了提高网页在搜索引擎天然搜索结果中的收录数量以及排序位置而作的优化行为。
简言之,就是但愿百度等搜索引擎能多多咱们收录精心制做后的网站,而且在别人访问时网站能排在前面。
复制代码
(1),当咱们在输入框中输入关键词,点击搜索或查询时,而后获得结果。深究其背后的故事,搜索引擎作了不少事情html
(2),在搜索引擎网站,好比百度,在其后台有一个很是庞大的数据库,里面存储了海量的关键词,而每一个关键词又对应着不少网址,这些网址是百度程序从茫茫的互联网上一点一点下载收集而来的,这些程序称之为“搜索引擎蜘蛛”或“网络爬虫”。这些勤劳的“蜘蛛”天天在互联网上爬行,从一个连接到另外一个连接,下载其中的内容,进行分析提炼,找到其中的关键词,若是“蜘蛛”认为关键词在数据库中没有而对用户是有用的便存入数据库。反之,若是“蜘蛛”认为是垃圾信息或重复信息,就舍弃不要,继续爬行,寻找最新的、有用的信息保存起来提供用户搜索。当用户搜索时,就能检索出与关键字相关的网址显示给访客。前端
(3),一个关键词对用多个网址,所以就出现了排序的问题,相应的当与关键词最吻合的网址就会排在前面了。在“蜘蛛”抓取网页内容,提炼关键词的这个过程当中,就存在一个问题:“蜘蛛”可否看懂。若是网站内容是flash和js,那么它是看不懂的,会犯迷糊,即便关键字再贴切也没用。相应的,若是网站内容是它的语言,那么它便能看懂,它的语言即SEO。vue
经过网站的结构布局设计和网页代码优化,使前端页面既能让浏览器用户可以看懂,也能让“蜘蛛”看懂。 >>通常而言,创建的网站结构层次越少,越容易被“蜘蛛”抓取,也就容易被收录。通常中小型网站目录结构超过三级,“蜘蛛”便不肯意往下爬,“万一天黑迷路了怎么办”。而且根据相关调查:访客若是通过跳转3次还没找到须要的信息,极可能离开。所以,三层目录结构也是体验的须要。为此咱们须要作到:jquery
a, 网站首页是权重最高的地方,若是首页连接太少,没有“桥”,“蜘蛛”不能继续往下爬到内页,直接影响网站收录数量。可是首页连接也不能太多,一旦太多,没有实质性的连接,很容易影响用户体验,也会下降网站首页的权重,收录效果也很差。 b,所以对于中小型企业网站,建议首页连接在100个之内,连接的性质能够包含页面导航、底部导航、锚文字连接等等,注意连接要创建在用户的良好体验和引导用户获取信息的基础之上。web
尽可能让“蜘蛛”只要跳转3次,就能到达网站内的任何一个内页。扁平化的目录结构,好比:“植物”--> "水果" --> "苹果"、“桔子”、“香蕉”,经过3级就能找到香蕉了。ajax
导航应该尽可能采用文字方式,也能够搭配图片导航,可是图片代码必定要进行优化,
标签必须添加“alt”和“title”属性,告诉搜索引擎导航的定位,作到即便图片未能正常显示时,用户也能看到提示文字。 其次,在每个网页上应该加上面包屑导航,好处:从用户体验方面来讲,可让用户了解当前所处的位置以及当前页面在整个网站中的位置,帮助用户很快了解网站组织形式,从而造成更好的位置感,同时提供了返回各个页面的接口,方便用户操做;对“蜘蛛”而言,可以清楚的了解网站结构,同时还增长了大量的内部连接,方便抓取,下降跳出率。数据库
a,页面头部:logo及主导航,以及用户的信息。 b,页面主体:左边正文,包括面包屑导航及正文;右边放热门文章及相关文章,好处:留住访客,让访客多停留,对“蜘蛛”而言,这些文章属于相关连接,加强了页面相关性,也能加强页面的权重。 c,页面底部:版权信息和友情连接。 d,特别注意:分页导航写法,推荐写法:“首页 1 2 3 4 5 6 7 8 9 下拉框”,这样“蜘蛛”可以根据相应页码直接跳转,下拉框直接选择页面跳转。而下面的写法是不推荐的,“首页 下一页 尾页”,特别是当分页数量特别多时,“蜘蛛”须要通过不少次往下爬,才能抓取,会很累、会容易放弃。bootstrap
一个页面最好不要超过100k,太大,页面加载速度慢。当速度很慢时,用户体验很差,留不住访客,而且一旦超时,“蜘蛛”也会离开。浏览器
只强调重点便可,尽可能把重要的关键词放在前面,关键词不要重复出现,尽可能作到每一个页面的
<title>
标题中不要设置相同的内容。
关键词,列举出几个页面的重要关键字便可,切记过度堆砌。
<meta name="keywords" content="网赚论坛,网赚社区,网赚培训"/>
网页描述,须要高度归纳网页内容,切记不能太长,过度堆砌关键词,每一个页面也要有所不一样。
<meta name="description" content="进行一些表述" />
尽可能让代码语义化,在适当的位置使用适当的标签,用正确的标签作正确的事。让阅读源码者和“蜘蛛”都一目了然。好比:h1-h6 是用于标题类的,
<nav>
标签是用来设置页面主导航的等。
页内连接,要加 “title” 属性加以说明,让访客和 “蜘蛛” 知道。而外部连接,连接到其余网站的,则须要加上 el="nofollow" 属性, 告诉 “蜘蛛” 不要爬,由于一旦“蜘蛛”爬了外部连接以后,就不会再回来了
正文标题要用<h1>标签:
“蜘蛛” 认为它最重要,若不喜欢
的默认样式能够经过CSS设置。尽可能作到正文标题用
标签,副标题用
标签, 而其它地方不该该随便乱用 h 标题标签。
其实,web性能优化与seo优化有着很大的联系,性能优化作好了,对seo有很大的帮助。 接下来讲一下本身在项目中作过的优化方案,参考了好多大神的方案,以及本身总记得的经验,记录下来,方便之后更新学习。
研究代表:用户最满意的打开网页时间是2-5秒,若是等待超过10秒,99%的用户会关闭这个网页
复制代码
彷佛只要提到性能优化,就会说到减小http请求,那么就说说如何减小http请求::
1,能使用icon不适用图片,实在避免不了要使用图片,就使用雪碧图,
2,对图片进行压缩(通常网站的图片在200k到500k之间)尽可能小于200k,
3,图片转base64
4, 使用静态资源缓存
5, 添加Expires头
a,页面的初次访问者会进行不少HTTP请求,可是经过使用一个长久的Expires头,可使这些组件被缓存,下次访问的时候,就能够减小没必要要的HTPP请求,从而提升加载速度。写法:Cache-Control: max-age=12345600
6,压缩css,js,html
7, 精简代码
8,多使用外部文件,公共的js,css
9, 图片懒加载,资源按需加载,能够减小大量的的请求
复制代码
404表明服务器没有找到资源,客户端发送一个请求可是服务器却返回一个无用的结果,时间浪费掉了
复制代码
当咱们在浏览器的地址栏输入网址(譬如: [小编简书]https://www.jianshu.com/u/12e7fdbba52f) ,
而后回车,回车这一瞬间到看到页面到底发生了什么呢?
复制代码
域名解析 --> 发起TCP的3次握手 --> 创建TCP链接后发起http请求 --> 服务器响应http请求,浏览器获得html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
在学习过程当中总结下来的,可能也不太全面,记录下来,方便学习,但愿能帮助到本身和你们,也但愿看到的攻城狮多多提出宝贵的意见,小编好更新学习。分享并快乐着。