[Typecho升级优化]提升首页加载速度以及若干升

xiaoyv_404

1.给网站页签加icon图片

查看主题的index.php找header,顺势找到header.php文件,你会在<header></header>看到如下代码(如果没看到就加上去):

1
<link rel="icon" type="image/ico" href="/favicon.ico">

因此我们在typecho包的根目录下放入favicon.ico图片,效果如下

2.修改后台路由提高安全性

Typecho 安装好后,默认的后台路径是/admin/,但有时默认路径可能存在安全隐患而且用admin来登录怪怪的
修改admin文件夹名称,同时修改系统根目录下的 config.inc.php 文件(把admin改成你的文件夹名称)

1
2
/** 后台路径(相对路径) */ 
define('__TYPECHO_ADMIN_DIR__', '/admin/');

3.手动删除掉根目录的install.php文件

防止给黑客提供后门

4.优化首页加载过慢问题

使用edge发现网络中的首页TTFB耗时过长。针对这个情况来进行一次优化

  1. 找到首页代码 index.php,die掉所有代码,发现ttfb很低,调整定位,最终锁定是文章循环导致加载过慢的
1
<?php while($this->next()): ?>
  1. 继续调试。最终定位到问题是出在getPostView方法里。注释该方法再看,TTFB时间缩短很多。网页加载终于秒响应了(或者整个ul去掉)
1
2
3
4
5
6
<ul class="card-meta-bottom">
<li class="card-meta-label card-meta-more"><a href="<?php $this->permalink(); ?>" title="Read More" target="_blank"><i class="iconfont icon-aria-more"></i><i class="iconfont icon-aria-more"></i></a></li>
<li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i> <?php Contents::getPostView($this); ?></li>
<li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li>
<!--li class="card-meta-label card-meta-likes"></li-->
</ul>

修改为:

1
2
3
4
<ul class="card-meta-bottom">
<li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i><?php Contents::getPostView($this); ?></li>
<li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li>
</ul>
  1. 有兴趣的可以继续往下找。此方法在lib下的contents.php文件夹下。

  2. 同理发现分类页面也很卡,找到主题下面的archive.php文件,搜索下面代码即可,替换掉

1
2
3
4
5
6
7
8
9
10
11
12
<ul class="card-meta-bottom">
<li class="card-meta-label card-meta-more">
<a href="<?php $this->permalink(); ?>" target="_blank"><i class="iconfont icon-aria-more"></i><i class="iconfont icon-aria-more"></i></a>
</li>
<li class="card-meta-label card-meta-views card-meta-right">
<i class="iconfont icon-aria-view"></i> <?php Contents::getPostView($this); ?>
</li>
<li class="card-meta-label card-meta-comments card-meta-right">
<i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?>
</li>
<!--li class="card-meta-label card-meta-likes"></li-->
</ul>

修改为:

1
2
3
4
<ul class="card-meta-bottom">
<li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i><?php Contents::getPostView($this); ?></li>
<li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li>
</ul>
  1. 然后就是找找哪个页面卡就简单的优化一下了,这里就不演示了

6.启用GZIP压缩

ob_start('ob_gzhandler');

找到安装包文件的index.php。注意不是主题下面的index文件。然后加上如上代码。位置自己看着办

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/** 开启gzip压缩, add by xiaoyv_404 */  
ob_start('ob_gzhandler');

/**
* Typecho Blog Platform
*
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
* @version $Id: index.php 1153 2009-07-02 10:53:22Z magike.net $
*/

/** 载入配置支持 */
if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
exit;
}

7.网站底部增加运行时间

找到footer.php文件,在自己想要的位置添加代码怎么居中自己想

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
function ShowRuntime() {
BirthDay = new Date("2019-10-31 00:00:00");
Current = new Date();
TimeDiff = (Current.getTime() - BirthDay.getTime());
OneDay = 24 * 60 * 60 * 1000;
days = TimeDiff / OneDay;
Days = Math.floor(days);
hours = (days - Days) * 24;
Hours = Math.floor(hours);
mins = (hours - Hours) * 60;
Mins = Math.floor(mins);
Secs = Math.floor((mins - Mins) * 60);
//信息写入到DIV中
runtimeSpan.innerHTML = "本站已经努力运行了: " + Days + "天" + Hours + "小时" + Mins + "分" + Secs + "秒"
}
setInterval(ShowRuntime, 1000);
</script>

8.移除文章显示内容

将index和archive文件的如下代码删除掉,看过很多主题都没有,我也觉得没必要。

1
2
3
4
5
6
7
<div class="card-body"><?php 
if($this->fields->previewContent)
$this->fields->previewContent();
else
$this->excerpt(50, '...');
?></div>
<div class="card-line"></div>

9.让我们做一些SEO的事情

  1. 伪静态

    自己不会弄啊

  2. sitemap.xml

    下载并安装并激活Sitemap

    然后访问/sitemap.xml,至于sitemap有什么用嘛,大家都懂

  • Title: [Typecho升级优化]提升首页加载速度以及若干升
  • Author: xiaoyv_404
  • Created at : 2020-11-07 00:00:00
  • Updated at : 2024-06-01 06:00:00
  • Link: https://www.xiaoyv404.com/BlogopTimization/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
[Typecho升级优化]提升首页加载速度以及若干升