WordPress站点优化

折腾来折腾去还选择了 WordPress 博客系统,大家都知道 这个系统访问速度略显尴尬,今天简单优化了一下本站,感觉速度还可以,分享一下优化过程如下

一、插件安装

简单安装2个插件

  1. WP-China-Yes 解决国内访问官网慢的最有效方法
  2. WP Rocket 最快的wordpress优化插件

二、清除文章历史版本

以下优化来自 橙苏博客

每次修改文章,都会生成一个历史版本, 长期使用后将导致数据库中存在大量的不需要的数据,降低数据库的速度。将下面的代码放到

wp-config.php
文件里

define ('WP_POST_REVISIONS', false);

将它放在代码

require_once ABSPATH . 'wp-settings.php';
就可以了

然后使用 WP-Optimize 插件清除历史版本后,删除插件即可。

三、删除JS及CSS的版本查询字符串

大多数服务器都不会使用到查询字符串。这就意味着每一次请求,这些js和css都需要从服务器重新获取。这会极大增加我们服务器的带宽压力。而且增加了加载时间。

查看方式:浏览器按下F12,按下图查看方式,若出现 ?ver=x.x.x则说明未禁用

function _remove_script_version ( $src ){
  $parts = explode( '?', $src );
  return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
将以上代码填入主题文件夹的functions.php即可

 

四、隐藏WordPress版本

删除根目录的 readme.htmlwp-config-sample.php以及  /wp-admin/install.php,再将下面的代码放入functions.php

// 同时删除head和feed中的WP版本号
function ludou_remove_wp_version() {
  return '';
}
add_filter('the_generator', 'ludou_remove_wp_version');
 
// 隐藏js/css附加的WP版本号
function ludou_remove_wp_version_strings( $src ) {
  global $wp_version;
  parse_str(parse_url($src, PHP_URL_QUERY), $query);
  if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
    // 用WP版本号 + 12.8来替代js/css附加的版本号
    // 既隐藏了WordPress版本号,也不会影响缓存
    // 建议把下面的 12.8 替换成其他数字,以免被别人猜出
    $src = str_replace($wp_version, $wp_version + 12.8, $src);
  }
  return $src;
}
add_filter( 'script_loader_src', 'ludou_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'ludou_remove_wp_version_strings' );

五、 禁用Dashicons 和 Google地图

 


dashicons.min.css是包含图标样式的文件,大小约为30kb,将其乘以访问者数量时,就是占有的带宽。Google Maps API是在异步中加载的,但它确实会大幅增加页面的总加载时间。再将下面的代码放入主题文件夹的 functions.php中

// remove dashicons
function wpdocs_dequeue_dashicon() {
if (current_user_can( 'update_core' )) {
  return;
}
wp_deregister_style('dashicons');
}
add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );

//Remove Google Maps API Call
function disable_google_map_api($load_google_map_api) {
  $load_google_map_api = false;
  return $load_google_map_api;
}
$plugins = get_option('active_plugins');
$required_plugin = 'auto-location-pro/auto-location.php';
if ( in_array( $required_plugin , $plugins ) ) {
  add_filter('avf_load_google_map_api', 'disable_google_map_api', 10, 1);
}

六、 MySQL 设置 MySQL Query Cache

 

MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段。 
查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效。 
但是随着服务器功能的强大,查询缓存也可能成为整个服务器的资源竞争单点。 

查看当前版本是否支持QC功能:

SHOW VARIABLES LIKE 'have_query_cache';

若显示YES,则支持;反之不支持

'have_query_cache', 'YES'

查看是否已开启:

SHOW VARIABLES LIKE '%query_cache%';

若未开启,则在my.cnf(linux)或my.ini(windows)的[mysqld]下添加:

query_cache_size=128M

query_cache_type=1 

重启服务使设置生效。然后重新查看  

七、数据库添加索引

随着使用时间的增长,WP数据库中的wp_options表会变得越来越臃肿。很多插件会在wp_options表生成临时数据。表的膨胀会影响数据库的性能,然后影响到网站的速度。优化网站过程中优化wp_options表非常重要。

比较简单的优化方案时是给wp_options表添加索引,可以拥有更快的查询速度。

登陆phpmyadmin然后执行一个SQL命令来查询是否创建了索引

SHOW INDEX FROM wp_options;

创建索引SQL语句如下:

CREATE INDEX autoloadindex ON wp_options(autoload, option_name); 

创建完成后再用

SHOW INDEX FROM wp_options;

 检查一下即可

感谢 橙苏博客 提供的优化方案

版权声明:
作者:admin
链接:https://www.8aimi.com/26.html
来源:爱米记录
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录