Canonical Tag คือโค้ด <link rel="canonical"> ที่ใส่ไว้ในหน้าเว็บเพื่อบอก Google ว่าเมื่อมีหลาย URL ที่เนื้อหาเหมือนหรือคล้ายกันมาก URL ไหนคือ ตัวจริงที่ควรนำไปจัดอันดับและแสดงผลในการค้นหา ส่วน URL อื่นที่เหลือจะถูกรวมสัญญาณ (เช่น backlink) เข้ากับตัวจริง ไม่ใช่การซ่อนหน้าหรือบล็อกการเข้าถึงแบบ robots.txt

ปัญหาที่พบบ่อยคือคนตั้ง canonical โดยเข้าใจว่า Google จะเชื่อตามที่สั่งเสมอ ทั้งที่ความจริงคือ canonical เป็นแค่ สัญญาณ ไม่ใช่คำสั่งบังคับ ถ้าตั้งขัดแย้งกับสัญญาณอื่น เช่น internal link ส่วนใหญ่ชี้ไปอีก URL หนึ่ง Google มีสิทธิ์เลือก URL อื่นเป็น canonical เองได้ ซึ่งเป็นสาเหตุอันดับ 1 ที่ทำให้คนงงว่า "ทำไมตั้ง canonical แล้ว Google ไม่เชื่อ"

Canonical Tag ต่างจาก 301 Redirect และ Noindex ยังไง

ต่างกันที่ผลลัพธ์ต่อผู้ใช้และต่อ URL ที่เหลือ canonical ปล่อยให้ URL ซ้ำยังเปิดได้ปกติแต่บอกว่าอย่านำไปจัดอันดับแยก ส่วน 301 redirect คือการย้ายผู้ใช้และบอทไปที่ URL ใหม่ทันที URL เดิมใช้ไม่ได้อีก และ noindex คือสั่งไม่ให้ URL นั้นขึ้นผลค้นหาเลยแม้จะยังเข้าเว็บได้

เลือกผิดตัวมีผลต่างกันชัดเจน ถ้าเนื้อหาซ้ำแบบถาวรและไม่มีเหตุผลต้องเก็บ URL เดิมไว้ ควรใช้ 301 redirect เพราะรวมสัญญาณได้เต็มที่และผู้ใช้ไม่หลงเข้าหน้าเก่า ถ้าต้องเก็บทั้งสอง URL ไว้ใช้งานจริง (เช่น URL ที่มี parameter สำหรับ tracking) ให้ใช้ canonical ส่วน noindex เหมาะกับหน้าที่ไม่อยากให้ติดอันดับเลย เช่นหน้าค้นหาภายในเว็บหรือหน้าขอบคุณหลังกรอกฟอร์ม

เครื่องมือURL เดิมยังใช้ได้ไหมรวมสัญญาณ SEO ไหมใช้เมื่อไหร่
Canonical Tagได้ เปิดได้ปกติได้ แต่เป็นสัญญาณ ไม่บังคับต้องเก็บทั้งสอง URL ไว้ใช้งานจริง
301 Redirectไม่ได้ เด้งไป URL ใหม่ทันทีได้เกือบเต็ม เป็นคำสั่งบังคับย้าย URL ถาวร เลิกใช้ URL เดิม
Meta Noindexได้ เปิดได้ปกติไม่รวม หน้าหลุดจากผลค้นหาไม่อยากให้หน้านั้นติดอันดับเลย
robots.txt Disallowได้ แต่บอทอ่านเนื้อหาไม่ได้ไม่รวม และเห็น noindex ไม่ได้กันบอทเปลืองงบคลาน ไม่ใช่กันหน้าออกจาก Google

ทำไมห้ามใช้ noindex กับ canonical คู่กันบน URL เดียว

หลายเว็บใส่ทั้ง noindex และ canonical ชี้ไปหน้าอื่นในหน้าเดียวกันเพราะคิดว่ายิ่งกันเหนียวยิ่งดี แต่สองแท็กนี้ขัดแย้งกันเอง เพราะ canonical บอกว่า "หน้านี้คือสำเนา ให้เชื่อสัญญาณของตัวจริง" ในขณะที่ noindex บอกว่า "หน้านี้ห้ามขึ้นผลค้นหา" Google อาจตีความสับสนและเลือกไม่เชื่อสัญญาณใดสัญญาณหนึ่งไปเลย ควรเลือกใช้อย่างใดอย่างหนึ่งตามเป้าหมายจริง

เมื่อไหร่ควรใช้ Canonical Tag

ควรใช้เมื่อเว็บมี URL มากกว่าหนึ่งที่แสดงเนื้อหาเดียวกันหรือใกล้เคียงกันมาก และทุก URL ยังจำเป็นต้องเปิดใช้งานได้จริง สถานการณ์ที่เจอบ่อยที่สุดคือ URL ที่มี parameter ต่อท้าย เช่นตัวติดตามแคมเปญหรือตัวกรองสินค้าที่ไม่เปลี่ยนเนื้อหาหลักของหน้า

อีกกรณีที่พลาดกันบ่อยคือเว็บเข้าได้พร้อมกันหลายเวอร์ชันโดยไม่ตั้งใจ เช่น http และ https, www และไม่มี www, URL ที่มีและไม่มี trailing slash ถ้าไม่ได้ทำ 301 redirect รวมเป็นเวอร์ชันเดียว Google จะมองเป็นเนื้อหาซ้ำกันหลายชุดทันที

  • URL ที่มี UTM parameter หรือ session ID ต่อท้ายสำหรับแคมเปญโฆษณา
  • หน้าสินค้าเดียวกันที่เข้าได้จากหลายหมวดหมู่ (URL ต่างกันแต่เนื้อหาเหมือนกัน)
  • หน้าเวอร์ชันพิมพ์ (print version) หรือ URL แบบ AMP คู่กับ URL ปกติ
  • เนื้อหาที่ถูกนำไปเผยแพร่ซ้ำที่เว็บอื่น (syndicated content)

ตัวอย่าง URL parameter ที่มักลืมตั้ง canonical

ร้านค้าออนไลน์ที่มีตัวกรองสินค้าอย่างสี ขนาด หรือการเรียงลำดับราคา มักสร้าง URL ใหม่ทุกครั้งที่ผู้ใช้กดกรอง เช่น /shop/shoes?color=red และ /shop/shoes?sort=price ทั้งสอง URL แสดงสินค้าใกล้เคียงหน้าเดิมมาก ถ้าไม่ตั้ง canonical กลับไปที่ /shop/shoes เว็บอาจมี URL ซ้ำเป็นพันหน้าโดยไม่รู้ตัว ซึ่งเป็นปัญหาเดียวกับที่อธิบายไว้ใน Duplicate Content คืออะไร อย่างละเอียด

วิธีใส่ Canonical Tag ให้ถูกต้อง

รูปแบบมาตรฐานคือใส่บรรทัด <link rel="canonical" href="https://example.com/หน้าตัวจริง" /> ไว้ใน <head> ของหน้า HTML โดยต้องเป็น URL แบบเต็ม (absolute URL) เสมอ ไม่ใช่ path สั้นแบบ relative เพราะบางระบบดึงค่าไปใช้ผิดโดเมนได้ถ้าเผลอใส่แบบ relative

หลักที่สำคัญที่สุดคือทุกหน้าควรมี self-referencing canonical คือหน้านั้นชี้ canonical กลับมาที่ตัวเอง แม้จะไม่มีปัญหาเนื้อหาซ้ำก็ตาม เพราะกันปัญหาที่ URL เดียวกันถูกเข้าถึงได้จากหลายพารามิเตอร์โดยที่ทีมพัฒนาไม่รู้ล่วงหน้า

  • canonical ต้องชี้ไปหน้าที่ตอบ 200 OK เท่านั้น ห้ามชี้ไปหน้าที่ redirect, 404 หรือ noindex
  • ใช้ absolute URL พร้อม protocol (https://) เสมอ ห้ามใช้ relative path
  • หนึ่งหน้าใส่ canonical ได้แค่บรรทัดเดียว ถ้ามีหลายบรรทัดขัดกัน Google จะเมินทั้งหมดแล้วเลือกเอง
  • canonical ที่ใส่ผ่าน HTTP Header (Link header) ใช้ได้กับไฟล์ที่ไม่ใช่ HTML เช่น PDF

ตั้ง Canonical ข้ามโดเมนได้ไหม เหมาะกับกรณีไหน

ได้ Cross-domain canonical ใช้ได้จริงและ Google รองรับ เหมาะกับกรณีเนื้อหาเดียวกันถูกเผยแพร่ในหลายเว็บ เช่นบทความที่ทำ Guest Post แล้วอยากให้เว็บต้นทางเป็นตัวจริงที่ได้เครดิต SEO เต็มที่ ก็ให้เว็บปลายทางใส่ canonical ชี้กลับมาที่เว็บต้นทาง

ข้อควรระวังคือเว็บปลายทางต้องยินยอมใส่ canonical ให้จริง ถ้าเป็นเว็บที่เราไม่ได้ควบคุม ต้องตกลงกับเจ้าของเว็บก่อนเผยแพร่ ไม่ใช่แค่ส่งบทความไปแล้วคาดหวังว่าเขาจะใส่ให้เอง เพราะถ้าไม่มี canonical และเนื้อหาเหมือนกันทุกตัวอักษร Google อาจเลือกเว็บที่มีความน่าเชื่อถือสูงกว่าเป็นตัวจริงแทน แม้จะไม่ใช่เว็บต้นฉบับก็ตาม

จุดผิดพลาดที่พบบ่อยเวลาตั้ง Canonical

ข้อผิดพลาดที่พบบ่อยที่สุดคือ canonical ชี้ไปหน้าที่ redirect หรือ 404 ต่อ ซึ่งเกิดขึ้นได้ง่ายหลังทำ ย้ายโดเมนหรือเปลี่ยนโครงสร้าง URL แล้วลืมอัปเดตค่า canonical ให้ตรงกับ URL ปลายทางใหม่

อีกจุดคือระบบ CMS หรือปลั๊กอินหลายตัวทำงานชนกัน เช่นตั้งค่า SEO plugin ไว้ชุดหนึ่ง แต่ theme หรือปลั๊กอินอีกตัวก็ generate canonical ของตัวเองแทรกเข้ามาอีกบรรทัด ทำให้หน้าเดียวมี canonical ซ้ำสองบรรทัดที่ไม่ตรงกัน

  • canonical ทุกหน้าชี้ไปหน้าแรกเหมือนกันหมดโดยไม่ตั้งใจ (มักเกิดจาก template ผิด) ทำให้ Google มองว่าทุกหน้าเป็นสำเนาของหน้าแรก
  • ใส่ canonical เป็น relative path แล้วระบบ render ผิดโดเมนตอน deploy หลายสภาพแวดล้อม
  • ลืมอัปเดต canonical หลังเปลี่ยนภาษาในเว็บที่มีหลายภาษา ทำให้หน้าภาษาอื่นชี้ทับกันเอง
  • ตั้ง canonical ข้าม www และ non-www ไม่ตรงกับที่ตั้งใน Search Console

ตรวจสอบ Canonical ที่ Google เลือกจริงได้ยังไง

ตรวจได้ผ่าน URL Inspection ใน Google Search Console ซึ่งจะแสดงค่าสองบรรทัดคือ User-declared canonical (ที่เราตั้งไว้ในโค้ด) และ Google-selected canonical (URL ที่ Google เลือกจัดอันดับจริง)

ถ้าสองค่านี้ไม่ตรงกัน แปลว่า Google ไม่เชื่อ canonical ที่เราตั้งไว้ สาเหตุมักมาจาก internal link ส่วนใหญ่ในเว็บยังชี้ไปหา URL ที่ไม่ใช่ตัวจริง หรือ sitemap ยังใส่ URL ผิดตัวอยู่ วิธีแก้คือไล่แก้ internal link และ sitemap ให้ชี้ไปหา URL เดียวกับที่ตั้ง canonical ให้สอดคล้องกันทั้งเว็บ ไม่ใช่แก้แค่บรรทัด canonical บรรทัดเดียว

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

01Canonical Tag ช่วยให้อันดับ SEO ดีขึ้นโดยตรงไหม+

ไม่โดยตรง Canonical ไม่ใช่ปัจจัยจัดอันดับ แต่ช่วยป้องกันไม่ให้สัญญาณ SEO ที่ควรรวมกันถูกแบ่งกระจายไปหลาย URL ซึ่งถ้าไม่จัดการเรื่องนี้ หน้าตัวจริงอาจอันดับต่ำกว่าที่ควรเป็นเพราะสัญญาณถูกหารไปกับ URL ซ้ำ

02ตั้ง Canonical แล้ว Google ไม่เชื่อ ต้องแก้ยังไง+

ให้เช็ค Google-selected canonical ใน URL Inspection ก่อนว่า Google เลือก URL ไหนจริง แล้วไล่แก้ internal link, sitemap และ redirect ในเว็บให้ชี้ไปหา URL เดียวกับที่ตั้ง canonical ให้สอดคล้องกันทั้งหมด เพราะ Google ให้น้ำหนักสัญญาณโดยรวม ไม่ใช่แค่บรรทัดแท็กเพียงอย่างเดียว

03Canonical กับ 301 Redirect เลือกใช้ตอนไหน+

ถ้า URL เดิมไม่จำเป็นต้องเปิดใช้งานอีกแล้วให้ใช้ 301 redirect เพราะรวมสัญญาณได้เต็มและผู้ใช้ไม่หลงไปหน้าเก่า ถ้ายังต้องเก็บทั้งสอง URL ไว้ใช้งานจริง เช่น URL ที่มี parameter สำหรับติดตามแคมเปญ ให้ใช้ canonical แทน

04หน้าที่ไม่มีปัญหาเนื้อหาซ้ำ จำเป็นต้องใส่ Canonical ไหม+

แนะนำให้ใส่แบบ self-referencing canonical คือชี้กลับมาที่ตัวเองทุกหน้า แม้จะยังไม่มีปัญหาซ้ำในตอนนี้ เพราะกันปัญหาที่ URL เดียวกันถูกเข้าถึงได้จากหลาย parameter โดยไม่ตั้งใจในอนาคต เป็นแนวทางที่ Google แนะนำเองสำหรับเว็บทุกขนาด

ส่งเว็บไซต์ให้ SEONo1 ประเมิน