网站优化一二三

网站优化

网站优化是一个非常庞大的主题,可以说一本书可能都无法说清楚,网站优化涉及的东西很多,包括seo,包括加载速度,包括用户体验,包括网站内容等等。

seo优化

seo优化,就是如何让网站被各个搜索引擎更多的收录,拥有更好的排名,这也是个非常庞大的工程,我们这里不去考虑网站内容的优化,仅仅从网站代码结构来考虑如何优化seo.

搜索引擎毕竟不是用户,所以在它的眼里,他关注的更多的是html标签,title,description,keywords,我们常说的tdk对seo来说非常重要。其次我们网站的h1,h2,h3标题也非常重要。我们知道搜索引擎使用的是倒排索引,记录的是各个关键词的排名,而关键词更多的来源于我们的那些H标签,所以在HTML结构中尽量给我们的H标签使用我们想要优化的关键词。

加载速度优化

做网站优化的人非常关注的一个关键指标就是TTFB。

TTFB是发出页面请求到接收到应答数据第一个字节所花费的毫秒数。也就是我们后台返回给前端html代码需要处理的事件。如果这个数值过大,那么网站一定是加载缓慢的,而影响这个指标最重要的几个因素就是路由,数据库处理,业务逻辑处理,而这里影响最大的其实就是数据库处理和业务处理,一般情况下如果业务逻辑不是很复杂,那么影响系统性能的就主要是数据库处理性能了,而这也是为什么那些高访问网站都采用内存数据库redis,memcache来做缓存的原因,因为相比于数据库,从内存里获取数据速度太快了。

不采用内存数据库的情况下,优化sql是提升性能最佳的方案。一个好的SQL查询可以用时不到100ms,而一些不当的查询可能用时会几分钟,在数据量很大的时候,这都是有可能的。

加索引是解决sql查询过慢时候我们常用的方法,这是通过牺牲空间换取时间的方法。然而加索引并不能保证一定能提升查询效率,因为有时候不当的查询会导致索引失效。

很多时候我们希望我们随机查询数据,很多人喜欢用order by rand(),但是当你一旦使用这个语句的话,你就会发现会发生回表查询,查询效率不管怎么加索引都不起作用。那么对于随机获取数据我们通常采用怎样的做法呢?

我们一般都是获取最大的数据,然后获取最小的数据,之后查询的时候,通过

SELECT (ROUND(RAND() * (SELECT ABS(MAX(id)-MIN(id)-$limit) FROM table_name

通过这样也是可以取出随机数据,在数据量大的时候它的效率是前面的几百倍都有可能。

很多时候采用子查询并不一定会导致效率过低,只要我们能充分使用到索引,我们的效率就会很高。

页面渲染加速也是我们非常需要考虑的问题,有时候我们会发现ttfb时间没有多大,但是页面加载还是很慢,这个时候就是页面渲染速度过慢导致的。提升页面渲染速度有很多注意点,比如我们采用懒加载,减少瞬间加载过多图片,图片采用cdn存储,js和css采用压缩和cdn存储,网站html采用压缩,在页面底部使用js,减少css计算,这些都能优化页面渲染时间。

用户体验

网站是给用户看的,所以无论我们前面做的各种优化,都是为了提升用户体验,据统计,当一个网站加载查过5s的时候,80%的人都会选择关闭,因此,页面加载非常重要。

同时页面布局对用户体验也非常重要,很多网站页面挂满了广告,这种网站,很多人第一时间就会选择关闭。很多网站页面正文内容占的空间过小,而其它栏目和不重要的内容占据了过多空间,也是影响用户体验的。

好的用户体验一定是把用户最希望看到的内容突出显示,同时可以提供给用户一些相关内容,提升用户访问深度。

内容为王

一个网站最终值得用户停留的永远都是内容。无论前面我们做了多少工作,如果没有用户感兴趣的内容,那么最终用户只会毫不留情的关掉网站。

好多人为了SEO而SEO, 却不知道酒香不怕巷子深,当你的内容能够给用户带来价值的时候,就是你网站排名提升的时候。