จะพิมพ์ URL ลงโปสเตอร์ ใส่ในสไลด์ หรือทำ QR ให้คนสแกนจากป้ายหน้าร้าน URL ที่ยาว 200 ตัวอักษรพร้อม query string เป็นปัญหาทันที: พิมพ์ตามไม่ได้ QR ก็หนาแน่นจนสแกนจากระยะไกลลำบาก และไม่มีทางรู้ว่ามีคนเปิดจากโปสเตอร์กี่ครั้ง บริการย่อลิงก์แก้สามปัญหานี้ แต่ส่วนใหญ่ต้องสมัครก่อนและเก็บข้อมูลของคนคลิกไว้ด้วย บทความนี้อธิบายว่าลิงก์สั้นทำงานอย่างไรจริงๆ QR เกี่ยวข้องตรงไหน ตัวนับคลิกบอกอะไรและไม่บอกอะไร และข้อแลกเปลี่ยนที่ควรรู้ก่อนเอาลิงก์ที่ไม่มีบัญชีไปพิมพ์ 1,000 ใบ

ลิงก์สั้นคืออะไรกันแน่

ลิงก์สั้นไม่ใช่เวทมนตร์ มันคือหน้าเว็บเล็กๆ ที่จำว่ารหัสสั้นๆ ตัวนี้แทน URL ยาวอันไหน พอมีคนเปิด https://reefsight.tech/l/viQZLUi เซิร์ฟเวอร์ค้นรหัส viQZLUi ในฐานข้อมูล ตอบ HTTP 302 พร้อม header Location ชี้ไปปลายทาง แล้วบวกตัวนับหนึ่ง เบราว์เซอร์ตามไปเองโดยผู้ใช้ไม่ต้องทำอะไร นั่นคือทั้งหมด

เลือกใช้ 302 (redirect ชั่วคราว) แทน 301 (ถาวร) ด้วยเหตุผลเรื่องการนับ: เบราว์เซอร์จะจำ 301 ไว้และครั้งถัดไปข้ามเซิร์ฟเวอร์ไปปลายทางเลย ทำให้นับคลิกไม่ได้ ส่วน 302 ทำให้ทุกการเปิดต้องผ่านเซิร์ฟเวอร์ก่อนเสมอ

รหัส 7 ตัวมาจากไหน

รหัสถูกสุ่มจากตัวอักษรและตัวเลขที่ตัดตัวที่สับสนกันออกแล้ว คือไม่มี 0, O, 1 และ l เพื่อให้อ่านจากกระดาษหรือบอกปากเปล่าได้โดยไม่พิมพ์ผิด รหัสแยกตัวพิมพ์เล็กใหญ่ (viQZLUi กับ viqzlui เป็นคนละลิงก์) และสุ่มใหม่ทุกครั้ง ส่ง URL เดิมซ้ำจึงได้รหัสใหม่ ไม่ใช่รหัสเดิม

QR เกี่ยวข้องอย่างไร

QR code เก็บข้อความ ยิ่งข้อความยาว QR ยิ่งต้องใช้โมดูล (จุดสี่เหลี่ยมเล็กๆ) มากขึ้น ซึ่งหมายถึงต้องพิมพ์ใหญ่ขึ้นหรือสแกนจากระยะใกล้ขึ้น URL ยาว 200 ตัวอักษรให้ QR ที่หนาแน่น ขณะที่ https://reefsight.tech/l/viQZLUi ยาวแค่ 31 ตัวอักษร ให้ QR ที่โปร่งกว่ามาก พิมพ์ลงนามบัตรหรือมุมสไลด์ได้สบาย

QR ที่เครื่องมือสร้างให้จึง เข้ารหัสลิงก์สั้น ไม่ใช่ URL ปลายทาง ข้อดีคือทุกการสแกนผ่านเซิร์ฟเวอร์และถูกนับ ข้อแลกเปลี่ยนคือ QR ผูกกับรหัสนั้นตลอดไป ซึ่งจะพูดถึงในหัวข้อถัดไป

เมื่อไรควรย่อ และเมื่อไรไม่จำเป็น

ถ้า URL ปลายทางสั้นอยู่แล้ว (เช่น หน้าแรกของเว็บ) และไม่ต้องการนับว่ามีคนสแกนกี่ครั้ง การทำ QR จาก URL ตรงๆ จะง่ายกว่าและไม่มีตัวกลาง เพราะถ้าบริการย่อลิงก์หยุดให้บริการ QR บนกระดาษก็ยังใช้ได้ ลิงก์สั้นคุ้มเมื่อ URL ยาว มี query string หรือต้องการตัวเลขว่าสื่อชิ้นไหนได้ผล เช่น ทำลิงก์คนละรหัสสำหรับโปสเตอร์ นามบัตร และสไลด์ แล้วเทียบตัวนับของแต่ละรหัส

ไม่ต้องสมัคร แลกกับอะไร

การไม่มีบัญชีทำให้เริ่มใช้ได้ใน 5 วินาที แต่มีข้อแลกเปลี่ยนสี่ข้อที่ควรรู้ก่อนพิมพ์

  1. ตั้งชื่อลิงก์เองไม่ได้ ไม่มี custom alias เพราะถ้าไม่มีบัญชีก็กันคนจองชื่อหรือแอบอ้างแบรนด์คนอื่นไม่ได้
  2. แก้ปลายทางทีหลังไม่ได้ /l/<code> ผูกกับ URL เดิมตลอด ถ้าปลายทางเปลี่ยน ต้องสร้างใหม่และเปลี่ยน QR ด้วย ดังนั้นก่อนพิมพ์ ให้แน่ใจว่า URL ปลายทางเป็นหน้าที่จะอยู่ไปนานๆ หรือเป็นหน้าที่คุณควบคุม redirect เองได้
  3. ลบเองไม่ได้ และลิงก์ไม่หมดอายุ ถ้าต้องการปิดลิงก์ ส่งความเห็นมาพร้อมรหัส ทีมปิดให้ได้ ลิงก์ที่ใช้ในทางผิดจะถูกปิด
  4. ไม่มีสถิติรายประเทศหรืออุปกรณ์ เพราะระบบตั้งใจไม่เก็บ IP หรือ user agent ของคนคลิก

ตัวนับคลิกบอกอะไร (และไม่บอกอะไร)

ทุก request ที่มาถึง /l/<code> นับ 1 รวมถึง bot และ preview ของแอปแชต (LINE, Facebook และอีกหลายแอปจะเปิดลิงก์ล่วงหน้าเพื่อทำการ์ดตัวอย่าง) ตัวเลขจึงสูงกว่าคนจริงเล็กน้อย โดยเฉพาะลิงก์ที่แชร์ในกลุ่มแชต

ระบบเก็บเฉพาะ URL ปลายทาง รหัส จำนวนคลิก และเวลาคลิกล่าสุด ไม่เก็บ IP, user agent, referrer หรือตำแหน่ง ถ้าต้องการสถิติละเอียด วิธีที่ถูกต้องคือใส่ UTM parameter ใน URL ปลายทาง (เช่น ?utm_source=poster&utm_campaign=open-house) แล้วดูที่ analytics ของเว็บคุณเอง ซึ่งจะได้ข้อมูลที่ครบกว่าและอยู่ในระบบที่คุณควบคุม

ใช้ในระบบของตัวเอง

endpoint POST /api/v1/links รับ JSON ที่มีฟิลด์ url ไม่ต้องมี key ไม่ต้องสมัคร

Terminal
curl -X POST https://reefsight.tech/api/v1/links \
  -H "Content-Type: application/json" \
  -d '{"url":"https://reefsight.tech/tools/api"}'
json
{
  "data": {
    "code": "viQZLUi",
    "url": "https://reefsight.tech/tools/api",
    "shortUrl": "https://reefsight.tech/l/viQZLUi",
    "qrUrl": "https://reefsight.tech/api/v1/links/viQZLUi/qr.png",
    "clicks": 0,
    "lastClickAt": null,
    "createdAt": "2026-10-04T09:10:50.897756769Z"
  }
}

ตอบ 201 พร้อมรหัส ลิงก์สั้น และลิงก์รูป QR ที่วางใน <img> ได้ทันที เก็บ code ไว้ในระบบของคุณ เพราะเป็นทางเดียวที่จะกลับมาดูสถิติ

Terminal
curl https://reefsight.tech/api/v1/links/viQZLUi
# → "clicks": 1, "lastClickAt": "2026-10-04T09:10:51.884204Z"

จาก JavaScript บนเว็บไซต์ของคุณเรียกตรงได้ เพราะ API ส่ง CORS header

js
const res = await fetch("https://reefsight.tech/api/v1/links", {
  method: "POST",
  headers: {"Content-Type": "application/json"},
  body: JSON.stringify({url: "https://example.com/search?q=ข้าวผัด&page=2"}),
});
const {data} = await res.json();
console.log(data.shortUrl); // https://reefsight.tech/l/2Hqseqd
document.querySelector("img.qr").src = data.qrUrl;

URL ที่มี query ภาษาไทยถูกเก็บตามที่ส่งโดยไม่ encode เพิ่ม และส่งต่อครบตอน redirect

กรณีที่ถูกปฏิเสธ

HTTPcodeตัวอย่าง inputเหตุผล
422invalid_inputftp://example.com/fileรับเฉพาะ http และ https
422invalid_inputhttp://localhost:3000/adminไม่รับ IP, localhost หรือโดเมนที่ไม่มีจุด เพื่อกันลิงก์ไปเครือข่ายภายใน
422invalid_input{"title":"x"}เป็น JSON แต่ไม่มีฟิลด์ url
400invalid_jsonurl=https://example.combody ไม่ใช่ JSON ต้องส่ง Content-Type: application/json
404not_foundGET /api/v1/links/zzzzzzzรหัสไม่มีอยู่

ข้อควรระวัง

  • โควตาสร้าง 30 ลิงก์ต่อ IP ทุก 15 นาที นับรวมครั้งที่ error ด้วย ส่วนการดูสถิติ รูป QR และ redirect ไม่จำกัด ถ้าต้องสร้างเป็นชุดใหญ่ ให้เว้นช่วงและรองรับ 429
  • URL ไม่เกิน 2048 ตัวอักษร และต้องเป็น URL เต็มแบบ http/https เท่านั้น ไม่รับ IP, localhost, โดเมนที่ไม่มีจุด หรือลิงก์กลับมาที่ reefsight.tech เอง
  • ปลายทางเปลี่ยนไม่ได้ ถ้ามีโอกาสที่หน้าปลายทางจะย้าย ให้ชี้ลิงก์สั้นไปที่หน้าที่คุณควบคุม redirect ได้ แล้วค่อยเปลี่ยนที่ฝั่งคุณ
  • ตัวนับรวม bot การแชร์ในแชตจะเพิ่มคลิกจาก preview ของแอป ตัวเลขจึงเป็นค่าประมาณบน ไม่ใช่จำนวนคนจริง
  • ส่ง URL เดิมซ้ำได้รหัสใหม่ อย่าสร้างซ้ำแล้วคาดว่าจะได้อันเดิม เก็บรหัสที่ได้ครั้งแรกไว้

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

QR สแกนแล้วไปไหน ไป https://reefsight.tech/l/<code> ซึ่ง redirect 302 ไปปลายทางและนับคลิก จึงเปลี่ยนปลายทางไม่ได้โดยไม่เปลี่ยน QR

ทำไมไม่มี custom alias หรือตั้งชื่อลิงก์เอง เพราะไม่มีบัญชีผู้ใช้ จึงกันคนจองชื่อหรือแอบอ้างแบรนด์ไม่ได้ ถ้ามีความต้องการจริง จะเพิ่มพร้อมระบบล็อกอิน

ถ้าต้องการ QR ที่ใส่สีหรือโลโก้ล่ะ QR ของลิงก์สั้นเป็นแบบมาตรฐานขาวดำ ถ้าต้องการปรับสีหรือใส่โลโก้ ให้นำ shortUrl ไปสร้างที่เครื่องมือ QR Code ของเว็บเดียวกัน ซึ่งยังนับคลิกได้เพราะ URL ที่เข้ารหัสยังเป็นลิงก์สั้นเดิม

ย่อลิงก์แรกได้เลย

หน้า reefsight.tech › short-link มีฟอร์มย่อลิงก์ กรอบมือถือจำลองที่แสดง QR ซึ่งสแกนได้จริง และตัวนับคลิกที่อัปเดตเมื่อกด พร้อมเอกสาร API ที่ตัวอย่างทุกตัวถูกรันตรวจกับระบบจริง ใช้ฟรี ไม่ต้องสมัคร และไม่เก็บข้อมูลคนคลิก

คุยกับทีม Reefsight