WooCommerce
ทำไม WooCommerce ช้า บน Shared Hosting?
WooCommerce ร้านค้าออนไลน์มีปัญหาด้านความเร็ว เพราะตัวมันเองเป็น WordPress Plugin ที่ใหญ่ (มีไฟล์ 100+ ไฟล์) ทำให้:
- Plugin ต่างๆ มากมาย — WooCommerce ต้องใช้ Plugin Payment, Shipping, SEO, ทำให้ WordPress โหลดเยอะขึ้น
- Database Query เยอะ — ทุกครั้งที่ผู้เยี่ยมชมเข้าดูสินค้า ต้องไปค้นหา Database (ราคา, สต็อก, ข้อมูลสินค้า) หลายครั้ง
- Shared Hosting Resource น้อย — Shared Hosting แชร์ RAM, CPU, Process เดียวกับผู้อื่นหลาย ๆ คนทำให้เว็บไซต์แข่งชิง Resource
- ไฟล์รูปภาพสินค้าใหญ่ — รูปสินค้าปกติ 500KB-2MB ต่ออัน ถ้ามี 1000 สินค้า ก็ใหญ่ 500MB-2GB
วิธีเพิ่มความเร็ว WooCommerce — Caching Plugin
ขั้นตอนแรกและสำคัญที่สุดคือติดตั้ง Caching Plugin ให้ WordPress จดจำหน้าเว็บ Database Query ที่ทำบ่อย ๆ
ขั้นตอน 1: ติดตั้ง Caching Plugin
- Login WordPress Dashboard
- ไปที่ Plugins → Add New
- ค้นหา "WP Super Cache" หรือ "LiteSpeed Cache" (ฟรี)
- คลิก Install และ Activate
ขั้นตอน 2: ตั้งค่า Page Cache
เปิด Plugin Settings (WP Super Cache → Settings)
- Enable Caching — เลือก "Caching ON" ให้ Plugin จดจำหน้า HTML
- Cache Timeout — ตั้ง 3600 วินาที (1 ชั่วโมง) สำหรับสินค้าที่ราคาเปลี่ยนแปลงน้อย
- Compress Pages — เลือก "Gzip Compression" ให้บีบอัดไฟล์
- Preload — ให้ Plugin สร้าง Cache ล่วงหน้า
ขั้นตอน 3: Cache Exception (ขยายไม่ให้ Cache บางหน้า)
ควรตั้ง Exception เพื่อไม่ให้ cache บางหน้าที่ต้องอัพเดทรวดเร็ว:
- Shopping Cart — ต้องอัพเดททันทีเมื่อเพิ่มสินค้า
- Checkout Page — ต้องแสดงข้อมูลผู้ใช้ทันที
- My Account — แสดงออเดอร์ของลูกค้า ต้องเป็นปัจจุบัน
วิธีเพิ่มความเร็ว — Database Optimization
Database ที่ไม่ optimize จะช้า ลบข้อมูลเก่าที่ไม่ต้องการ:
ขั้นตอน 1: ติดตั้ง WP-Optimize Plugin
- WordPress Dashboard → Plugins → Add New
- ค้นหา "WP-Optimize" (ฟรี)
- Install และ Activate
ขั้นตอน 2: เลือก Cleanup Option
- Delete Post Revisions — ลบ WordPress Draft เก่า (เก็บแค่เวอร์ชันล่าสุด)
- Delete Spam Comments — ลบ Comment Spam
- Delete Unused Taxonomies — ลบหมวดหมู่ที่ไม่มีสินค้า
- Delete Expired Transients — ลบข้อมูล Temporary ที่หมดอายุ
- Optimize Tables — เรียงลำดับ Database Tables ให้ประหยัด Space
ขั้นตอน 3: ตั้ง Auto Cleanup
ให้ Plugin ทำความสะอาด Database โดยอัตโนมัติทุกสัปดาห์
วิธีเพิ่มความเร็ว — ปรับแต่ง Plugin และ Theme
ถ้ามี Plugin มากเกินไป หรือ Theme หนัก ก็จะช้า:
ลบ Plugin ที่ไม่ใช้
- WordPress Dashboard → Plugins
- ตรวจสอบ Plugin แต่ละตัว ว่าจำเป็นหรือไม่
- ถ้าไม่ใช้ ให้ Deactivate และลบ
- ทีละตัว ไม่ใช้ Bulk Delete เพื่อหลีกเลี่ยง Error
เลือก Theme ที่เบา
- หลีกเลี่ยง Theme ที่มี Visual Builder ในตัว (เช่น Avada, Salient) เพราะสิ้นเปลืองทรัพยากร
- ใช้ Theme ที่เรียบง่าย เช่น Neve, Storefront (Theme ทำ WooCommerce) ตัวนี้อย่างรวดเร็ว
- หลีกเลี่ยง Theme ที่ Customize ได้มากเกินไป (Unlimited Widget, Slider หลาย ๆ ตัว)
วิธีเพิ่มความเร็ว — ปรับแต่ง Hosting
บางครั้งเซิร์ฟเวอร์เอง ต้องแนะนำขอให้ Hosting Provider ปรับแต่ง:
ขอให้เปิด PHP Opcode Caching
ถ้า Hosting ใช้ PHP 7.0+ ขอให้เปิด OPcache ซึ่งจะบีบอัด PHP Code ที่ได้ใช้บ่อย ๆ ให้เร็ว (ลดเวลา Parse PHP Code)
ปรับเพิ่ม PHP Memory Limit
ถ้า PHP Memory Limit ต่ำ (เช่น 32MB) WooCommerce อาจขัดข้อง ให้เพิ่มเป็น 128MB-256MB โดย:
- เข้า cPanel → File Manager
- ไปที่ public_html
- สร้าง/แก้ไขไฟล์ wp-config.php
- เพิ่มบรรทัด: define( 'WP_MEMORY_LIMIT', '256M' );
ขอให้ enable HTTP/2
ถ้า Hosting รองรับ HTTP/2 ให้เปิด ซึ่งจะช่วยให้ส่ง CSS, JS, รูปพร้อมกัน เร็วกว่า HTTP/1.1
ตรวจสอบว่า WooCommerce ทำงานเร็วขึ้น
หลังปรับแต่ง ให้ทดสอบความเร็วด้วยขั้นตอนต่อไปนี้:
# 1. ใช้ Lighthouse (Chrome DevTools)
# เปิด DevTools (F12) → Lighthouse → Generate report
# ดู Performance Score (เป้า >= 85 สำหรับ Shared Hosting ก็ดี)
# 2. ใช้ Google PageSpeed Insights
# ไปที่ https://pagespeed.web.dev/
# ใส่ URL เว็บไซต์ WooCommerce
# ดู Performance Score Mobile vs Desktop
# 3. ใช้ GTmetrix
# ไปที่ https://gtmetrix.com/
# ใส่ URL เว็บไซต์
# เช็ค Page Load Time มีเปลี่ยนแปลงหรือไม่
# 4. เปรียบเทียบ Cache Hit Rate
# ใน WP Super Cache → Stats ควรเห็น Cache Hit จำนวนมาก
แก้ปัญหาที่พบบ่อย
Error: "หลังติดตั้ง Caching Plugin WooCommerce สั่งการผิด (ราคาแสดงผิด, Button ไม่ทำงาน)"
เกิดจาก Dynamic Content (เช่น รูป Shopping Cart, ราคา, Promotion) ถูก Cache ที่ OpenText ทำให้ผู้เยี่ยมชมทุกคนเห็นข้อมูลเดียวกัน วิธีแก้: ไปที่ Plugin Settings → ตั้ง Cache Exception ให้ Shopping Cart ไม่ cache หรือลด Cache Timeout เป็น 15 นาที (900 วินาที)
Error: "Database ใหญ่เกินไป (> 100MB) Query ช้า"
สาเหตุ: Database มีข้อมูลเก่าหลายปี (Post Revision, Spam Comment, Log File) วิธีแก้: ใช้ WP-Optimize ลบข้อมูล Revision เก่า, Spam Comment, Transient ที่หมดอายุ ลบประมาณ 20-30MB ด้วย
Error: "PHP Memory Limit Exceeded — ขัดข้อง 500 Error"
เกิดจากพยายามโหลด WooCommerce ที่ต้อง Memory เยอะแต่ PHP Memory Limit ต่ำ วิธีแก้: ใน wp-config.php เพิ่ม define( 'WP_MEMORY_LIMIT', '256M' ); หรือติดต่อ Hosting Provider ให้เพิ่ม PHP Memory
Error: "Caching Plugin ขัดแย้งกับ WooCommerce Variation Plugin"
Variation (สินค้าหลายขนาด/สี) ต้อง AJAX Load แต่ Page Caching มันเก็บหน้า HTML ตั้งแต่แรก วิธีแก้: ใน Cache Plugin ตั้ง Exception สำหรับ URL ที่มี ?variation ในนั้น หรือใช้ Plugin Compatibility ที่ Support WooCommerce
Error: "AJAX Cart Update ช้า แม้ Caching เปิดแล้ว"
AJAX ต้องติดต่อ Server หรือเร็ว Hosting ช้า วิธีแก้: ลองติดตั้ง AJAX Caching Plugin เช่น "CAOS" สำหรับ Google Fonts หรือใช้ CloudFlare CDN ที่จะ Cache Dynamic Content ด้วย
คำถามที่พบบ่อย
Q: Caching Plugin ไหนดีที่สุดสำหรับ WooCommerce?
A: สำหรับ Shared Hosting แนะนำ WP Super Cache หรือ LiteSpeed Cache (ถ้า Hosting ใช้ LiteSpeed) ทั้งคู่ฟรี และใช้ได้ดี ถ้า Hosting ใช้ Cloudflare ให้เปิด "Cache Level: Cache Everything" ใน Cloudflare Settings ด้วย รวมกันเร็วมาก
Q: ควร Upgrade Hosting เป็น VPS หรือไม่?
A: ถ้า WooCommerce ช้าแบบ Shared Hosting และ Optimization ทั้งหมดไม่ช่วย ลองสัก 6 เดือนก่อน ถ้ายังช้าต่อจึงขึ้น VPS (ราคาประมาณ 200-500 บาท/เดือน) VPS ให้ Resource มากขึ้น (RAM แบ่งเป็นของตัวเอง) ทำให้ WooCommerce เร็วขึ้นเยอะ
Q: โปรโตคอล HTTP/2 หรือ CloudFlare จะช่วยเพิ่มความเร็ว WooCommerce ได้หรือไม่?
A: ใช่ HTTP/2 จะช่วยส่ง CSS, JS, รูป พร้อมกัน CloudFlare ช่วยลด Latency และจัดการ Cache บน Edge Server ทั่วโลก ทั้งสองควรทำเพราะมีประโยชน์ นอกจากนี้ HTTP/2 มี Server Push ที่ช่วยลด Request เพิ่มเติมได้