เจาะลึกปัญหาสนุกๆ ของ Multilingual SEO เมื่อ Trailing Slash พาหลงทาง 4 ชั่วโมง
แชร์ประสบการณ์ปรับแต่ง SEO หลายภาษาสำหรับเว็บไซต์เครื่องมือขนาดเล็ก ที่เกือบพังเพราะ URL มีหรือไม่มีเครื่องหมายทับท้ายไม่ตรงกัน

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- เว็บไซต์เครื่องมือ 6 ภาษาเผชิญปัญหาหน้าภาษาจีนถูก Google รวมเข้ากับเวอร์ชันภาษาอังกฤษ
- สาเหตุจาก Canonical URL มี trailing slash แต่ sitemap ไม่มี ทำให้ Cloudflare และ Google สับสน
- ใช้เวลาแก้นานถึง 4 ชั่วโมงเต็มจนกว่า URL ทั้งหมดจะตรงกัน
- วางแผนทำ build-time check เพื่อป้องกันปัญหานี้ในอนาคต
การพัฒนาเว็บไซต์เครื่องมือบนเบราว์เซอร์ที่มีหลายภาษาฟังดูเหมือนเป็นงานที่ใช้เวลาไม่นานนัก แต่สำหรับนักพัฒนาที่ดูแลโปรเจกต์เดี่ยว การจัดการเรื่อง SEO ในหลายภาษากลับซ่อนความน่าปวดหัวเอาไว้มากกว่าที่คิด โดยเฉพาะเมื่อรายละเอียดเล็กๆ น้อยๆ อย่างเครื่องหมายสแลชท้าย URL ไม่ตรงกัน
สัญญาณแรกที่บ่งบอกว่ามีบางอย่างผิดปกติเกิดขึ้นคือ หน้าเว็บภาษาจีนไม่ได้แสดงผลแยกเป็น URL ของตัวเองบน Google Search Console แต่กลับถูกยุบรวมเข้ากับเวอร์ชันภาษาอังกฤษ ส่งผลให้อันดับภาษาอังกฤษยังคงอยู่ แต่หน้าภาษาจีนกลับหายไปอย่างไร้ร่องรอย

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
เมื่อตรวจสอบซอร์ซโค้ดของหน้าเครื่องมือภาษาจีนพบว่า Canonical URL ชี้ไปยังหน้าภาษาจีนที่ถูกต้อง ซึ่งลงท้ายด้วยเครื่องหมายสแลช (trailing slash) ตามค่าเริ่มต้นของ Next.js ทว่ารายการใน sitemap ที่ส่งไปก่อนหน้านี้กลับไม่มีเครื่องหมายสแลช ส่งผลให้ระบบของ Cloudflare ทำการแปลง URL อย่างเงียบๆ และทำให้ Google มองว่าหน้าตาม sitemap ไม่มีตัวตนจริง จึงตัดสินใจเลือกเวอร์ชันภาษาอังกฤษเป็นหน้าหลักแทน
หลังจากปรับแก้ให้ข้อมูลทั้งสามส่วนตรงกัน ไม่ว่าจะเป็นหน้าเว็บจริง Canonical URL และ sitemap ปริมาณข้อผิดพลาดบน Search Console ก็ลดลงจนเหลือศูนย์ภายในเวลาประมาณสามวัน
ในเชิงเทคนิคแล้ว การทำ Multilingual SEO มักสะดุดกับปัญหาความไม่สอดคล้องกันของ URL Structure บ่อยครั้ง การที่เครื่องมือค้นหาอย่าง Google มองว่า URL ที่มีและไม่มี trailing slash เป็นคนละหน้ากัน แม้เนื้อหาจะเหมือนกันเป๊ะ ทำให้เกิดปัญหา Duplicate Content ได้ง่าย การตั้งค่าระบบแคชหรือพร็อกซีอย่าง Cloudflare จึงต้องระมัดระวังเรื่องการทำ URL rewriting เป็นพิเศษเพื่อไม่ให้ทับซ้อนกับค่าที่ประกาศใน Canonical tag
ปัจจุบันผู้พัฒนาเว็บไซต์ดังกล่าวยังคงทยอยเคลียร์หน้าเว็บส่วนน้อยที่ยังมีคำเตือนเรื่องเนื้อหาซ้ำซ้อน โดยมีแผนจะสร้างสคริปต์ตรวจสอบในช่วง build-time ที่จะสั่งยกเลิกกระบวนการ build ทันทีหากพบว่า Canonical URL ไม่ตรงกับรายการใน sitemap และหากสคริปต์นี้ใช้งานได้ดี ก็มีโครงการจะเปิดซอร์สโค้ดให้ผู้อื่นนำไปใช้ต่อได้ด้วย
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น