Structured Data สำหรับช่องค้นหาไซต์ลิงก์ (WebSite)

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

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

หาก Google Search แสดงช่องค้นหาไซต์ลิงก์สำหรับเว็บไซต์แล้ว คุณควบคุมลักษณะบางอย่างของช่องค้นหาไซต์ลิงก์ได้โดยเพิ่มข้อมูลที่มีโครงสร้าง WebSite

วิธีนำช่องค้นหาไซต์ลิงก์มาใช้งาน

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

  1. ติดตั้งเครื่องมือค้นหาที่ใช้งานได้ในเว็บไซต์หรือแอป Android ของคุณ

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

    • เว็บไซต์: ตั้งค่าเครื่องมือค้นหาในเว็บไซต์ ฟีเจอร์นี้จะส่งต่อคำค้นหาของผู้ใช้ไปยังเป้าหมายของคุณโดยใช้ไวยากรณ์ที่ระบุไว้ในข้อมูลที่มีโครงสร้าง เครื่องมือค้นหาของคุณต้องรองรับคำค้นหาที่เข้ารหัสแบบ UTF-8
    • แอป: ดูภาพรวมการค้นหาในเว็บไซต์สำหรับนักพัฒนาซอฟต์แวร์ Android เพื่อศึกษาวิธีใช้เครื่องมือค้นหาสำหรับแอปของคุณ แอป Android ต้องรองรับ Intent ACTION_VIEW จากผลการค้นหาของ Search โดยระบุ URI ข้อมูลที่สอดคล้องกันไว้ในพร็อพเพอร์ตี้ potentialAction.target ของมาร์กอัป
  2. ใช้เอลิเมนต์ Structured Data WebSite ในหน้าแรกของเว็บไซต์ แอปต้องมีเว็บไซต์ที่เกี่ยวข้องเพื่อเปิดใช้ฟีเจอร์นี้ แม้ว่าเว็บไซต์จะมีหน้าเว็บเพียงหน้าเดียว โดยมีหลักเกณฑ์เพิ่มเติมอีกไม่กี่ข้อดังต่อไปนี้
    • เพิ่มมาร์กอัปลงในหน้าแรกเท่านั้น ไม่ใช่หน้าอื่นๆ
    • หากคุณใช้งาน Structured Data สำหรับ WebSite กับฟีเจอร์ชื่อเว็บไซต์อยู่แล้ว ให้ตรวจดูว่าได้ฝังพร็อพเพอร์ตี้ชื่อเว็บไซต์ไว้ในโหนดเดียวกัน กล่าวอีกนัยหนึ่งคือ ให้หลีกเลี่ยงการสร้างแถว Structured Data WebSite เพิ่มเติมในหน้าแรก หากคุณทำได้
    • ระบุ SearchAction 1 รายการสำหรับเว็บไซต์ทุกครั้ง และอาจเลือกระบุอีกรายการหนึ่งหากรองรับการค้นหาในแอป คุณต้องมี SearchAction สำหรับเว็บไซต์ของคุณ แม้ว่าจะต้องการให้แอปเป็นเป้าหมายของการค้นหา วิธีนี้จะทำให้ผลการค้นหานำผู้ใช้ไปยังเว็บไซต์ดังกล่าวหากผู้ใช้ไม่ได้ค้นหาจากโทรศัพท์ Android หรือไม่ได้ติดตั้งแอป Android ของคุณไว้
    • ดูตำแหน่งการแทรกข้อมูลที่มีโครงสร้างในหน้าเว็บตามรูปแบบที่คุณใช้อยู่
  3. ปฏิบัติตามหลักเกณฑ์
  4. ตรวจสอบความถูกต้องของโค้ดโดยใช้การ��ดสอบผลการค้นหาที่เป็นสื่อสมบูรณ์
  5. ยืนยันการใช้เครื่องมือค้นหาโดยคัดลอก URL WebSite.potentialAction.target จากข้อมูลที่มีโครงสร้างโดยแทนที่ {search_term_string} ด้วยคำค้นหาทดสอบ และไปที่ URL ดังกล่าวในเว็บเบราว์เซอร์ เช่น หากเว็บไซต์ของคุณคือ example.com และคุณต้องการทดสอบคำค้นหา "kittens" ก็จะต้องไปที่ https://www.example.com/search/?q=kittens
  6. ตั้งค่า Canonical URL ที่ต้องการสำหรับหน้าแรกของโดเมนโดยใช้เอลิเมนต์ของลิงก์ rel="canonical" ในทุกรูปแบบของหน้าแรก วิธีนี้ช่วยให้ Google Search เลือก URL ที่ถูกต้องสำหรับมาร์กอัป เซิร์ฟเวอร์ต้องรองรับการเข้ารหัสอักขระ UTF-8
  7. สำหรับแอป ให้เปิดใช้ตัวกรอง Intent ที่เหมาะสมเพื่อรองรับ URL ที่คุณระบุในแอปที่เป็นเป้าหมายของมาร์กอัป ดูตัวอย่างวิธีสร้างตัวกรอง Intent สำหรับ URL ของ Google Search ได้ที่การจัดทำดัชนีแอป Firebase สำหรับ Android
  8. ทำให้บางหน้าใช้งานได้ซึ่งเป็นหน้าที่มีข้อมูลที่มีโครงสร้าง และใช้เครื่องมือตรวจสอบ URL เพื่อทดสอบว่า Google เห็นหน้าในลักษณะใด ตรวจสอบว่า Google เข้าถึงหน้าดังกล่าวได้และไม่มีการบล็อกหน้าด้วยไฟล์ robots.txt, แท็ก noindex หรือข้อกำหนดให้เข้า��ู่ระบบ หากหน้าเว็บดูถูกต้องดีแล้ว ก็ขอให้ Google รวบรวมข้อมูล URL อีกครั้งได้
  9. หากต้องการให้ Google ทราบถึงการเปลี่ยนแปลงที่จะเกิดขึ้นในอนาคตอยู่ตลอด เราขอแนะนำให้ส่งแผนผังเว็บไซต์ ซึ่งกำหนดให้ดำเนินการแบบอัตโนมัติได้โดยใช้ Search Console Sitemap API

ตัวอย่าง

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

ใช้ช่องค้นหาไซต์ลิงก์อยู่

ตัวอย่างมาร์กอัปที่ใช้งานช่องค้นหาไซต์ลิงก์ซึ่งใช้เครื่องมือค้นหาที่กำหนดเองของเว็บไซต์

JSON-LD

นี่คือตัวอย่างใน JSON-LD


<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://query.example.com/search?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>
Microdata

นี่คือตัวอย่างใน Microdata


<div itemscope itemtype="https://schema.org/WebSite">
  <meta itemprop="url" content="https://www.example.com/"/>
  <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
    <meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/>
    <input itemprop="query-input" type="text" name="search_term_string" required/>
    <input type="submit"/>
  </form>
</div>
  

นี่คือตัวอย่างเว็บไซต์และแอปใน JSON-LD

<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": [{
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://query.example.com/search?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      },{
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

หลักเกณฑ์

คุณต้องปฏิบัติตามหลักเกณฑ์เหล่านี้จึงจะมีสิทธิ์ปรากฏเป็นผลการค้นหาที่เป็นสื่อสมบูรณ์

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

<meta name="google" content="nositelinkssearchbox">

คำจำกัดความของประเภท Structured Data

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

WebSite ประเภทแก้ไขแล้ว

Google Search ใช้ข้อมูลที่มีโครงสร้าง WebSite ประเภทแก้ไขแล้วทั้งสำหรับช่องค้นหาในเว็บไซต์และในแอป ดูคำจำกัดความที่สมบูรณ์ของ WebSite ได้ที่ schema.org แต่ Google Search จะดัดแปลงจากมาตรฐานเล็กน้อย พร็อพเพอร์ตี้ที่ Google รองรับมีดังต่อไปนี้

พร็อพเพอร์ตี้ที่จำเป็น
potentialAction

อาร์เรย์ของออบเจ็กต์ SearchAction 1 หรือ 2 รายการ

ออบเจ็กต์นี้อธิบายถึง URI ที่ใช้เป็นเป้าหมายในการส่งคำค้นหา และไวยากรณ์ของคำขอที่ส่ง คุณต้องใช้หน้าเว็บหรือเครื่องจัดการ Intent ที่รับคำขอได้และทำการค้นหาที่เหมาะสมเกี่ยวกับสตริงที่ส่ง หากผู้ใช้ไม่ได้ใช้แอป Android (หรือใช้แอป Android แต่ไม่ได้ระบุเป้าหมาย Intent ของ Android) ช่องค้นหาจะส่งคำค้นหาเวอร์ชันเว็บไซต์ไปยังตำแหน่งที่ระบุ หากผู้ใช้ใช้อุปกรณ์ Android และระบุ URI Intent ของ Android ช่องค้นหาจะส่ง Intent ดังกล่าว

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

ตัวอย่างสำหรับเว็บไซต์

ตัวอย่างต่อไปนี้จะส่งคำขอ GET ไปที่ https://query.example.com/search?q=user%20search%20string

"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://query.example.com/search?q={search_term_string}"
  },
  "query-input": "required name=search_term_string"
}]

ตัวอย่างสำหรับแอป

ตัวอย่างต่อไปนี้จะส่ง Intent ของ Android ไปที่ android-app://com.example/https/query.example.com/search/?q=user_search_string

"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}"
  },
  "query-input": "required name=search_term_string"
}]

potentialAction.query-input

Text

ใช้สตริงตามตัวอักษร required name = search-term หรือตัวยึดตำแหน่งอะไรก็ได้ที่คุณใช้ใน target ตรวจสอบว่าค่าตัวยึดตําแหน่งทั้ง 2 ค่าตรงกัน ตัวอย่างเช่น ทั้งค่าตัวยึดตําแหน่งในพร็อพเพอร์ตี้ target และ query-input ใช้สตริง search-term

"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://query.example.com/search?q={search-term}"
  },
  "query-input": "required name=search-term"
}]
potentialAction.target

EntryPoint

ออบเจ็กต์ EntryPoint ที่มีพร็อพเพอร์ตี้ urlTemplate

urlTemplate ต้องเป็นสตริงในรูปแบบ search_handler_uri{search_term_string}

เช่น

https://query.example.com/search?q={search_term_string}
search_handler_uri สำหรับเว็บไซต์ จะเป็น URL ของเครื่องจัดการที่รับและจัดการคำค้นหา สำหรับแอป จะเป็น URI ของเครื่องจัดการ Intent สำหรับเครื่องมือค้นหาที่จัดการการค้นหา
search_term_string

สตริงยึดตำแหน่งที่แทนที่ด้วยคำค้นหาของผู้ใช้เมื่อผู้ใช้คลิกปุ่ม "ค้นหา" ในช่องค้นหา ตรวจสอบว่าสตริงตัวยึดตําแหน่งที่คุณใช้ที่นี่ตรงกับค่าสําหรับองค์ประกอบ name สําหรับพร็อพเพอร์ตี้ query-input ด้วย

url

URL

ระบุ URL ของเว็บไซต์ที่ค้นหา ตั้งค่าเป็นหน้าแรก Canonical ของเว็บไซต์ เช่น https://www.example.org

ตรวจสอบผลการค้นหาที่เป็นสื่อสมบูรณ์ด้วย Search Console

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

  1. หลังจากทำให้ข้อมูลที่มีโครงสร้างใช้งานได้เป็นครั้งแรก
  2. หลังจากเผยแพร่เทมเพลตใหม่หรืออัปเดตโค้ด
  3. วิเคราะห์การเข้าชมเป็นระยะ

หลังจากทำให้ข้อมูลที่มีโครงสร้างใช้งานได้เป็นครั้งแรก

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

  1. แก้ไขรายการที่ไม่ถูกต้อง
  2. ตรวจสอบ URL ที่เผยแพร่เพื่อดูว่ายังมีปัญหาอยู่หรือไม่
  3. ขอการตรวจสอบโดยใช้รายงานสถานะ

หลังจากเผยแพร่เทมเพลตใหม่หรืออัปเดตโค้ด

เมื่อทําการเปลี่ยนแปลง��ี่สําคัญในเว็บไซต์ ให้คอยตรวจสอบการเพิ่มขึ้นของรายการที่ไม่ถูกต้องของ Structured Data
  • หากเห็นว่าจำนวนรายการที่ไม่ถูกต้องเพิ่มขึ้น อาจเป็นเพราะคุณเผยแพร่เทมเพลตใหม่ที่ใช้งานไม่ได้ หรือเว็บไซต์โต้ตอบกับเทมเพลตที่มีอยู่ด้วยวิธีใหม่และไม่ถูกต้อง
  • หากเห็นว่าจำนวนรายการที่ถูกต้องลดลง (ไม่สอดคล้องกับรายการที่ถูกต้องซึ่งเพิ่มขึ้น) บางทีอาจเป็นเพราะคุณไม่ได้ฝัง Structured Data ไว้ในหน้าอีกแล้ว ให้ใช้เครื่องมือตรวจสอบ URL เพื่อดูสาเหตุของปัญหา

วิเคราะห์การเข้าชมเป็นระยะ

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

การแก้ปัญหา

หากประสบปัญหาในการใช้หรือแก้ไขข้อบกพร่องของ Structured Data โปรดดูแหล่งข้อมูลต่อไปนี้ซึ่งอาจช่วยคุณได้