Canonical คือ อะไร บอก Google ยังไงว่าหน้าไหนคือหน้าหลัก

หน้าเดียวกัน แต่เปิดได้หลายลิงก์ เคยสงสัยไหมว่า Google จะเลือกโชว์ลิงก์ไหน

Canonical คือ URL หลักที่เป็นตัวแทนของหน้าที่มีเนื้อหาซ้ำหรือคล้ายกันหลายลิงก์ (URL ก็คือที่อยู่ของหน้าเว็บ) เราบอก Google ได้ว่าอยากให้ URL ไหนเป็นหลัก และโดยปกติผลค้นหาจะพาคนไปที่ URL หลักนี้

สรุปสั้นๆ ก่อนอ่าน

  • Canonical คือ URL หลักของหน้าที่เปิดได้จากหลายลิงก์
  • เนื้อหาซ้ำในเว็บเดียวกันเป็นเรื่องปกติ Google ไม่ได้ถือว่าเป็นสแปม
  • บอก URL หลักได้ด้วย redirect, แท็ก rel=”canonical”, sitemap และลิงก์ภายในเว็บ
  • Canonical เป็นคำใบ้ ไม่ใช่คำสั่ง Google อาจเลือก URL อื่นได้
  • เช็ก URL หลักที่ Google เลือกได้ในเครื่องมือตรวจสอบ URL ของ Search Console

Canonical คือ อะไร อธิบายแบบง่ายที่สุด?

Canonical คือ URL หลักที่ Google เลือกเป็นตัวแทนของกลุ่มหน้าที่เนื้อหาซ้ำกัน โดยปกติผลค้นหาจะพาคนไปที่ URL หลักนี้ ส่วน URL อื่นในกลุ่มถือเป็นสำเนา

ลองนึกถึงร้านขนมหัวมุมที่มีประตูเข้า 3 ทาง จะเดินเข้าทางไหนก็เจอร้านเดียวกัน

แต่เวลาส่งของ ไปรษณีย์ใช้บ้านเลขที่แค่เลขเดียว เว็บก็เหมือนกัน หน้าเดียวอาจมีหลายทางเข้า แต่ Google อยากรู้ว่าที่อยู่จริงคืออันไหน

ในงาน SEO จะเจอคำนี้ 2 แบบ canonical URL คือตัวลิงก์หลัก ส่วน canonical tag คือโค้ดบรรทัดเล็กๆ ในหน้าเว็บที่ใช้บอกว่าลิงก์หลักคืออันไหน

Google เรียกขั้นตอนเลือก URL หลักนี้ว่า “การกำหนดหน้า Canonical” ถ้าเราไม่บอกอะไรเลย Google ก็จะเลือกเองจากข้อมูลที่มี

Duplicate content หรือเนื้อหาซ้ำ เกิดจากอะไรบ้าง?

Duplicate content ในเรื่อง canonical หมายถึงหน้าเดียวกันที่เปิดได้จากหลาย URL หรือหลายหน้าที่เนื้อหาเกือบเหมือนกัน ส่วนใหญ่ไม่ได้ตั้งใจ แต่เกิดจากการตั้งค่าเว็บหรือระบบร้านค้า

สมมติว่าร้านเค้กมีหน้าบราวนี่อยู่หน้าเดียว แต่หน้านี้อาจเปิดได้จาก URL เหล่านี้ทั้งหมด (ตัวอย่างสมมติ)

  • https://www.example.com/brownie/ คือตัวที่ร้านอยากให้เป็นหลัก
  • https://example.com/brownie/ คือแบบไม่มี www
  • http://www.example.com/brownie/ คือแบบ http ที่ไม่มีตัว s
  • https://www.example.com/brownie/?utm_source=line คือลิงก์ที่มีป้ายติดตามต่อท้าย
  • https://www.example.com/brownie/print/ คือหน้าสำหรับสั่งพิมพ์

คนเปิดดูก็เห็นบราวนี่ชิ้นเดิม แต่บอทของ Google เห็นเป็น 5 ที่อยู่ เหมือนคนรับจดหมายที่ได้ซองเขียนที่อยู่ไม่เหมือนกันเลยสักซอง

ไดอะแกรมหน้าบราวนี่หน้าเดียวที่เปิดได้จาก 5 URL ทั้งแบบไม่มี www แบบ http แบบมี utm และหน้าพิมพ์ แล้วรวมเป็น canonical URL เดียว
หน้าเดียว หลายทางเข้า แต่ควรมี URL หลักแค่อันเดียว

ส่วน ?utm_source=line คือป้ายเล็กๆ ที่ต่อท้ายลิงก์ไว้นับว่าคนมาจากไหน เนื้อหาไม่เปลี่ยนเลย แต่ URL เปลี่ยน

เว็บขายของยังเจอเรื่องสินค้าหลายสีหลายไซซ์ เช่น เสื้อตัวเดียวมี 3 สี แยกเป็น 3 URL แต่คำอธิบายเหมือนกันเกือบทั้งหน้า

Google เองก็ยกตัวอย่างไว้คล้ายกัน คือหน้า http กับ https, หน้ามือถือกับหน้าคอม, หน้าแยกตามประเทศที่ใช้ภาษาเดียวกัน, หน้าเรียงหรือกรองสินค้า และเว็บทดลองที่ลืมปิดไว้

อ่านมาถึงตรงนี้อาจเริ่มใจหาย ว่าเว็บเรามีหน้าซ้ำเต็มไปหมด ใจเย็นก่อนนะ เรื่องนี้เจอกันแทบทุกเว็บ

เนื้อหาซ้ำทำให้เว็บโดนลงโทษไหม?

เนื้อหาซ้ำในเว็บเดียวกันไม่ได้ทำให้โดนลงโทษ Google บอกว่าเนื้อหาซ้ำบางส่วนเป็นเรื่องปกติ และไม่ได้ผิดนโยบายสแปมของ Google ปัญหาจริงคือ Google อาจเลือก URL ที่เราไม่ได้อยากให้โชว์

ลองทายดูก่อน ถ้าไม่ได้โดนลงโทษ แล้วทำไมยังต้องสนใจ canonical อีก

เหตุผลแรก ผลค้นหาอาจโชว์ลิงก์หน้าตาแปลกๆ เช่น ลิงก์ที่มี ?utm ต่อท้าย แทนลิงก์สวยๆ ที่เราตั้งใจ

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

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

สรุปคือไม่ต้องกลัวโดนลงโทษ แต่ควรบอก Google ให้ชัดว่าบ้านเลขที่จริงคืออันไหน

บอก Google ว่า URL ไหนคือ canonical ได้กี่วิธี?

Google ระบุวิธีบอก canonical ไว้ 3 วิธี คือ redirect, แท็ก rel=”canonical” และ sitemap แล้วแนะนำให้ลิงก์ภายในเว็บชี้ไป URL หลักด้วย ทุกวิธีเป็นแค่สัญญาณให้ Google พิจารณา Google ยังเลือก URL หลักเองได้

วิธี น้ำหนักตามที่ Google บอก เหมาะกับ
Redirect สัญญาณแรง หน้าซ้ำที่เลิกใช้แล้ว ไม่ต้องให้ใครเปิด
แท็ก rel=”canonical” สัญญาณแรง หน้าซ้ำที่ยังต้องเปิดได้ เช่น หน้าพิมพ์ หรือลิงก์ที่มี utm
ใส่ไว้ใน sitemap สัญญาณอ่อน บอก URL หลักของทั้งเว็บพร้อมกัน
ลิงก์ภายในเว็บ Google แนะนำให้ลิงก์ไป URL หลัก ทุกเว็บ ช่วยให้สัญญาณไปทางเดียวกัน

Redirect คือการพาคนและบอทที่เปิดลิงก์เก่าไปที่ลิงก์ใหม่อัตโนมัติ เหมือนป้าย “ร้านย้ายไปซอยถัดไป” ที่พาเราเดินต่อเลย

ส่วนแท็ก rel=”canonical” เป็นโค้ดบรรทัดเดียว หน้าตาประมาณนี้ (ตัวอย่างจากคู่มือของ Google)

<link rel="canonical" href="https://example.com/dresses/green-dresses" />

บรรทัดนี้ต้องอยู่ในส่วน head ของหน้า ซึ่งเป็นส่วนหัวของโค้ดที่คนอ่านมองไม่เห็น ถ้าไปอยู่ส่วนอื่น Google จะไม่รับ และควรใส่ URL เต็มที่ขึ้นต้นด้วย https ไม่ใช่แค่ /dresses/

Sitemap ก็ช่วยได้ Sitemap คือไฟล์รายชื่อหน้าในเว็บที่ส่งให้ Google เหมือนสารบัญหนังสือ ทุกหน้าที่อยู่ใน sitemap ถือว่าเราเสนอให้เป็น URL หลัก ถ้ายังไม่เคยเปิดดู sitemap ของเว็บตัวเอง แวะอ่าน Sitemap คืออะไร ได้

เปรียบเทียบ 4 วิธีบอก canonical คือ redirect และแท็ก rel canonical เป็นสัญญาณแรง sitemap เป็นสัญญาณอ่อน และลิงก์ภายในควรชี้ URL หลัก
ทุกวิธีเป็นแค่คำใบ้ ให้ทุกสัญญาณชี้ URL เดียวกัน

เรื่องสำคัญที่สุดคือ Google บอกตรงๆ ว่าการบอก canonical เป็นคำใบ้ ไม่ใช่กฎ

เหมือนแปะโน้ตไว้ที่ตู้เย็นว่า “เค้กชิ้นนี้ของเรานะ” คนในบ้านส่วนใหญ่ก็เชื่อ แต่ถ้ามีหลักฐานอื่นขัดกัน ก็อาจตัดสินเอง 555

วิธีทำให้ Google เชื่อเราคือให้ทุกสัญญาณชี้ไป URL เดียวกัน ทั้ง canonical, sitemap และลิงก์ภายใน

เจอสถานการณ์ไหน ควรตั้ง canonical ยังไง?

หลักง่ายๆ คือ ถ้าหน้าซ้ำไม่ต้องมีให้ใครเปิดแล้ว ให้ redirect ไป URL หลัก ถ้าหน้าซ้ำยังต้องเปิดได้ ให้ใส่แท็ก rel=”canonical” ชี้ไป URL หลัก แล้วใช้ URL หลักตัวเดียวกันทุกที่

สถานการณ์ ควรทำอะไร
เว็บเปิดได้ทั้งแบบมี www และไม่มี www เลือกแบบเดียวเป็นหลัก แล้ว redirect แบบถาวรจากอีกแบบมาหา
เว็บเปิดได้ทั้ง http และ https redirect จาก http ไป https เพราะ Google เลือกหน้า https เป็นหลักมากกว่าอยู่แล้ว
ลิงก์มี ?utm หรือพารามิเตอร์ติดตามต่อท้าย ให้หน้านั้นมี canonical ชี้ URL ที่ไม่มีพารามิเตอร์ และไม่ใช้ลิงก์แบบนี้ในลิงก์ภายในเว็บ
มีหน้าสำหรับสั่งพิมพ์ที่เนื้อหาเหมือนหน้าปกติ ใส่ canonical ในหน้าพิมพ์ ชี้ไปหน้าปกติ
สินค้าหลายสีหลายไซซ์ แยกด้วยพารามิเตอร์ ใช้ URL ที่ไม่มีพารามิเตอร์เป็น URL หลัก
สินค้าแต่ละสีมี URL ของตัวเอง ใส่ canonical ในหน้าแต่ละสี ชี้ไปหน้าสินค้าหลัก ตามคู่มือเว็บขายของของ Google
หน้าที่เป็น URL หลักอยู่แล้ว ใส่ canonical ชี้หน้าตัวเอง ที่เรียกว่า self-referencing canonical
หน้าเก่าที่เลิกใช้ แล้วมีหน้าใหม่แทน redirect แบบถาวรจากหน้าเก่าไปหน้าใหม่

ส่วนวิธีที่ Google ไม่แนะนำให้ใช้กับเรื่อง canonical มีหลายอย่าง ที่เผลอทำกันบ่อยมี 3 อย่างนี้

  • อย่าใช้ไฟล์ robots.txt ซึ่งเป็นป้ายห้ามบอทเข้าบางส่วนของเว็บ มาบล็อกหน้าซ้ำ เพราะ Google อาจยังเก็บ URL นั้นไว้โดยไม่เห็นเนื้อหา
  • อย่าใช้ noindex ซึ่งเป็นป้ายบอก Google ว่าอย่าเก็บหน้านี้ขึ้นผลค้นหา มาบังคับเลือก URL หลักภายในเว็บเดียวกัน
  • อย่าบอก URL หลักคนละอันในแต่ละวิธี เช่น canonical ชี้ A แต่ sitemap ใส่ B

ข้อสุดท้ายนี่แหละที่ทำให้ Google งงบ่อยที่สุด สัญญาณที่ขัดกันก็เหมือนบอกทางเพื่อนว่าเลี้ยวซ้ายแต่ชี้มือไปทางขวา

Canonical บน WordPress และ Yoast SEO ตั้งตรงไหน?

WordPress ใส่แท็ก rel=”canonical” ให้หน้าบทความและหน้าเพจอยู่แล้ว ส่วน Yoast SEO ใส่ canonical ชี้ URL ของหน้าตัวเองให้ทุกหน้าที่เปิดให้ Google เก็บขึ้นผลค้นหา และเปลี่ยนได้ที่ช่อง Canonical URL ในหัวข้อ Advanced ของแถบ Yoast SEO

ข่าวดีคือส่วนใหญ่ไม่ต้องทำอะไรเลย WordPress มีคำสั่งใส่ canonical ให้หน้าเดี่ยวทุกแบบมาตั้งแต่เวอร์ชัน 2.9 แล้ว

ถ้าใช้ Yoast SEO ปลั๊กอินจะสร้าง canonical จาก URL ของหน้านั้นเอง หน้าแบ่งหน้า เช่น หน้า 2 ของหมวดหมู่ ก็ชี้หน้าตัวเอง ไม่ได้ชี้กลับไปหน้าแรก

ถ้าวันหนึ่งมีหน้าซ้ำจริงๆ และอยากให้ชี้ไปหน้าอื่น ทำแบบนี้

  1. เปิดหน้าแก้ไขของบทความ หน้าเพจ หมวดหมู่ หรือแท็กที่เป็นหน้าซ้ำ
  2. เปิดแถบ Yoast SEO ด้านข้าง แล้วกดหัวข้อ Advanced
  3. ใส่ URL เต็มของหน้าหลักในช่อง Canonical URL ให้ตรงทั้ง https และ www
  4. กด Update หรือ Publish เพื่อบันทึก
ผังตั้งค่า canonical ใน Yoast SEO จากหน้าแก้ไขบทความ ไปแถบ Yoast SEO หัวข้อ Advanced แล้วใส่ URL เต็มในช่อง Canonical URL
ส่วนใหญ่ปล่อยค่าเริ่มต้นไว้ได้ แก้เฉพาะหน้าที่ซ้ำจริง

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

อีกเรื่องที่ต้องรู้ หน้าที่ตั้ง noindex ไว้ Yoast จะไม่ใส่แท็ก canonical ให้ ถ้าเปิดโค้ดแล้วหาไม่เจอ ให้เช็กก่อนว่าหน้านั้นไม่ได้ตั้ง noindex อยู่

เช็ก canonical ของหน้าเว็บยังไง?

เช็ก canonical ได้ 2 ฝั่ง ฝั่งหน้าเว็บให้ดูแท็ก rel=”canonical” ในโค้ดของหน้า ฝั่ง Google ให้ใช้เครื่องมือตรวจสอบ URL ใน Search Console แล้วเทียบ Canonical ที่ผู้ใช้ประกาศ กับ Canonical ที่ Google เลือก

ทำตามนี้กับหน้าเดียวก่อน ใช้เวลาไม่กี่นาที

  1. เปิดหน้าที่อยากเช็กบนคอม แล้วกด Ctrl+U (ถ้าใช้ Chrome บน Mac กด Cmd+Option+U) เพื่อดูโค้ดของหน้า
  2. กด Ctrl+F แล้วพิมพ์ rel=”canonical” ควรเจอแค่บรรทัดเดียว และ URL ตรงกับที่ตั้งใจทั้ง https และ www
  3. เข้า Google Search Console (เครื่องมือฟรีของ Google ที่บอกว่า Google เห็นเว็บเรายังไง) เลือกเว็บของเราไว้ แล้ววาง URL เต็มของหน้านั้นในช่องตรวจสอบด้านบนสุด แล้วกด Enter
  4. เปิดส่วนการจัดทำดัชนีหน้า แล้วหาบรรทัด Canonical ที่ผู้ใช้ประกาศ กับ Canonical ที่ Google เลือก
  5. ถ้าสองบรรทัดเป็น URL เดียวกัน แปลว่า Google เชื่อเรา ถ้าไม่ตรงกัน ให้เทียบเนื้อหาสองหน้า แล้วแก้สัญญาณทุกจุดให้ชี้ทางเดียวกัน
ภาพจำลองแบบกล่องเรียบๆ เทียบบรรทัด Canonical ที่ผู้ใช้ประกาศ กับ Canonical ที่ Google เลือก ในเครื่องมือตรวจสอบ URL กรณีตรงกันและไม่ตรงกัน
เทียบ 2 บรรทัดนี้ในเครื่องมือตรวจสอบ URL

ข้อควรรู้ ค่า Canonical ที่ Google เลือกในเครื่องมือนี้อาจช้ากว่าข้อมูลในระบบของ Google ไม่กี่ชั่วโมง

ส่วนปุ่ม “ทดสอบ URL ที่เผยแพร่อยู่” (live test) เป็นการให้ Google ลองเปิดหน้าตอนนี้เลย แต่บอกไม่ได้ว่า Google จะเลือกหน้าไหนเป็น URL หลัก เรื่องนี้จึงต้องดูจากข้อมูลที่ Google เก็บไว้แล้ว ไม่ใช่จากผลทดสอบสด

ถ้าในรายงานเจอสถานะอย่าง Duplicate, Google chose different canonical than user เราอธิบายความหมายแต่ละสถานะไว้แล้วใน Index คืออะไร ไม่ต้องเดาเองนะ

ทำไม Google ไม่เลือก canonical ที่เราตั้งไว้?

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

ในคู่มือแก้ปัญหา Google ยกตัวอย่างสาเหตุที่เจอบ่อยไว้หลายข้อ เช่น

  • ปลั๊กอินหรือระบบเว็บใส่แท็ก canonical หรือ redirect ผิด
  • เซิร์ฟเวอร์ตั้งค่าผิด จนหลายโดเมนโชว์เนื้อหาเดียวกัน
  • เว็บโดนแฮ็ก แล้วถูกแอบใส่ canonical ชี้ไปเว็บอื่น

บางครั้ง Google ก็เลือกเว็บอื่นที่ก๊อปเนื้อหาเราไป อันนี้เจ็บใจแน่นอน T_T แต่ Google บอกว่าเกิดขึ้นได้น้อยมาก

ถ้าหน้าที่ Google เลือกตอบคนค้นได้ดีพอๆ กัน ก็ปล่อยไว้ได้ ถ้าไม่ใช่ ให้ไล่เช็กว่าทุกสัญญาณชี้ URL เดียวกันหรือยัง

Canonical เป็นแค่ชิ้นหนึ่งของงานหลังบ้านเว็บ ถ้าอยากเห็นภาพรวมว่ายังต้องเช็กอะไรอีก ดูต่อได้ที่ Technical SEO คืออะไร แล้วลองเปิดโค้ดหน้าเว็บตัวเองดูสักหน้าวันนี้เลย

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

Canonical tag คืออะไร?

Canonical tag คือโค้ด link ที่มี rel=canonical อยู่ในส่วน head ของหน้าเว็บ ใช้บอก Google ว่า URL ไหนคือ URL หลักของเนื้อหานั้น

Canonical URL คืออะไร?

Canonical URL คือ URL หลักที่ Google เลือกเป็นตัวแทนของกลุ่มหน้าที่เนื้อหาซ้ำกัน โดยปกติผลค้นหาจะพาคนไปที่ URL นี้

ทุกหน้าต้องมี canonical ชี้ตัวเองไหม?

ควรมี Google แนะนำให้หน้าที่เป็น URL หลักใส่ canonical ชี้ตัวเองไว้ WordPress ใส่ให้หน้าบทความและหน้าเพจอัตโนมัติ ส่วน Yoast SEO ใส่ให้ทุกหน้าที่ไม่ได้ตั้ง noindex

ตั้ง canonical แล้ว Google ต้องทำตามไหม?

ไม่จำเป็น Google บอกว่าการบอก canonical เป็นคำใบ้ ไม่ใช่กฎ Google อาจเลือก URL อื่นถ้าสัญญาณขัดกัน หรือเห็นว่าอีกหน้ามีประโยชน์กว่า

Canonical กับ redirect ต่างกันยังไง?

Redirect พาคนและบอทไปหน้าใหม่ทันที เหมาะกับหน้าซ้ำที่เลิกใช้แล้ว ส่วน canonical ให้หน้าซ้ำยังเปิดได้ตามปกติ แค่บอก Google ว่า URL หลักคืออันไหน

เนื้อหาซ้ำในเว็บทำให้โดนลงโทษไหม?

ไม่โดน Google บอกว่าเนื้อหาซ้ำบางส่วนในเว็บเป็นเรื่องปกติ และไม่ได้ผิดนโยบายสแปม แต่ Google อาจเลือก URL ที่เราไม่ได้ตั้งใจไปโชว์

แหล่งอ้างอิง

ทีมงาน Rungwat SEO

เขียนโดย

ทีมงาน Rungwat SEO

เราเขียนเรื่อง SEO, AEO และ GEO ให้อ่านง่ายแบบเพื่อนเล่าให้ฟัง ทุกบทความเช็กข้อมูลกับเอกสารทางการของ Google และแหล่งต้นทาง ก่อนลงเว็บ และกลับมาอัปเดตเมื่อข้อมูลเปลี่ยน

รู้จักเราเพิ่มเติม