โปรแกรมรวบรวมข้อมูลของ AI อ่านเนื้อหาที่สร้างด้วย JavaScript ได้ไหม

เผยแพร่เมื่อ

คำตอบสั้น ๆ

มักจะไม่ได้ Googlebot เรนเดอร์ JavaScript ในขั้นตอนถัดมา แต่โปรแกรมรวบรวมข้อมูลของ AI ส่วนใหญ่ไม่ได้ระบุว่าทำเช่นนั้น และ Google เองก็ระบุว่าบอตทุกตัวไม่ได้รัน JavaScript ได้ หากข้อความของคุณปรากฏหลังสคริปต์ทำงานเท่านั้น โปรแกรมรวบรวมข้อมูลของ AI อาจได้หน้าว่าง ให้ส่งเนื้อหาหลักไว้ใน HTML ตั้งต้นด้วยการเรนเดอร์ฝั่งเซิร์ฟเวอร์หรือหน้าสแตติก

single-page app และเฟรมเวิร์กฝั่งไคลเอนต์มีอยู่ทุกที่ และในเบราว์เซอร์ก็ดูปกติดี แต่โปรแกรมรวบรวมข้อมูลที่อ่านเพียง HTML ที่เซิร์ฟเวอร์ส่งมาเห็นอีกอย่างหนึ่ง คือ <div id="root"></div> แท็กสคริปต์ไม่กี่ตัว และข้อความน้อยมากหรือไม่มีเลย สำหรับคำตอบจาก AI หน้าแบบนี้ไม่มีอะไรให้อ้างอิง

ในหน้านี้
  1. ทำไมโปรแกรมรวบรวมข้อมูลของ AI จึงพลาดเนื้อหา JavaScript
  2. ตรวจสอบอย่างไรว่าโปรแกรมรวบรวมข้อมูลได้รับอะไร
  3. หน้าแบบไหนเสี่ยงที่สุด
  4. แก้เนื้อหาที่มีเฉพาะใน JavaScript อย่างไร
  5. หน้าล็อกอิน หน้าขอความยินยอม และ paywall ก็บล็อกโปรแกรมรวบรวมข้อมูลของ AI ด้วยหรือไม่
  6. AISeeWhy ตรวจพบหน้าที่ใช้ JavaScript อย่างเดียวได้อย่างไร

ทำไมโปรแกรมรวบรวมข้อมูลของ AI จึงพลาดเนื้อหา JavaScript

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

OpenAI, Anthropic และ Perplexity ไม่ได้ระบุในเอกสารโปรแกรมรวบรวมข้อมูลว่าเอเจนต์ของตนรัน JavaScript Apple ระบุว่า Applebot อาจเรนเดอร์หน้าในเบราว์เซอร์ เมื่อไม่มีคำยืนยันชัดเจน ข้อสมมติที่ปลอดภัยสำหรับโปรแกรมรวบรวมข้อมูลของ AI คือพวกมันอ่านแค่ HTML ตั้งต้น

ตรวจสอบอย่างไรว่าโปรแกรมรวบรวมข้อมูลได้รับอะไร

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

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

ผลลัพธ์ 0 หมายความว่าประโยคนั้นไม่อยู่ใน HTML ที่เซิร์ฟเวอร์ส่งมา โปรแกรมรวบรวมข้อมูลที่ไม่รันสคริปต์จึงหาไม่เจอ ดูไฟล์คร่าว ๆ ก็บอกได้ที่เหลือ บทความที่เรนเดอร์ฝั่งเซิร์ฟเวอร์มีข้อความเต็มอยู่ในนั้น ส่วนเปลือกฝั่งไคลเอนต์มีแค่องค์ประกอบราก (root) ที่ว่างกับรายการสคริปต์

หน้าแบบไหนเสี่ยงที่สุด

แก้เนื้อหาที่มีเฉพาะใน JavaScript อย่างไร

วิธีแก้คือส่งเนื้อหาสำคัญในคำตอบแรก เลือกตัวเลือกที่เบาที่สุดที่ระบบของคุณรองรับ

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

หลีกเลี่ยงการส่งหน้าที่ต่างจากที่ผู้ใช้เห็นให้โปรแกรมรวบรวมข้อมูลโดยดูจาก user agent การเรนเดอร์ HTML เดียวกันให้ทุกคนดูแลง่ายกว่า และไม่ก่อข้อสงสัยเรื่อง cloaking

หน้าล็อกอิน หน้าขอความยินยอม และ paywall ก็บล็อกโปรแกรมรวบรวมข้อมูลของ AI ด้วยหรือไม่

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

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

AISeeWhy ตรวจพบหน้าที่ใช้ JavaScript อย่างเดียวได้อย่างไร

AISeeWhy อ่าน HTML ตั้งต้นตามที่โปรแกรมรวบรวมข้อมูลแต่ละตัวได้รับ โดยไม่รันสคริปต์ เมื่อหน้ามีข้อความที่มองเห็นแทบไม่มี แต่มีองค์ประกอบรากของเฟรมเวิร์กและสคริปต์ จะรายงานข้อค้นพบระดับ P1 ว่าเนื้อหาต้องใช้ JavaScript และยังระบุการเปลี่ยนเส้นทางที่ส่งโปรแกรมรวบรวมข้อมูลไปที่อื่นต่างจากหน้าที่เบราว์เซอร์ได้

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

Googlebot เรนเดอร์ JavaScript ไหม

เรนเดอร์ Google รวบรวมข้อมูล HTML จัดคิวหน้าเพื่อเรนเดอร์ และเรนเดอร์ด้วย Chromium แบบ headless เมื่อทรัพยากรเอื้ออำนวย Google ก็ยังแนะนำการเรนเดอร์ฝั่งเซิร์ฟเวอร์หรือ prerendering

โปรแกรมรวบรวมข้อมูลของ ChatGPT, Claude และ Perplexity รัน JavaScript ไหม

เอกสารโปรแกรมรวบรวมข้อมูลของผู้ให้บริการเหล่านั้นไม่ได้ระบุ จนกว่าผู้ให้บริการจะระบุเป็นอื่น ให้สมมติว่าโปรแกรมอ่าน HTML ตั้งต้น และตรวจให้แน่ใจว่าเนื้อหาของคุณอยู่ในนั้น

dynamic rendering สำหรับบอตเป็นความคิดที่ดีไหม

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

JSON-LD ที่เพิ่มด้วย JavaScript นับไหม

Google อ่านได้หลังเรนเดอร์ แต่โปรแกรมรวบรวมข้อมูลที่ไม่รันสคริปต์จะมองไม่เห็น ให้วาง JSON-LD ไว้ใน HTML ตั้งต้น

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

บทความอื่น ๆ