在你安装完WordPress后,你可能会调整一些设定来最佳化WordPress效能和安全性。这里有一份安装完WordPress后你应该做的最佳化指南。安装WordPress只需要两个简单的步骤,但你可能要调整一些预设的设定值,来改善、最佳化WordPress网站的效能和增强安全性。
如何最佳化你的WordPress 网站?
这些建议只针对自架的WordPress网站,不适用于WordPress.com。另外,我假设你是在Apache上架设WordPress的。让我们开始吧:
1. 变更默认的媒体上传目录
WordPress 默认会将你的所有图片、文件和其他上传的档案储存于wp-content/uploads 目录。
将你的图片储存于WordPress 目录之外是个不错的作法,最好在一个子网域底下。这有几个优点,你的图片网址会更加简短,每日的WordPress 备份会更有弹性,而且最重要的是,从不同的伺服器载入图片将有助于改善网页开启速度。
WordPress 3.5(或更新版本)已经没有提供变更预设媒体上传目录的选项,但可以使用外挂来开启这项设定。同时取消选择该选项–“将我所上传的档案安排为以「月」及「年」为基准的目录”。
2. 从你的WordPress 网站移除不必要的meta-data
如果你检视过你的WordPress 网站原始码,你可以发现有些meta 标签不是必要的。例如,你使用的WordPress 版本会显示于原始码。
<meta name="generator" content="WordPress 3.5.1" />
这项信息对于一些寻找使用旧版或低安全性版本WordPress 网站攻击的黑客来说是个不错的提示。从你的WordPress 原始码完整移除掉版本号和其他非必要的meta-data,只要把把这段程式码加入使用主题的functions.php 文件即可。
remove_action( 'wp_head', 'wp_generator' ) ; remove_action( 'wp_head', 'wlwmanifest_link' ) ; remove_action( 'wp_head', 'rsd_link' ) ;
WLW-Manifest 函式(第二行)是Windows Live Writer 用于下载你WordPress 博客的样式、主题。Windows Live Writer 使用者不使用即时预览功能,故可以将此函式关闭。
3. 防止使用者直接浏览你的WordPress 目录结构
如果你不希望任何人直接浏览你WordPress 档案和资料夹清单,将以下代码加入你WordPress 内现有的.htaccess 文件中。
Options All -Indexes
并确认wp-content/themes 和wp-content/plugins 目录下包含空白的index.php 档案。
4. 停用WordPress 回复的HTML 功能
WordPress 的回复留言框是一个小型的HTML 编辑器,留言者可以使用一些标准的HTML 语法像是<b>、<a>、<i> 来为自己的留言加入格式。他们甚至能够在留言里加入超连结。如果你想在WordPress 回复里停用HTML 功能,只要把以下程式码加入你的functions.php 文件即可。
add_filter( 'pre_comment_content', 'wp_specialchars' );
5. 关闭WordPress 文章版本功能
WordPress 内建一个实用的文章版本功能,让你可以追踪变化,以便随时回复到文章先前的版本。文章版本也会增加WordPress 里wp_posts 资料表的大小,因为每次修订都会增加新的内容。
要停用WordPress 里文章版本的功能,开启你WordPress 目录下的wp-config.php 然后加入以下代码:
define( 'WP_POST_REVISIONS', false);
另外,如果你想保留文章版本功能,你可以只限制WordPress 储存于MySQL 资料库里的修订数,在wp-config.php 加入以下程式码:(3 为要保留的文章版本数量)
define( 'WP_POST_REVISIONS', 3);
6. 变更文章自动储存的时间间隔
当你在WordPress 内建的编辑器编辑部落格文章时,它会自动储存你的草稿,当浏览器不幸当掉时,有助于你快速恢复先前输入的内容。草稿预设会每分钟自动储存,但你可以加入以下程式码来将自动储存的时间间隔变更为120 秒(或2 分钟):
define( 'AUTOSAVE_INTERVAL', 120 );
7. 隐藏其他WordPress Feeds 网址
你的WordPress 包含多个RSS Feeds–部落格、文章、回响、分类、汇整等页面皆有feeds–它们会使用<link> 标签显示于你部落格的原始码内。
如果你只想宣传你的主要RSS Feeds,那将以下程式码加入你的functions.php 档案里:
remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'feed_links_extra', 3 );
8. 将所有Feeds 重新导向至你的主要RSS Feed
在上一个步骤,我们只有从网页内移除掉不必要的RSS Feeds,但这些RSS Feeds 依然存在。如果你想要单独使用一个RSS Feed 例如FeedBurner,并停用所有其他的Feeds,将以下程式码加入你的.htaccess 档案。记得把feed URL 替换为你自己的网址。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] RewriteRule ^feed/?.*$ http://feeds.freegroup.org/freegroup [L,NC,R=301] </IfModule>
9. 隐藏WordPress 登入画面的错误讯息
当你输入一个不存在的使用者名称,或是错误密码来登入WordPress 时,它会显示相当详细的错误讯息,来告诉你使用者名称错误,或是密码错误,这是很糟糕的。
将以下程式码加入functions.php 档案来隐藏所有登入相关的错误提示。
function no_errors_please(){ return 'GET OFF MY LAWN !! RIGHT NOW !!'; } add_filter( 'login_errors', 'no_errors_please' );
10. 启用二阶段验证功能
强烈建议开启二阶段验证。如果有人取得了你WordPress 帐号密码,他们仍需要你的手机才能够登入WordPress 控制台。
不像Dropbox或Google,WordPress并没有内建二阶段验证功能,但你可以使用外挂来将它加入。Authy是相当受欢迎的二阶段验证外挂,虽然我喜欢的是Authenticator,因为它可以搭配Google官方的Authenticator应用程式使用。
11. 变更固定网址结构
不要使用WordPress 预设的固定网址结构,因为这不利于SEO。
前往WordPress 控制台的设定-> 固定网址来变更你的WordPress 固定网址结构。从搜寻引擎最佳化及效能来看,建议使用的结构为:
/%post_id%/%postname%
12. 加入遗失的favicon 及touch icons
你的WordPress 布景主题可能没有包含网站图示(favicon.ico)或Apple touch icons,但网页浏览器和RSS 阅读器仍然可能向你的伺服器要求这些档案。最好的办法是提供这些档案,而不是回传404 错误。
在你的网站根目录放置一个16×16 的favicon.ico 和144×144 的apple-touch.png 档案。然后在你的.htaccess 加入以下程式码来重新档向所有Apple touch icon 的请求至特定档案。
RedirectMatch 301 /apple-touch-icon(.*)?.png http://example.com/apple-touch.png
13. 禁止索引WordPress 程式
你希望Google 和其他搜寻引擎可以抓取你的部落格文章,但不会希望索引你用于WordPress、外挂和布景主题的程式。
开启你WordPress 主目录底下的robots.txt 并加入以下代码,来阻止搜寻引擎索引WordPress 后台的元件。
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /wp-content/themes/ Disallow: /feed/ Disallow: */feed/
14. 把Admin 权限设为读者
如果你的WordPress 帐号是”admin”,建立一个新的使用者名称并给他系统管理员权限。接着登出WordPress,以新的帐号登入,将“admin” 权限从系统管理员设定为读者。
你也许可以考虑把帐号“admin” 删除,然后将现有的任何文章、页面转移给新帐号。这对于安全性来说是相当重要的一个步骤,因为我们不希望让任何人有机会猜测具有WordPress 管理员权限的使用者名称。
15. 对搜寻引擎隐藏你的XML Sitemaps
XML Sitemaps 可以帮助搜寻引擎更好地抓取你的网站内容,但你不会希望搜寻引擎在搜寻结果页面显示你的网站地图。
将以下程式码加入你的.htaccess 来防止XML Sitemals 被搜寻引擎索引:
<IfModule mod_rewrite.c> <Files sitemap.xml> Header set X-Robots-Tag "noindex" </Files> </IfModule>
16. 不要使用WordPress 内建的搜寻功能
确认你的网站搜寻功能是由Google 自订搜寻所提供,不要使用WordPress 内建的搜寻功能。
WordPress 搜寻通常会传回不相关的结果,另一个好处是这么做能降低你的WordPress 伺服器、资料库负载,因为搜寻查询将透过Google 来进行处理。
另外,如果你打算继续使用WordPress内建的搜寻功能,那就使用Nice Search外挂吧!它能为你的WordPress搜寻页面建立更好的固定网址(/search/tutorials vs /s?tutorials)。
17. 以密码保护你的wp-admin 目录
你可以简单地为WordPress增加额外的安全防护,例如以密码来保护wp-admin目录。你必须要记住两组密码才能够登入至WordPress –包括你的WordPress密码,以及保护wp-admin目录的密码。
18. 在Google 分析记录404 错误
404 错误会错失使用者进入网站的机会。你可以使用Google 分析来记录你的404 错误,包含从何而来等细节资料。
将以下程式码加入你的Google 分析追踪代码,于 _gaq.push 函式之后:
<? if (is_404()) { ?> _gaq.push(['_trackEvent', '404', document.location.pathname + document.location.search, document.referrer, 0, true]); <? }
19. 删除所有没用到的布景主题和WordPress 外挂
未使用的外挂和布景主题不会影响你的WordPress网站效能,但我们的目标是尽可能减少伺服器上可执行的程式码。停用并删除所有你不需要的东西。
20. 停止WordPress 猜测网址功能
WordPress 有一个会猜测网址的奇怪功能,且在大多数情况下会造成错误。让我解释一下,如果一位访客要存取freegroup.org/hello 网址,但这个页面并不存在,WordPress 可能会把使用者重新导向至freegroup.org/hello-world 只因为这网址有一些常用词汇。
如果你希望WordPress 停止猜测网址,并以404 找不到网页的错误讯息来取代,将以下程式码加入functions.php:
add_filter('redirect_canonical', 'stop_guessing'); function stop_guessing($url) { if (is_404()) { return false; } return $url; }
21. 为静态内容设定过期时间
储存于你WordPress网站的静态内容–像是图片、CSS、JavaScript、.txt等等–不会经常改变,你可以设定过期时间让它们快取于使用者的浏览器中。因此,在稍后访问网站的过程里,你的网站就能更快载入JS和CSS ,因为是从本机的快取中被载入。
请参阅HTML5模版的.htaccess档案,来了解设定过期时间的细节。如果你是使用像是W3 Total Cache之类的快取外挂,快取控制本身是由外挂来做管理。
ExpiresActive On ExpiresByType image/gif "access plus 30 days" ExpiresByType image/jpeg "access plus 30 days" ExpiresByType image/png "access plus 30 days" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week"
22. 强化你的WordPress 部落格安全性
我在早先已经详细讨论过WordPress安全性。大意是你应该把密钥加入你的wp-config.php档案,安装档案监控外挂,然后使用Limit Login来防止暴力密码攻击。
23. 停用WordPress 内的档案编辑功能
当你以系统管理员权限登入你的WordPress 控制台,你可以轻松地编辑任何WordPress 外挂及布景主题。如果你想删除文件的编辑功能(一个缺少的分号可能让你的WordPress 网站挂掉),将以下程式码加入wp-config.php 档案中:
define( 'DISALLOW_FILE_EDIT', true );
24. 从网址中移除多余的查询参数
如果你的WordPress 网站网址是abc.com,如果使用者在网址加入一些查询参数,仍然可以到达你的网站。例如,abc.com/?utm=ga 或abc.com/?ref=feedly 就是,从技术上来说,完全不同的网址也可以进入相同的页面。
但对于链结权重(SEO)来说是不好的,在理想的情况下,你应该让所有网址指向同一个 Canonical URL。将以下程式码加入.htaccess 来移除掉不必要的查询参数:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} !="" RewriteCond %{QUERY_STRING} !^p=.* RewriteCond %{QUERY_STRING} !^s=.* RewriteCond %{REQUEST_URI} !^/wp-admin.* RewriteRule ^(.*)$ /$1? [R=301,L] </IfModule>
- 提示:这篇文章发布于 2016/08/09,作者 99839,总计 6234 字.
- 原文: [教程]新手必看,WordPress优化方法24条 | 爱壹主题