แจ้งให้ Google ทราบเกี่ยวกับเวอร์ชันที่แปลแล้วของหน้าเว็บ

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

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

ตัวอย่างสถานการณ์ที่แนะนำให้มีการระบุหน้าเว็บทางเลือก มีดังนี้

  • หากคุณมีเนื้อหาหลักภาษาเดียวและแปลเฉพาะเทมเพลต เช่น การนำทางและส่วนท้าย หน้าที่มีเนื้อหาที่ผู้ใช้สร้างขึ้น เช่น ฟอรัม มักจะเป็นเช่นนี้
  • หากเนื้อหามีความแตกต่างตามภูมิภาคเพียงเล็กน้อยโดยที่มีเนื้อหาที่คล้ายกันในภาษาเดียว ตัวอย่างเช่น คุณมีเนื้อหาภาษาอังกฤษที่มีเป้าหมายเป็นสหรัฐอเมริกา เกรทบริเตน และไอร์แลนด์
  • หากเนื้อหาในเว็บไซต์มีการแปลเนื้อหาทั้งหมดเป็นภาษาต่างๆ เช่น คุณมีหน้าเวอร์ชันภาษาเยอรมันและภาษาอังกฤษสำหรับทุกหน้า

เราจะถือว่าหน้าเว็บเวอร์ชันแปลเป็นหน้าที่ซ้ำเฉพาะเมื่อเนื้อหาหลักในหน้าไม่ได้มีการแปล

วิธีระบุหน้าเว็บทางเลือก

การระบุเวอร์ชันสำหรับภาษา/สถานที่ต่างๆ ของหน้าเว็บให้ Google ทราบมี 3 วิธี ดังนี้

หลักเกณฑ์สำหรับทุกวิธีการ

  • เวอร์ชันภาษาแต่ละเวอร์ชันต้องระบุตัวเองและเวอร์ชันภาษาอื่นๆ ทั้งหมด
  • URL ทางเลือกต้องอยู่ในรูปแบบเต็มตามเกณฑ์ รวมถึงวิธีการส่ง (http/https) ซึ่งควรมีลักษณะดังนี้
    https://example.com/foo ไม่ใช่ //example.com/foo หรือ /foo
  • URL ทางเลือกไม่จำเป็นต้องอยู่ในโดเมนเดียวกัน
  • หากคุณมี URL ทางเลือกหลายรายการที่มีเป้าหมายเป็นผู้ใช้ที่ใช้ภาษาเดียวกันแต่เป็นภาษาถิ่นอื่น ก็ควรมี URL แบบรับสำหรับผู้ใช้ที่ไม่ระบุข้อมูลทางภูมิศาสตร์ของภาษานั้นด้วย ตัวอย่างเช่น คุณอาจมี URL เฉพาะสำหรับผู้ใช้ภาษาอังกฤษในไอร์แลนด์ (en-ie) แคนาดา (en-ca) และออสเตรเลีย (en-au) แต่ก็ควรมีหน้าภาษาอังกฤษทั่วไป (en) สำหรับผู้ค้นหาที่อยู่ในประเทศอื่นด้วย เช่น สหรัฐอเมริกา สหราชอาณาจักร และสถานที่อื่นๆ ทั้งหมดที่พูดภาษาอังกฤษ คุณจะเลือกให้หน้านี้เป็นหน้าที่เจาะจงด้วยก็ได้
  • ระบบจะไม่สนใจแท็กหากหน้า 2 หน้าไม่ได้นำไปที่กันและกัน เพื่อให้คนในเว็บไซต์อื่นไม่สามารถสร้างแท็กโดยตั้งชื่อตนเองว่าเป็นเวอร์ชันทางเลือกหนึ่งของหน้าเว็บของคุณ
  • หากการรักษาลิงก์ 2 ทางของทุกภาษาให้เป็นชุดที่สมบูรณ์นั้นทำได้ยาก คุณละเว้นบางภาษาในบางหน้าได้ Google จะยังคงประมวลผลลิงก์ที่นำไปที่กันและกัน อย่างไรก็ตาม คุณควรลิงก์หน้าภาษาที่ขยายเพิ่มใหม่ไปยังภาษาดั้งเดิม/ภาษาหลักแบบ 2 ทาง ตัวอย่างเช่น หากเว็บไซต์ของคุณสร้างเป็นภาษาฝรั่งเศสในตอนแรกโดยมี URL เป็น .fr ก็ควรลิงก์หน้าใหม่อย่างเม็กซิโก (.mx) และสเปน (.es) ไปยังหน้าเว็บหลักเวอร์ชัน .fr มากกว่าที่จะลิงก์หน้าเว็บใหม่ที่เป็นภาษาสเปนถิ่นต่างๆ (.mx และ .es) ไปยังกันและกันแบบ 2 ทาง
  • คุณควรหน้าสำรองสำหรับภาษาที่ไม่ตรงกัน โดยเฉพาะในตัวเลือกภาษา/ประเทศ หรือการเปลี่ยนเส้นทางหน้าแรกโดยอัตโนมัติ ใช้ค่า x-default:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

แท็ก HTML

เพิ่มเอลิเมนต์ <link rel="alternate" hreflang="lang_code"... > ในส่วนหัวของหน้าเว็บเพื่อบอก Google เกี่ยวกับรูปแบบสำหรับภาษาและภูมิภาคทั้งหมดของหน้า ซึ่งจะเป็นประโยชน์หากคุณไม่มีแผนผังเว็บไซต์หรือระบุส่วนหัวการตอบกลับของ HTTP ของเว็บไซต์ไม่ได้

สําหรับหน้าเว็บแต่ละรูปแบบ ให้ใส่ชุดเอลิเมนต์ <link> ในเอลิเมนต์ <head> 1 ลิงก์สำหรับแต่ละรูปแบบของหน้ารวมทั้งตัวเองด้วย ชุดลิงก์ของหน้าทุกหน้าจะเหมือนกันทุกประการ ดูหลักเกณฑ์เพิ่มเติม

ไวยากรณ์ของเอลิเมนต์ link แต่ละรายการเป็นดังนี้

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
ไวยากรณ์
lang_code รหัสภาษา/ภูมิภาคที่รองรับซึ่งเวอร์ชันนี้ของหน้ากำหนดเป้าหมายไว้ หรือ x-default ที่จะจับคู่ภาษาที่แท็ก hreflang ไม่ได้ระบุไว้อย่างชัดเจนในหน้าเว็บ
url_of_page URL ที่สมบูรณ์ในตัวเองของเวอร์ชันของหน้านี้สำหรับภาษา/ภูมิภาคที่ระบุ

ตัวอย่าง

บริษัทตัวอย่างชื่อ Widgets มีเว็บไซต์ที่ให้บริการผู้ใช้ในสหรัฐฯ เกรทบริเตน และเยอรมนี URL ต่อไปนี้มีเนื้อหาส่วนใหญ่เหมือนกัน แต่แตกต่างกันในแต่ละภูมิภาค

URL ที่แตกต่างกันในแต่ละภูมิภาค
http://en.example.com/page.html หน้าแรกเป็นภาษาอังกฤษทั่วไปที่มีข้อมูลค่าธรรมเนียมการจัดส่งสินค้าระหว่างประเทศจากสหรัฐอเมริกา
http://en-gb.example.com/page.html หน้าแรกของสหราชอาณาจักรที่แสดงราคาเป็นเงินปอนด์สเตอร์ลิง
http://en-us.example.com/page.html หน้าแรกของสหรัฐฯ ที่แสดงราคาเป็นดอลลาร์สหรัฐฯ
http://de.example.com/page.html หน้าแรกเป็นภาษาเยอรมัน
http://www.example.com/ หน้าเริ่มต้นที่ไม่ได้กำหนดเป้าหมายเป็นภาษาหรือสถานที่ใดๆ มีตัวเลือกเพื่อให้ผู้ใช้เลือกภาษาและภูมิภาคของตน

โปรดทราบว่า Google ไม่ได้ใช้โดเมนย่อยที่เจาะจงภาษาใน URL เหล่านี้ (en, en-gb, en-us, de) เพื่อกำหนดกลุ่มเป้าหมายของหน้าเว็บ คุณต้องแมปกลุ่มเป้าหมายอย่างชัดเจน

นี่เป็น HTML ที่จะอยู่ในส่วน <head> ของหน้าเว็บทั้งหมดที่ระบุไว้ข้างต้น ซึ่งจะนำผู้ใช้ภาษาอังกฤษทั่วไปจากสหรัฐฯ และสหราชอาณาจักร รวมถึงผู้ใช้ภาษาเยอรมันไปยังหน้าที่แปลแล้ว และนำผู้ใช้ภาษาอื่นๆ ไปยังหน้าแรกทั่วไป Google Search จะแสดงผลการค้นหาที่เหมาะสำหรับผู้ใช้ตามการตั้งค่าเบราว์เซอร์ของผู้ใช้

<head>
 <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
       href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="http://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="http://www.example.com/" />
</head>

ส่วนหัว HTTP

คุณแสดงผลส่วนหัว HTTP พร้อมการตอบสนอง GET ของหน้าเว็บเพื่อแจ้งให้ Google ทราบเกี่ยวกับรูปแบบภาษาและภูมิภาคทั้งหมดของหน้าเว็บได้ ซึ่งเป็นประโยชน์สำหรับไฟล์ที่ไม่ใช่ HTML (เช่น PDF)

รูปแบบของส่วนหัวเป็นดังนี้

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
ไวยากรณ์
<url_x> URL ที่สมบูรณ์ในตัวเองของหน้าเว็บทางเลือกซึ่งตรงกับสตริงสถานที่ที่กำหนดให้กับแอตทริบิวต์ hreflang ที่เชื่อมโยง URL ต้องมีเครื่องหมาย < และ > คร่อมอยู่ ตัวอย่างเช่น <https://www.google.com>
lang_code_x รหัสภาษา/ภูมิภาคที่รองรับซึ่งเวอร์ชันนี้ของหน้ากำหนดเป้าหมายไว้ หรือ x-default ที่จะจับคู่ภาษาที่แท็ก hreflang ไม่ได้ระบุไว้อย่างชัดเจนในหน้าเว็บ

คุณต้องระบุชุดค่า <url>, rel="alternate" และ hreflang สำหรับทุกเวอร์ชันของหน้าเว็บ รวมทั้งเวอร์ชันที่ขอ โดยคั่นด้วยคอมมาดังที่แสดงไว้ในตัวอย่างด้านล่าง Link:: ส่วนหัวที่แสดงผลสำหรับทุกเวอร์ชันของหน้าจะเหมือนกันทุกประการ ดูหลักเกณฑ์เพิ่มเติม

ตัวอย่าง

นี่คือตัวอย่าง Link: ส่วนหัวที่แสดงโดยเว็บไซต์ที่มีไฟล์ PDF 3 เวอร์ชัน ได้แก่ เวอร์ชันสำหรับผู้ใช้ภาษาอังกฤษ เวอร์ชันสำหรับผู้ใช้ภาษาเยอรมันจากสวิตเซอร์แลนด์ และอีกเวอร์ชันสำหรับผู้ใช้ภาษาเยอรมันอื่นๆ

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

แผนผังเว็บไซต์

คุณใช้แผนผังเว็บไซต์เพื่อบอก Google เกี่ยวกับรูปแบบสำหรับภาษาและภูมิภาคทั้งหมดสำหรับ URL แต่ละรายการได้ ซึ่งทำได้โดยเพิ่มเอลิเมนต์ <loc> ที่ระบุ URL เดียว โดยมีรายการย่อย <xhtml:link> ซึ่งแสดงรูปแบบสำหรับภาษา/สถานที่ทุกรายการของหน้าเว็บ รวมถึงรายการของตัวเอง ดังนั้นหากคุณมีหน้าเว็บ 3 เวอร์ชัน แผนผังเว็บไซต์ก็จะมี 3 รายการ ซึ่งแต่ละรายการมีรายการย่อยที่เหมือนกันอยู่ 3 รายการ

กฎของแผนผังเว็บไซต์

  • ระบุเนมสเปซของ xhtml ดังนี้
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • สร้างเอลิเมนต์ <url> สำหรับ URL แต่ละรายการแยกกัน
  • เอลิเมนต์ <url> แต่ละรายการต้องมี <loc> ย่อยที่ระบุ URL ของหน้า
  • เอลิเมนต์ <url> แต่ละรายการต้องมีเอลิเมนต์ย่อย <xhtml:link rel="alternate" hreflang="supported_language-code"> ที่ระบุเวอร์ชันทางเลือกของหน้าเว็บ รวมถึงหน้าเว็บนั้นเอง ลำดับของเอลิเมนต์ <xhtml:link> ย่อยเหล่านี้ไม่สำคัญ แต่คุณอาจต้องเก็บไว้ตามลำดับเดิมเพื่อให้ตรวจหาข้อผิดพลาดได้ง่ายขึ้น
  • ดูหลักเกณฑ์เพิ่มเติม

ตัวอย่าง

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

  • www.example.com/english/page.html กำหนดเป้าหมายไปยังผู้ใช้ภาษาอังกฤษ
  • www.example.com/deutsch/page.html กำหนดเป้าหมายไปยังผู้ใช้ภาษาเยอรมัน
  • www.example.com/schweiz-deutsch/page.html กำหนดเป้าหมายไปยังผู้ใช้ภาษาเยอรมันในสวิตเซอร์แลนด์

แผนผังเว็บไซต์ของหน้าเว็บทั้ง 3 เป็นดังนี้

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

รหัสภาษา/ภูมิภาคที่รองรับ

ค่าของแอตทริบิวต์ hreflang จะระบุภาษา (ในรูปแบบ ISO 639-1) และภูมิภาค (ไม่บังคับสำหรับภูมิภาค) (ในรูปแบบ ISO 3166-1 Alpha 2) ของ URL ทางเลือก หากระบุไว้เพียงรหัสเดียว Google จะถือว่ารหัสนั้นเป็นรหัสภาษา ทั้งนี้ภาษาไม่จำเป็นต้องเกี่ยวข้องกับภูมิภาค เช่น

  • de: เนื้อหาภาษาเยอรมัน ไม่กำหนดภูมิภาค
  • en-GB: เนื้อหาภาษาอังกฤษ สำหรับผู้ใช้ในเกรทบริเตน
  • de-ES: เนื้อหาภาษาเยอรมัน สำหรับผู้ใช้ในสเปน

สำหรับรูปแบบสคริปต์ภาษาต่างๆ สคริปต์ที่เหมาะสมจะถูกดึงจากประเทศนั้นๆ ตัวอย่างเช่น เมื่อใช้ zh-TW สำหรับผู้ใช้ในไต้หวัน ระบบจะดึงสคริปต์ภาษาโดยอัตโนมัติ (ในตัวอย่างนี้คือภาษาจีนตัวเต็ม) คุณยังสามารถระบุสคริปต์นั้นเองอย่างชัดเจนโดยใช้ ISO 15924 ดังนี้

  • zh-Hant: ภาษาจีน (ตัวเต็ม)
  • zh-Hans: ภาษาจีน (ตัวย่อ)

อีกทางเลือกหนึ่งคือ คุณสามารถระบุชุดของสคริปต์และภูมิภาคผสมกันได้ เช่น ใช้ zh-Hans-TW เพื่อระบุภาษาจีน (ตัวย่อ) สำหรับผู้ใช้ชาวไต้หวัน

ใช้แท็ก x-default สำหรับภาษาที่ไม่ตรงกัน

ระบบจะใช้ค่า hreflang="x-default" ที่สงวนไว้นี้เมื่อไม่มีภาษา/ภูมิภาคอื่นตรงกับการตั้งค่าเบราว์เซอร์ของผู้ใช้ ค่านี้ไม่ใช่ค่าบังคับ แต่แนะนำให้ใช้เป็นวิธีควบคุมหน้าเว็บเมื่อไม่มีภาษาที่ตรงกัน การใช้ที่เหมาะสมคือกำหนดเป้าหมายหน้าแรกของเว็บไซต์ซึ่งมีแผนที่ให้ผู้ใช้คลิกเลือกประเทศของตนได้

ไม่จำเป็นต้องระบุรหัสภาษาสำหรับค่า x-default โดยระบบจะกำหนดเป้าหมายหน้าเว็บให้กับผู้ใช้ซึ่งมีการตั้งค่าภาษาไม่ตรงกับในเว็บไซต์ ภาษาของหน้านั้นจึงไม่เกี่ยวข้อง

การแก้ปัญหา

ข้อผิดพลาดทั่วไป

ข้อผิดพลาดในการใช้งาน hreflang ที่พบบ่อยมีดังนี้

  • ไม่มีลิงก์ส่งกลับ: หากหน้า ก ลิงก์ไปยังหน้า ข หน้า ข ต้องลิงก์กลับมาที่หน้า ก หากหน้าที่ใช้คำอธิบายประกอบ hreflang บางหน้าไม่ได้มีลักษณะแบบนี้ ระบบอาจไม่สนใจคำอธิบายประกอบดังกล่าว หรือไม่ได้รับการตีความอย่างถูกต้อง
  • รหัสภาษาไม่ถูกต้อง: โปรดตรวจสอบว่ารหัสภาษาทั้งหมดที่คุณใช้นั้นมีการระบุภาษา (ในรูปแบบ ISO 639-1) และภูมิภาค (ไม่บังคับสำหรับภูมิภาค) (ในรูปแบบ ISO 3166-1 Alpha 2) ของ URL ทางเลือก ทั้งนี้ไม่สามารถระบุภูมิภาคอย่างเดียวได้

การแก้ไขข้อผิดพลาด hreflang

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

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