REEID EDITORIAL
ข้อผิดพลาด hreflang ที่พบบ่อยใน WordPress หลายภาษา
ในเว็บไซต์ WordPress หลายภาษา hreflang จะทำงานได้ก็ต่อเมื่อเวอร์ชันภาษาทุกเวอร์ชันชี้ไปยังชุดทางเลือกเดียวกัน แต่ละปลายทางสามารถถูกจัดทำดัชนีได้ และ URL ยังคงสอดคล้องกันเมื่อเนื้อหาเปลี่ยนไป ความล้มเหลวที่พบบ่อยที่สุดไม่ใช่แค่ข้อผิดพลาดด้านไวยากรณ์ แต่เป็นความสัมพันธ์ที่เสียไประหว่างโพสต์ เทมเพลต canonical การเปลี่ยนเส้นทาง และการแมปภาษา
ประเด็นสำคัญ
ให้มอง hreflang เป็นกราฟความสัมพันธ์ ไม่ใช่แท็กที่เพิ่มครั้งเดียวแล้วจบ หาก URL ภาษาใดภาษาหนึ่งเปลี่ยนไป การเปลี่ยนเส้นทาง canonical หรือการอัปเดตโพสต์อาจทำให้ลิงก์ย้อนกลับเสีย และทำให้ทั้งชุดไม่น่าเชื่อถือ
ทำไม hreflang จึงเสียบ่อยใน WordPress
hreflang ขึ้นอยู่กับชุด URL ภาษาที่อ้างอิงกันแบบครบถ้วน ใน WordPress ชุดนั้นมักถูกประกอบจากความสัมพันธ์ของเนื้อหา โครงสร้างลิงก์ถาวร และระบบใดก็ตามที่เก็บการแมปภาษาไว้ หากส่วนใดส่วนหนึ่งของห่วงโซ่นี้เปลี่ยนไปโดยไม่อัปเดตส่วนอื่น ๆ ทางเลือกต่าง ๆ ก็จะไม่อธิบายชุดเนื้อหาเดียวกันอีกต่อไป
นั่นคือเหตุผลที่ความล้มเหลวหลายอย่างไม่แสดงออกมาเป็นหน้าที่เสีย หน้าอาจยังโหลดได้ตามปกติ แต่เครื่องมือค้นหาจะได้รับสัญญาณที่ขัดแย้งกัน: URL หนึ่งบอกว่าเป็นเวอร์ชันภาษาอังกฤษ อีก URL ชี้ไปยัง slug ที่ต่างออกไป และเวอร์ชันที่สามอาจไม่สามารถถูกจัดทำดัชนีได้แล้วหรืออาจมี canonical ไปที่อื่น ผลลัพธ์คือปัญหาด้านความสัมพันธ์ ไม่ใช่แค่ปัญหามาร์กอัป
ลิงก์ย้อนกลับหายไป
ชุด hreflang ต้องเป็นแบบอ้างอิงกันสองทาง หากหน้าภาษาฝรั่งเศสชี้ไปยังหน้าภาษาอังกฤษ หน้าภาษาอังกฤษก็ต้องชี้กลับไปยังหน้าภาษาฝรั่งเศสและไปยังทางเลือกที่ถูกต้องอื่น ๆ ทั้งหมดในชุด
ใน WordPress ลิงก์ย้อนกลับมักล้มเหลวเมื่อมีการเผยแพร่คำแปลหนึ่งช้ากว่าอีกภาษา เมื่อเทมเพลตแสดงทางเลือกเฉพาะบางประเภทโพสต์ หรือเมื่อความสัมพันธ์ของภาษาเป็นไปทางเดียวแต่ไม่ใช่อีกทางหนึ่ง สิ่งนี้สร้างกราฟที่ไม่สมบูรณ์: เครื่องมือค้นหาเห็นว่าหน้าหนึ่งอ้างว่ามีทางเลือก แต่ไม่สามารถยืนยันชุดทั้งหมดจากทุกสมาชิกได้
ผลกระทบเชิงปฏิบัติคือ ลิงก์ย้อนกลับที่หายไปเพียงหนึ่งจุดก็อาจทำให้ทั้งคลัสเตอร์อ่อนแอลง ปัญหานี้มักมองข้ามได้ง่าย โดยเฉพาะเมื่อผู้แก้ไขเนื้อหาอัปเดตเพียงเวอร์ชันภาษาเดียวและคิดว่าความสัมพันธ์ยังคงสมบูรณ์อยู่
การแมปภาษา หรือโลแคลที่ผิด
ความล้มเหลวที่พบบ่อยคือการสับสนระหว่างรหัสภาษา ตัวแปรระดับภูมิภาค หรือป้ายชื่อของไซต์ ค่า hreflang ต้องอธิบายภาษาเป้าหมายหรือภาษา-ภูมิภาคที่แท้จริง ไม่ใช่ป้ายชื่อในเมนูหรือรูปแบบการตั้งชื่อภายในของไซต์
ใน WordPress มักเกิดขึ้นเมื่อไซต์มีหลายเวอร์ชันของภาษาอังกฤษ หรือเมื่อคำแปลถูกกำหนดให้กับความสัมพันธ์ของโลแคลที่ผิดหลังการย้ายเนื้อหา หน้าอาจแปลครบถ้วนแล้ว แต่ถ้าการแมประบุภาษา หรือภูมิภาคผิด สัญญาณก็จะทำให้เข้าใจผิด
เรื่องนี้สำคัญเพราะ hreflang ใช้เพื่อแยกแยะเวอร์ชันที่ใกล้เคียงกัน หากการแมปผิด เครื่องมือค้นหาอาจถือว่าหน้าผิดเป็นตัวเลือกที่เหมาะที่สุดสำหรับภาษาหรือภูมิภาคของผู้ใช้ แม้ว่าเนื้อหาจะถูกต้องก็ตาม
ชุด URL ไม่สอดคล้องกันระหว่างเวอร์ชันภาษา
ทุกหน้าภายในคลัสเตอร์ hreflang ควรอ้างอิงชุดทางเลือกเดียวกัน หากหน้าภาษาอังกฤษระบุภาษาอังกฤษ ฝรั่งเศส และเยอรมัน แต่หน้าภาษาเยอรมันระบุแค่ภาษาเยอรมันกับภาษาอังกฤษ ชุดนั้นก็ไม่สอดคล้องกัน
สิ่งนี้มักเกิดขึ้นเมื่อมีการดูแลความสัมพันธ์ของภาษาแบบแมนนวล เมื่อใช้เทมเพลตเดียวกันซ้ำกับประเภทโพสต์ที่มีการครอบคลุมคำแปลต่างกัน หรือเมื่อบางหน้าถูกตัดออกจากผลลัพธ์ทางเลือกเพราะไม่มีคำแปลที่ตรงกัน ปัญหาไม่ใช่แค่การขาด URL หนึ่งรายการ แต่คือคลัสเตอร์นั้นไม่อธิบายชุดที่เสถียรและใช้ร่วมกันอีกต่อไป
สำหรับผู้ติดตั้ง WordPress คำถามเชิงปฏิบัติคือ รายการทางเลือกถูกสร้างจากความสัมพันธ์ของเนื้อหาปัจจุบัน หรือถูกกำหนดตายตัวในเทมเพลต รายการที่กำหนดตายตัวจะคลาดเคลื่อนทันทีที่มีการเพิ่ม ลบ หรือยกเลิกการเผยแพร่คำแปล
ปลายทางที่ไม่สามารถจัดทำดัชนีได้
hreflang ควรชี้ไปยัง URL ที่เครื่องมือค้นหาสามารถจัดทำดัชนีได้ หากปลายทางถูกบล็อก ถูกตั้งค่า noindex ใช้งานไม่ได้ หรือไม่เข้าเกณฑ์สำหรับการจัดทำดัชนี ก็ไม่สามารถทำหน้าที่เป็นทางเลือกที่เชื่อถือได้
ใน WordPress สิ่งนี้อาจเกิดขึ้นเมื่อหน้าที่แปลแล้วยังเป็นฉบับร่าง ถูกป้องกัน ถูกยกเว้นโดยการตั้งค่าไซต์ หรือแสดงผ่านเส้นทางที่ไม่ได้ตั้งใจให้ถูกจัดทำดัชนี นอกจากนี้ยังอาจเกิดขึ้นเมื่อคำแปลมีอยู่ในระบบเนื้อหา แต่ URL สาธารณะเข้าถึงไม่ได้จริง
รูปแบบความล้มเหลวนี้ละเอียดอ่อน: ความสัมพันธ์ดูเหมือนครบถ้วนใน CMS แต่ปลายทางไม่สามารถมีส่วนร่วมในการจัดทำดัชนีของการค้นหาได้ นั่นหมายความว่าสัญญาณ hreflang กำลังชี้ไปยังหน้าที่ไม่สามารถทำหน้าที่ในคลัสเตอร์ได้
การเปลี่ยนเส้นทางที่อยู่ภายในชุด hreflang
hreflang ควรอ้างอิง URL ปลายทางสุดท้ายที่เป็น canonical แทนที่จะเป็น URL ที่จะถูกเปลี่ยนเส้นทางทันที การเปลี่ยนเส้นทางเพิ่มชั้นการตีความอีกชั้นหนึ่ง และอาจทำให้ไม่ชัดเจนว่า URL ใดควรเป็นตัวแทนของเวอร์ชันภาษา
ใน WordPress การเปลี่ยนเส้นทางมักเกิดขึ้นหลังการเปลี่ยนลิงก์ถาวร การอัปเดต slug หรือการปรับเส้นทางเฉพาะภาษา หากผลลัพธ์ hreflang ยังใช้ URL เดิม ความสัมพันธ์ก็จะชี้ไปยังเป้าหมายที่เคลื่อนที่อยู่ หากห่วงโซ่การเปลี่ยนเส้นทางเปลี่ยนไปในภายหลัง ชุด hreflang ก็อาจเสื่อมลงแบบเงียบ ๆ
ข้อแลกเปลี่ยนทางวิศวกรรมชัดเจน: การเปลี่ยนเส้นทางมีประโยชน์ในการรักษาลิงก์เก่าไว้ แต่ hreflang ควรถูกดูแลบน URL ปลายทางที่เสถียร มิฉะนั้นกราฟภาษาและชั้นการกำหนดเส้นทางจะค่อย ๆ แยกออกจากกัน
ความขัดแย้งของ canonical
URL ของ hreflang และสัญญาณ canonical ต้องเห็นพ้องกันว่าหน้าใดเป็นตัวแทนของเนื้อหา หากหน้าที่แปลแล้วมี canonical ไปยังเวอร์ชันภาษาอื่น สัญญาณก็จะขัดแย้งกัน
สิ่งนี้อาจเกิดขึ้นเมื่อ logic ของ canonical ถูกสืบทอดมาจากเทมเพลต เมื่อเลเยอร์ข้อมูลที่เป็นของปลั๊กอินส่งออกทางเลือก แต่ธีมหรือเลเยอร์ SEO ส่งออก canonical ที่ต่างออกไป หรือเมื่อความสัมพันธ์ของเนื้อหาถูกคัดลอกจากภาษาหนึ่งไปอีกภาษาหนึ่งโดยไม่ปรับปลายทาง canonical ผลลัพธ์คือระบบหนึ่งบอกว่า “นี่คือหน้าภาษาฝรั่งเศส” ขณะที่อีกระบบบอกว่า “หน้าภาษาอังกฤษคือเวอร์ชันที่ควรใช้”
ความขัดแย้งนั้นอาจทำให้ hreflang น่าเชื่อถือน้อยลง เพราะเครื่องมือค้นหาได้รับคำสั่งที่แข่งขันกันสองชุดเกี่ยวกับ URL เดียวกัน รูปแบบที่ปลอดภัยที่สุดคือความสอดคล้อง: ทุกหน้าภาษาที่สามารถจัดทำดัชนีได้ควรมี canonical ไปยังตัวเอง เว้นแต่จะมีเหตุผลที่ตั้งใจและมีเอกสารกำกับไว้อย่างชัดเจนว่าควรทำอย่างอื่น
ความสัมพันธ์ล้าสมัยหลังการเปลี่ยนเนื้อหา
การเปลี่ยนเนื้อหาใน WordPress ไม่ได้รักษาความสัมพันธ์ของภาษาไว้โดยอัตโนมัติเสมอไป การเปลี่ยน slug การลบคำแปล การทำสำเนาโพสต์ หรือการรวมเนื้อหา อาจทิ้งการอ้างอิงเก่าไว้ใน post meta ฟิลด์กำหนดเอง หรือข้อมูลความสัมพันธ์ที่เป็นของปลั๊กอิน
นี่เป็นหนึ่งในความล้มเหลวระยะยาวที่พบบ่อยที่สุด เพราะไซต์อาจถูกต้องในตอนเปิดใช้งานครั้งแรก เมื่อเวลาผ่านไป ผู้แก้ไขอัปเดตเพียงภาษาเดียว ย้ายหน้า หรือเลิกใช้คำแปล แต่ชุดทางเลือกไม่ได้ถูกสร้างใหม่ ผลลัพธ์คือ hreflang แสดง URL ที่ไม่ควรอยู่ด้วยกันอีกต่อไป
ความเสี่ยงเชิงปฏิบัติจะสะสมมากขึ้น ยิ่งเนื้อหาเปลี่ยนบ่อยเท่าไร กราฟภาษาก็ยิ่งมีโอกาสล้าสมัยบางส่วนมากขึ้น เว้นแต่ระบบจะสร้างความสัมพันธ์ใหม่จากแหล่งข้อมูลจริงปัจจุบัน
ความล้มเหลวเหล่านี้มักปรากฏใน WordPress อย่างไร
ปัญหา hreflang ส่วนใหญ่ใน WordPress เกิดจากความไม่ตรงกันระหว่างสถานะของเนื้อหาและสถานะของผลลัพธ์ CMS อาจรู้ว่าโพสต์ใดเป็นคำแปล แต่หน้าที่แสดงผล แท็ก canonical ชั้นการเปลี่ยนเส้นทาง หรือโครงสร้างลิงก์ถาวร อาจไม่สะท้อนความสัมพันธ์นั้นอีกต่อไป
นั่นคือเหตุผลที่ผู้ติดตั้งควรคิดในเชิงของการพึ่งพา: ความสัมพันธ์ของคำแปล URL สาธารณะ ความสามารถในการจัดทำดัชนีของปลายทาง และปลายทาง canonical ล้วนต้องสอดคล้องกัน หากชั้นใดชั้นหนึ่งเปลี่ยนไปโดยที่ชั้นอื่นไม่เปลี่ยน คลัสเตอร์ hreflang ก็จะไม่สอดคล้องกัน แม้มาร์กอัปจะถูกต้องตามไวยากรณ์ก็ตาม
สำคัญ
คำถามที่พบบ่อย
ทำไมลิงก์ย้อนกลับที่หายไปเพียงหนึ่งจุดจึงสำคัญ ถ้าหน้าอื่นถูกต้อง?
เพราะ hreflang ถูกประเมินเป็นชุดที่อ้างอิงกันสองทาง หากหน้าหนึ่งชี้ไปยังทางเลือกที่ไม่ชี้กลับ คลัสเตอร์ก็จะไม่สมบูรณ์ และความสัมพันธ์จะน่าเชื่อถือน้อยลง
hreflang ควรชี้ไปยัง URL ที่ถูกเปลี่ยนเส้นทางหรือ URL ปลายทางสุดท้าย?
ควรชี้ไปยัง URL ปลายทางสุดท้ายที่เสถียร การเปลี่ยนเส้นทางเพิ่มชั้นอีกชั้นที่อาจคลาดเคลื่อนจากความสัมพันธ์ของภาษาและทำให้สัญญาณอ่อนลง
หน้าที่ถูกตั้งค่า noindex ยังอยู่ในชุด hreflang ได้หรือไม่?
ไม่ได้ ปลายทางที่ไม่สามารถจัดทำดัชนีได้ไม่สามารถทำหน้าที่เป็นทางเลือกในคลัสเตอร์ได้อย่างน่าเชื่อถือ เพราะเครื่องมือค้นหาไม่ได้ตั้งใจให้จัดทำดัชนีหน้านั้น
อะไรคือสาเหตุที่ทำให้ hreflang ล้าสมัยใน WordPress โดยทั่วไป?
การเปลี่ยนเนื้อหา เช่น การอัปเดต slug การลบคำแปล การทำสำเนา หรือการรวมเนื้อหา อาจทิ้งความสัมพันธ์ของภาษาที่ล้าสมัยไว้ใน post meta ฟิลด์กำหนดเอง หรือข้อมูลของปลั๊กอิน หากชุดนั้นไม่ได้ถูกสร้างใหม่
แหล่งที่มา & หลักฐาน
Google: เวอร์ชันที่แปลเป็นภาษาท้องถิ่น · Google: การทำ canonicalization
นำสถาปัตยกรรมไปใช้งาน
ดูว่าอินทิเกรชันของ WordPress ทำงานอย่างไรในระบบหลายภาษา
สำรวจความเข้ากันได้เฉพาะปลั๊กอิน พื้นที่แปล และหมายเหตุการติดตั้งใน REEID Integration Directory






