Google เปลี่ยนวิธีอ่าน JSON-LD, และทำไมเว็บที่ใช้ HTML entity ซ้ำซ้อนถึงเสี่ยงเสีย Rich Results
โดย Nokka (นก-กา) | 21 สิงหาคม 2026
Google เพิ่งประกาศเปลี่ยนวิธีอ่าน structured data บนเว็บคุณ และการเปลี่ยนแปลงนี้จะทำให้เว็บบางส่วน "เสีย Rich Results" แบบเงียบๆ ถ้าไม่แก้
ก่อนอื่น, ทำความเข้าใจศัพท์พื้นฐาน
ก่อนลงลึก ขออธิบายศัพท์ 3 คำที่คนไม่ทำ SEO อาจไม่คุ้น
JSON-LD คือรูปแบบการเขียน "ข้อมูลโครงสร้าง" (structured data) ฝังไว้ในหน้าเว็บ เพื่อบอก Google ว่า "นี่คือราคาสินค้า", "นี่คือดาวรีวิว", "นี่คือสูตรอาหาร", Google อ่านแล้วเอาไปแสดงเป็น Rich Results (ผลลัพธ์พิเศษที่มีดาว, ราคา, รูป)
HTML entity คือรหัสแทนอักขระพิเศษ เช่น & แทนเครื่องหมาย &, ✔ แทนเครื่องหมายถูก ✓
Escaping (การหลบอักขระ) คือการเขียนอักขระพิเศษในรูปแบบที่ parser อ่านแล้วไม่สับสน
อุปมา: เหมือนการเขียนจดหมายถึง Google, ถ้าใช้รหัสลับผิดชั้น Google ก็อ่านไม่รู้เรื่อง
เกิดอะไรขึ้น
Google ประกาศบน LinkedIn ว่าเปลี่ยนวิธี "สกัด" (extract) JSON-LD จากหน้าเว็บ [1]
เดิม: Googlebot อ่าน JSON-LD แล้ว "แก้ให้อัตโนมัติ" ถ้าเจอ HTML entity ที่ escape ซ้ำซ้อน (double-escaped)
ใหม่: Googlebot อ่าน JSON-LD แล้ว "ทำ HTML unescaping แค่รอบเดียว" (single pass), ไม่แก้ให้อัตโนมัติอีกต่อไป
คำพูดของ Google ตรงๆ:
"To bring our parser up to JSON and other standards, we changed our JSON-LD extraction and are now only applying a single pass of HTML unescaping."
แปลว่า: เพื่อให้ parser ตรงตามมาตรฐาน JSON Google จึงเปลี่ยนมา "unescape แค่รอบเดียว"
ผลกระทบจริง: อะไรจะพัง
Google อธิบายชัดว่า:
"double-escaped entities (like
&or✔) will no longer be unrolled."
แปลว่า HTML entity ที่ escape ซ้ำซ้อน จะไม่ถูก "คลี่" ออกอีกต่อไป
ตัวอย่างที่พัง:
| สิ่งที่เขียน | เดิม Google อ่านเป็น | ใหม่ Google อ่านเป็น |
|---|---|---|
& |
& (แก้ให้) |
& (ไม่แก้) |
✔ |
✓ (แก้ให้) |
✔ (ไม่แก้) |
ถ้าเว็บคุณเขียน JSON-LD แบบ double-escaped อยู่ Google จะอ่านค่า "ผิด" และอาจไม่แสดง Rich Results
ทำไม Google ถึงทำแบบนี้
Gary Illyes จาก Google อธิบายเหตุผลชัดเจน (อ้างใน [1]):
"If you're wondering what proper escaping is in JSON, I have good news for you! It's very, very well defined in RFC 8259, specifically section 7."
ประเด็นคือ มาตรฐาน JSON (RFC 8259) กำหนดวิธี escape ไว้ชัดเจนอยู่แล้ว, Google แค่ "ยึดตามมาตรฐาน" แทนที่จะ "แก้เผื่อ" ให้เว็บที่เขียนไม่ถูก [2][3]
นี่คือการย้ายจาก "ใจดีแก้ให้" ไป "ยึดมาตรฐานตรงๆ"
วิธีแก้: ใช้ escape ที่ถูกต้อง
Google แนะนำให้ใช้ 2 แบบนี้:
- Standard JSON escapes, ตาม RFC 8259 section 7
-
Unicode hexadecimal escapes, เช่น
\u0026แทน&
ตัวอย่างที่ถูกต้อง:
| ต้องการแสดง | เขียนแบบถูกต้อง |
|---|---|
& |
\u0026 |
" |
\" |
\ |
\\ |
มุมวิเคราะห์: ทำไมเรื่องนี้ถึงสำคัญ
1. "ใจดีแก้ให้" กำลังกลายเป็น "ยึดมาตรฐาน"
นี่เป็นเทรนด์ที่เห็นชัดขึ้นเรื่อยๆ, Google กำลังเลิก "เดาใจ" เว็บที่เขียนผิด แล้วหันมา "ยึดมาตรฐาน" ตรงๆ
ใครเขียนถูกอยู่แล้ว ไม่กระทบอะไร แต่ใคร "พึ่งความใจดี" ของ Google มาตลอด จะเริ่มเจอปัญหา
2. ปัญหานี้ "เงียบ", ไม่มี error แจ้งชัด
อันตรายอยู่ที่ double-escaped JSON-LD มักไม่แสดง error ใน Search Console ชัดเจน, มันแค่ "ไม่แสดง Rich Results" แบบเงียบๆ [4]
เว็บอาจเสียดาวรีวิว, ราคา, หรือ FAQ rich results ไปโดยไม่รู้ตัว
3. กระทบเฉพาะคนที่ "copy-paste" JSON-LD ผิดวิธี
คนที่ใช้ plugin หรือ CMS สร้าง JSON-LD อัตโนมัติ ส่วนใหญ่ปลอดภัย, ปัญหาเกิดกับคนที่ "เขียน JSON-LD มือ" หรือ copy มาจากแหล่งที่ escape ไว้แล้ว แล้วไป escape ซ้ำอีกชั้น
มุมสมดุล (สิ่งที่ต้องระวัง)
- กระทบเฉพาะ double-escaped, ถ้าเว็บคุณเขียน JSON-LD ถูกต้องอยู่แล้ว (single escape) ไม่ต้องทำอะไร
- ไม่ใช่ทุกเว็บจะพัง, เว็บที่ใช้ plugin มาตรฐาน (Yoast, Rank Math, Schema.org generator) ส่วนใหญ่ปลอดภัย
- ยังไม่ชัดว่า Google เริ่มบังคับใช้เมื่อไหร่, ประกาศแล้ว แต่ผลกระทบจริงอาจค่อยๆ เกิด
สรุป
Google เปลี่ยนวิธีอ่าน JSON-LD จาก "แก้ให้อัตโนมัติ" เป็น "ยึดมาตรฐาน RFC 8259 ตรงๆ"
ถ้าเว็บคุณใช้ HTML entity แบบ double-escaped (เช่น &) ใน JSON-LD, ต้องแก้เป็น standard JSON escape (\u0026) หรือ Unicode hex escape ไม่งั้นเสี่ยงเสีย Rich Results แบบเงียบๆ
วิธีตรวจง่ายๆ: เปิด JSON-LD ของเว็บคุณ แล้วดูว่ามี & ซ้อนกันสองชั้นไหม, ถ้ามี แก้เลย
สรุปมุมมองของผม
ผมมองว่าการเปลี่ยนแปลงนี้เป็น "สัญญาณเตือน" มากกว่า "ภัยพิบัติ" — Google กำลังบอกชัดว่า "ต่อไปนี้ยึดมาตรฐาน ไม่มีแก้เผื่อ"
ถ้าคุณดูแลเว็บที่ใช้ JSON-LD ลองใช้เวลาสัก 10 นาทีตรวจดูว่า structured data ของคุณมี & ซ้อนกันสองชั้นไหม ถ้าเจอ แก้เป็น \u0026 ได้เลย
คุณเคยเจอเว็บที่ Rich Results หายไปแบบไม่มีสาเหตุไหม? คอมเมนต์บอกผมได้ครับ
แหล่งอ้างอิง
[1] Barry Schwartz. "JSON-LD Extraction For Googlebot Now Does One Pass Of HTML Unescaping". Search Engine Roundtable. 21 ส.ค. 2026. https://www.seroundtable.com/google-json-ld-extraction-unescaping-41900.html
[2] Google Search Central. "Intro to How Structured Data Markup Works". 2026. https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
[3] IETF. "RFC 8259, The JavaScript Object Notation (JSON) Data Interchange Format, Section 7". 2017. https://datatracker.ietf.org/doc/html/rfc8259
[4] RankYa. "How to Fix Unparsable structured data: Bad escape sequence in string". 2026. https://www.rankya.com/google-search-console/enhancements/how-to-fix-unparsable-structured-data-bad-escape-sequence-in-string/
บทความนี้วิเคราะห์จาก Search Engine Roundtable, LinkedIn ของ Google และ RFC 8259 ข้อมูล ณ 21 สิงหาคม 2026 Nokka
บทความนี้เขียนโดย AI (DeepSeek V4 Pro) ภายใต้การดูแลของ Nokka

Top comments (0)