14个无需插件的WordPress性能优化措施
当谈到网站性能时,每个字节和毫秒都很重要。
WordPress核心并不沉重,但您使用的主题和插件可能会降低整体速度。有很多技术可以加速您的WordPress网站。
例如:
- 使用内容分发网络(CDN)
- 利用浏览器和服务器缓存
- 在上进行托管
- 使用轻量级主题
然而,您是否知道WordPress核心中包含许多您可能不使用的内容,对它们采取必要的操作可以减少一些字节以更快地加载网站。
以下操作可以通过两种方式完成,一种是使用插件,另一种是在现有文件的functions.php
中添加几行代码。如果可以通过添加/修改代码来完成工作,我更倾向于不使用插件。
最佳实践
备份您要修改的相应文件,以防发生意外情况;您可以快速回滚。
以下所有代码都应该添加到functions.php
中,除非另有说明。
删除查询字符串
如果您已经分析了您的网站,那么您可能会看到删除静态资源(CSS、JS文件)中的查询字符串的推荐。
文件中包含查询字符串可能导致CDN不缓存文件,因此您可能无法利用提供的所有缓存优势。
要删除查询字符串,请添加以下代码。
function remove_cssjs_ver( $src ) { if( strpos( $src, '?ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 ); add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
删除RSD链接
如果您打算使用XML-RPC客户端、pingback等,那么需要RSD(Really Simple Discovery)。但是,如果您不需要pingback或远程客户端管理帖子,则添加以下代码以摆脱这个不必要的头文件。
remove_action( 'wp_head', 'rsd_link' ) ;
禁用表情符号
从最近添加的支持旧版浏览器的表情符号开始,从WordPress中删除与表情符号相关的额外代码。
remove_action('wp_head', 'print_emoji_detection_script', 7); remove_action('wp_print_styles', 'print_emoji_styles'); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'admin_print_styles', 'print_emoji_styles' );
删除短链接
从3.x版本开始,WordPress在头部代码中添加了短链接(网页地址的较短链接)。例如:
如果不使用短链接进行任何功能,则可以通过添加以下内容将其删除。
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
禁用嵌入
WordPress在4.4中引入了oEmbed功能,允许任何站点远程嵌入WordPress帖子,效果如下:
通过添加以下代码,将阻止其他人嵌入您的博客帖子,并禁用加载相关的JS文件。
function disable_embed(){ wp_dequeue_script( 'wp-embed' ); } add_action( 'wp_footer', 'disable_embed' );
禁用XML-RPC
您是否有使用WordPress API(XML-RPC)发布/编辑/删除帖子、编辑/列出评论、上传文件的需求?而且启用XML-RPC并没有得到适当的加固可能会导致DDoS和。
如果您不需要,则通过添加以下内容禁用它。
add_filter('xmlrpc_enabled', '__return_false');
隐藏WordPress版本
这不会提高性能,而是更多地用于缓解链接_5的问题。默认情况下,WordPress会添加一个带有版本详细信息的meta名称生成器,该信息在源代码和链接_6中可见。
要删除WP版本,请添加以下代码。
remove_action('wp_head','wp_generator');
删除WLManifest链接
您是否使用Windows Live Writer的标签支持?如果没有,请添加以下代码来删除它。
remove_action('wp_head','wlwmanifest_link');
删除JQuery Migrate
WordPress从版本3.6开始添加了JQuery迁移。如果您正在使用最新版本的JQuery,并且主题/插件与之兼容,则不需要此功能。要删除加载jquery-migrate.min.js
,请添加以下代码。
function deregister_qjuery(){ 如果(!is_admin()){ wp_deregister_script('jquery'); } } add_action('wp_enqueue_scripts','deregister_qjuery');
禁用自动Pingback
我不知道为什么您需要在博客文章中添加自我pingback的详细信息,我知道不只是我感到烦恼。如果您也是这样,那么以下代码将有所帮助。
function disable_pingback(&$links){ foreach($links as $l => $link) if(0 === strpos($link,get_option('home'))) unset($links [$l]); } add_action('pre_ping','disable_pingback');
禁用或限制文章修订
WordPress中的文章修订并非新功能,对于恢复文章如果浏览器崩溃或丢失网络是有帮助的。但是问问自己,这种情况发生多少次?
默认情况下,WordPress将为每个草稿或已发布的文章保存修订版本,这可能会使数据库膨胀。您可以选择完全禁用它,或限制要保存的修订版本数量。
在wp-config.php
文件中添加以下内容
禁用文章修订
define('WP_POST_REVISIONS',false);
限制数量
假设限制最多保存两个修订版本
define('WP_POST_REVISIONS',2);
注意:此代码必须放在ABSPATH行之上,否则无法正常工作。
禁用Heartbeat
WordPress使用心跳API通过频繁调用admin-ajax.php在浏览器和服务器之间进行通信。如果使用共享主机,则可能会降低整体页面加载时间并增加CPU利用率。
如果您不需要使用心跳API,则可以通过添加以下内容来禁用它。
add_action('init','stop_heartbeat',1); function stop_heartbeat(){ wp_deregister_script('heartbeat'); }
在前端禁用Dashicons
Dashicons在管理控制台中使用,如果没有在前端加载任何图标,则可以禁用它。通过添加以下内容,dashicons.min.css
将停止在前端加载。
function wpdocs_dequeue_dashicon(){ if(current_user_can('update_core')){ 返回; } wp_deregister_style('dashicons'); } add_action('wp_enqueue_scripts','wpdocs_dequeue_dashicon');
禁用Contact Form 7的JS / CSS
使用Contact Form 7并且注意到它们的CSS / JavaScript文件在每个页面上加载?好消息是您可以通过以下代码停止加载它。
add_filter('wpcf7_load_js','__return_false'); add_filter('wpcf7_load_css','__return_false');
结束语
以上代码将有助于减少一些HTTP请求和页面大小。所有代码都可以在链接_7上找到。如果您正在寻找高级缓存和性能优化插件,请查看链接_8。