
ถ้าเว็บร้านค้าของคุณกำลังประสบปัญหา Cart หรือ Checkout ใน WooCommerce โหลดช้ากว่าปกติ หรือวนซ้ำค้างจนลูกค้าหมดความอดทนก่อนกดสั่งซื้อ นั่นไม่ใช่แค่เรื่องของ UX — มันส่งผลต่อยอดขายโดยตรง บทความนี้จะพาคุณวิเคราะห์ตั้งแต่ต้นทางว่าอะไรทำให้หน้า Cart และ Checkout ช้าเป็นพิเศษ และจะแก้อย่างไรให้ถูกจุด
ทำไม Cart และ Checkout ถึงช้ากว่าหน้าอื่น
หน้า Cart และ Checkout ของ WooCommerce ไม่ใช่หน้าธรรมดา — มันเป็นหน้า dynamic ที่ WordPress และ WooCommerce ต้องประมวลผลใหม่ทุกครั้งที่โหลด เพราะต้องดึงข้อมูล session ของลูกค้า, คำนวณราคา, โค้ดส่วนลด, ค่าจัดส่ง, ภาษี และสถานะ stock แบบ real-time ระบบ Cache จึงไม่สามารถเก็บหน้าเหล่านี้ไว้แบบ full-page cache ได้ ส่งผลให้ต้องพึ่งความเร็วของ server โดยตรง

สาเหตุหลักที่ทำให้ Cart/Checkout โหลดช้า
- Plugin ที่แทรก script หรือ AJAX call ในหน้า Checkout มากเกินไป — เช่น plugin ตรวจสอบที่อยู่, validator ฟอร์ม, หรือ upsell popup ที่ยิง request ซ้อนกันหลายตัว
- Shipping calculator คำนวณช้า — ถ้าคุณใช้ API ของขนส่งภายนอก (เช่น Flash, Kerry, Thailand Post) และ API นั้นตอบกลับช้าหรือ timeout ทุกครั้งที่ลูกค้าเปิดหน้า Cart ระบบก็จะค้างรอ
- Session handling ที่หนัก — WooCommerce เก็บ cart data ใน PHP session หรือ database ถ้า session ของ server ช้า หรือมี rows ใน
wp_woocommerce_sessionsสะสมมากเกินไปโดยไม่มี cleanup หน้า Cart จะโหลดช้าทุกครั้ง - Fragment caching ทำงานผิดปกติ — WooCommerce ใช้
wc-cart-fragmentsAJAX เพื่ออัปเดตจำนวนสินค้าใน cart header ถ้า request นี้ช้าหรือ error จะทำให้ทั้งหน้าค้าง - Hosting tier ต่ำเกินไป — shared hosting ที่ CPU และ memory ถูก throttle จะรู้สึกชัดมากในหน้า dynamic อย่าง Cart/Checkout
- Plugin Conflict — plugin บางตัวทำงานชนกันในหน้า Checkout ทำให้เกิด JavaScript error หรือ loop ดูรายละเอียดเพิ่มเติมใน Plugin Conflict ใน WooCommerce แก้ยังไง
วิธีตรวจสอบว่าอะไรทำให้ช้า
ก่อนแก้ ต้องรู้ก่อนว่าปัญหาอยู่ที่ไหน ลองทำตามขั้นตอนนี้:
- เปิด Chrome DevTools → Network tab แล้วโหลดหน้า Cart ดูว่า request ตัวไหนใช้เวลานานที่สุด — มักเป็น
/?wc-ajax=get_refreshed_fragmentsหรือ request ไปยัง shipping API - ติดตั้ง Query Monitor plugin ชั่วคราว เพื่อดูว่ามี database query กี่ตัว และตัวไหนช้าผิดปกติในหน้า Cart/Checkout
- ทดสอบด้วยการปิด plugin ทีละตัว (Safe Mode) โดยเฉพาะ plugin ที่เกี่ยวกับ shipping, discount, หรือ checkout fields
- ตรวจสอบขนาดตาราง
wp_woocommerce_sessionsใน phpMyAdmin ถ้ามีหลักล้าน rows นั่นคือต้นเหตุชัดเจน

วิธีแก้ไขทีละขั้นตอน
1. ล้าง WooCommerce Sessions สะสม
ไปที่ WooCommerce → Status → Tools แล้วกด “Clear customer sessions” หรือรัน SQL ใน phpMyAdmin:
DELETE FROM wp_woocommerce_sessions WHERE session_expiry < UNIX_TIMESTAMP();
จากนั้นตั้ง cron job หรือใช้ plugin เช่น WP-Optimize ให้ล้าง session อัตโนมัติทุกสัปดาห์
2. ปิด Cart Fragments ถ้าไม่จำเป็น
ถ้าคุณไม่ได้แสดงจำนวนสินค้าใน header สามารถปิด wc-cart-fragments ได้โดยเพิ่ม code นี้ใน functions.php ของธีม:
add_action('wp_enqueue_scripts', function(){ if(!is_cart() && !is_checkout()) wp_dequeue_script('wc-cart-fragments'); });
3. ตรวจสอบและแก้ Shipping Calculator
ถ้า shipping API ภายนอกช้า ให้พิจารณาเพิ่ม timeout และ fallback rate หรือเปลี่ยนไปใช้ flat rate ชั่วคราวเพื่อทดสอบว่าปัญหาหายไปหรือไม่ หากหาย แสดงว่า API ขนส่งคือตัวการ
4. ใช้ Object Cache
ติดตั้ง Redis หรือ Memcached บน server เพื่อเก็บ WooCommerce transients และ session ให้เร็วขึ้น ลด database query ซ้ำซ้อน อ่านเพิ่มเติมเกี่ยวกับการเพิ่มความเร็วใน WooCommerce ช้า แก้อย่างไร
5. ปิด Plugin ที่ไม่จำเป็นในหน้า Checkout
ใช้ plugin เช่น Asset CleanUp หรือ Perfmatters เพื่อ dequeue script และ style ของ plugin อื่นในหน้า Cart/Checkout โดยเฉพาะ slider, gallery, หรือ social share plugin ที่โหลด script ขนาดใหญ่โดยไม่จำเป็น
วิธีป้องกันไม่ให้ช้าซ้ำ
- ตั้ง schedule ล้าง WooCommerce sessions อัตโนมัติทุกสัปดาห์
- จำกัดจำนวน plugin ในหน้า Checkout ให้เหลือเท่าที่จำเป็นจริง ๆ
- ใช้ hosting ที่รองรับ PHP 8.x และมี object cache (Redis) ในตัว
- ทดสอบความเร็วด้วย
https://gtmetrix.comหรือ PageSpeed Insights หลัง deploy ทุกครั้ง - ตรวจสอบ error log และ slow query log อย่างน้อยเดือนละครั้ง
เมื่อไหร่ควรเรียกผู้เชี่ยวชาญ
ถ้าคุณทำตามขั้นตอนทั้งหมดแล้วยังช้าอยู่ หรือพบว่า Checkout มีปัญหาซับซ้อนกว่านั้น เช่น กดสั่งซื้อแล้วไม่ผ่าน หรือลูกค้าค้างที่หน้าชำระเงิน แนะนำให้อ่านบทความ WooCommerce Checkout ไม่ได้ กดสั่งซื้อไม่ทำงาน เพิ่มเติม หรือถ้าปัญหาเกี่ยวกับ payment gateway เช่น จ่ายแล้ว order ไม่เข้า สามารถดูที่ WooCommerce Order ไม่เข้า แก้ยังไง สำหรับกรณีที่ต้องการให้ผู้เชี่ยวชาญเข้ามาดูและแก้ไขให้โดยตรง สามารถใช้บริการ แก้ปัญหา WooCommerce ของเราได้เลย
คำถามที่พบบ่อย
Cart ใน WooCommerce โหลดช้า ต่างจาก Checkout ช้าอย่างไร
Cart ช้ามักเกิดจาก wc-cart-fragments AJAX หรือ session สะสม ส่วน Checkout ช้ามักเกี่ยวกับ shipping API, payment gateway script หรือ plugin ที่แทรก JavaScript ในฟอร์ม ทั้งสองมีสาเหตุต่างกันแต่แก้หลักการเดียวกัน
wc-cart-fragments คืออะไร และทำให้ช้าได้อย่างไร
wc-cart-fragments คือ AJAX request ที่ WooCommerce ยิงทุกครั้งที่โหลดหน้าใด ๆ เพื่ออัปเดตจำนวนสินค้าใน mini cart บน header ถ้า server ช้าหรือ response ใหญ่ request นี้จะทำให้ทุกหน้าบนเว็บรู้สึกช้า ไม่ใช่แค่หน้า Cart
ล้าง WooCommerce sessions แล้วลูกค้าจะเสีย cart ที่ค้างไว้หรือเปล่า
ถ้าล้างเฉพาะ session ที่หมดอายุแล้ว (expired) จะไม่กระทบ session ที่ยังใช้งานอยู่ แต่ถ้าล้างทั้งหมดด้วย "Clear customer sessions" ลูกค้าที่มี cart ค้างอยู่จะถูกล้างด้วย แนะนำทำในช่วงที่ traffic น้อย
Checkout ช้าแต่หน้าอื่นปกติ แสดงว่าปัญหาอยู่ที่อะไร
ถ้าหน้าอื่นเร็วปกติแต่ Checkout ช้า ต้นเหตุมักอยู่ที่ plugin ที่ทำงานเฉพาะในหน้า Checkout (เช่น payment gateway script, address validator) หรือ shipping API ที่ตอบช้า ให้ทดสอบโดยปิด plugin ทีละตัวหรือเปลี่ยน shipping method เป็น flat rate ชั่วคราว
