Các bước để tối ưu hóa WordPress trong tải trọng máy chủ?


81

Bên cạnh việc cài đặt W3 Total Cache hoặc một plugin bộ đệm khác, tôi có thể thực hiện các bước nào để đảm bảo rằng chủ đề và trang web của tôi chạy nhanh nhất có thể.


nếu bạn chạy trang web của bạn trên vps, bạn nên thử làm lại bộ nhớ cache.
ahmetlutfu

Câu trả lời:


32

Bạn có thể cài đặt WordPress trên Nginx. Có một số tài nguyên để trợ giúp:

Một số thông tin hiệu suất từ ​​liên kết cuối cùng đó (có vẻ là một thiết lập khác một chút so với các liên kết khác):

Vì vậy, tôi quyết định đặt proxy trước wordpress vào bộ đệm tĩnh càng nhiều càng tốt. TẤT CẢ lưu lượng không xác thực được phục vụ trực tiếp từ bộ đệm của tệp nginx, nhận một số yêu cầu (chẳng hạn như tạo nguồn cấp RSS) từ 6 trang / giây đến 7000+ trang / giây. Ôi. Nginx cũng xử lý việc ghi nhật ký và gzipping, để lại các lỗi phụ trợ nặng nề hơn để làm những gì họ làm tốt nhất: chỉ phục vụ các trang wordpress động khi cần thiết.

...

Trên nginx - nó rất hiệu quả, thật đáng sợ. Tôi chưa bao giờ thấy nó sử dụng hơn 10 đến 15 meg RAM và một đốm CPU, ngay cả dưới tải nặng nhất của chúng tôi. Biểu đồ gang tay của chúng tôi không nói dối: chúng tôi giảm một nửa yêu cầu bộ nhớ, tăng gấp đôi thông lượng mạng đi và hoàn toàn giảm tải. Chúng tôi về cơ bản không có vấn đề gì kể từ khi chúng tôi thiết lập điều này.


Bất cứ ai cũng có bất kỳ số liệu thống kê về tiết kiệm tốc độ của việc sử dụng Nginx?
Mike Lee

Mike, tôi đã thêm một liên kết khác, và một số thông tin từ bài đăng đó.
Travis Northcutt

Tôi đã chuyển blog chính của mình từ máy chủ 1G chạy Apache sang máy chủ 512M chạy Nginx. Chạy trơn tru hơn, mặc dù RAM giảm. Tuy nhiên, tôi thừa nhận rằng tôi có các dịch vụ khác đang chạy trên máy chủ 1G (email, imap, mailman, một số trang web có lưu lượng truy cập thấp khác).
Dougal Campbell

NB chạy WordPress trên nginx khác với việc sử dụng nginx làm bộ đệm proxy trước Wordpress.
sam

26

Đặt thời hạn phía máy khách cho những thứ như css, hình ảnh, JavaScript, v.v. không cần tải xuống lại cho mỗi lượt xem trang. Điều này, cho đến nay, đã tạo ra sự khác biệt lớn nhất cho thời gian tải trang web của tôi. Tải xuống nhanh nhất là tải xuống chưa từng xảy ra ...

# BEGIN Expire headers
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 7200 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 2592000 seconds"
  ExpiresByType application/x-javascript "access plus 2592000 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType application/xhtml+xml "access plus 7200 seconds"
</IfModule>
# END Expire headers

# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
  <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(js)$">
    Header set Cache-Control "max-age=2592000, private"
  </FilesMatch>
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesMatch>
# Disable caching for scripts and other dynamic files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
# END Cache-Control Headers

Bạn có thể tải trước gzip mọi thứ bạn có thể hợp lý (7-zip là một công cụ tốt cho việc này) & tải nó lên cùng một nơi với tệp bạn vừa nén. Thay đổi .htaccess để phục vụ các tệp được nén trước, như bên dưới. Thông báo trước ở đây là bạn cần nhớ tải lại chúng nếu / khi bạn cập nhật mọi thứ. Điều này cắt bỏ chi phí CPU, ngoài việc phân tích cú pháp .htaccess.

RewriteEngine on
#Check to see if browser can accept gzip files. If so and we have it - serve it!
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there's no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]

Đây chỉ là một câu trả lời thô. Có rất nhiều biến thể về chủ đề này. Tôi viết blog về điều này và thêm khá nhiều tài liệu tham khảo cho các bài viết chuyên sâu hơn tại http://icanhazdot.net/2010/03/23/some-wordpress- ware / . Đọc điều đó và quan trọng hơn, các tài liệu tham khảo tôi chỉ đến - chúng là những tài nguyên tốt.

Xin lưu ý rằng nếu bạn tinker thường xuyên thì người dùng sẽ cần làm mới bộ đệm của họ.

Một plugin tôi thấy cũng rất hữu ích là wp-minify . Điều cần xem với cái này là bạn nên loại trừ các mục cụ thể của trang (biểu mẫu liên hệ, thanh trượt trang trước, v.v.) để bạn không tải xuống lại toàn bộ bộ css, JS, v.v. cho mỗi trang. Đó là một cách tốt để thu nhỏ, kết hợp và nén CSS cơ bản, JS, v.v ... Nó cắt giảm rất nhiều yêu cầu http. Wp-minify chơi tốt với supercache và cũng với các tiêu đề hết hạn mà tôi đã nêu chi tiết ở trên.

Sử dụng Yslow trong Fireorms (Firefox) hoặc tương tự để theo dõi các yêu cầu http của bạn và những gì được và không được nén. Có một cái nhìn vào tiêu đề hết hạn trong đó quá. Bạn sẽ sớm thấy những gì bạn có thể cải thiện.


2
Trong trường hợp ai đó có kế hoạch sao chép / dán Phần thưởng của bạn, có một trường hợp "Viết lại" cần được sửa.
Jeremy L

2
trường hợp nào?
CAD bloke

@Nerdling Bạn có thể vui lòng chỉ ra trường hợp nào cần sửa không? Tôi muốn sử dụng mã trên.
đạp xe

Nó có thể liên quan đến mod gzip bị phản đối trong các phiên bản sau của Apache. Tôi đã phải thay đổi của tôi để mod def def gần đây.
CAD bloke

2
Để có một bộ mặc định tốt cho .htaccess, dự án HTML5 Boilerplate cung cấp một mẫu. github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
Paul Sheldrake

21

Giảm thiểu số lượng plugin bạn chạy chỉ những gì bạn thực sự cần. Đặc biệt lưu ý các plugin bổ sung mã javascript và CSS trên mỗi lần tải trang, ngay cả khi mã đó không được sử dụng trên trang.

Nếu bạn đang tạo chủ đề của riêng mình từ đầu, hãy chia nhỏ CSS của bạn để các tính năng chỉ cần cho các mẫu trang hoặc loại xem cụ thể (bài đăng đơn, lưu trữ, danh mục, v.v.) chỉ được tải khi cần.

Định cấu hình W3TC để sử dụng CDN (như Amazon CloudFront hoặc bất kỳ ứng dụng nào khác được W3TC hỗ trợ).

Xem các tùy chọn Thu nhỏ có phù hợp với bạn không (một số plugin tạo js / css sẽ không giảm thiểu độc đáo, vì vậy hãy chắc chắn kiểm tra trang web của bạn sau khi kích hoạt tính năng thu nhỏ).

Nếu bạn có toàn quyền kiểm soát máy chủ MySQL của mình, hãy đảm bảo rằng bạn đã bật query_cache. Sử dụng tập lệnh điều chỉnh MySQL để tìm các cách khác để tối ưu hóa cấu hình cơ sở dữ liệu của bạn.

Nếu vì lý do nào đó, việc sử dụng CDN có vấn đề, hãy định cấu hình mod_Exires trong thiết lập apache của bạn. Đặt thời gian hết hạn miễn là hợp lý cho các loại tĩnh như hình ảnh, css, javascript, video, âm thanh, v.v.


14

Chạy memcached và sử dụng bộ đệm đối tượng để giảm số lượng truy vấn cơ sở dữ liệu. Điều này lưu trữ dữ liệu từ cơ sở dữ liệu, thay vì các trang. Không chắc chắn nếu w3-Total-cache đã làm điều này.

Hãy chắc chắn rằng bạn đang chạy bộ đệm opcode như APC . (Có nhiều cái khác có sẵn.)


2
APC thực sự làm cho wordpress phản ứng nhanh hơn rất nhiều, đặc biệt là các trang quản trị. NHƯNG, có một số xung đột cấu hình tiềm năng giữa WP-SuperCache và APC. Những thứ này dường như không ảnh hưởng đến W3 Cache.
WhIteSidE

Có một bài viết tuyệt vời từ Mark Jaquith về điều này: APC Object Cache Backend for WordPress . Bạn có thể sử dụng batcache một cách vui vẻ với APC.
icc97

8

Ngoài việc sử dụng một bộ đệm ẩn đĩa như wp-cache, hãy đặt blog của bạn vào một ổ lưu trữ có thuộc tính "noatime" được đặt trên nó. Mặt khác, SSH vào máy chủ của bạn (nếu webhost của bạn cung cấp điều đó) và thường xuyên chạy lệnh này trên các tệp của bạn mỗi vài ngày:

chattr -R +A ~/*

~ / * Có nghĩa là "các tệp của tôi trong thư mục nhà của tôi". Bạn có thể thay đổi đường dẫn đó khi bạn thấy phù hợp. Bạn cũng có thể thiết lập công việc này trên một công việc định kỳ trong cpanel nếu webhost của bạn cung cấp điều đó.

Để biết thêm thông tin về tài sản atime, xem này . Nó tăng tốc hiệu suất đọc đĩa Linux rất nhiều.

Đôi khi trang web của bạn đang bị nhện đập. Bạn có thể sử dụng một công cụ như SpyderSpanker hoặc Chennai Central để lọc những con nhện không giúp mang lại nhiều thứ hạng trang hơn cho trang web của bạn và chỉ làm chậm nó, sau đó điều khiển những con nhện tốt (như Google, Bing, v.v.) bằng cách gửi chúng ngẫu nhiên HTTP 304 Tin nhắn không được sửa đổi.

Một điều khác tôi thấy chỉ là các plugin được viết kém. Nếu bạn tìm hiểu cách tạo plugin, bạn sẽ bắt đầu thấy một số plugin được mã hóa không hiệu quả hoặc thậm chí tìm thấy các khung thời gian, chẳng hạn như bảng cơ sở dữ liệu lấp đầy và không bao giờ bị xóa, lưu trữ những thứ như dữ liệu kết nối đến.

Ngoài tất cả các giải pháp khác ở đây, bạn cũng có thể tạo một trang web WordPress của blog bằng cách lưu trữ nó trên một số PC nút web, tất cả kết nối lại với một cơ sở dữ liệu và một ổ đĩa đơn cho các tệp (chẳng hạn như ổ đĩa được gắn trên NFS ). Kiểm tra Ultra Monkey để biết làm thế nào để mọi thứ diễn ra.


7

Một vài câu trả lời trên đỉnh đầu của tôi:

1) Giảm thiểu số lượng yêu cầu HTTP mà trình duyệt phải gửi đến máy chủ của bạn bằng cách kết hợp JavaScript và CSS khi có thể / thực tế.

2) Giảm tải càng nhiều hình ảnh / phương tiện của bạn phục vụ cho CDN của bên thứ 3 càng tốt, đặc biệt nếu bạn đang sử dụng lưu trữ chia sẻ.

3) Thử giảm số lượng bài đăng bạn đang hiển thị trên trang đầu để giảm tổng thời gian kết xuất.

3a) Hãy thử sử dụng một chủ đề trình bày một vài bài đăng nổi bật đầy đủ trên trang nhất và tất cả các bài đăng cũ hơn khác dưới dạng trích đoạn.


2
+1 để giảm số lượng bài đăng, điều này mang lại một sự thúc đẩy to lớn mà không mất phí. Mọi người không thực sự cần phải xem mười bài viết cũ, tôi chỉ đặt conf của tôi thành tám.
ripper234

7

Bộ nhớ đệm Menu WordPress cũng giúp bạn tăng hiệu suất. Đặc biệt nếu bạn có nhiều Trang hoặc Cấu trúc Menu khổng lồ, điều này cần được xem xét.

Làm điều đó trong 2 bước dễ dàng. Đầu tiên, tạo một chức năng nhận hoặc tạo menu, thay vì gọi wp_nav_menutrực tiếp.

function get_cached_menu( $menuargs ) {

    if ( !isset( $menuargs['menu'] ) ) {

        $theme_locations = get_nav_menu_locations();
        $nav_menu_selected_id = $theme_locations[$menuargs['theme_location']];
        $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );
        $transient = 'menu_' . $termslug->slug . '_transient';

    } else {

        $transient = 'menu_' . $menuargs['menu'] . '_transient';

    }


    if ( !get_transient( $transient ) ) { // check if the menu is already cached

        $menuargs['echo'] = '0'; // set the output to return
        $this_menu = wp_nav_menu( $menuargs ); // build the menu with the given $menuargs
        echo $this_menu; // output the menu for this run
        set_transient( $transient, $this_menu ); // set the transient, where the build HTML is saved

    } else {

        echo get_transient( $transient ); // just output the cached version

    }

}

Trong chủ đề của bạn, thay thế wp_nav_menus bằng get_cached_menu. Bây giờ, mỗi khi menu được gọi, bạn có một Cơ sở dữ liệu thay vì toàn bộ Bản dựng.

Menu không thay đổi thường xuyên - nhưng bạn cũng phải tham gia vào wp_update_nav_menuhành động để xóa tạm thời cũ.

Làm như thế này:

add_action('wp_update_nav_menu', 'my_delete_menu_transients');

function my_delete_menu_transients($nav_menu_selected_id) {

    $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );

    $transient = 'menu_' . $termslug->slug . '_transient';

    delete_transient( $transient ); 

}

Menu sẽ được tạo vào lần tiếp theo khi trang được gọi - và sử dụng phiên bản được lưu trong bộ nhớ cache cho đến khi có người cập nhật lại menu.

Phiên bản cập nhật

Cảm ơn @helgatheviking vì đã chỉ ra một lỗi giữa sên và ID. Tôi đã cập nhật các chức năng để nó hoạt động cả với theme_positionmenu(cho một cuộc gọi trực tiếp của menu).

Các menu luôn được lưu với tên của Menu, không phải vị trí trong Theme.


Đây có vẻ là một ý tưởng thực sự mát mẻ. Tôi đang gặp vấn đề với mã. Khi chúng tôi đang dọn ra thoáng qua, $nav_menu_selected_idlà một con số, trong khi khi gọi get_cached_menu()những menu_idlà một biến chuỗi, vì tham số đó sẽ trở thành ID CSS cho các <ul>phần tử.
đạp xe

5

Sử dụng một lớp cơ sở dữ liệu được cắt tỉa để tối ưu hóa. Chúng tôi đã tạo ra những trải nghiệm tốt với mã riêng để giảm mức sử dụng bộ nhớ và tốc độ truy cập cơ sở dữ liệu. Bên cạnh đó, bạn có thể tự tối ưu hóa cấu trúc cơ sở dữ liệu bằng một số thay đổi nhỏ cũng làm rất nhiều.

Một phần của mã lớp cơ sở dữ liệu có thể được tìm thấy trong trac wordpress, nó không biến nó thành cốt lõi ( Vé số 11799 và có liên quan ).


Giải pháp thú vị. Đây là URL tới Vé Trac trong trường hợp ai cũng quan tâm: core.trac.wordpress.org/ticket/11799
Mike Lee

4

Đối với một trang web bị buôn bán nhiều, bạn nên điều chỉnh tất cả các bộ đệm MySQL cho nội dung hiện có. Bất kể phiên bản nào của WordPress, lớp MySQL có thể được cấu hình .

Trong thực tế, nếu bạn có dữ liệu InnoDB mà không bật innodb_file_per_table, bạn cần dọn dẹp InnoDB bằng cách phân đoạn mỗi bảng thành không gian bảng vật lý của riêng mình . Có thể thực hiện điều chỉnh MySQL tốt ngay cả khi bạn có phần cứng hạn chế . Có nhiều kịch bản để thực hiện tối ưu hóa InnoDB như vậy .

IMHO, bạn không thể lập kế hoạch cài đặt tốt cho my.cnf mà không biết lượng dữ liệu cần định cấu hình. Bạn sẽ phải định kỳ tải một tập dữ liệu hiện tại từ sản xuất vào môi trường dàn dựng, thực hiện tối ưu hóa và đi kèm với các số để định cấu hình trong my.cnf của máy chủ sản xuất.


3

bạn có thể kích hoạt nén đầu ra toàn cầu . điều này sẽ gzip mọi thứ sẽ tự động tắt nếu trình duyệt hỗ trợ nó. Điều này làm giảm đáng kể kích thước của các tệp được truyền, nhưng không làm tăng tải CPU của bạn.


Điều này sẽ có xu hướng làm cho trang web của bạn "cảm thấy" chậm hơn nhiều. Yahoo! tài liệu kỹ thuật đề nghị xả mã cho bạn ngay sau khi kết thúc đầu và trước khi bắt đầu phần thân để các tập lệnh và kiểu có thể bắt đầu tải. Bằng cách đệm toàn bộ trang, bạn ngăn điều này xảy ra và do đó trang "cảm thấy" chậm vì người dùng phải đợi WordPress hiển thị toàn bộ trang trước khi người dùng nhìn thấy bất cứ điều gì.
WhIteSidE

Scott không nói về việc đệm toàn bộ trang mà sử dụng nén đầu ra apache. Đó là một cái gì đó khác biệt, chỉ khi bạn sử dụng nén đầu ra PHP thông qua bộ đệm đầu ra thì điều này sẽ có những thiếu sót mà bạn mô tả một cách mơ hồ. Nhưng dù sao cũng không phải vì cuối cùng, đầu ra đệm có thể khiến mọi thứ nhanh hơn. Điều này có liên quan đến I / O trên máy chủ của bạn.
hakre

3

Gần đây tôi đã nói về chủ đề này tại WordCamp Houston . Tất cả các khuyến nghị ở trên đều tuyệt vời và điều quan trọng là đảm bảo tất cả các công cụ mặt trước được tối ưu hóa hoàn toàn sau đó bạn có thể bắt đầu làm việc với các vấn đề về hiệu năng của bộ nhớ cache và máy chủ.

Kết xuất tiến bộ sẽ làm cho các trang của bạn cảm thấy nhanh hơn vì người dùng sẽ thấy nội dung trang trước khi nó được tải đầy đủ. Để làm điều này, đảm bảo rằng bất kỳ js chặn nào ở dưới cùng của trang và css ở trên cùng.

Ngoài ra, nếu bạn sử dụng nhiều nút phương tiện truyền thông xã hội, bạn có thể tùy chỉnh các tập lệnh để làm cho chúng tải trong iframe sau khi trang được tải đầy đủ. Tôi đã viết một hướng dẫn về cách thực hiện với nút tweet TweetMeMe (hiện đã lỗi thời kể từ khi Twitter phát hành nút r tweet của riêng họ) nhưng vẫn có thể được áp dụng cho các nút chia sẻ khác.

Đối với hiệu suất máy chủ, hãy xem Nginx như một proxy phía trước cho nội dung tĩnh với Apache xử lý việc nâng PHP và MySQL nặng.


2

Vì chưa ai đề cập đến nó, một trong những bước quan trọng nhất để nâng cao hiệu suất của máy chủ kết hợp với bất kỳ thiết lập LAMP nào sẽ là chuyển sang luồng xử lý apache worker và mod_fcgid.

Điều này giải phóng 500 MB bộ nhớ trên máy chủ riêng ảo của tôi.


Tôi đã thử điều này trước đây, nhưng tôi chưa bao giờ có thể có được một môi trường apache worker + fcgi ổn định đang chạy. Nếu bất cứ ai biết về một số hướng dẫn thiết lập tốt cho điều này trong Ubuntu, xin vui lòng gửi chúng. Tôi đặc biệt biết ơn các hướng dẫn chi tiết một số chỉ thị cấu hình Apache ảnh hưởng đến hành vi FCGI và giải thích cách điều chỉnh chúng có thể ảnh hưởng đến việc sử dụng bộ nhớ, hiệu suất, v.v. Hiện tại, tôi đang sử dụng một apache ngã ba với mặt trước nginx- trong máy chủ bộ đệm proxy.
Dougal Campbell

Xác định ổn định. Cài đặt của tôi đang chạy rất ổn định, nhưng bạn sẽ cần 2GB RAM trong cấu hình của tôi. Bạn chỉ cần đọc và chỉnh. tài liệu của apache trên fcgi khá rộng.
lưới sân

3
hãy thử kiểm tra virtualmin.com nó rất ổn định và miễn phí
Ünsal Korkmaz

1

Hướng dẫn kiểm tra plugin chậm lại

Có một plugin đơn giản đẹp mắt có tên là Thời gian tải trang , bổ sung bộ đếm thời gian cho phần chân trang của bạn. Nó thực sự chỉ có bốn dòng mã:

<?php
function ur_pageload_footer() {
    printf(__('Page in %s seconds', 'pageload'), timer_stop());
}
add_action('wp_footer', 'ur_pageload_footer')

Sau đó:

  1. Tạo một bảng tính
  2. Liệt kê tất cả các plugin đang hoạt động của bạn và đặt chúng vào đó
  3. Làm mới trang ba lần lưu ý thời gian tải trang mỗi lượt
  4. Lần lượt đi qua các plugin của bạn để tắt chúng
  5. Lặp lại bước 3
  6. Lưu ý thứ tự bạn đã hủy kích hoạt plugin

Bảng tính của bạn sẽ trông giống như

+-------+-------+-------+-------+--------+
| Run 1 | Run 2 | Run 3 | Order | Plugin |

Vì vậy, nếu sau khi tắt plugin, thời gian phản hồi của trang tăng lên đáng kể thì bạn có thể xem liệu bạn có thể tránh plugin đó không.

Tôi đã tìm thấy hai plugin gây ra mqtranslate làm chậm 'đáng kể' và Plugin điều hướng đa cấp (khá cũ nhưng tốt) .


Sẽ thật tuyệt khi tự động hóa quá trình này là ph Phantomjs và selenium (hoặc một cái gì đó tương tự) để nó tự động chạy và đưa ra một báo cáo nhỏ ở cuối.
Paul Sheldrake

-1

Gắn bó với plugin W3 Total Cache cho chức năng lưu trữ trong WordPress. Cho phép lưu bộ đệm trang và bộ đệm cơ sở dữ liệu từ trang cài đặt của plugin. Đảm bảo bạn chọn 'Bộ đệm ẩn PHP thay thế (APC / APCu)' làm cơ chế bộ đệm. KHÔNG kích hoạt bất kỳ sự thu nhỏ nào trong W3 Total Cache vì có nhiều cơ hội để bạn phá vỡ sự xuất hiện và / hoặc chức năng của trang web của bạn. Chúng tôi sẽ để nó cho Cloudflare.

Khi bạn đã hoàn tất việc định cấu hình các chức năng còn lại của plugin, hãy thiết lập Cloudflare cho trang web của bạn. Đảm bảo bạn cũng bật Cloudflare trong cài đặt W3 Total Cache trong 'Tiện ích mở rộng'.

Cloudflare là Mạng phân phối nội dung lưu trữ tất cả các nội dung tĩnh (tệp hình ảnh, CSS, JS, tài liệu, v.v.) từ trang web của bạn và phục vụ nó cho khách truy cập của bạn từ máy chủ toàn cầu của họ. Điều này có thể giúp tăng tốc thời gian tải trang và giảm tải trên máy chủ của bạn. Để biết danh sách các loại tệp được lưu trữ bởi Cloudlfare, hãy kiểm tra danh sách này . Hơn nữa, Cloudflare có gói miễn phí.

Trong Cloudflare, đặt mức bộ nhớ cache thành tiêu chuẩn và đặt hết hạn bộ nhớ cache của trình duyệt thành một cái gì đó ít nhất lớn hơn 20 giờ. Bật Luôn trực tuyến ™ để ngay cả khi máy chủ của bạn gặp sự cố, Cloudflare sẽ phân phát các trang tĩnh của trang web của bạn từ bộ đệm của họ. Đồng thời bật tính năng tự động thu nhỏ của họ (hãy nhớ tại sao tôi yêu cầu bạn không bật tính năng thu nhỏ là W3 Total Cache? Bởi vì Cloudflare làm điều đó tốt hơn!) Sau đó, đặt Rocket Loader ™ thành tự động.

Đây là một đoạn trích về những gì Rocket Loader làm:

  • Giảm số lượng yêu cầu mạng bằng cách gói các tệp JavaScript, thậm chí tài nguyên của bên thứ ba, để tránh làm chậm kết xuất trang.

  • Tải tập lệnh không đồng bộ, bao gồm tập lệnh của bên thứ ba, để
    chúng không chặn nội dung trang của bạn tải
    ngay lập tức.

  • Các tập lệnh lưu trữ cục bộ (sử dụng LocalStorage, có sẵn trên hầu hết các
    trình duyệt và điện thoại thông minh) để chúng không được tải lại trừ khi
    cần thiết.

Thêm thông tin có thể được tìm thấy ở đây .

Nếu có thể hãy chuyển sang khung Genesis cho WordPress vì chúng sạch mà không có bất kỳ sự phình to nào . Genesis được xây dựng với tốc độ và SEO trong tâm trí. Bản thân tôi đã kiểm tra nó và điểm số PageSpeed ​​của tôi rất tốt. Ngoài ra, nếu bạn đang sử dụng Genesis, thì đừng quên bật bộ đệm ẩn trong cài đặt W3 Total Cache.

Vì hiện tại bạn đang sử dụng Cloudlfare dưới dạng CDN, bạn có thể sử dụng một plugin như ' Tưởng tượng ' hoặc ' Nén hình ảnh JPEG & PNG ' của TingPNG để nén hình ảnh của bạn. Cả hai đều là các plugin miễn phí có sẵn trong kho plugin WordPress.org. Ngoài ra, Imagify hỗ trợ thuật toán nén tổn thất mạnh mẽ.

Cuối cùng, cài đặt plugin ' Xóa chuỗi truy vấn khỏi tài nguyên tĩnh ' khỏi kho lưu trữ WordPress để loại bỏ chuỗi truy vấn khỏi tài nguyên tĩnh như tệp CSS & JS. Điều này là do các tài nguyên có một bộ nhớ cache và một số máy chủ lưu trữ bộ nhớ cache (trong đó, Cloudflare cũng là một máy chủ lưu trữ bộ đệm proxy).

Sau đó cài đặt ' Sử dụng plugin Thư viện của Google . Plugin này cho phép trang web WordPress của bạn sử dụng CDN Thư viện AJAX của Google thay vì phục vụ trực tiếp các tệp này từ cài đặt WordPress của bạn.

Một số lợi ích là:

  • Tăng khả năng người dùng đã lưu các tệp này vào bộ đệm.
  • Mất thêm tải khỏi máy chủ của bạn.
  • Sử dụng các phiên bản nén của các thư viện (khi có sẵn).
  • Các máy chủ của Google được thiết lập để đàm phán nén HTTP với trình duyệt yêu cầu.

Cuối cùng nhưng không kém phần quan trọng, hãy sử dụng plugin ' WP-Optimize ' của Ruhani Rabin để dọn dẹp và tối ưu hóa cơ sở dữ liệu của bạn.

Hy vọng điều này trả lời câu hỏi của bạn liên quan đến việc tối ưu hóa WordPress để giảm tải máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.