Google reCAPTCHA คืออะไร และทำไมเว็บ WordPress ถึงต้องใช้?
Google reCAPTCHA คือระบบยืนยันตัวตนที่ Google พัฒนาขึ้นเพื่อแยกแยะว่าผู้ที่กรอก Form บนเว็บนั้นเป็น "มนุษย์" หรือ "Bot อัตโนมัติ" โดยอาศัยการวิเคราะห์พฤติกรรมการเคลื่อนไหวเมาส์ เวลาในการกรอก Form และสัญญาณอื่น ๆ จาก Google ทำให้ไม่ต้องเห็นกล่อง "เลือกรูปรถยนต์" ทุกครั้งอีกต่อไปในเวอร์ชันใหม่
เว็บ WordPress ที่ไม่ได้ติดตั้ง reCAPTCHA มักเจอปัญหาเหล่านี้ทุกวัน:
- Spam Comment: Bot โพสต์ความคิดเห็นโฆษณาสินค้าหลายร้อยรายการต่อวัน
- Login Brute Force: Bot ลองรหัสผ่าน wp-admin ซ้ำ ๆ จนกว่าจะได้
- Spam Contact Form: Form ติดต่อถูก Bot ส่งอีเมลขยะเข้า Inbox
- WooCommerce Fake Order: Bot สร้าง Order ปลอมใน Store ของคุณ
- User Registration Spam: Bot สมัครสมาชิกจำนวนมากโดยไม่มีคนจริง
การติดตั้ง reCAPTCHA ช่วยแก้ปัญหาเหล่านี้ได้ทันที และไม่กระทบประสบการณ์ผู้ใช้จริงแต่อย่างใด
reCAPTCHA v2 vs v3 ต่างกันอย่างไร เลือกตัวไหน?
| ประเด็น | reCAPTCHA v2 (Checkbox) | reCAPTCHA v3 (Invisible) |
|---|---|---|
| การมองเห็นของผู้ใช้ | เห็น Checkbox "ฉันไม่ใช่ Robot" | ล่องหน ทำงานเบื้องหลัง |
| วิธีทำงาน | ผู้ใช้กด Checkbox หรือผ่าน Image Challenge | Google ให้ Score 0.0–1.0 แบบ Silent |
| UX | ⚠ ผู้ใช้ต้อง Interact | ✔ ไม่รบกวนผู้ใช้เลย |
| ความแม่นยำ | สูง (มี Challenge สำรอง) | ขึ้นกับ Score Threshold ที่ตั้ง |
| เหมาะกับ | Login, Register, Comment | ทุก Form ที่ต้องการ Silent |
| รองรับ Plugin ทั่วไป | ✔ ส่วนใหญ่รองรับ | ✔ รองรับ (Plugin รุ่นใหม่) |
| ความซับซ้อนในการตั้งค่า | ง่าย | ปานกลาง (ต้องกำหนด Action) |
ขั้นตอนที่ 1: สมัคร Google reCAPTCHA API Key
ก่อนติดตั้ง Plugin คุณต้องสมัคร API Key จาก Google ก่อน ซึ่งฟรีและไม่ต้องใช้บัตรเครดิต
เปิดเบราว์เซอร์ไปที่ google.com/recaptcha/admin แล้ว Sign In ด้วย Google Account ของคุณ จากนั้นคลิก + (Create) เพื่อสร้าง Site ใหม่
- Label: ชื่อเว็บหรือโปรเจกต์ เช่น "MyWordPressSite"
- reCAPTCHA type: เลือก reCAPTCHA v2 → "I'm not a robot" Checkbox (แนะนำสำหรับมือใหม่)
- Domains: ใส่ Domain ของคุณ เช่น
yoursite.com(ไม่ต้องมี https://) - Owners: Email ของคุณจะปรากฏอยู่แล้ว
จากนั้นกด Submit
หลัง Submit จะได้ Site Key (ใช้แสดงบนหน้าเว็บ) และ Secret Key (ใช้ยืนยัน Server-side) คัดลอกทั้งคู่เก็บไว้ ห้ามแชร์ Secret Key ให้ใคร
ขั้นตอนที่ 2: ติดตั้ง Plugin reCAPTCHA บน WordPress
มี Plugin หลายตัวให้เลือก แนะนำ 3 ตัวที่นิยมมากที่สุด:
ตัวเลือกที่ 1: Advanced Google reCAPTCHA (แนะนำ)
Plugin ฟรีที่ตั้งค่าง่ายและครอบคลุมทุก Form ทั้ง Login, Register, Comment, Lost Password, WooCommerce Checkout
- ใน WordPress Admin ไปที่ Plugins → Add New
- ค้นหา "Advanced Google reCAPTCHA"
- กด Install Now → Activate
- ไปที่ Settings → Advanced Google reCAPTCHA
- วาง Site Key และ Secret Key ที่ได้จาก Google
- เลือก reCAPTCHA Version ที่ต้องการ แล้ว Save Changes
ตัวเลือกที่ 2: Contact Form 7 + reCAPTCHA (สำหรับผู้ใช้ CF7)
ถ้าคุณใช้ Contact Form 7 อยู่แล้ว สามารถเพิ่ม reCAPTCHA ได้โดยตรงจาก CF7 Settings โดยไม่ต้องติด Plugin เพิ่ม
- ไปที่ Contact → Integration
- หาส่วน reCAPTCHA แล้วคลิก Setup Integration
- วาง Site Key และ Secret Key จาก Google แล้ว Save
- แก้ไข Form แล้วเพิ่ม Shortcode
[recaptcha]ก่อนปุ่ม Submit
ตัวเลือกที่ 3: Invisible reCaptcha for WordPress (v2 Invisible)
ถ้าต้องการ reCAPTCHA แบบ Invisible (ไม่มี Checkbox) ให้ใช้ Plugin นี้ ผู้ใช้ไม่ต้องทำอะไร แต่ Bot ยังถูก Block ได้อยู่
- ค้นหา "Invisible reCaptcha for WordPress" ใน Plugin Search
- ติดตั้งและ Activate
- ไปที่ Settings → Invisible reCaptcha แล้วใส่ Key ทั้งสอง
- เลือก Form ที่ต้องการป้องกัน เช่น Login, Register, WooCommerce Checkout
ขั้นตอนที่ 3: เปิดใช้ reCAPTCHA บน Form แต่ละประเภท
หลังตั้งค่า Key เสร็จแล้ว ให้เปิดใช้ reCAPTCHA ในแต่ละ Form ที่ต้องการ:
หน้า Login (wp-admin)
เปิดตัวเลือก Login Form ใน Plugin Settings reCAPTCHA จะปรากฏให้กรอกเมื่อ Login ป้องกัน Brute Force Attack ได้ผลดีมาก
หน้า Comment
เปิด Comment Form reCAPTCHA จะแสดงก่อนปุ่ม Post Comment ช่วยตัด Spam Comment จาก Bot ได้เกือบ 100%
WooCommerce Checkout และ Registration
สำหรับร้านค้า WooCommerce ให้เปิด WooCommerce Checkout และ WooCommerce Registration ช่วยป้องกัน Order จาก Bot และการสมัครสมาชิกปลอม
Lost Password Form
เปิด Lost Password ป้องกัน Bot ส่ง Password Reset Email ไปยัง User จำนวนมากจนสร้าง Load บน Server
ขั้นตอนที่ 4: ทดสอบว่า reCAPTCHA ทำงานถูกต้อง
หลังตั้งค่าเสร็จให้ทดสอบทันที ก่อนที่ Bot จะใช้ช่วงเวลาห่าง Attack:
- เปิดหน้า Login ของเว็บใน Incognito Mode ดูว่ามี reCAPTCHA แสดงหรือไม่
- ทดลอง Submit Form โดยคลิก Checkbox แล้วกด Login — ควรผ่านได้ปกติ
- ทดสอบหน้า Comment โดยเขียน Comment แล้ว Submit — ควรส่งได้ตามปกติ
- ตรวจ Google reCAPTCHA Dashboard ที่ google.com/recaptcha/admin จะเห็นกราฟการใช้งาน
ตรวจสอบว่า reCAPTCHA ทำงานถูกต้อง
สามารถตรวจสอบ Log และ Response จาก Google reCAPTCHA ด้วยวิธีต่าง ๆ ได้ดังนี้:
# ทดสอบ reCAPTCHA verify endpoint ด้วย curl (แทน TOKEN ด้วย Response Token จริง)
curl -s -X POST "https://www.google.com/recaptcha/api/siteverify" \
--data-urlencode "secret=YOUR_SECRET_KEY" \
--data-urlencode "response=TOKEN_FROM_FORM"
# ดู WordPress Debug Log (เปิด WP_DEBUG ก่อน)
tail -n 50 /home/username/public_html/wp-content/debug.log
# ตรวจสอบว่า Script reCAPTCHA โหลดบนหน้าเว็บ
curl -s https://yoursite.com/wp-login.php | grep recaptcha
# เช็ค Error ใน cPanel Error Log
grep recaptcha /usr/local/apache/logs/error_log | tail -20
# ตรวจสอบ HTTP Header ว่า CSP ไม่ Block reCAPTCHA
curl -I https://yoursite.com/wp-login.php
แก้ปัญหาที่พบบ่อย
Error: "ERROR for site owner: Invalid domain for site key"
Domain ที่กรอกใน Google reCAPTCHA Admin Console ไม่ตรงกับ Domain ที่เว็บรันอยู่จริง ให้ไปที่ google.com/recaptcha/admin แล้วแก้ Domain ให้ตรงกัน ถ้าเว็บมีทั้ง www และ non-www ให้ใส่ทั้งสองแบบ
Error: "reCAPTCHA checkbox ไม่ปรากฏบนหน้าเว็บ"
มักเกิดจาก JavaScript Error หรือ Plugin Conflict ให้ปิด Plugin อื่นทีละตัวแล้วรีโหลดหน้า Login เพื่อหาตัวที่ขัดแย้ง หรือตรวจสอบ Browser Console (F12 → Console) ว่ามี Script Error อะไรบ้าง
Error: "reCAPTCHA ผ่านแล้วแต่ยัง Submit Form ไม่ได้"
อาจเกิดจาก Theme หรือ Plugin อื่นแทรก JavaScript ที่ขัดแย้งกับ reCAPTCHA ลองเปลี่ยน Theme เป็น Default (Twenty Twenty-Four) ชั่วคราว ถ้าทดสอบผ่านแล้วค่อยไล่หา Plugin ที่ขัดแย้ง
Error: "reCAPTCHA Score ต่ำ ผู้ใช้จริงถูก Block" (เฉพาะ v3)
reCAPTCHA v3 ให้ Score 0.0–1.0 ถ้าตั้ง Threshold สูงเกินไป (เช่น 0.9) ผู้ใช้จริงบางส่วนอาจถูก Reject ให้ลด Threshold ลงเป็น 0.5 ซึ่งเป็นค่าที่ Google แนะนำสำหรับ Login Form
Error: "reCAPTCHA ไม่รองรับ WooCommerce Checkout ใหม่ (Block-based)"
WooCommerce Block Checkout ที่ใช้ Gutenberg Block อาจไม่รองรับ Plugin reCAPTCHA บางตัว ให้ใช้ WooCommerce Checkout แบบ Classic (Shortcode) แทน หรืออัพเดท Plugin reCAPTCHA ให้เป็น Version ล่าสุดที่รองรับ Block Checkout