WordPress Caching Plugin ไหนดีที่สุด?

ถ้าใครพบว่าเว็บที่ทำด้วย wordpress ของตนเองนั้นโหลดช้า ? การทำ Cache นั้นเป็นสิ่งแรกที่ควรทำ แต่เนื่องจาก wordpress caching plugin มีหลายตัวจึงไม่รู้จะเลือกใช้ตัวไหนดี ลองมาดู รีวิว plug-in ต่างๆ เพื่อที่จะได้นำไปใช้ได้ตามความเหมาะสมของเว็บกันครับ

Caching คืออะไร

ทุกๆครั้งที่เราเข้าไปเว็บ ทาง server จะทำกระบวณการมากมาย ตั้งแต่ excute php, php เองก็ ไปดึงข้อมูลจาก database ผลลัพท์สุดท้ายออกมาเป็น html ให้เราเห็นกัน ซึ่งขั้นตอนต่างๆ เหล่านี้บางทีเกิดขึ้น 20-200 ครั้งต่อหน้า! ซึ่งเป็นตัวการที่ทำให้เว็บช้า

การทำ  cache หรือ caching ก็คือ คนแรกที่เข้ามา Server ก็ทำตามกระบวนการที่ได้กล่าวมาขั้นต้นเหมือนกันแต่เก็บผลลัพท์ไว้ ถ้าเกิดมีคนอื่นเข้ามาหน้าเดียวกันอีก Server ก็จะส่งผลลัพท์ที่เก็บไว้ให้เลย

ตัวอย่างที่นำมาทดสอบ

  • ใช้ Apache Benchmark ในการทำ Benchmark
  • ใช้ WordPress 2.9.1 โดยติดตั้ง plugins Akismet, All in One SEO Pack และ Google XML Sitemaps
  • เว็บรันอยู่ shared server ที่มี traffic ปกติเพื่อให้การทำ benchmarks ไม่โดนรบกวนและให้เหมือนกับเว็บทั่วไปที่รันอยู่บน share server เหมือนกัน
  • ทดลองโดยส่ง 1000 request จาก 10 ที่พร้อมกัน ส่งไป 3 ครั้ง แต่ละครั้งคนละเวลา(อาจจะเป็น เช้า เย็น กลางคืน) แล้วนำผลเฉลี่ยของทั้ง 3 ครั้งมาคิด
  • เว็บประกอบด้วย เนื้อหาโดยประมาณ, ภาพ, js และstylesheet ดังภาพข้างล่าง

blog_stats

ไม่มี cache

เริ่มต้นจากการ ไม่ได้ทำ cache เลย เพื่อที่จะได้นำไปเปรียบเทียบกับการติดตั้ง caching plug-in ต่างๆ

data_nocache

จากรูปจะเห็นได้ว่าใน 1 วินาที server จัดการได้ 13.96 requests เท่านั้น

WP-Cache

http://wordpress.org/extend/plugins/wp-cache/

WP-Cache เป็น plug-in ที่ใช้และ install ง่าย แต่ plug-in ตัวนี้ได้ลง ไฟล์บางไฟล์ไว้นอกโฟรเดอร์ plugin ซึ่งอาจทำให้เกิด “sem-get” error ได้เวลาเรา uninstall วิธีแก้ก็คือเข้าไปที่ wp-content/wp-cache-config.php แล้วเอา comment ตรงบรรทัด $use_flock ออก

data_wpcache

ผลออกมาถือว่าใช้ได้เลย

WP Super Cache

http://wordpress.org/extend/plugins/wp-super-cache/

WP Super Cache ตัวนี้คนใช้เยอะ โดยรวมถือว่าดีทั้ง install และ uninstall ง่าย ไม่ทิ้งไฟล์ไว้เวลา deactivate

ถ้าติดตั้งแล้วได้ “gzuncompress” error ก็ไม่เป็นไร เพราะไม่มีผลกระทบกับ caching operation.

plug-in ตัวนี้มี option ให้ปรับแต่งด้วยแต่มีอันหนึ่งน่าสนใจครับคือ Compression

data_supercache

ถ้าเปิด Compression

data_supercache_compress

ตรงนี้ต้องระวังหน่อยนะครับ

ถ้าเราเปิด Compression และ Server ของเราก็เปิดเหมือนกันหรือ Server ไม่ได้สนับสนุน Compression plug-in ตัวนี้จะให้ผลเสียทีเดียว

บางครั้งการเปิด compression เป็นตัวการสำคัญเลยที่ทำให้ WP-Super cache ทำงานผิดปกติ นั่นเลยทำให้หลายคนบอกว่า WP-super cache ไม่ค่อยดี แต่จริงๆมันก็คือ WP-cache ที่ซับซ้อนกว่าเดิมที่ประสิทธิภาพไม่ต่างกันเท่าไหร่ นอกเหนือจากนั้น WP-super cache ยังไม่เป็นมิตรกับคนอื่นเท่าไหร่ถ้าปรับแต่งไม่ถูกหรือใส่ plug-in ตัวอื่นที่ไม่สามารถเข้ากันได้สามารถทำให้เว็บเราช้าลงได้เลย จึงทำให้ผมไม่กล้าใช้เท่าไหร่

WP Widget Cache

http://wordpress.org/extend/plugins/wp-widget-cache/

WP Widget Cache สร้างมาสำหรับเว็บที่ใช้ widget เยอะเนื่องจากเว็บที่นำมาทดสอบใช้แค่ widget มาตาฐานของ wordpress จึงไม่สามารถใช้ประโยชน์จาก WP-widget cache ได้เต็มที่

คนเขียน WP widget cache แนะนำให้ติดตั้งพร้อมกับ WP-Cache หรือ WP Super Cache เพราะฉะนั้นผมจะลองทดสอบดู 3 แบบ : Standalone, WP-widget cache+WP-Cache, WP-widget cache+WP Super Cache

WP widget cache install และ uninstall ง่าย แต่ต้องไปปรับแต่งนิดหน่อยต้องเข้าไปที่ Widget settings และกำหนดค่า expire ของแต่ละ widget

Standalone:

data_widget_standalone

With WP-Cache:

data_widget_wpcache

With WP Super Cache:

data_widget_supercache

โดยรวมแล้วจะเห็นว่าไม่ได้ช่วยอะไรมาก เพราะ WP widget cache เหมาะสำหรับเว็บที่ใช้ widget ดึงข้อมูลมาจาก database เยอะๆ

DB Cache

http://wordpress.org/extend/plugins/db-cache/

DB Cache plugin ทำงานแตกต่างจากหลายๆตัวที่ผ่านๆมา เพราะัตัวนี้ทำหน้า save database queries แทนการ save page การ install/uninstall ง่าย ไม่ทิ้งไฟล์ไว้เวลา deactivating ด้วย

data_dbcache

DB Cache เหมาะใช้กับ server administrator มากกว่า เช่น web server ถ้าเว็บเรามีน้อยกว่า 500 หน้า plug-in นี้คงไม่ได้ช่วยอะไรมาก

DB Cache Reloaded

http://wordpress.org/extend/plugins/db-cache-reloaded/

DB Cache Reloaded ทำงานคล้ายกับ  DB Cache แต่ประสิทธิภาพดีกว่า

data_dbcachereloaded

1 Blog Cacher

http://wordpress.org/extend/plugins/1-blog-cacher/

1 Blog Cacher caching plugin ที่เรียบง่าย โค้ดน้อย ไม่ค่อยดังเท่าไหร่แต่เห็นบางคนแนะนำเลยมาลองทดสอบดู

data_1blogcacher

โดยรวม วิธีติดตั้งยุ่งยากและผลลัพท์ที่ไม่ค่อยดี

Hyper Cache

http://wordpress.org/extend/plugins/hyper-cache/

Hyper Cache เป็น plug-inใหม่ แต่ประสิธิภาพดีมากติดตั้งง่ายอีกทั้งมีระบบการปรับแต่งที่ดี

data_hypercache

เป็น Caching Plug-in ทีเร็วมากอีกทั้งโค้ดที่เบาจึงเป็น A must have caching plugin

W3 Total Cache

http://wordpress.org/extend/plugins/w3-total-cache/

W3 Total Cache เป็นตัวกำเนิดของ caching plugins ทั้งหมดเพราะใหญ่มาก ศึกษาง่าย อีกทั้งมีระบบให้ปรับแต่งเกือบทุกอย่าง

การติดตั้งก็ง่าย มี option ให้ปรับแต่งตามต้องการ และเมื่อติดตั้งแล้ว plug-in จะปรับค่าตามความเหมาะสมของเว็บให้เองโดยอัตโนมัตซึ่งเหมาะสำหรับคนที่ชอบลงแล้วไม่อยากปรับแต่งอะไร

data_w3total

ถ้าคนที่ชอบ plug-in ที่ทำได้ทุกอย่าง ตัวนี้เป็นตัวเลือกที่ดีเพราะปรับแต่งได้ทุกอย่าง เช่น multiple methods of page caching, minifying, database caching, content delivery networks เป็นต้น แต่ก็มีข้อเสียเหมือนกันตัวนี้ไม่ได้เป็นตัวที่ caching ได้เร็วที่สุด

Do It Yourself Caching

นอกจากจะใช้ plug-in ในการ cache แล้ว เราสามารถทำ caching เองก็ได้นะครับและบางครั้งมันเป็นวิธีที่ดีที่สุดโดยเฉพาะกับหน้าที่ไม่ค่อยมีการเปลี่ยนแปลงแต่ข้อเสียมันก็คือต้องทำเอง

วิธีทำ

  1. สร้าง folder “cache” ใน wp-content folder
  2. ไปหน้าที่ต้องการ cache จากนั้น view souce ให้ copy ทั้งหมดเลย
  3. สร้างไฟล์ที่ชื่อเหมือน หน้าที่เรา cache เช่น หน้า about ให้เราสร้างไฟล์ about.html ขึ้นมาใน folder cache แล้วนำ code เมื่อกี้มาใส่ไว้

จากนั้น สร้าง ไฟล์ .htaccess ใน root WordPress folder และนำ โค้ดข้างล่างไปใส่

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^about$ wp-content/cache/about.html

</IfModule>

mod_rewrite เป็นการบอกให้ server to ส่งเนื้อหาที่ไฟล์ wp-content/cache/about.htmlเวลามีคนเข้ามาที่ http://yourblogurl.com/about ผมแนะนำให้ศึกษา mod_rewrite ก่อนที่จะทำ caching ด้วยตัวเองเพราะนอกจากทำ caching แล้วการทำแบบนี้ยังช่วยให้ CPU load ดีขึ้นด้วย

data_doityourself

ถึงแม้ว่า Do it yourself caching จะให้ผลที่ดีแต่ เราต้องมานั่งทำเองซึ่งเสียเวลาอีกทั้งถ้าหน้านั้นเปลี่ยนเราก็ต้องทำ cache ใหม่เองอีกจึงไม่ค่อยเหมาะสักหรับบางกรณี

ติดตั้งเป็น Combo

ติดตั้งหลายๆตัวสามารถเพิ่มประสิทธิภาพได้เช่น Hyper Cache + DB Cache Reloaded และก็ทำให้แย่ลงได้เหมือนกัน เช่น WP Super Cache + Anything ลองหลายๆแบบ แล้วดูว่าแบบไหนที่ทำงานได้ดีในเว็บของเรา

สรุป

ตารางเปรียบเทียบของ WP caching ต่างๆ ครับ

data_results

โดยรวมแล้วผมคิดว่า Hyper Cache + DB Cache Reloaded เหมาะสำหรับ developer ครับเพราะมีอะไรให้เล่นอีกหน่อย

ส่วนคนที่ไม่ชอบปรับอะไรเลยหรือ blogger ทั่วไปที่ต้องการแค่เพิ่มความเร็วของเว็บหรือ developer ที่ต้องการรู้ caching อย่างจริงจัง  W3 Total Cache เป็นตัวเลือกที่เหมาะครับ

ที่มา tutorial9.net

Related posts:

  1. แนะนำ WordPress Plugin ที่ขาดไม่ได้
  2. แนะนำที่หา WordPress Plugin
  3. พื้นฐานที่ไม่ควรมองข้ามในการปรับแต่ง wordpress ให้เร็วขึ้น
You can leave a response, or trackback from your own site.

12 Responses to “WordPress Caching Plugin ไหนดีที่สุด?”

  1. seo says:

    เจ๋งมากๆเลยครับ แต่ที่ผมทดลองก่ะ wp-mu สรุปได้ว่า wp-cache ดีกว่า super cache นะครับลองกับเว็บ wp-mu ที่มีคนเข้าต่อวัน 80k uip ครับ รันดูจาก server เลย ลง memcache ทั้งสองตัวแล้วทดสอบ plugin สรุปได้ว่า wp-cache ดีกว่า

  2. perng says:

    มาเจอเว็บนี้พอดีกำลังหา Plugin cach ใช้พอดีมีประโยชน์มากมายเลยครับ

  3. เยอะจัดจะใช้ตัวไหนดีเนี้ย โฮสเน่าๆคนเข้าไม่เยอะ แต่โหลดช้าเต่าเรียกป้า สรุปผมขอเอา Hypercache ไปลอง เห็นมะมีคนใช้ ได้ผลยังไงจะมาบอกครับ

  4. Torti says:

    ยินดีครับ

  5. ยอดเยี่ยมครับ เดี๋ยวลองใช้มั่งดีกว่า ช่วยลดการกินทรัพยากร sever ได้มากจริงๆ

  6. first says:

    บทความเยี่ยมมากครับ ขอบคุณมากครับ

  7. forklift says:

    ลอง w3 total cache แล้ว รู้สึกว่าจะใช้ง่ายกว่าตัวอื่นๆครับ ไม่เร็วขึ้นมากเท่า hypercache แต่มันง่าย เหมาะกับมือใหม่มากๆ

  8. chai says:

    บทความเยี่ยมมากครับ ขอบคุณมากครับ

  9. Mn says:

    ขอบคุณครับคุณ Chai สำหรับคำติชม ผมลองไปดูเว็บคุณ chai มา ทำได้สวย วาง layout เว็บ ได้ดีครับ ไม่น่าเชือว่าทำจาก wordpress

  10. mahosot says:

    กำลังมองหา ตัวที่น่าสนใจอยู่พอดี ส่วนตัวใช้ w3cache อยู่ แต่ไม่ค่อยชอบ

  11. cheesemuzik says:

    ยอดมากครับ ยังงี้เห็นทีต้องเปลี่ยนมาใช้ W3 ซะแล้ว

  12. ต้น says:

    ขอบคุณสำหรับข้อมูลครับ จะลองนำไปปรับแต่งครับ

Leave a Reply