在你安裝完 WordPress 后,你可能會調(diào)整一些設(shè)定來最佳化 WordPress 效能和安全性。這里有一份安裝完 WordPress 后你應(yīng)該做的最佳化指南。安裝 WordPress 只需要兩個簡單的步驟,但你可能要調(diào)整一些預設(shè)的設(shè)定值,來改善、最佳化 WordPress 網(wǎng)站的效能和增強安全性。
如何最佳化你的 WordPress 網(wǎng)站?
這些建議只針對自架的 WordPress 網(wǎng)站,不適用于 WordPress.com。另外,我假設(shè)你是在 Apache 上架設(shè) WordPress 的。讓我們開始吧:
1. 變更預設(shè)的媒體上傳目錄
WordPress 預設(shè)會將你的所有圖片、文件和其他上傳的檔案儲存于 wp-content/uploads 目錄。
將你的圖片儲存于 WordPress 目錄之外是個不錯的作法,最好在一個子網(wǎng)域底下。這有幾個優(yōu)點,你的圖片網(wǎng)址會更加簡短,每日的 WordPress 備份會更有彈性,而且最重要的是,從不同的伺服器載入圖片將有助于改善網(wǎng)頁開啟速度。
WordPress 3.5(或更新版本)已經(jīng)沒有提供變更預設(shè)媒體上傳目錄的選項,但可以使用外掛來開啟這項設(shè)定。同時取消選擇該選項–“將我所上傳的檔案安排為以「月」及「年」為基準的目錄”。
2. 從你的 WordPress 網(wǎng)站移除不必要的 meta-data
如果你檢視過你的 WordPress 網(wǎng)站原始碼,你可以發(fā)現(xiàn)有些 meta 標籤不是必要的。例如,你使用的 WordPress 版本會顯示于原始碼。
這項資訊對于一些尋找使用舊版或低安全性版本 WordPress 網(wǎng)站攻擊的黑客來說是個不錯的提示。從你的 WordPress 原始碼完整移除掉版本號和其他非必要的 meta-data,只要把把這段程式碼加入佈景主題的 functions.php 檔案即可。
remove_action( 1wp_head1, 1wp_generator1 ) ;
remove_action( 1wp_head1, 1wlwmanifest_link1 ) ;
remove_action( 1wp_head1, 1rsd_link1 ) ;
WLW-Manifest 函式(第二行)是 Windows Live Writer 用于下載你 WordPress 部落格的樣式、佈景主題。Windows Live Writer 使用者不使用即時預覽功能,故可以將此函式關(guān)閉。
3. 防止使用者直接瀏覽你的 WordPress 目錄結(jié)構(gòu)
如果你不希望任何人直接瀏覽你 WordPress 檔案和資料夾清單,將以下代碼加入你 WordPress 內(nèi)現(xiàn)有的 .htaccess 檔案中。
Options All -Indexes
并確認 wp-content/themes 和 wp-content/plugins 目錄下包含空白的 index.php 檔案。
4. 停用 WordPress 回響的 HTML 功能
WordPress 的回響留言框是一個小型的 HTML 編輯器,留言者可以使用一些標準的 HTML 語法像是 、、 來為自己的留言加入格式。他們甚至能夠在留言里加入超連結(jié)。如果你想在 WordPress 回響里停用 HTML 功能,只要把以下程式碼加入你的 functions.php 檔案即可。
add_filter( 1pre_comment_content1, 1wp_specialchars1 );
5. 關(guān)閉 WordPress 文章版本功能
WordPress 內(nèi)建一個實用的文章版本功能,讓你可以追蹤變化,以便隨時回復到文章先前的版本。文章版本也會增加 WordPress 里 wp_posts 資料表的大小,因為每次修訂都會增加新的內(nèi)容。
要停用 WordPress 里文章版本的功能,開啟你 WordPress 目錄下的 wp-config.php 然后加入以下程式碼:
define( 1WP_POST_REVISIONS1, false);
另外,如果你想保留文章版本功能,你可以只限制 WordPress 儲存于 MySQL 資料庫里的修訂數(shù),在 wp-config.php 加入以下程式碼:(3 為要保留的文章版本數(shù)量)
define( 1WP_POST_REVISIONS1, 3);
6. 變更文章自動儲存的時間間隔
當你在 WordPress 內(nèi)建的編輯器編輯部落格文章時,它會自動儲存你的草稿,當瀏覽器不幸當?shù)魰r,有助于你快速恢復先前輸入的內(nèi)容。草稿預設(shè)會每分鐘自動儲存,但你可以加入以下程式碼來將自動儲存的時間間隔變更為 120 秒(或 2 分鐘):
define( 1AUTOSAVE_INTERVAL1, 120 );
7. 隱藏其他 WordPress Feeds 網(wǎng)址
你的 WordPress 包含多個 RSS Feeds–部落格、文章、回響、分類、匯整等頁面皆有 feeds–它們會使用標籤顯示于你部落格的原始碼內(nèi)。
如果你只想宣傳你的主要 RSS Feeds,那將以下程式碼加入你的 functions.php 檔案里:
remove_action( 1wp_head1, 1feed_links1, 2 );
remove_action( 1wp_head1, 1feed_links_extra1, 3 );
8. 將所有 Feeds 重新導向至你的主要 RSS Feed
在上一個步驟,我們只有從網(wǎng)頁內(nèi)移除掉不必要的 RSS Feeds,但這些 RSS Feeds 依然存在。如果你想要單獨使用一個 RSS Feed 例如 FeedBurner,并停用所有其他的 Feeds,將以下程式碼加入你的 .htaccess 檔案。記得把 feed URL 替換為你自己的網(wǎng)址。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]
RewriteRule ^feed/?.*$ http://feeds.freegroup.org/freegroup [L,NC,R=301]
9. 隱藏 WordPress 登入畫面的錯誤訊息
當你輸入一個不存在的使用者名稱,或是錯誤密碼來登入 WordPress 時,它會顯示相當詳細的錯誤訊息,來告訴你使用者名稱錯誤,或是密碼錯誤,這是狠糟糕的。
將以下程式碼加入 functions.php 檔案來隱藏所有登入相關(guān)的錯誤提示。
function no_errors_please(){ return 'GET OFF MY LAWN !! RIGHT NOW !!';}add_filter( 'login_errors', 'no_errors_please' );
10. 啟用二階段驗證功能
強烈建議開啟二階段驗證。如果有人取得了你 WordPress 帳號密碼,他們?nèi)孕枰愕氖謾C才能夠登入 WordPress 控制臺。
不像 Dropbox 或 Google,WordPress 并沒有內(nèi)建二階段驗證功能,但你可以使用外掛來將它加入。Authy 是相當受歡迎的二階段驗證外掛,雖然我喜歡的是 Authenticator,因為它可以搭配 Google 官方的 Authenticator 應(yīng)用程式使用。
11. 變更固定網(wǎng)址結(jié)構(gòu)
不要使用 WordPress 預設(shè)的固定網(wǎng)址結(jié)構(gòu),因為這不利于 SEO。
前往 WordPress 控制臺的設(shè)定 -> 固定網(wǎng)址來變更你的 WordPress 固定網(wǎng)址結(jié)構(gòu)。從搜尋引擎最佳化及效能來看,建議使用的結(jié)構(gòu)為:
/%post_id%/%postname%
12. 加入遺失的 favicon 及 touch icons
你的 WordPress 佈景主題可能沒有包含網(wǎng)站圖示(favicon.ico)或 Apple touch icons,但網(wǎng)頁瀏覽器和 RSS 閱讀器仍然可能向你的伺服器要求這些檔案。最好的辦法是提供這些檔案,而不是回傳 404 錯誤。
在你的網(wǎng)站根目錄放置一個 16×16 的 favicon.ico 和 144×144 的 apple-touch.png 檔案。然后在你的 .htaccess 加入以下程式碼來重新檔向所有 Apple touch icon 的請求至特定檔案。
RedirectMatch 301 /apple-touch-icon(.*)?.png http://upload.chinaz.com//
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 權(quán)限設(shè)為讀者
如果你的 WordPress 帳號是”admin”,建立一個新的使用者名稱并給他系統(tǒng)管理員權(quán)限。接著登出 WordPress,以新的帳號登入,將 “admin” 權(quán)限從系統(tǒng)管理員設(shè)定為讀者。
你也許可以考慮把帳號 “admin” 刪除,然后將現(xiàn)有的任何文章、頁面轉(zhuǎn)移給新帳號。這對于安全性來說是相當重要的一個步驟,因為我們不希望讓任何人有機會猜測具有 WordPress 管理員權(quán)限的使用者名稱。
15. 對搜尋引擎隱藏你的 XML Sitemaps
XML Sitemaps 可以幫助搜尋引擎更好地抓取你的網(wǎng)站內(nèi)容,但你不會希望搜尋引擎在搜尋結(jié)果頁面顯示你的網(wǎng)站地圖。
將以下程式碼加入你的 .htaccess 來防止 XML Sitemals 被搜尋引擎索引:
Header set X-Robots-Tag "noindex"
16. 不要使用 WordPress 內(nèi)建的搜尋功能
確認你的網(wǎng)站搜尋功能是由 Google 自訂搜尋所提供,不要使用 WordPress 內(nèi)建的搜尋功能。
WordPress 搜尋通常會傳回不相關(guān)的結(jié)果,另一個好處是這麼做能降低你的 WordPress 伺服器、資料庫負載,因為搜尋查詢將透過 Google 來進行處理。
另外,如果你打算繼續(xù)使用 WordPress 內(nèi)建的搜尋功能,那就使用 Nice Search 外掛吧!它能為你的 WordPress 搜尋頁面建立更好的固定網(wǎng)址(/search/tutorials vs /s?tutorials)。
17. 以密碼保護你的 wp-admin 目錄
你可以簡單地為 WordPress 增加額外的安全防護,例如以密碼來保護 wp-admin 目錄。你必須要記住兩組密碼才能夠登入至 WordPress – 包括你的 WordPress 密碼,以及保護 wp-admin 目錄的密碼。
18. 在 Google 分析記錄 404 錯誤
404 錯誤會錯失使用者進入網(wǎng)站的機會。你可以使用 Google 分析來記錄你的 404 錯誤,包含從何而來等細節(jié)資料。
將以下程式碼加入你的 Google 分析追蹤代碼,于 _gaq.push 函式之后:
<? if (is_404()) { ?>
_gaq.push([1_trackEvent1, 14041, document.location.pathname + document.location.search, document.referrer, 0, true])2
<? }
19. 刪除所有沒用到的佈景主題和 WordPress 外掛
未使用的外掛和佈景主題不會影響你的 WordPress 網(wǎng)站效能,但我們的目標是盡可能減少伺服器上可執(zhí)行的程式碼。停用并刪除所有你不需要的東西。
20. 停止 WordPress 猜測網(wǎng)址功能
WordPress 有一個會猜測網(wǎng)址的奇怪功能,且在大多數(shù)情況下會造成錯誤。讓我解釋一下,如果一位訪客要存取 freegroup.org/hello 網(wǎng)址,但這個頁面并不存在,WordPress 可能會把使用者重新導向至 freegroup.org/hello-world 只因為這網(wǎng)址有一些常用詞匯。
如果你希望 WordPress 停止猜測網(wǎng)址,并以 404 找不到網(wǎng)頁的錯誤訊息來取代,將以下程式碼加入 functions.php:
add_filter(1redirect_canonical1, 1stop_guessing1)2
function stop_guessing($url) {
if (is_404()) {
return false2
}
return $url2
}
21. 為靜態(tài)內(nèi)容設(shè)定過期時間
儲存于你 WordPress 網(wǎng)站的靜態(tài)內(nèi)容:像是圖片、CSS、JavaScript、.txt 等等不會經(jīng)常改變,你可以設(shè)定過期時間讓它們快取于使用者的瀏覽器中。因此,在稍后訪問網(wǎng)站的過程里,你的網(wǎng)站就能更快載入 JS 和 CSS ,因為是從本機的快取中被載入。
請參閱 HTML5 模版的 .htaccess 檔案,來了解設(shè)定過期時間的細節(jié)。如果你是使用像是 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 部落格安全性
我在早先已經(jīng)詳細討論過 WordPress 安全性。大意是你應(yīng)該把密鑰加入你的 wp-config.php 檔案,安裝檔案監(jiān)控外掛,然后使用 Limit Login 來防止暴力密碼攻擊。
23. 停用 WordPress 內(nèi)的檔案編輯功能
當你以系統(tǒng)管理員權(quán)限登入你的 WordPress 控制臺,你可以輕鬆地編輯任何 WordPress 外掛及佈景主題。如果你想刪除文件的編輯功能(一個缺少的分號可能讓你的 WordPress 網(wǎng)站掛掉),將以下程式碼加入 wp-config.php 檔案中:
define( 'DISALLOW_FILE_EDIT', true );
24. 從網(wǎng)址中移除多餘的查詢參數(shù)
如果你的 WordPress 網(wǎng)站網(wǎng)址是 abc.com,如果使用者在網(wǎng)址加入一些查詢參數(shù),仍然可以到達你的網(wǎng)站。例如,abc.com/?utm=ga 或 abc.com/?ref=feedly 就是,從技術(shù)上來說,完全不同的網(wǎng)址也可以進入相同的頁面。
但對于鏈結(jié)權(quán)重(SEO)來說是不好的,在理想的情況下,你應(yīng)該讓所有網(wǎng)址指向同一個 Canonical URL。將以下程式碼加入 .htaccess 來移除掉不必要的查詢參數(shù):
RewriteEngine On
RewriteCond %{QUERY_STRING} !=""
RewriteCond %{QUERY_STRING} !^p=.*
RewriteCond %{QUERY_STRING} !^s=.*
RewriteCond %{REQUEST_URI} !^/wp-admin.*
RewriteRule ^(.*)$ /$1? [R=301,L]
更多信息請查看IT技術(shù)專欄