ตั้งค่า Cloudflare Cache Rules เพิ่มความเร็ว WordPress

ตั้งค่า Cloudflare Cache Rules สำหรับ WordPress

หนึ่งในวิธีที่มีประสิทธิภาพที่สุดในการเพิ่มความเร็วของ WordPress บน Cloud VPS ของ de.co.th คือการใช้ Cloudflare Cache Rules ซึ่งช่วยให้คุณสามารถควบคุมการ Cache ของ Cloudflare ได้อย่างละเอียด ทำให้เว็บไซต์ของคุณเร็วขึ้นอย่างเห็นได้ชัด

Cache Rules คืออะไร

Cache Rules คือเครื่องมือของ Cloudflare ที่ช่วยให้คุณสามารถกำหนดกฎการ Cache แบบละเอียดสำหรับหน้าต่างๆ ของเว็บไซต์ WordPress ของคุณ คุณสามารถกำหนดได้ว่าหน้าใดควร Cache และนานเท่าไร ส่วนหน้าใดไม่ควร Cache

สำหรับ WordPress โดยทั่วไป ควรแยก Cache ระหว่าง Static Content (เช่น รูปภาพ, CSS, JavaScript) และ Dynamic Content (เช่น โพสต์, หน้า, คิวรี่การค้นหา) Static Content สามารถ Cache นานได้ แต่ Dynamic Content ควร Bypass Cache หรือ Cache เป็นเวลาสั้นๆ

สร้าง Cache Rules สำหรับ Static Content

ขั้นตอนแรกคือการสร้าง Cache Rule สำหรับ Static Content เช่น รูปภาพ, CSS, JavaScript ไฟล์เหล่านี้สามารถ Cache นานได้เพราะไม่เปลี่ยนแปลงบ่อย

ให้ไปที่ Caching ใน Cloudflare Dashboard แล้วคลิก “Create Rule” จากนั้นตั้งค่าเงื่อนไข (Condition) ให้เป็น:

(cf.cache_status eq "MISS")
OR
(cf.cache_status eq "HIT")
AND
(ends_with(cf.uri.path, ".jpg") 
OR ends_with(cf.uri.path, ".png")
OR ends_with(cf.uri.path, ".gif")
OR ends_with(cf.uri.path, ".svg")
OR ends_with(cf.uri.path, ".css")
OR ends_with(cf.uri.path, ".js"))

สำหรับ Cache TTL ให้ตั้งเป็น “Cache everything” และ “Browser cache TTL” เป็น “1 month” หรือนานกว่านั้น

ตั้งค่า Cache Rules สำหรับ Dynamic Content

ส่วนสำคัญถัดไปคือการตั้งค่า Cache Rules สำหรับ Dynamic Content เช่น โพสต์ หน้า และแหล่งข้อมูลอื่น ๆ ของ WordPress ให้สร้าง Cache Rule ใหม่และตั้งค่าเงื่อนไข (Condition) ให้เป็น:

(not (ends_with(cf.uri.path, ".jpg") 
OR ends_with(cf.uri.path, ".png")
OR ends_with(cf.uri.path, ".gif")
OR ends_with(cf.uri.path, ".svg")
OR ends_with(cf.uri.path, ".css")
OR ends_with(cf.uri.path, ".js")))

สำหรับ Cache TTL ให้ตั้งเป็น “Bypass Cache” หรือ “Cache for 5 minutes” ขึ้นอยู่กับความถี่ที่บัญชี WordPress ของคุณได้รับการอัปเดต

ข้าม Cache สำหรับหน้า Sensitive

หน้าบางหน้าของ WordPress ไม่ควร Cache เพราะจะส่งผลให้ข้อมูลไม่ถูกต้องหรือมีข้อมูลส่วนตัว ตัวอย่างเช่น:

หน้า Login/Register: เหล่านี้ควร Bypass Cache เสมอ เพราะต้องตรวจสอบข้อมูลการเข้าสู่ระบบแต่ละครั้ง

Admin Pages: หน้า /wp-admin/ ของ WordPress ควร Bypass Cache ทั้งหมด เพราะนี่คือส่วนจัดการและต้องการข้อมูลแบบ Real-time

WooCommerce Cart/Checkout: หากคุณใช้ WooCommerce ให้ Bypass Cache สำหรับ /cart/, /checkout/, และ /my-account/ เพราะเหล่านี้ต้องการข้อมูลส่วนตัวของผู้ใช้

ให้สร้าง Cache Rules สำหรับหน้า Sensitive เหล่านี้ด้วยการตั้งค่า Condition ให้เป็น:

(starts_with(cf.uri.path, "/wp-admin"))
OR (starts_with(cf.uri.path, "/wp-login.php"))
OR (starts_with(cf.uri.path, "/cart"))
OR (starts_with(cf.uri.path, "/checkout"))
OR (starts_with(cf.uri.path, "/my-account"))

และตั้ง Cache TTL เป็น “Bypass Cache” เพื่อให้หน้าเหล่านี้ไม่ถูก Cache

ตั้งค่า Browser Cache TTL

นอกจากการตั้งค่า Cloudflare Cache แล้ว คุณควรตั้งค่า Browser Cache TTL เพื่อให้เบราว์เซอร์ของผู้เข้าชมสามารถ Cache ไฟล์ได้เป็นเวลานาน

ใน Cloudflare Dashboard ให้ไปที่ Caching > Browser Cache TTL และตั้งค่า TTL ให้เป็น “30 days” หรือ “1 year” ขึ้นอยู่กับความถี่ที่เนื้อหาของคุณได้รับการอัปเดต

Purge Cache เมื่อเผยแพร่โพสต์

เมื่อคุณเผยแพร่โพสต์ใหม่หรืออัปเดตโพสต์เก่า คุณอาจต้องการ Purge Cache เพื่อให้ผู้เข้าชมเห็นโพสต์ล่าสุด ทันที

คุณสามารถ Purge Cache ได้ด้วยการไปที่ Caching ใน Cloudflare Dashboard และคลิก “Purge Cache” จากนั้นเลือก “Purge Everything” หรือระบุ URL ที่ต้องการ Purge

สำหรับสิ่งที่ดีกว่า คุณสามารถใช้ Plugin ของ WordPress เช่น “Cloudflare Super Page Cache” หรือ “WP Cloudflare Super Page Cache” เพื่อให้การ Purge Cache เป็นอัตโนมัติเมื่อคุณเผยแพร่หรืออัปเดตโพสต์

สรุป

การตั้งค่า Cloudflare Cache Rules อย่างถูกต้องเป็นวิธีที่มีประสิทธิภาพในการเพิ่มความเร็วของ WordPress บน Cloud VPS ของ de.co.th โดยแยก Cache ระหว่าง Static และ Dynamic Content ข้าม Cache สำหรับหน้า Sensitive และตั้งค่า Browser Cache TTL คุณสามารถทำให้เว็บไซต์ของคุณเร็วขึ้นอย่างเห็นได้ชัด และให้ความสำเร็จแก่ผู้เข้าชมของคุณ