ตรวจสอบและล้าง WordPress ที่โหลดช้า (Slow Query, Heavy Plugin)

WordPress โหลดช้าเป็นปัญหาที่พบบ่อยมากที่สุด โดยเฉพาะเว็บไซต์ที่มีจำนวน Plugin มากและข้อมูลสะสมมากมาย บทความนี้จะแนะนำวิธีการตรวจหา Plugin ที่กินทรัพยากระบบ, หา Slow SQL Query, ทำความสะอาด Database, ล้าง Plugin ที่ไม่ต้องการ, Optimize รูปภาพ และเพิ่ม Caching เพื่อให้ WordPress ทำงานได้อย่างเหมาะสมและรวดเร็วบน Cloud VPS ของ Dot Enterprise

สาเหตุที่ WordPress โหลดช้า

WordPress โหลดช้าได้จากหลายสาเหตุ เช่น:

  • Plugin ที่ใช้ทรัพยากระบบจำนวนมาก โดยเฉพาะ Plugin สำหรับการแสดงโฆษณา Backup หรือการดึงข้อมูลจากแหล่งภายนอก
  • SQL Query ที่ไม่มี Index ทำให้การค้นหาข้อมูลช้าลง
  • ไม่มีระบบ Caching ส่งผลให้ต้องประมวลผลข้อมูลทุกครั้งที่มีการเข้าถึง
  • รูปภาพขนาดใหญ่ที่ไม่ได้ Optimize
  • Database มีข้อมูลขยะสะสมอยู่มากมาย เช่น Transient Revisions หรือ Spam Comments

ตรวจหา Plugin ที่กินทรัพยาก

วิธีที่ 1: ใช้ Query Monitor Plugin

Query Monitor เป็น Plugin ที่ช่วยให้คุณเห็นว่า Plugin ไหนกำลังใช้ทรัพยากระบบมากที่สุด การติดตั้ง:

  1. ติดตั้ง Query Monitor Plugin จากหน้า Plugin ของ WordPress
  2. เข้าสู่ WordPress Admin Dashboard
  3. ดูผลจากไอคอน Query Monitor ที่ด้านบนของหน้า
  4. ไปที่แท็บ “Queries” เพื่อดูว่า Plugin ไหนใช้ Query มากที่สุด

วิธีที่ 2: ทดสอบปิด Plugin ทีละตัว

วิธีง่ายๆ คือปิด Plugin ทั้งหมดแล้วเปิดทีละตัวเพื่อวัดความเร็ว ใช้เครื่องมือเช่น GTmetrix หรือ PageSpeed Insights เพื่อวัดเวลาโหลดหน้า:

# ปิด Plugin ทั้งหมด
wp plugin deactivate --all

# เปิดทีละตัวและวัดความเร็ว
wp plugin activate woocommerce
# วัดความเร็วของเว็บ...
wp plugin activate next-plugin
# วัดความเร็วอีกครั้ง...

หา Slow SQL Query

เปิด MySQL Slow Query Log เพื่อดูว่า Query ไหนทำงานช้า ทำได้โดยแก้ไขไฟล์ /etc/mysql/mysql.conf.d/mysqld.cnf โดยเพิ่มค่าต่อไปนี้:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 1

Restart MySQL แล้วดู Log ของ Query ที่ช้า:

sudo systemctl restart mysql
sudo tail -f /var/log/mysql/slow-query.log

สาเหตุทั่วไปของ WordPress ที่โหลดช้า

1. Plugin ที่ใช้ทรัพยากมาก

Plugin บางตัว เช่น WooCommerce, Yoast SEO หรือ Jetpack อาจใช้ทรัพยากระบบจำนวนมาก โดยเฉพาะเมื่อมีการ Query ข้อมูลจำนวนมากจาก Database

2. Database Column ที่ไม่มี Index

การค้นหาข้อมูลในคอลัมน์ที่ไม่มี Index จะใช้เวลานานมาก การสร้าง Index จะช่วยให้การค้นหาข้อมูลเร็วขึ้นอย่างมากมายหลากหลาย

3. ไม่มี Caching

ถ้าไม่มี Caching หรือ Caching ถูกปิด ทำให้ทุกครั้งที่มีผู้เข้าชมเว็บต้องสร้างหน้าใหม่จาก Database ซึ่งใช้ทรัพยากระบบมากมาย

4. รูปภาพขนาดใหญ่

รูปภาพที่ไม่ได้ Optimize หรือบีบอัดจะทำให้ขนาดไฟล์ใหญ่และโหลดช้า

5. Database Bloat

Database มี Post Revision Transient Spam Comments และข้อมูลขยะอื่นๆ สะสมอยู่ทำให้ขนาด Database โตขึ้นและการค้นหาช้าลง

ทำความสะอาด Database

ลบข้อมูลที่ไม่จำเป็นออกจาก Database ด้วย WP-CLI:

# ล้าง Transient ที่หมดอายุแล้ว
wp transient delete --all

# ล้าง Post Revision ที่เก่า (เก็บไว้ 25 revision เท่านั้น)
wp post delete $(wp post list --post_type='revision' --format=ids) --force

# Optimize Database เพื่อเอาพื้นที่ว่างออก
wp db optimize

# ล้าง Spam Comments
wp comment delete $(wp comment list --status=spam --format=ids) --force

Optimize รูปภาพ

รูปภาพเป็นสิ่งที่ส่งผลต่อความเร็วของเว็บมากที่สุด แนะนำให้ใช้ Plugin เช่น ShortPixel หรือ Imagify เพื่อบีบอัดรูปภาพลง นอกจากนี้ยังสามารถใช้ WP-CLI สำหรับการจัดการรูปภาพในปริมาณมาก:

# ใช้ ImageMagick สำหรับ Bulk Image Optimization
wp package install wp-cli/media-command:@stable
wp media regenerate --yes

หรือใช้เครื่องมือเช่น ImageOptim (สำหรับ Mac) หรือ FileOptimizer (สำหรับ Windows) เพื่อบีบอัดรูปภาพก่อนอัปโหลด

เพิ่ม Caching

ติดตั้ง Caching Plugin เช่น WP Super Cache หรือ W3 Total Cache เพื่อให้ WordPress บันทึกหน้าที่สร้างแล้วและสามารถเรียกใช้ได้อย่างรวดเร็ว แนะนำให้ติดตั้ง Object Cache ด้วย โดยใช้ Redis หรือ Memcached:

# ติดตั้ง Redis Object Cache
wp package install wp-cli/redis-command:@stable

ปรับปรุง PHP และ MySQL Configuration

  • PHP Version — ใช้ PHP 8.0 ขึ้นไปจะให้ประสิทธิภาพดีกว่า
  • PHP Memory Limit — ตั้งเป็น 256MB หรือสูงกว่า
  • MySQL Buffer Pool — ตั้ง innodb_buffer_pool_size ให้เหมาะสมกับ Cloud VPS ของคุณ โดยทั่วไป 25% ของ RAM รวม

ตรวจสอบผลสัมฤทธิ์หลังการปรับแต่ง

หลังจากทำการปรับแต่งตามวิธีต่างๆ ข้างต้น ให้ตรวจสอบความเร็วของเว็บไซต์ด้วยเครื่องมือต่อไปนี้:

  • Google PageSpeed Insights
  • GTmetrix
  • WebPageTest
  • Lighthouse

เครื่องมือเหล่านี้จะให้คะแนนความเร็วของเว็บและข้อเสนอแนะในการปรับปรุงเพิ่มเติม

สรุปสิ่งที่ควรทำ

  • ตรวจหา Plugin ที่กินทรัพยากมาก และพิจารณาปิดหรือแทนที่ด้วย Plugin อื่น
  • เปิด MySQL Slow Query Log เพื่อหา Query ที่ทำให้ Server ช้า
  • ทำความสะอาด Database เป็นประจำ ลบข้อมูลขยะและ Revisions เก่า
  • ติดตั้ง Caching Plugin เช่น WP Super Cache หรือ LiteSpeed Cache
  • ใช้ Redis Object Cache เพื่อลดการ Query ทั่วไป
  • Optimize รูปภาพด้วย ShortPixel หรือเครื่องมือบีบอัดรูปภาพอื่น
  • ตรวจสอบ Server Resource เช่น CPU และ RAM ว่าเพียงพอสำหรับเว็บไซต์ของคุณ
  • ถ้าเว็บมี Traffic สูง ให้พิจารณาขยาย Resource ของ Cloud VPS จาก Dot Enterprise (https://de.co.th/cloud-vps)

ข้อเสนอแนะสำหรับ WordPress บน Cloud VPS

หากคุณใช้ WordPress บน Cloud VPS ของ Dot Enterprise (https://de.co.th/cloud-vps) คุณจะได้ประโยชน์จาก:

  • ทรัพยากร Server ที่เพียงพอและปรับได้ตามความต้องการ
  • ความเร็วในการเข้าถึงข้อมูลที่สูง
  • ความปลอดภัยและความเสถียรของ Server
  • ความสามารถในการจัดการ Database ที่มีประสิทธิภาพ

วิธีเหล่านี้จะช่วยให้เว็บไซต์ WordPress ทำงานได้เร็วขึ้น ลดเวลาโหลดหน้า ช่วยให้ SEO ดีขึ้น และเพิ่มความพึงพอใจของผู้ใช้งาน