วิธีระบุหน้า Canonical ด้วย rel="canonical" และวิธีการอื่นๆ
หากต้องการระบุ Canonical URL สําหรับหน้าเว็บที่ซ้ำกันหรือคล้ายกันมากกับ Google Search คุณสามารถระบุค่ากําหนดได้หลายวิธี ลองดูตัวอย่างว่ารายการเหล่านี้มีผลต่อการกําหนดหน้า Canonical มากน้อยเพียงใด
- การเปลี่ยนเส้นทาง: สัญญาณที่ชัดเจนว่าเป้าหมายของการเปลี่ยนเส้นทางควรจะเป็นหน้า Canonical
-
คําอธิบายประกอบ
rel="canonical"
link
: สัญญาณที่ชัดเจนว่า URL ที่ระบุควรเป็น Canonical - การรวม Sitemap: สัญญาณอ่อนที่ช่วยให้ URL ที่รวมอยู่ใน Sitemap กลายเป็น Canonical ได้
โปรดทราบว่าเมธอดเหล่านี้สามารถใช้ซ้อนกันได้ และมีประสิทธิภาพมากขึ้นเมื่อนํามารวมกัน ซึ่งหมายความว่าหากคุณใช้ 2 วิธีขึ้นไปจะช่วยเพิ่มโอกาสให้ Canonical URL ที่ต้องการปรากฏในผลการค้นหา
แม้ว่าเราจะสนับสนุนให้คุณใช้วิธีการเหล่านี้ แต่ก็ไม่ได้เป็นข้อบังคับ เว็บไซต์ของคุณน่าจะทํางานได้ดีแม้ไม่ได้ระบุหน้า Canonical ไว้ นั่นเป็นเพราะว่าหากคุณไม่ได้ระบุ Canonical URL ไว้ Google จะพิจารณาอย่างเหมาะสมว่า URL ใดเป็นเวอร์ชันที่ดีที่สุดสำหรับแสดงต่อผู้ใช้ใน Search
เหตุผลที่ต้องระบุ Canonical URL
แม้ว่าโดยทั่วไปแล้วไม่จําเป็นต้องระบุ Canonical URL ที่ต้องการ แต่ก็มีเหตุผลหลายประการที่คุณควรบอกให้ Google ทราบอย่างชัดเจนเกี่ยวกับหน้า Canonical ในชุดหน้าเว็บที่ซ้ำกันหรือคล้ายกัน
-
เพื่อระบุ URL ที่ต้องการให้ผู้ใช้เห็นในผลการค้นหา
คุณอาจต้องการให้ผู้ใช้เข้าถึงหน้าผลิตภัณฑ์ชุดกระโปรงสีเขียวผ่าน
https://www.example.com/dresses/green/greendress.html
ไม่ใช่https://example.com/dresses/cocktail?gclid=ABCD
-
เพื่อรวมสัญญาณลิงก์ของหน้าที่คล้ายกันหรือซ้ำกัน ซึ่งจะช่วยให้เครื่องมือค้นหาสามารถรวมสัญญาณของ URL (เช่น ลิงก์ที่เชื่อมไปยังเนื้อหา) แต่ละรายการไว้ใน URL เดียวที่ต้องการได้ ซึ่งหมายความว่าสัญญาณจากเว็บไซต์อื่นที่ชี้ไปยัง
https://example.com/dresses/cocktail?gclid=ABCD
จะรวมเข้ากับลิงก์ที่ไปยังhttps://www.example.com/dresses/green/greendress.html
หากลิงก์หลังเป็น Canonical - เพื่อลดความซับซ้อนของเมตริกการติดตามสำหรับเนื้อหา URL ที่หลากหลายจะทำให้การรวมเมตริกสำหรับเนื้อหาที่เจาะจงทำได้ยากขึ้น
- เพื่อหลีกเลี่ยงการใช้เวลาในการรวบรวมข้อมูลจากหน้าที่ซ้ำกัน คุณอาจต้องการให้ Googlebot ใช้เวลาอย่างคุ้มค่าที่สุดในเว็บไซต์ของคุณ ดังนั้นจึงควรให้ Googlebot ใช้เวลาไปกับการ Crawl หน้าเว็บใหม่ (หรือหน้าที่อัปเดต) มากกว่าจะมาเสียเวลา Crawl เนื้อหาเดียวกันในเวอร์ชันที่ซ้ำกัน
แนวทางปฏิบัติแนะนำ
สําหรับทุกวิธีการกําหนดหน้า Canonical ให้ทําตามแนวทางปฏิบัติแนะนําต่อไปนี้
- อย่าใช้ไฟล์ robots.txt ในการกำหนดหน้า Canonical
- อย่าใช้เครื่องมือนำ URL ออกเพื่อจุดประสงค์ในการกำหนดหน้า Canonical เพราะจะเป็นการซ่อน URL ทุกเวอร์ชันจากการค้นหาของ Search
- อย่าระบุ URL ที่ต่างกันเป็น Canonical สำหรับหน้าเว็บเดียวกันโดยใช้เทคนิคการกำหนดหน้า Canonical ที่เหมือนกัน (เช่น อย่าระบุ URL หนึ่งใน Sitemap แต่ระบุ URL อื่นสำหรับหน้าเดียวกันนั้นโดยใช้
rel="canonical"
-
เราไม่แนะนําให้ใช้
noindex
เพื่อป้องกันการเลือกหน้า Canonical ภายในเว็บไซต์เดียว เนื่องจากจะบล็อกหน้าจาก Search โดยสมบูรณ์ แต่อยากให้ใช้คําอธิบายประกอบrel="canonical"
link
มากกว่า - หากใช้เอลิเมนต์
hreflang
ให้ตรวจสอบว่าได้ระบุหน้า Canonical ที่ใช้ภาษาเดียวกัน หรือภาษาแทนที่ดีที่สุดหากไม่มีหน้า Canonical สําหรับภาษาเดียวกัน - เมื่อทำการลิงก์ภายในเว็บไซต์ ให้ลิงก์ไปยัง Canonical URL มากกว่าจะลิงก์ไปยัง URL ของหน้าที่ซ้ำกัน การลิงก์ไปยัง URL ที่คุณเลือกให้เป็นหน้า Canonical อย่างสอดคล้องกันช่วยให้ Google เข้าใจสิ่งที่คุณต้องการ
ตารางเปรียบเทียบวิธีกําหนดหน้า Canonical
ตารางต่อไปนี้จะเปรียบเทียบวิธีการกําหนดหน้า Canonical ต่างๆ โดยไฮไลต์จุดแข็งและจุดอ่อนด้านการบํารุงรักษาและประสิทธิผลในสถานการณ์ต่างๆ
วิธีและคำอธิบาย | |||
---|---|---|---|
เอลิเมนต์ของ rel="canonical" link
|
เพิ่มเอลิเมนต์ของ
|
||
ส่วนหัว HTTP ของ rel="canonical"
|
ส่งส่วนหัว
|
||
แผนผังเว็บไซต์ |
ระบุหน้า Canonical ใน Sitemap
|
||
การเปลี่ยนเส้นทาง | ใช้การเปลี่ยนเส้นทางเพื่อแจ้งให้ Googlebot ทราบว่า URL เปลี่ยนเส้นทางเป็นเวอร์ชันที่ดีกว่า URL ที่ระบุ ใช้ตัวเลือกนี้เฉพาะเมื่อเลิกใช้หน้าที่ซ้ำ | ||
รูปแบบ AMP | หากมีตัวแปรที่เป็นหน้า AMP ให้ทำตามหลักเกณฑ์ AMP เพื่อระบุหน้า Canonical และรูปแบบ AMP |
ใช้คําอธิบายประกอบของ rel="canonical"
link
Google รองรับคําอธิบายประกอบที่ชัดแจ้งของ rel
canonical link
ตามที่อธิบายไว้ใน RFC 6596
ระบบจะไม่สนใจคำอธิบายประกอบ rel="canonical"
ที่แนะนำหน้าเวอร์ชันอื่น โดยเฉพาะคำอธิบายประกอบ rel="canonical"
ที่ไม่ได้ใช้แอตทริบิวต์ hreflang
, lang
, media
และ type
สำหรับการกำหนดหน้า Canonical โปรดใช้คำอธิบายประกอบ link
ที่เหมาะสมแทนเพื่อระบุทางเลือกอื่นของหน้าเว็บ ตัวอย่างเช่น link
rel="alternate"
hreflang
สำหรับคำอธิบายประกอบภาษาและประเทศ
คุณระบุคําอธิบายประกอบ rel="canonical"
link
ได้ 2 วิธีดังนี้
เราขอแนะนําให้คุณเลือกหนึ่งใน 2 วิธีนี้ เพราะแม้ว่าระบบจะรองรับ แต่การใช้ทั้ง 2 วิธีพร้อมกันอาจมีโอกาสเกิดข้อผิดพลาดขึ้นได้ (เช่น คุณอาจระบุ URL หนึ่งในส่วนหัว HTTP และอีก URL หนึ่งในเอลิเมนต์ของ rel="canonical"
link
)
เอลิเมนต์ของ rel="canonical"
link
เอลิเมนต์ของ rel="canonical"
link
(หรือที่เรียกว่าเอลิเมนต์ของ Canonical) เป็นเอลิเมนต์ที่ใช้ในส่วน head
ของ HTML เพื่อระบุว่าหน้าอื่นเป็นตัวแทนของเนื้อหาในหน้าเว็บ
สมมติว่าคุณต้องการให้ https://example.com/dresses/green-dresses
เป็น Canonical URL แม้ว่าจะมี URL หลายรายการที่เข้าถึงเนื้อหานี้ได้ก็ตาม ให้ระบุ URL นี้เป็น Canonical ตามขั้นตอนต่อไปนี้
-
เพิ่มเอลิเมนต์
<link>
ที่มีแอตทริบิวต์rel="canonical"
ลงในส่วน<head>
ของหน้าที่ซ้ำกันซึ่งชี้ไปยังหน้า Canonical เช่น<html> <head> <title>Explore the world of dresses</title> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
-
หากหน้า Canonical มีเวอร์ชันอุปกรณ์เคลื่อนที่ใน URL แยกต่างหาก ให้เพิ่มเอลิเมนต์ของ
rel="alternate"
link
ไปยังหน้าเวอร์ชันอุปกรณ์เคลื่อนที่ ดังนี้<html> <head> <title>Explore the world of dresses</title> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/dresses/green-dresses"> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
- เพิ่ม
hreflang
หรือเอลิเมนต์อื่นๆ ที่เหมาะสำหรับหน้านั้น
ใช้เส้นทางสมบูรณ์แทนเส้นทางสัมพัทธ์พร้อมด้วยเอลิเมนต์ของ rel="canonical"
link
แม้ว่า Google จะรองรับเส้นทางแบบสัมพัทธ์ แต่ก็อาจทําให้เกิดปัญหาได้ในระยะยาว (เช่น หากคุณอนุญาตให้ทำการ Crawl เว็บไซต์ทดสอบโดยไม่ได้ตั้งใจ) เราจึงไม่แนะนําให้ใช้เส้นทางดังกล่าว
ตัวอย่างที่ดี
https://www.example.com/dresses/green/greendress.html
ตัวอย่างที่ไม่ดี
/dresses/green/greendress.html
ระบบจะยอมรับ rel="canonical"
link element
ก็ต่อเมื่อปรากฏใน <head>
ของ HTML เท่านั้น คุณจึงควรตรวจสอบให้ดีว่าส่วน <head>
ของ HTML ถูกต้องแล้ว
หากใช้ JavaScript เพื่อเพิ่มเอลิเมนต์ของ rel="canonical"
link
ให้ตรวจสอบว่าได้แทรกเอลิเมนต์ของลิงก์ Canonical อย่างถูกต้องแล้ว
ส่วนหัว HTTP ของ rel="canonical"
หากคุณเปลี่ยนการกำหนดค่าเซิร์ฟเวอร์ได้ ก็สามารถใช้ ส่วนหัวการตอบกลับ HTTP ของ link
ที่มีแอตทริบิวต์เป้าหมาย rel="canonical"
ตามที่กำหนดโดย RFC5988 แทนการใช้องค์ประกอบ HTML เพื่อระบุ Canonical URL สำหรับเอกสารที่ Search รองรับ รวมถึงเอกสารที่ไม่ใช่ HTML เช่น ไฟล์ PDF
Google รองรับวิธีการนี้สำหรับผลการค้นหาเว็บเท่านั้น
หากคุณเผยแพร่เนื้อหาในหลายรูปแบบไฟล์ เช่น PDF หรือ Microsoft Word โดยแต่ละรายการมี URL ของตัวเอง คุณสามารถส่งส่วนหัว HTTP ของ rel="canonical"
เพื่อบอก Googlebot ว่า URL ใดคือ Canonical URL สำหรับไฟล์ที่ไม่ใช่ HTML ตัวอย่างเช่น หากต้องการระบุว่า
เวอร์ชัน PDF ของไฟล์ .docx
ควรเป็นหน้า Canonical คุณอาจเพิ่มส่วนหัว HTTP นี้สําหรับเวอร์ชัน .docx
ของเนื้อหา
HTTP/1.1 200 OK Content-Length: 19 ... Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical" ...
เช่นเดียวกับเอลิเมนต์ rel="canonical"
link
ให้ใช้ URL ที่สมบูรณ์ในส่วนหัว HTTP ของ rel="canonical"
และตาม RFC2616 ให้ใช้เฉพาะเครื่องหมายคําพูดคู่ครอบ URL ไว้เท่านั้น
ใช้แผนผังเว็บไซต์
เลือก Canonical URL สำหรับหน้าเว็บแต่ละหน้า และส่ง URL เหล่านั้นผ่าน Sitemap ระบบจะมองว่าหน้าเว็บทั้งหมดที่ระบุใน Sitemap เป็นหน้า Canonical และ Google จะเป็นผู้ตัดสินว่าหน้าเว็บใดซ้ำกัน (ถ้ามี) โดยพิจารณาจากความคล้ายคลึงกันของเนื้อหา
การแสดง Canonical URL ที่ต้องการใน Sitemap เป็นวิธีที่ง่ายในการกําหนด Canonical URL สําหรับเว็บไซต์ขนาดใหญ่ และ Sitemap ก็มีประโยชน์สำหรับการบอกให้ Google ทราบถึงหน้าเว็บที่คุณมองว่าสําคัญที่สุดในเว็บไซต์
ใช้การเปลี่ยนเส้นทาง
ใช้วิธีการนี้เมื่อคุณต้องการกําจัดหน้าเว็บซ้ำที่มีอยู่ วิธีการเปลี่ยนเส้นทางทั้งหมด การเปลี่ยนเส้นทาง 301
และ 302
, meta-refresh
และการเปลี่ยนเส้นทางของ JavaScript จะส่งผลเหมือนกันใน Google Search แต่สำหรับเครื่องมือค้นหาต้องใช้เวลาสักระยะจึงจะเห็นว่าวิธีการเปลี่ยนเส้นทางต่างๆ อาจแตกต่างกัน
เพื่อให้มีผลเร็วที่สุด ให้ใช้การเปลี่ยนเส้นทาง HTTP 3xx
(หรือที่เรียกว่าฝั่งเซิร์ฟเวอร์)
สมมติว่าสามารถเข้าถึงหน้าของคุณได้หลายวิธี
https://example.com/home
https://home.example.com
https://www.example.com
ให้เลือก URL เหล่านั้นรายการใดรายการหนึ่งเป็น Canonical URL และใช้การเปลี่ยนเส้นทางเพื่อส่งการเข้าชมจาก URL อื่นๆ ไปยัง URL ที่คุณต้องการ
สัญญาณอื่นๆ
นอกเหนือจากวิธีการที่ระบุไว้อย่างชัดเจนแล้ว Google ยังใช้ชุดสัญญาณการกำหนดหน้า Canonical ที่โดยทั่วไปแล้วจะอิงตามการตั้งค่าของเว็บไซต์ โดยจะเลือก HTTPS มากกว่า HTTP และเลือก URL ในคลัสเตอร์ hreflang
ใช้ HTTPS กับ Canonical URL แทนที่จะใช้ HTTP
Google จะเลือกหน้า HTTPS เป็นหน้า Canonical แทนที่จะเลือกหน้า HTTP ที่เทียบเท่ากัน ยกเว้นในกรณีที่มีปัญหาหรือสัญญาณที่บอกถึงความขัดแย้งกัน เช่น
- หน้า HTTPS มีใบรับรอง SSL ที่ไม่ถูกต้อง
- หน้า HTTPS มีการขึ้นต่อกันที่ไม่ปลอดภัย (นอกเหนือจากภาพ)
- หน้า HTTPS เปลี่ยนเส้นทางผู้ใช้ไปยังหรือผ่านหน้า HTTP
-
หน้า HTTPS มี
rel="canonical"
link
ไปยังหน้า HTTP
แม้ว่าโดยค่าเริ่มต้น ระบบของเราจะเลือกใช้หน้า HTTPS แทนหน้า HTTP แต่จะดำเนินการต่อไปนี้เพื่อให้มั่นใจว่าเราจะเลือกใช้ HTTPS ก็ได้
- เพิ่มการเปลี่ยนเส้นทางจากหน้า HTTP ไปยังหน้า HTTPS
-
เพิ่ม
rel="canonical"
link
จากหน้า HTTP ไปยังหน้า HTTPS - ใช้ HSTS
หากต้องการป้องกันไม่ให้ Google ทำให้หน้า HTTP เป็นหน้า Canonical อย่างไม่ถูกต้อง ให้หลีกเลี่ยงการปฏิบัติดังต่อไปนี้
- หลีกเลี่ยงการใช้ใบรับรอง TLS/SSL ที่ไม่ถูกต้องและการเปลี่ยนเส้นทาง HTTPS ไปยัง HTTP เนื่องจากจะส่งผลให้ Google เลือก HTTP เป็นหน้า Canonical ได้อย่างไม่ถูกต้อง และการนำ HSTS มาใช้ก็จะไม่ช่วยลบล้างค่ากำหนดดังกล่าว
-
อย่าใส่เวอร์ชัน HTTP ของหน้าเว็บใน Sitemap หรือในคําอธิบายประกอบ
hreflang
ที่ไม่ใช่เวอร์ชัน HTTPS -
ระวังการใช้ใบรับรอง SSL/TLS กับรูปแบบโฮสต์ไม่ตรงกัน เช่น
example.com
ที่แสดงใบรับรองของsubdomain.example.com
ใบรับรองจะต้องตรงกับ URL เว็บไซต์ที่สมบูรณ์ หรือเป็นใบรับรองแบบสัญลักษณ์แทนซึ่งใช้กับโดเมนย่อยหลายๆ รายการในโดเมนได้
เลือกใช้ URL ในคลัสเตอร์ hreflang
มากกว่า
ในการกำหนดหน้า Canonical, Google อยากได้ URL ที่เป็นส่วนหนึ่งของคลัสเตอร์ hreflang
มากกว่า เพื่อช่วยอํานวยความสะดวกในการแปลเว็บไซต์ เช่น หากทั้ง https://example.com/de-de/cats
และ https://example.com/de-ch/cats
ต่างก็ชี้ไปที่คําอธิบายประกอบ hreflang
เหมือนกัน แต่ไม่ได้ชี้ไปที่หน้า https://example.com/de-at/cats
ดังนั้นระบบจะเลือกใช้หน้า de-de
และ de-ch
เป็นหน้า Canonical แทนหน้า /de-at/
ที่ไม่ได้อยู่ในคลัสเตอร์ hreflang
อ่านข้อมูลเพิ่มเติมเกี่ยวกับการแก้ปัญหาและการกําหนดหน้า Canonical