นอกจากการติดตั้ง W3 Total Cache หรือปลั๊กอินการแคชอื่นฉันสามารถทำตามขั้นตอนใดบ้างเพื่อให้แน่ใจว่าชุดรูปแบบและไซต์ของฉันจะทำงานอย่างรวดเร็วที่สุด
นอกจากการติดตั้ง W3 Total Cache หรือปลั๊กอินการแคชอื่นฉันสามารถทำตามขั้นตอนใดบ้างเพื่อให้แน่ใจว่าชุดรูปแบบและไซต์ของฉันจะทำงานอย่างรวดเร็วที่สุด
คำตอบ:
คุณสามารถติดตั้ง WordPress บน Nginx มีทรัพยากรจำนวนมากที่จะช่วย:
ข้อมูลประสิทธิภาพบางอย่างจากลิงค์สุดท้ายนั้น (ซึ่งดูเหมือนว่าจะแตกต่างจากการตั้งค่าเล็กน้อยอื่น ๆ )
ดังนั้นฉันจึงตัดสินใจวางพร็อกซีไว้หน้าเวิร์ดเพรสเพื่อแคชคงที่ให้มากที่สุด ทราฟฟิกที่ไม่ได้รับการรับรองความถูกต้องทั้งหมดจะได้รับบริการโดยตรงจากแคชไฟล์ nginx รับคำขอบางอย่าง (เช่นการสร้างฟีด RSS) จาก 6 หน้า / วินาทีถึง 7000+ หน้า / วินาที OOF Nginx จัดการจัดการการบันทึกและ gzipping โดยปล่อยให้อาปาเช่แบ็กเอนด์ที่หนักกว่าทำสิ่งที่ดีที่สุด: ให้บริการเพจเวิร์ดเพรสแบบไดนามิกเฉพาะเมื่อจำเป็น
...
ใน nginx - มันมีประสิทธิภาพมากมันน่ากลัว ฉันไม่เคยเห็นมาก่อนว่ามันใช้ RAM มากกว่า 10 ถึง 15 เมกะไบต์และมีซีพียูจำนวนหนึ่งแม้จะอยู่ภายใต้ภาระงานหนักที่สุดของเราก็ตาม กราฟ ganglia ของเราไม่ได้โกหก: เราลดความต้องการหน่วยความจำลงครึ่งหนึ่งทำให้ปริมาณงานผ่านเครือข่ายของเราเพิ่มขึ้นเป็นสองเท่าและลดภาระของเราโดยสิ้นเชิง เราไม่มีปัญหาโดยทั่วไปตั้งแต่เราตั้งค่านี้
ตั้งค่าการหมดอายุฝั่งไคลเอ็นต์สำหรับสิ่งต่าง ๆ เช่น css, รูปภาพ, JavaScript และอื่น ๆ ที่ไม่จำเป็นต้องดาวน์โหลดซ้ำสำหรับการดูหน้าเว็บแต่ละครั้ง นี่คือสิ่งที่สร้างความแตกต่างที่ใหญ่ที่สุดในการโหลดเว็บไซต์ของฉัน การดาวน์โหลดที่เร็วที่สุดคือการดาวน์โหลดที่ไม่เคยเกิดขึ้น ...
# 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
คุณอาจ pre-gzip ทุกอย่างที่คุณสามารถทำได้ (7-zip เป็นเครื่องมือที่ดีสำหรับเรื่องนี้) และอัปโหลดในที่เดียวกับไฟล์ที่คุณเพิ่ง gzipped เปลี่ยน. htaccess เพื่อให้บริการไฟล์ก่อน gzipped ดังนี้ คำเตือนที่นี่คือคุณจำเป็นต้องจำอีกครั้ง gzip พวกเขาหาก / เมื่อคุณอัปเดตสิ่ง สิ่งนี้จะตัดโอเวอร์เฮดของ CPU ออกจากการแยก. 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]
นี่เป็นเพียงคำตอบดิบ ธีมนี้มีหลากหลายรูปแบบ ฉัน blogged เกี่ยวกับเรื่องนี้และเพิ่มค่อนข้างไม่กี่อ้างอิงไปยังบทความอื่น ๆ ในเชิงลึกที่http://icanhazdot.net/2010/03/23/some-wordpress-stuff/ อ่านและที่สำคัญกว่านั้นการอ้างอิงที่ฉันชี้ไป - เป็นแหล่งข้อมูลที่ดี
โปรดระวังว่าหากคุณคนจรจัดบ่อยครั้งผู้ใช้จะต้องรีเฟรชแคช
ปลั๊กอินผมพบว่ามีประโยชน์มากเกินไปWP-ลดขนาด สิ่งที่ควรรับชมคือคุณควรยกเว้นไอเท็มเฉพาะหน้า (แบบฟอร์มผู้ติดต่อตัวเลื่อนหน้าแรก ฯลฯ ) ดังนั้นคุณจะไม่ได้ดาวน์โหลดทั้งชุดของ CSS, JS และอื่น ๆ สำหรับแต่ละหน้า มันเป็นวิธีที่ดีในการย่อรวมและบีบอัด CSS พื้นฐานของคุณ JS ฯลฯ มันลดคำขอ HTTP จำนวนมาก Wp-minify เล่นได้ดีกับ supercache และส่วนหัวที่หมดอายุซึ่งฉันได้รายละเอียดไว้ด้านบน
ใช้ Yslow ใน Firebug (Firefox) หรือคล้ายกันเพื่อตรวจสอบคำขอ HTTP ของคุณและอะไรคือและไม่ถูกบีบอัด ดูที่ส่วนหัวที่หมดอายุด้วย คุณจะเห็นสิ่งที่คุณสามารถปรับปรุงได้ในไม่ช้า
ลดจำนวนปลั๊กอินที่คุณเรียกใช้ให้เหลือเฉพาะสิ่งที่คุณต้องการจริงๆ โดยเฉพาะอย่างยิ่งให้ระวังปลั๊กอินที่เพิ่มจาวาสคริปต์และโค้ด CSS ในการโหลดหน้าเว็บทุกครั้งแม้ว่าจะไม่ได้ใช้รหัสนั้นในหน้าเว็บ
หากคุณกำลังสร้างธีมของคุณเองตั้งแต่เริ่มต้นให้แยก CSS ลงเพื่อให้คุณลักษณะที่จำเป็นเฉพาะสำหรับเทมเพลตหน้าหรือประเภทมุมมอง (โพสต์เดียวคลังเก็บหมวดหมู่และอื่น ๆ ) จะถูกโหลดเมื่อจำเป็นเท่านั้น
กำหนดค่า W3TC เพื่อใช้ CDN (เช่น Amazon CloudFront หรืออื่น ๆ ที่รองรับโดย W3TC)
ดูว่าตัวเลือก Minify นั้นเหมาะกับคุณหรือไม่ (ปลั๊กอินบางตัวสร้าง js / css ที่ไม่ลดขนาดลงอย่างแน่นอนดังนั้นให้ทดสอบเว็บไซต์ของคุณหลังจากเปิดใช้งานคุณสมบัติลดขนาด)
หากคุณมีการควบคุมเซิร์ฟเวอร์ MySQL ของคุณอย่างเต็มที่ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งาน query_cache ใช้สคริปต์ปรับแต่ง MySQLเพื่อค้นหาวิธีอื่น ๆ เพื่อปรับการตั้งค่าฐานข้อมูลของคุณให้เหมาะสม
หากใช้ CDN เป็นปัญหาด้วยเหตุผลบางอย่างให้กำหนดค่า mod_expires ในการตั้งค่า apache ของคุณ ตั้งเวลาหมดอายุตราบเท่าที่เหมาะสมสำหรับประเภทคงที่เช่นรูปภาพ, css, javascript, วิดีโอ, เสียง ฯลฯ
เรียกใช้memcachedและใช้แคชวัตถุเพื่อลดจำนวนการสืบค้นฐานข้อมูล สิ่งนี้แคชข้อมูลจากฐานข้อมูลไม่ใช่เพจ ไม่แน่ใจว่า w3-total-cache ทำเช่นนี้แล้วหรือไม่
ให้แน่ใจว่าคุณกำลังใช้แคช opcode เช่นAPC (มีอีกหลายอย่างที่ใช้ได้)
นอกเหนือจากการใช้ปลั๊กอินแคชดิสก์เช่น wp-cache ให้วางบล็อกของคุณบนไดรฟ์ข้อมูลโฮสต์ที่มีคุณสมบัติ "noatime" ตั้งอยู่ มิฉะนั้น SSH จะเข้าสู่โฮสต์ของคุณ (หากเว็บโฮสต์ของคุณระบุไว้) และเรียกใช้คำสั่งนี้เป็นประจำในไฟล์ของคุณทุกสองสามวัน:
chattr -R +A ~/*
เครื่องหมาย ~ / * หมายถึง "ไฟล์ของฉันภายใต้ไดเรกทอรีบ้านของฉัน" คุณสามารถเปลี่ยนเส้นทางนั้นตามที่เห็นสมควร นอกจากนี้คุณยังสามารถตั้งค่านี้ในงาน cron ใน cpanel หากเว็บโฮสต์ของคุณมี
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอสังหาริมทรัพย์ atime ดูนี้ มันเพิ่มความเร็วในการอ่านดิสก์ Linux อย่างมาก
บางครั้งไซต์ของคุณกำลังถูกแมงมุมโจมตี คุณสามารถใช้เครื่องมือเช่น SpyderSpanker หรือ Chennai Central เพื่อกรองแมงมุมที่ไม่ช่วยเพิ่มอันดับหน้าของเว็บไซต์ของคุณและชะลอความเร็วลงจากนั้นจึงใช้สไปเดอร์ที่ดี (เช่น Google, Bing ฯลฯ ) HTTP 304 ไม่แก้ไขข้อความ
สิ่งที่ฉันเห็นก็คือปลั๊กอินที่เขียนไม่ดีเท่านั้น หากคุณเรียนรู้วิธีสร้างปลั๊กอินคุณจะเริ่มเห็นว่าปลั๊กอินบางตัวมีการเข้ารหัสอย่างไม่มีประสิทธิภาพหรือแม้แต่ค้นหาไทม์บอมเช่นตารางฐานข้อมูลที่เติมและเติมและไม่เคยถูกกำจัดออกเก็บสิ่งต่าง ๆ เช่นข้อมูลการเชื่อมต่อขาเข้า
นอกเหนือจากโซลูชันอื่น ๆ ทั้งหมดที่นี่คุณยังสามารถสร้าง WordPress เว็บฟาร์มของบล็อกของคุณโดยโฮสติ้งมันบนพีซีหลายเว็บโหนดที่เชื่อมต่อกลับไปยังฐานข้อมูลเดียวเดียวและดิสก์ไดรฟ์เดียวสำหรับไฟล์ (เช่นไดรฟ์ที่ติดตั้งผ่าน NFS ) ลองดูUltra Monkeyว่าจะทำอย่างไรให้ทุกอย่างดำเนินไปได้
คำตอบเล็กน้อยจากส่วนหัวของฉัน:
1) ลดจำนวนคำขอ HTTP ที่เบราว์เซอร์จะต้องทำกับโฮสต์ของคุณโดยเชื่อมต่อ JavaScript และ CSS เมื่อเป็นไปได้ / ใช้งานได้จริง
2) ลดการให้บริการภาพ / สื่อของคุณไปยัง CDN ของบุคคลที่สามให้มากที่สุดโดยเฉพาะอย่างยิ่งถ้าคุณใช้โฮสติ้งที่ใช้ร่วมกัน
3) ลองลดจำนวนโพสต์ที่คุณแสดงในหน้าแรกเพื่อลดเวลาในการเรนเดอร์ทั้งหมด
3a) ลองใช้ชุดรูปแบบที่นำเสนอโพสต์ที่โดดเด่นไม่กี่โพสต์ในหน้าแรกและโพสต์อื่น ๆ ทั้งหมดที่เก่ากว่าเป็นข้อความที่ตัดตอนมา
การแคชเมนู WordPress ยังช่วยเพิ่มประสิทธิภาพให้กับคุณ โดยเฉพาะอย่างยิ่งถ้าคุณมีหน้าหรือโครงสร้างเมนูขนาดใหญ่จำนวนมากสิ่งนี้ควรได้รับการพิจารณา
ทำได้ง่ายๆใน 2 ขั้นตอน ตอนแรกสร้างฟังก์ชั่นที่ได้รับหรือสร้างเมนูแทนการโทรwp_nav_menu
โดยตรง
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
}
}
ในรูปแบบของคุณแทนที่wp_nav_menu
S get_cached_menu
กับ ตอนนี้ทุกครั้งที่มีการเรียกเมนูคุณมีหนึ่งแบบสอบถามฐานข้อมูลแทนที่จะเป็นเมนูทั้งหมด
เมนูไม่เปลี่ยนแปลงบ่อยนัก - แต่คุณต้องขอให้wp_update_nav_menu
ดำเนินการเพื่อลบทรานแซคชันเก่า
ทำเช่นนี้:
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 );
}
เมนูจะถูกสร้างขึ้นในครั้งต่อไปที่มีการเรียกเพจ - และใช้เวอร์ชันแคชจนกว่าจะมีคนอัพเดตเมนูอีกครั้ง
อัปเดตเวอร์ชันแล้ว
ขอบคุณ @helgatheviking ที่ชี้ให้เห็นข้อผิดพลาดระหว่างตัวบุ้งและรหัส ฉันอัปเดตฟังก์ชั่นเพื่อให้ทำงานได้ทั้งกับtheme_position
และmenu
(สำหรับการโทรโดยตรงของเมนู)
เมนูจะถูกบันทึกด้วยชื่อของเมนูไม่ใช่ตำแหน่งในธีม
$nav_menu_selected_id
นั่นคือตัวเลขขณะที่เรียกget_cached_menu()
the menu_id
is เป็นตัวแปรสตริงเนื่องจากพารามิเตอร์นั้นกลายเป็น CSS ID สำหรับ<ul>
องค์ประกอบ
ใช้คลาสฐานข้อมูลที่ถูกตัดแต่งเพื่อปรับให้เหมาะสม เราสร้างประสบการณ์ที่ดีด้วยรหัสของตัวเองเพื่อลดการใช้หน่วยความจำและความเร็วในการเข้าถึงฐานข้อมูล ถัดจากนั้นคุณสามารถปรับโครงสร้างของฐานข้อมูลได้เองโดยการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ที่ทำได้ดีเช่นกัน
ส่วนของรหัสคลาสฐานข้อมูลสามารถพบได้ใน wordpress trac มันไม่ได้ทำให้มันกลายเป็นแกนหลัก ( # 11799 ตั๋วและที่เกี่ยวข้อง )
สำหรับเว็บไซต์ที่มีการค้ามนุษย์สูงคุณควรปรับบัฟเฟอร์ MySQL ทั้งหมดสำหรับเนื้อหาที่มีอยู่ในตอนนี้ โดยไม่คำนึงถึงรุ่นของเวิร์ดเพรส, ชั้น MySQL สามารถมีการกำหนดค่าของการคำนวณ
ในความเป็นจริงถ้าคุณมีข้อมูล InnoDB โดยไม่เปิดใช้งาน innodb_file_per_table คุณจะต้องล้างข้อมูล InnoDB โดยแบ่งส่วนตารางแต่ละตารางให้เป็นตารางทางกายภาพจริง มันเป็นไปได้ที่จะทำการปรับแต่ง MySQL ดีแม้ว่าคุณจะมีฮาร์ดแวร์ จำกัด มีหลายสถานการณ์สำหรับการทำเพิ่มประสิทธิภาพ InnoDB ดังกล่าว
IMHO คุณไม่สามารถวางแผนการตั้งค่าที่ดีสำหรับ my.cnf โดยไม่ทราบจำนวนข้อมูลที่จะกำหนดค่า คุณจะต้องโหลดชุดข้อมูลปัจจุบันเป็นระยะ ๆ จากการผลิตลงในสภาพแวดล้อมการจัดเตรียมทำการปรับให้เหมาะสมและออกมาพร้อมกับตัวเลขเพื่อกำหนดค่าใน my.cnf ของเซิร์ฟเวอร์การผลิต
คุณสามารถเปิดใช้งานทั่วโลกบีบอัดเอาท์พุท สิ่งนี้จะ gzip ทุกอย่างออกไปโดยอัตโนมัติหากเบราว์เซอร์รองรับ สิ่งนี้จะลดขนาดไฟล์ที่ถ่ายโอนลงอย่างมาก แต่เพิ่มภาระซีพียูของคุณ
ฉันเพิ่งได้พูดคุยเกี่ยวกับเรื่องนี้ได้ที่งาน Wordcamp ฮูสตัน คำแนะนำทั้งหมดข้างต้นนั้นยอดเยี่ยมและสิ่งสำคัญคือต้องแน่ใจว่าส่วนหน้าทั้งหมดนั้นได้รับการปรับให้เหมาะสมที่สุดจากนั้นคุณสามารถเริ่มทำงานกับปัญหาแคชและประสิทธิภาพของเซิร์ฟเวอร์
การแสดงผลแบบก้าวหน้าจะทำให้หน้าเว็บของคุณรู้สึกเร็วขึ้นเนื่องจากผู้ใช้จะเห็นเนื้อหาของหน้าเว็บก่อนที่จะโหลดแบบเต็ม ในการทำเช่นนี้ตรวจสอบให้แน่ใจว่ามีการปิดกั้น js ที่ด้านล่างสุดของหน้าและ css อยู่ที่ด้านบนสุด
นอกจากนี้หากคุณใช้ปุ่มโซเชียลมีเดียมากมายคุณสามารถปรับแต่งสคริปต์เพื่อให้โหลดใน iframe หลังจากโหลดเพจเสร็จแล้ว ฉันเขียนบทช่วยสอนเกี่ยวกับวิธีการใช้ปุ่มทวีตซ้ำทวีต (ตอนนี้ล้าสมัยตั้งแต่ Twitter ปล่อยปุ่มรีทวีตของตัวเอง) แต่ยังสามารถใช้กับปุ่มแชร์อื่น ๆ ได้
สำหรับประสิทธิภาพของเซิร์ฟเวอร์ให้ดูที่ Nginx เป็นพร็อกซีส่วนหน้าสำหรับเนื้อหาแบบคงที่ด้วย Apache ที่จัดการยก PHP และ MySQL อย่างหนัก
หนึ่งในขั้นตอนที่สำคัญที่สุดในการปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์ร่วมกับการตั้งค่า LAMP คือการเปลี่ยนไปใช้เธรดของ apache และ mod_fcgid
ทำให้หน่วยความจำเพิ่มขึ้น 500MB บนเซิร์ฟเวอร์ส่วนตัวเสมือนของฉัน
มีปลั๊กอินที่เรียบง่ายสวยงามเรียกว่าเวลาในการโหลดหน้าเว็บซึ่งเพิ่มตัวจับเวลาลงในส่วนท้ายของหน้าของคุณ จริง ๆ แล้วมันมีเพียงสี่บรรทัดของรหัส:
<?php
function ur_pageload_footer() {
printf(__('Page in %s seconds', 'pageload'), timer_stop());
}
add_action('wp_footer', 'ur_pageload_footer')
แล้ว:
สเปรดชีตของคุณควรมีลักษณะเช่นนี้
+-------+-------+-------+-------+--------+
| Run 1 | Run 2 | Run 3 | Order | Plugin |
ดังนั้นหากหลังจากปิดใช้งานปลั๊กอินเวลาตอบสนองของหน้าจะเพิ่มขึ้นอย่างมากจากนั้นคุณสามารถดูว่าคุณสามารถหลีกเลี่ยงปลั๊กอินนั้นได้หรือไม่
ผมพบว่าสองปลั๊กอินที่ทำให้เกิด 'สำคัญ' ชะลอตัวลงmqtranslateและ (ค่อนข้างเก่า แต่ดี) หลายระดับปลั๊กอินนำร่อง
ติดกับ ปลั๊กอินW3 Total Cacheสำหรับฟังก์ชั่นแคชใน WordPress เปิดใช้งานการแคชหน้าและการแคชฐานข้อมูลจากหน้าการตั้งค่าของปลั๊กอิน ตรวจสอบให้แน่ใจว่าคุณเลือก 'แคช PHP สำรอง (APC / APCu)' เป็นกลไกการแคช อย่าเปิดใช้งานการลดขนาดใด ๆ ใน W3 Total Cache เนื่องจากมีโอกาสมากมายที่คุณจะแยกลักษณะและ / หรือการทำงานของไซต์ออก เราจะทิ้งไว้ที่ Cloudflare
เมื่อเสร็จสิ้นการกำหนดค่าส่วนที่เหลือของฟังก์ชันปลั๊กอินให้ตั้งค่า Cloudflare สำหรับเว็บไซต์ของคุณ ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งาน Cloudflare ในการตั้งค่าแคชรวมของ W3 ภายใต้ 'ส่วนขยาย'
Cloudflare เป็นเครือข่ายการจัดส่งเนื้อหาที่แคชเนื้อหาคงที่ทั้งหมด (ไฟล์รูปภาพ, CSS, JS, เอกสาร, ฯลฯ ) จากเว็บไซต์ของคุณและให้บริการแก่ผู้เข้าชมของคุณจากเซิร์ฟเวอร์ทั่วโลก วิธีนี้จะช่วยเร่งความเร็วในการโหลดหน้าเว็บและลดการโหลดบนเซิร์ฟเวอร์ของคุณ สำหรับรายการประเภทไฟล์ที่แคชไว้โดย Cloudlfare ชำระเงินรายชื่อนี้นี้ นอกจากนี้ Cloudflare มีแผนฟรี
ใน Cloudflare ให้ตั้งค่าระดับการแคชเป็นมาตรฐานและตั้งค่าการหมดอายุแคชของเบราว์เซอร์เป็นอย่างน้อยมากกว่า 20 ชั่วโมง เปิดใช้งาน Always Online ™เพื่อให้เซิร์ฟเวอร์ของคุณหยุดทำงาน Cloudflare จะให้บริการหน้าคงที่ของเว็บไซต์ของคุณจากแคช นอกจากนี้ยังเปิดใช้งานคุณสมบัติลดขนาดอัตโนมัติของพวกเขา (จำไว้ว่าทำไมฉันขอให้คุณไม่เปิดใช้งานการลดขนาดเป็น W3 Total Cache เพราะ Cloudflare ทำได้ดีกว่า!) จากนั้นตั้งค่า Rocket Loader ™เป็นอัตโนมัติ
นี่คือข้อความที่ตัดตอนมาจากสิ่งที่ Rocket Loader ทำ:
ลดจำนวนการร้องขอเครือข่ายด้วยการรวมไฟล์ JavaScript รวมถึงทรัพยากรบุคคลที่สามเพื่อหลีกเลี่ยงการชะลอการแสดงผลหน้าเว็บ
การโหลดสคริปต์แบบอะซิงโครนัสรวมถึงสคริปต์บุคคลที่สามเพื่อ
ไม่ให้บล็อกเนื้อหาของหน้าเว็บของคุณโหลด
ทันที
การแคชสคริปต์ในเครื่อง (ใช้ LocalStorage ซึ่งมีอยู่ใน
เบราว์เซอร์และสมาร์ทโฟนส่วนใหญ่) ดังนั้นจึงไม่สามารถดึงข้อมูลออกมาได้อีกเว้นแต่
จำเป็น
ข้อมูลเพิ่มเติมสามารถดูได้ที่นี่ที่นี่
ถ้าเป็นไปได้ให้สลับไปยังเฟรมเวิร์ก Genesis สำหรับ WordPress เพราะสะอาดโดยไม่มีอะไรเลยขยายGenesis ถูกสร้างขึ้นด้วยความเร็วและ SEO ในใจ ฉันทดสอบตัวเองแล้วและคะแนน PageSpeed ของฉันก็ดี นอกจากนี้หากคุณใช้ Genesis อย่าลืมเปิดใช้งานแคชแฟรกเมนต์ในการตั้งค่าแคชรวม W3
ตั้งแต่ตอนนี้คุณกำลังใช้ Cloudlfare เป็น CDN คุณสามารถใช้ประโยชน์จากปลั๊กอินเช่น ' Imagify ' หรือ ' บีบอัดภาพ JPEG และ PNG ' โดย TingPNG เพื่อบีบอัดรูปภาพของคุณ ทั้งสองเป็นปลั๊กอินฟรีที่มีอยู่ในที่เก็บปลั๊กอิน WordPress.org นอกจากนี้ Imagify ยังสนับสนุนอัลกอริทึมการบีบอัดแบบ lossy
สุดท้ายให้ติดตั้งปลั๊กอิน' ลบ Query Strings จาก Static Resource ' จากที่เก็บ WordPress เพื่อที่จะลบสตริงการสืบค้นจากแหล่งข้อมูลคงที่เช่นไฟล์ CSS & JS นี่เป็นเพราะทรัพยากรที่มี“?” หรือ“ &” ใน URL ไม่ได้ถูกแคชโดยเซิร์ฟเวอร์แคชพร็อกซีบางตัว (จำไว้ว่า Cloudflare เป็นเซิร์ฟเวอร์แคชพร็อกซีด้วย)
จากนั้นติดตั้งปลั๊กอิน' ใช้ Google Libraries ' ปลั๊กอินนี้ช่วยให้ไซต์ WordPress ของคุณใช้ AJAX Library API CDN ของ Google แทนที่จะให้บริการไฟล์เหล่านี้จากการติดตั้ง WordPress ของคุณโดยตรง
ประโยชน์บางประการคือ:
สุดท้าย แต่ไม่ท้ายสุดให้ใช้ปลั๊กอิน' WP-Optimize ' โดย Ruhani Rabin เพื่อทำความสะอาดและปรับฐานข้อมูลของคุณให้เหมาะสม
หวังว่านี่จะตอบคำถามของคุณเกี่ยวกับการปรับแต่ง WordPress เพื่อลดภาระของเซิร์ฟเวอร์