ทำไม WooCommerce ต้องการ Hosting พิเศษ
WooCommerce เป็น e-commerce plugin ที่ทรงพลังมาก แต่ก็กินทรัพยากรสูงกว่าเว็บ WordPress ทั่วไปอย่างมีนัยสำคัญ เพราะต้องจัดการ session, cart, order processing, inventory, payment gateway integration และ email notification พร้อมกัน ถ้าเลือก hosting ไม่เหมาะสม ลูกค้าจะเจอ checkout ช้า, หน้าตะกร้าค้าง หรือ order หายได้
Spec ขั้นต่ำที่ WooCommerce ต้องการ
- PHP 8.1+ — WooCommerce รุ่นใหม่ต้องการ PHP 8.0 ขึ้นไป PHP 8.1/8.2 เร็วกว่ามาก
- MySQL 5.7+ หรือ MariaDB 10.3+ — รองรับ JSON column และ query optimization
- RAM 512 MB+ — WooCommerce กับ WordPress core ต้องการ memory พอสมควร
- SSL Certificate — บังคับสำหรับ e-commerce ทุกเว็บ
- HTTPS บน checkout page — Payment gateway ส่วนใหญ่ต้องการ HTTPS ตลอดทั้งเว็บ
- Cron job support — WooCommerce ใช้ WP-Cron สำหรับงานต่างๆ เช่น cleanup expired sessions
เปรียบเทียบประเภท Hosting สำหรับ WooCommerce
Shared Hosting (เหมาะร้านเล็ก <100 order/วัน)
ราคาถูก เริ่มต้น 100–500 บาท/เดือน เหมาะสำหรับร้านที่เพิ่งเริ่มหรือมี traffic ต่ำ ข้อจำกัดคือ shared resource ทำให้ performance ไม่สม่ำเสมอในช่วง peak hour ควรเลือก plan ที่มี PHP memory limit ไม่น้อยกว่า 256 MB
Cloud Hosting / VPS (เหมาะร้านกลาง 100–1000 order/วัน)
resource ไม่แชร์กับคนอื่น performance คาดเดาได้ ราคา 500–2000 บาท/เดือน สามารถ scale ได้ตามความต้องการ เหมาะสำหรับ WooCommerce ที่ต้องการ stability สูง
Managed WooCommerce Hosting (เหมาะร้านใหญ่)
มีการ optimize เฉพาะสำหรับ WooCommerce เช่น pre-configured caching, automatic scaling ราคาสูงกว่าแต่ไม่ต้องกังวลเรื่อง technical เลย เหมาะสำหรับร้านที่ต้องการ uptime สูงสุดและไม่ต้องการดูแล server
ตั้งค่า SSL สำหรับ WooCommerce
SSL ไม่ใช่แค่ option แต่เป็น requirement สำหรับ e-commerce เพราะข้อมูล payment จะต้องเข้ารหัส
# ติดตั้ง Let's Encrypt SSL ผ่าน cPanel
# ไปที่ Security > SSL/TLS Status > Run AutoSSL
# Force HTTPS ใน .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# ตั้งค่าใน wp-config.php (เพิ่มก่อน WordPress settings)
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
ปรับ WooCommerce Performance
เพิ่ม PHP Memory
// ใน wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
ปิด Built-in Cron แล้วใช้ Real Cron แทน
WP-Cron แบบ default รันเมื่อมี visitor เข้าเว็บ ทำให้ไม่สม่ำเสมอ ควรปิดแล้วตั้ง real cron ผ่าน cPanel
// ใน wp-config.php: ปิด WP-Cron
define('DISABLE_WP_CRON', true);
// ตั้ง cron ใน cPanel (รันทุก 5 นาที)
// Cron Command:
wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
// หรือใช้ curl
*/5 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron &> /dev/null
ปรับ WooCommerce Cart Session
// ล้าง WooCommerce session เก่าผ่าน WP-CLI
wp wc tool run clear_sessions --user=1
// หรือผ่าน MySQL โดยตรง
DELETE FROM wp_woocommerce_sessions WHERE session_expiry < UNIX_TIMESTAMP();
ตรวจสอบ Checkout Flow
ทดสอบ checkout ครบทุกขั้นตอนสม่ำเสมอ โดยเฉพาะหลังอัปเดต plugin หรือ theme ขั้นตอนที่ควรทดสอบ
- เพิ่มสินค้าลง cart
- เข้าหน้า cart ตรวจสอบจำนวนและราคา
- กดไป checkout กรอกข้อมูล
- เลือก payment method ทดสอบ test order
- ตรวจสอบ email confirmation
- ตรวจสอบว่า order ปรากฏใน WooCommerce Orders
ตรวจสอบ WooCommerce ทำงานถูกต้อง
# ดู WooCommerce system status
wp wc system_status
# ตรวจสอบ order ล่าสุด
wp wc shop_order list --user=1 --format=table
# ตรวจสอบ cron job ของ WooCommerce
wp cron event list | grep woocommerce
# เช็คว่า SSL ใช้งานได้
curl -I https://yoursite.com/checkout/ | grep -i "strict-transport\|content-security"
แก้ปัญหาที่พบบ่อย
Order ไม่บันทึกหลัง Payment สำเร็จ
ปัญหานี้มักเกิดจาก webhook ของ payment gateway ไม่สามารถ reach WordPress ได้ ตรวจสอบว่า hosting ไม่ได้ block inbound request จาก Stripe/PayPal IP และไม่มี WAF rule ที่ block POST request ไปที่ /?wc-api=...
Payment Failed ทั้งที่บัตรถูกต้อง
ตรวจดู WooCommerce > Status > Logs เลือก log ของ payment gateway นั้นๆ มักพบ error เกี่ยวกับ SSL certificate ไม่ valid, IP ถูก block หรือ API key ผิด
Cart ล้างตัวเองโดยอัตโนมัติ
เกิดจาก session timeout ปรับค่าที่ WooCommerce > Settings > Advanced > Guest sessions expire after เป็น 7 วัน และตรวจสอบ PHP session configuration บน server
เว็บช้ามากในหน้า Checkout
หน้า checkout ของ WooCommerce ไม่สามารถ cache ได้เพราะมี dynamic content (cart, session) ให้ตรวจสอบว่า caching plugin ได้ exclude URL /cart, /checkout, /my-account และ cookie ที่เกี่ยวกับ WooCommerce
คำถามที่พบบ่อย
Shared Hosting ใช้ WooCommerce ได้จริงไหม
ได้ครับ สำหรับร้านค้าขนาดเล็กที่มี product ไม่เกิน 100 รายการและ order วันละไม่เกิน 50–100 รายการ Shared Hosting ที่ดีก็เพียงพอ แต่ถ้า traffic เริ่มเพิ่มขึ้นควรพิจารณา upgrade เป็น VPS
จำเป็นต้องใช้ SSL แบบ EV หรือ OV สำหรับ e-commerce ไหม
DV SSL (เช่น Let's Encrypt ฟรี) เพียงพอสำหรับ encryption แต่ถ้าต้องการแสดงชื่อบริษัทใน browser bar เพื่อสร้างความน่าเชื่อถือเพิ่มเติม ให้พิจารณา OV SSL ราคาเริ่มต้นไม่แพงมาก
ต้องตั้ง PCI DSS สำหรับ WooCommerce ไหม
ถ้าใช้ payment gateway เช่น Stripe หรือ PayPal ที่รับข้อมูลบัตรแทนคุณ ความรับผิดชอบ PCI DSS ส่วนใหญ่ตกอยู่ที่ gateway นั้น เว็บของคุณแค่ต้องมี SSL และไม่เก็บข้อมูลบัตรเองก็เพียงพอ