แปลงข้อความให้เป็น URL slug ที่อ่านง่ายและเป็นมิตรกับ SEO
URL Slug คือส่วนสุดท้ายของ URL ที่อธิบายเนื้อหาของหน้านั้นๆ เช่น ใน URL madestool.com/blog/วิธีใช้-json-formatter ส่วน slug คือ วิธีใช้-json-formatter Slug ที่ดีเป็นปัจจัยสำคัญของ SEO เพราะ Google ใช้ข้อมูลจาก URL ในการทำความเข้าใจเนื้อหาของหน้า และผู้ใช้ยังใช้ URL เพื่อตัดสินใจว่าจะ click เข้าชมหรือไม่
my-blog-post ดีกว่า My-Blog-Post เพราะ URL เป็น case-sensitive บางเซิร์ฟเวอร์web-design-tips ดีกว่า web_design_tips หรือ webdesigntips| หัวข้อบทความ | Slug ที่ดี | Slug ที่ควรหลีกเลี่ยง |
|---|---|---|
| วิธีติดตั้ง Node.js บน Ubuntu | install-nodejs-ubuntu | how-to-install-node-js-on-ubuntu-2024 |
| 10 เทคนิค Python ที่ควรรู้ | python-tips-developers | 10_เทคนิค_Python_ที่ควรรู้!!! |
| คำนวณภาษีเงินได้ 2567 | คํานวณภาษีเงินได้-2567 | Page%201%20-%20ภาษี |
ตัวอักษรไทยใน URL จะถูก percent-encode โดย browser เช่น "สวัสดี" กลายเป็น %E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5 ซึ่งอ่านยากมากเมื่อ share เป็นข้อความ แนวทางมี 2 ทาง:
- ซึ่งเป็นมาตรฐาน)pages/blog/[slug].tsx แล้วรับค่าผ่าน router.query.slugspatie/laravel-sluggable สำหรับ auto-generate slug จาก model attributeSlugField ใน model และ slugify() จาก django.utils.textURL Slug คือส่วนท้ายของ URL ที่อ่านง่ายและอธิบายเนื้อหาของหน้านั้น เช่น URL madestool.com/blog/how-to-use-regex ส่วน slug คือ how-to-use-regex Slug ที่ดีควรสั้น กระชับ สื่อความหมาย ใช้ตัวพิมพ์เล็กทั้งหมด และคั่นด้วยขีดกลาง (hyphen) ไม่ใช้อักขระพิเศษหรือช่องว่าง การมี slug ที่ดีช่วยให้ทั้งผู้ใช้และ search engine เข้าใจเนื้อหาหน้าเว็บได้ทันที
Slug ที่ดีสำหรับ SEO ควรมีลักษณะดังนี้ ประกอบด้วยคำ keyword หลักที่ต้องการ rank, สั้นและกระชับ (แนะนำ 3-5 คำ), ใช้ตัวพิมพ์เล็กทั้งหมด, คั่นด้วย hyphen (-) ไม่ใช้ขีดล่าง (_), ไม่มี stop words ที่ไม่จำเป็น เช่น "a, the, and", ไม่มีตัวเลขหรืออักขระพิเศษที่ไม่เกี่ยวข้อง และไม่ควรเปลี่ยน slug หลังจาก publish เพราะจะทำให้ backlink เดิมเสีย
Google แนะนำให้ใช้ขีดกลาง (-) แทนขีดล่าง (_) ใน URL เพราะ Google อ่านขีดกลางเป็นตัวคั่นคำ ทำให้ url-slug ถูก index เป็น 2 คำแยกกัน แต่ขีดล่างจะถูกมองเป็นตัวเชื่อมคำ ทำให้ url_slug ถูก index เป็นคำเดียวว่า "urlslug" นอกจากนี้ขีดล่างใน URL ยังอาจถูกขีดเส้นใต้ซ้อนทับเมื่อแสดงผลใน hyperlink ทำให้มองไม่เห็น
ตัวอักษรไทยใน URL จะถูกpercent encode เป็น %E0%B8... ซึ่งอ่านยากมาก แนวทางที่ดีกว่าคือ ถ้าเป็นเว็บภาษาไทยสำหรับกลุ่มเป้าหมายไทยอาจใช้ตัวอักษรไทยใน slug ได้โดย browser สมัยใหม่แสดงผลได้ถูกต้อง แต่ถ้าต้องการ SEO ระดับสากลหรือ share ผ่าน SMS/email ควรแปลงเป็นการถ่ายเสียงภาษาอังกฤษ (romanization) เช่น "สวัสดี" → "sawatdee" แทน