ติดตั้ง Google reCAPTCHA บน WordPress ป้องกัน Bot และ Spam

คู่มือสมัคร API Key, เลือก Plugin ที่ใช่ และตั้งค่า reCAPTCHA ครอบทั้ง Login, Comment, WooCommerce ทำได้เองในไม่กี่นาที ไม่ต้องแตะโค้ดเลย

ติดตั้ง Google reCAPTCHA บน WordPress ป้องกัน Bot

Google reCAPTCHA คืออะไร และทำไมเว็บ WordPress ถึงต้องใช้?

Google reCAPTCHA คือระบบยืนยันตัวตนที่ Google พัฒนาขึ้นเพื่อแยกแยะว่าผู้ที่กรอก Form บนเว็บนั้นเป็น "มนุษย์" หรือ "Bot อัตโนมัติ" โดยอาศัยการวิเคราะห์พฤติกรรมการเคลื่อนไหวเมาส์ เวลาในการกรอก Form และสัญญาณอื่น ๆ จาก Google ทำให้ไม่ต้องเห็นกล่อง "เลือกรูปรถยนต์" ทุกครั้งอีกต่อไปในเวอร์ชันใหม่

เว็บ WordPress ที่ไม่ได้ติดตั้ง reCAPTCHA มักเจอปัญหาเหล่านี้ทุกวัน:

การติดตั้ง reCAPTCHA ช่วยแก้ปัญหาเหล่านี้ได้ทันที และไม่กระทบประสบการณ์ผู้ใช้จริงแต่อย่างใด

reCAPTCHA v2 vs v3 ต่างกันอย่างไร เลือกตัวไหน?

ประเด็นreCAPTCHA v2 (Checkbox)reCAPTCHA v3 (Invisible)
การมองเห็นของผู้ใช้เห็น Checkbox "ฉันไม่ใช่ Robot"ล่องหน ทำงานเบื้องหลัง
วิธีทำงานผู้ใช้กด Checkbox หรือผ่าน Image ChallengeGoogle ให้ Score 0.0–1.0 แบบ Silent
UX⚠ ผู้ใช้ต้อง Interact✔ ไม่รบกวนผู้ใช้เลย
ความแม่นยำสูง (มี Challenge สำรอง)ขึ้นกับ Score Threshold ที่ตั้ง
เหมาะกับLogin, Register, Commentทุก Form ที่ต้องการ Silent
รองรับ Plugin ทั่วไป✔ ส่วนใหญ่รองรับ✔ รองรับ (Plugin รุ่นใหม่)
ความซับซ้อนในการตั้งค่าง่ายปานกลาง (ต้องกำหนด Action)
แนะนำสำหรับมือใหม่: เริ่มต้นด้วย reCAPTCHA v2 (Checkbox) ก่อน เพราะตั้งค่าง่าย เห็นผลชัดเจน และ Plugin ส่วนใหญ่รองรับดีกว่า เมื่อคุ้นชินแล้วค่อยลองเปลี่ยนเป็น v3 เพื่อ UX ที่ราบรื่นขึ้น

ขั้นตอนที่ 1: สมัคร Google reCAPTCHA API Key

ก่อนติดตั้ง Plugin คุณต้องสมัคร API Key จาก Google ก่อน ซึ่งฟรีและไม่ต้องใช้บัตรเครดิต

1เข้าไปที่ Google reCAPTCHA Admin Console

เปิดเบราว์เซอร์ไปที่ google.com/recaptcha/admin แล้ว Sign In ด้วย Google Account ของคุณ จากนั้นคลิก + (Create) เพื่อสร้าง Site ใหม่

2กรอกข้อมูล reCAPTCHA ของเว็บคุณ

จากนั้นกด Submit

3คัดลอก Site Key และ Secret Key

หลัง 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

  1. ใน WordPress Admin ไปที่ Plugins → Add New
  2. ค้นหา "Advanced Google reCAPTCHA"
  3. กด Install NowActivate
  4. ไปที่ Settings → Advanced Google reCAPTCHA
  5. วาง Site Key และ Secret Key ที่ได้จาก Google
  6. เลือก reCAPTCHA Version ที่ต้องการ แล้ว Save Changes

ตัวเลือกที่ 2: Contact Form 7 + reCAPTCHA (สำหรับผู้ใช้ CF7)

ถ้าคุณใช้ Contact Form 7 อยู่แล้ว สามารถเพิ่ม reCAPTCHA ได้โดยตรงจาก CF7 Settings โดยไม่ต้องติด Plugin เพิ่ม

  1. ไปที่ Contact → Integration
  2. หาส่วน reCAPTCHA แล้วคลิก Setup Integration
  3. วาง Site Key และ Secret Key จาก Google แล้ว Save
  4. แก้ไข Form แล้วเพิ่ม Shortcode [recaptcha] ก่อนปุ่ม Submit

ตัวเลือกที่ 3: Invisible reCaptcha for WordPress (v2 Invisible)

ถ้าต้องการ reCAPTCHA แบบ Invisible (ไม่มี Checkbox) ให้ใช้ Plugin นี้ ผู้ใช้ไม่ต้องทำอะไร แต่ Bot ยังถูก Block ได้อยู่

  1. ค้นหา "Invisible reCaptcha for WordPress" ใน Plugin Search
  2. ติดตั้งและ Activate
  3. ไปที่ Settings → Invisible reCaptcha แล้วใส่ Key ทั้งสอง
  4. เลือก 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

Tip: เปิด reCAPTCHA บน Login + Comment + Registration ไปก่อนเป็นขั้นต่ำ 3 จุดนี้ครอบปัญหาที่พบบ่อยที่สุดของ WordPress ทั่วไป

ขั้นตอนที่ 4: ทดสอบว่า reCAPTCHA ทำงานถูกต้อง

หลังตั้งค่าเสร็จให้ทดสอบทันที ก่อนที่ Bot จะใช้ช่วงเวลาห่าง Attack:

  1. เปิดหน้า Login ของเว็บใน Incognito Mode ดูว่ามี reCAPTCHA แสดงหรือไม่
  2. ทดลอง Submit Form โดยคลิก Checkbox แล้วกด Login — ควรผ่านได้ปกติ
  3. ทดสอบหน้า Comment โดยเขียน Comment แล้ว Submit — ควรส่งได้ตามปกติ
  4. ตรวจ 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
Tip: ถ้าเปิดหน้า Login แล้วไม่เห็น reCAPTCHA ให้ตรวจสอบ Browser Console (F12) ว่ามี Error แจ้งว่า "Invalid domain" หรือไม่ ซึ่งหมายความว่า Domain ที่ใส่ใน Google reCAPTCHA Admin ไม่ตรงกับ Domain ของเว็บจริง

แก้ปัญหาที่พบบ่อย

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

คำถามที่พบบ่อย

Q: reCAPTCHA ติดฟรีหรือเปล่า? ต้องจ่ายเงินไหม?
A: Google reCAPTCHA v2 และ v3 ใช้ฟรี ไม่มีค่าใช้จ่าย แค่สมัคร Google Account แล้วสร้าง Site ใน reCAPTCHA Admin Console ก็ได้ API Key มาใช้ได้ทันที สำหรับเว็บที่มีปริมาณ Traffic สูงมาก (หลักล้าน Request/เดือน) อาจต้องดูนโยบายของ Google reCAPTCHA Enterprise ซึ่งมีค่าใช้จ่ายเพิ่มเติม
Q: reCAPTCHA ช่วยป้องกัน Spam Email ได้ไหม?
A: ได้ถ้าใส่ reCAPTCHA บน Contact Form และ WooCommerce Order Form เพราะ Bot จะส่ง Form ผ่านไม่ได้ แต่ reCAPTCHA ไม่ได้ป้องกัน Spam ที่มาทาง Direct Email (เช่น Spam ที่ส่งมาหา Email ของคุณโดยตรง ซึ่งต้องใช้ SPF/DKIM/DMARC แทน)
Q: ถ้าเว็บช้าลงหลังติดตั้ง reCAPTCHA ต้องทำอะไร?
A: reCAPTCHA v2 โหลด JavaScript จาก Google ซึ่งอาจเพิ่ม Load Time เล็กน้อย แก้ได้โดยตั้งค่าให้โหลด reCAPTCHA แบบ Async/Defer หรือให้โหลดเฉพาะหน้าที่มี Form เท่านั้น Plugin ส่วนใหญ่มีตัวเลือกนี้ใน Settings หรือเปลี่ยนไปใช้ reCAPTCHA v3 แบบ Invisible ซึ่งกระทบ Core Web Vitals น้อยกว่า