umum data terstruktur Errors (dan cara Fix Them)

data terstruktur errors Google's Rich hasil Test dan Search Console surface sebagian besar — missing diperlukan fields, wrong nilai jenis, konten mismatch, malformed JSON-LD, dan deprecated jenis — dan exactly cara debug setiap one.

Pertama kali diterbitkan: 2 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Advanced
Bahasa

data terstruktur errors split ke two jenis: parsing errors itu break markup entirely (malformed JSON-LD — trailing commas, unescaped quotes, sebuah missing colon atau brace) dan eligibility errors itu parse fine tetapi fail sebuah rich-hasil aturan (missing diperlukan property, wrong nilai jenis, sebuah colliding/duplicate @id, atau markup describing konten not terlihat pada halaman). sebuah missing diperlukan property atau unparsable JSON blocks rich hasil outright; sebuah missing recommended property adalah hanya sebuah warning — rich hasil biasanya masih menampilkan, less richly. konten mismatch adalah one error class dengan nyata teeth: ini adalah sebuah policy violation itu dapat trigger sebuah manual tindakan, not hanya silent ineligibility. sebuah distinct failure mode isn't sebuah error di semua — sebuah deprecated/unsupported jenis (FAQ, dihapus oleh dapat 2026) adalah valid markup itu hanya no longer earns sebuah visual. Debug dengan three berbeda alat: Rich hasil Test (Google eligibility + SERP preview, single URL), Schema Markup Validator (schema.org syntax/vocabulary, apa pun jenis), dan Search Console's Rich hasil report (situs-wide, sampled, di atas time) — sebuah pass di one jawaban hanya itu alat's own pertanyaan. Fixing errors restores rich-hasil eligibility — data terstruktur isn't sebuah peringkat factor, so sebuah fix wins back sebuah SERP visual, not sebuah peringkat.

TL;DR — data terstruktur errors split ke parsing errors (malformed JSON-LD — trailing commas, unescaped quotes, missing colons atau braces — itu break markup so badly Google dapat’t determine jenis; ini land di Unparsable data terstruktur report) dan eligibility errors ( markup parses tetapi fails sebuah rich-hasil aturan: missing diperlukan property, wrong nilai jenis, atau markup describing konten not terlihat pada halaman). Errors dapat block; warnings adalah non-critical — sebuah missing diperlukan property dapat kill fitur eligibility, while sebuah missing recommended one umumnya preserves eligibility tetapi dapat limit available informasi. konten mismatch adalah one class dengan teeth — sebuah policy violation itu dapat trigger sebuah manual tindakan, not silent ineligibility. sebuah separate failure mode isn’t sebuah error di semua: sebuah deprecated/unsupported jenis (FAQ, hilang oleh dapat 2026) adalah valid markup itu earns no visual. Debug dengan three berbeda alat — Rich hasil Test (Google eligibility + preview), Schema Markup Validator (schema.org syntax, apa pun jenis), dan Search Console’s Rich hasil report (situs-wide, sampled). data terstruktur isn’t sebuah peringkat factor, so sebuah fix wins back sebuah SERP visual, not sebuah peringkat.

Evidence for this claim Google structured data must follow technical, quality, relevance, and feature-specific guidelines; valid syntax alone is insufficient for eligibility. Scope: Current Google structured-data policies. Confidence: high · Verified: Google Search Central: Structured data general guidelines Evidence for this claim Google recommends Rich Results Test for supported feature validation and URL Inspection for deployed-page status; warnings may preserve eligibility while errors can block it. Scope: Current Google structured-data validation workflow. Confidence: high · Verified: Google Search Central: Generate structured data with JavaScript

Errors vs. warnings — what actually blocks sebuah rich hasil

Debug in order: make the markup readable, make the item eligible, then verify that it matches the page and policy. Sumber: Google Search Central

Step one checks whether the JSON-LD parses and fixes malformed syntax first. Step two checks required rich-result fields and valid value types; errors can block eligibility while warnings usually identify recommended fields. Step three checks whether the markup matches visible content and Google policy. Passing one layer does not prove the next, and valid markup does not guarantee display.

© Patrick Stox LLC · CC BY 4.0 ·

sebelum taxonomy, get ini distinction straight, because sebagian besar guides gunakan “error” (terjemahan) “error” sebagai sebuah catch-semua dan ini causes needless panic.

  • sebuah error berarti sebuah diperlukan property adalah missing atau invalid, atau markup adalah unparsable. item dapat’t menjadi sebuah rich hasil until Anda fix ini.
  • sebuah warning berarti sebuah recommended (not diperlukan) property adalah missing. rich hasil dapat masih tampilkan — hanya less completely.

Google’s own guidance leans toward accuracy di atas padding: “it is more important to supply fewer but complete and accurate recommended properties rather than trying to provide every possible recommended property with less complete, badly-formed, or inaccurate data.” (terjemahan) “ini adalah more penting untuk supply fewer tetapi complete dan accurate recommended properties alih-alih trying untuk menyediakan setiap mungkin recommended property dengan less complete, badly-formed, atau inaccurate data.” dengan kata lain, don’t chase setiap warning oleh stuffing di half-accurate data — itu dapat buat worse masalah daripada warning ini solves.

Worth knowing: bahkan Google’s own reporting isn’t infallible here. di October 2022 Search Console memiliki sebuah bug where beberapa issues adalah mislabeled sebagai errors when mereka adalah actually warnings; Google’s fix moved them “from the critical error table to the warning table,” (terjemahan) “dari critical error table untuk warning table,” dan clarified ini adalah “strictly a reporting issue and did not affect whether or not a rich result could be displayed” (terjemahan) “strictly sebuah reporting issue dan melakukan not affect whether atau not sebuah rich hasil dapat menjadi displayed” (mesin pencari Land, Oct 2022). lesson: when di doubt, cross-periksa sebuah flagged item terhadap Rich hasil Test alih-alih trusting one report blindly.

Malformed JSON-LD — “unparsable” (terjemahan) “unparsable” errors

ini adalah paling fundamental error class: markup adalah broken badly enough itu Google dapat’t bahkan determine intended jenis. Google files ini di sebuah separate Unparsable data terstruktur report alih-alih sebuah per-jenis report, because there’s no jenis untuk attribute item untuk. Google’s own deskripsi: sebuah item lands here karena sebuah “serious syntax error” (terjemahan) “serious syntax error” dan “the intended type of structured data (Job, Event, and so on) could not be determined because of the parsing error.” (terjemahan) “ intended jenis dari data terstruktur (Job, Event, dan so pada) dapat not menjadi determined karena parsing error.”

usual culprits:

  • Trailing commas. sebuah comma setelah last property di sebuah object atau array adalah valid di JavaScript tetapi invalid di JSON. ini adalah single sebagian besar umum cara hand-written atau template-concatenated JSON-LD breaks.
  • Unescaped quotes. sebuah double quote inside sebuah string nilai itu isn’t escaped (\") terminates string early. Google’s documented error untuk ini adalah “Bad escape sequence in string.” (terjemahan) “buruk escape sequence di string.” Product names, review text, dan deskripsi dengan inch marks atau quoted phrases adalah classic offenders.
  • Missing colons atau braces. Google documents ini verbatim sebagai “Parsing error: Missing ’:’” (terjemahan) “Parsing error: Missing ’:’” dan “Parsing error: Missing ’,’ or ’}’” (terjemahan) “Parsing error: Missing ’,’ atau ’}’” — biasanya sebuah copy-paste atau string-concatenation accident.
  • Wrong nilai jenis inside otherwise-valid JSON. Google’s “Incorrect value type” (terjemahan) “Incorrect nilai jenis” — e.g., sebuah numeric field wrapped di quotes when sebuah angka adalah expected. (ini shades ke eligibility errors below; when ini adalah buruk enough untuk break parsing, ini lands here.)

cara debug: strip untuk sebuah empty object, rebuild piece oleh piece

Google’s own debugging tip untuk unparsable markup adalah refreshingly rendah-tech: “If you are having problems finding the error, try starting from an empty object, then add back content from your broken code piece by piece.” (terjemahan) “jika Anda adalah having masalah finding error, try starting dari sebuah empty object, lalu tambahkan back konten dari Anda broken code piece oleh piece.” Paste stripped-down object ke Rich hasil Test, confirm ini parses, lalu tambahkan properties back until ini breaks — last thing Anda ditambahkan adalah Anda culprit.

One caution straight dari Google: fixing sebuah parsing error “might trigger additional warnings or errors that were hidden because the item could not be parsed at all.” (terjemahan) “mungkin trigger additional warnings atau errors itu adalah hidden because item dapat not menjadi parsed di semua.” One fix dapat unmask next layer, so re-test setelah setiap perubahan.

Missing diperlukan fields dan wrong nilai jenis

Once JSON parses, next error class adalah tentang contents: adalah setiap diperlukan property present, dan adalah setiap nilai right jenis?

setiap Google-didukung jenis memiliki diperlukan properties (leave one out dan Anda lose eligibility — itu’s sebuah error) dan recommended ones (leave one out dan Anda get sebuah warning, tetapi rich hasil dapat masih tampilkan). Search Console’s guidance adalah untuk open report, “click an issue to see affected pages,” (terjemahan) “click sebuah issue untuk see affected halaman,” dan gunakan “Why items are invalid” (terjemahan) “Why items adalah invalid” table untuk prioritize — errors pertama, lalu warnings.

jenis mismatches — string where sebuah angka, URL, atau date adalah expected

classic eligibility bug: nilai adalah there, tetapi ini adalah wrong jenis. sebuah price field containing sebuah date. sebuah rating disediakan sebagai "five stars" alih-alih sebuah angka. sebuah URL field containing plain text. Google flags ini sebagai sebuah invalid/unexpected nilai jenis.

Bing adalah worth sebuah note here because, per -nya own data terstruktur help documentation, ini behaves differently: alih-alih erroring loudly, Bing’s crawler adalah documented untuk ignore sebuah annotation whose nilai jenis adalah wrong (sebuah price field holding sebuah date, sebuah Event dengan no date, sebuah Person dengan no name) alih-alih surface sebuah red error. So don’t assume “no Bing error” (terjemahan) “no Bing error” berarti “correct” (terjemahan) “correct” — Bing’s public documentation adalah thinner dan less granular daripada Google’s (ini doesn’t publish sebuah per-jenis diperlukan-vs-recommended breakdown atau sebuah report sebagai detailed sebagai Rich hasil report), dan -nya tolerance untuk mismatched jenis adalah sebuah silent-drop, not sebuah loud-fail. Lean pada Google’s Rich hasil Test untuk detailed error taxonomy.

Duplicate @id nilai dan entity confusion

sebuah subtler one itu CMS plugins cause constantly: reusing yang sama @id untuk two berbeda entities, atau letting sebuah plugin emit sebuah fresh, colliding @id pada setiap halaman alih-alih sebuah stable one. ini adalah not sebuah parsing failure — JSON itself adalah well-formed, so ini doesn’t land di Unparsable data terstruktur report. @id adalah how JSON-LD nodes reference setiap lainnya inside sebuah @graph, so sebuah collision adalah sebuah entity-identity masalah: ini membuat ambiguity tentang which node sebuah reference actually poin untuk. ini gets worse pada situs where multiple sources ( theme dan sebuah schema plugin) both auto-generate Organization, WebSite, dan WebPage nodes.

fix adalah sebuah stable, unique @id per dunia nyata entity — sebuah URL-fragment identifier like https://example.com/#organization, reused consistently di seluruh situs, not regenerated per halaman. ini adalah mirror image dari canonicalization masalah, where one stable identifier per nyata thing adalah likewise whole game.

Nested-property errors (sebuah missing name inside author)

beberapa diperlukan properties live inside lainnya objects — author.name, aggregateRating.ratingValue. sebuah missing one digunakan untuk produce sebuah vague error like Missing field "name" itu dapat poin anywhere pada halaman. di March 2022 Google ditambahkan nested context so yang sama error now reads Missing field "name" (in "author") — sebuah kecil perubahan itu membuat ini far easier untuk locate. (Anyone dengan sebuah open “validate fix” (terjemahan) “validate fix” permintaan di time memiliki untuk re-trigger ini, since old issue IDs adalah retired.) jika Anda see sebuah nested-property error, read parenthetical — ini tells Anda exactly which object adalah pendek sebuah field.

konten mismatch — policy-violation error class

ini adalah one error class itu deserves -nya own bagian, because consequence adalah categorically worse daripada “no rich result.” (terjemahan) “no rich hasil.” Everything above adalah sebuah technical masalah. konten mismatch adalah sebuah policy masalah.

Google’s umum data terstruktur Guidelines adalah explicit pada two poin:

  • “Don’t mark up content that is not visible to readers of the page.” (terjemahan) “Don’t mark up konten itu adalah not terlihat untuk readers dari halaman.”
  • “Your structured data must be a true representation of the page content.” (terjemahan) “Anda data terstruktur harus menjadi sebuah benar representation dari halaman konten.”

Marking up sebuah 4,8-star rating itu appears nowhere pada halaman, describing konten itu’s hidden atau disajikan hanya untuk crawler, atau labeling something sebagai one thing when ini adalah really lainnya — Google’s own contoh sertakan sebuah sports live-streaming situs labeling broadcasts sebagai local events, dan sebuah woodworking situs labeling instructions sebagai recipes — semua violate ini.

Consequences: manual tindakan vs. silent ineligibility

sebuah technical error costs Anda rich hasil silently. sebuah konten-mismatch policy violation dapat cost Anda more: “If your page contains a structured data issue, it can result in a manual action. A structured data manual action means that a page loses eligibility for appearance as a rich result; it doesn’t affect how the page ranks in Google web search.” (terjemahan) “jika Anda halaman berisi sebuah data terstruktur issue, ini dapat hasil di sebuah manual tindakan. sebuah data terstruktur manual tindakan berarti itu sebuah halaman loses eligibility untuk appearance sebagai sebuah rich hasil; ini doesn’t affect how halaman peringkat di Google web search.” Manual tindakan tampilkan up di Manual tindakan report di Search Console — sebuah place Anda tidak pernah ingin untuk see sebuah structured-data entry.

sebuah umum quieter versi dari ini: templated, non-unique schema. John Mueller’s panjang-standing guidance adalah itu “the structured data on a website, or on a page, should be specific to that particular page” (terjemahan) “ data terstruktur pada sebuah situs web, atau pada sebuah halaman, seharusnya menjadi spesifik untuk itu particular halaman” (via mesin pencari Journal). sebuah situs-wide Organization block copy-pasted dengan sama review count onto setiap halaman reads sebagai sebuah representation masalah, not hanya sebuah sloppy one.

Why validation isn’t enough. ini adalah jawaban untuk “my markup validates clean — why no rich result?” (terjemahan) “my markup validates clean — why no rich hasil?” Validators periksa syntax dan Google’s technical eligibility aturan. mereka melakukan not periksa Google’s konten-quality dan spam-policy layer. sebuah syntactically perfect, policy-violating implementation dapat masih menjadi denied sebuah rich hasil atau hit dengan sebuah manual tindakan. Passing Rich hasil Test adalah necessary tetapi not sufficient.

menggunakan sebuah deprecated atau unsupported jenis

Here’s sebuah failure mode itu isn’t technically sebuah “error” (terjemahan) “error” di semua — dan ini trips people up because nothing turns red. Anda markup adalah perfectly valid, ini parses, ini passes schema.org validator, dan yet no rich hasil akan ever tampilkan, because Google turned fitur off.

Case study: FAQ rich hasil (deprecated 2026)

timely contoh. Google ditambahkan sebuah deprecation notice untuk FAQ rich hasil documentation, stating fitur “will no longer appear in Google Search starting May 7, 2026,” (terjemahan) “akan no longer appear di Google Search starting dapat 7, 2026,” lalu di mid-2026 dihapus FAQ documentation, Rich hasil Test mendukung, dan Search Console reporting because “the FAQ rich result feature is no longer shown in Google Search results.” (terjemahan) “ FAQ rich hasil fitur adalah no longer ditampilkan di Google hasil pencarian.”

nuance itu penting: FAQPage adalah masih sebuah valid schema.org jenis, dan Google masih parses ini. jenis isn’t “wrong.” (terjemahan) “wrong.” ini simply no longer earns visual treatment. So correct reaction untuk “is my FAQ schema now an error?” (terjemahan) “adalah my FAQ schema now sebuah error?” adalah no — leaving markup di place doesn’t hurt anything; ini hanya no longer buys Anda sebuah SERP enhancement. Don’t panic-strip valid markup because visual went away.

lainnya retired jenis

FAQ isn’t alone. Google memiliki repeatedly retired rich-hasil jenis when analysis showed mereka weren’t widely digunakan atau didn’t tambahkan pengguna nilai: HowTo rich hasil adalah dihapus dari desktop back di 2023; sebuah June 2025 batch retired seven more niche jenis (including Claim Review, Estimated Salary, Learning Video, Special Announcement, dan Vehicle Listing); dan Practice masalah data terstruktur adalah deprecated starting January 2026. di setiap case schema.org jenis biasanya remains valid — ini hanya stops rendering.

cara tell jika sebuah jenis adalah masih “live” (terjemahan) “live”

periksa Google’s Search Gallery — canonical list dari jenis itu currently earn rich hasil. jika sebuah jenis isn’t di gallery, valid markup untuk ini won’t produce sebuah visual, no penting how clean ini adalah. Re-periksa gallery periodically; Google revises ini sering.

cara actually debug — three berbeda alat

single sebagian besar umum meta-mistake adalah conflating alat. ada three, dan mereka jawaban berbeda pertanyaan.

Rich hasil Test — Google eligibility + SERP preview

Rich hasil Test takes sebuah single URL atau sebuah code snippet dan memeriksa subset dari markup Google menggunakan untuk rich hasil, lalu previews how hasil mungkin appear. Google frames ini sebagai “an easy and useful tool for validating your structured data, and in some cases, previewing a feature in Google Search.” (terjemahan) “sebuah easy dan berguna alat untuk validating Anda data terstruktur, dan di beberapa cases, previewing sebuah fitur di Google Search.” gunakan ini selama development dan untuk spot-periksa sebuah fix. ini melakukan not validate schema jenis Google doesn’t gunakan untuk rich hasil.

Schema Markup Validator — schema.org syntax, apa pun jenis

Schema Markup Validator adalah run oleh schema.org, not Google. ini memeriksa umum syntax dan vocabulary compliance untuk apa pun schema.org jenis — including ones Google doesn’t turn ke rich hasil (e.g., Action schema). Passing ini berarti Anda markup adalah well-formed schema.org; ini melakukan not berarti Anda’re eligible untuk sebuah Google rich hasil. ini adalah alat untuk “is my JSON-LD structurally correct?” (terjemahan) “adalah my JSON-LD structurally correct?” independent dari apa pun mesin pencari.

** two-alat trap:** ini adalah genuinely berbeda alat, dan passing one melakukan not berarti passing lainnya. split memiliki confusing history — Google tried untuk fully deprecate -nya old “Structured Data Testing Tool” (terjemahan) “data terstruktur Testing alat” di July 2020, reversed course setelah backlash itu December, lalu refocused ini ke today’s schema.org-run validator oleh mid-2021. Plenty dari old blog posts masih poin people di dead alat name. untuk 2026: Rich hasil Test untuk Google eligibility, Schema Markup Validator untuk schema.org syntax.

Search Console’s Rich hasil report — situs-wide, sampled, di atas time

Rich hasil report ( older nav dan sebuah lot dari practitioners masih panggil ini “Enhancements” (terjemahan) “Enhancements” reports) adalah satu-satunya one itu’s ongoing dan situs-wide alih-alih sebuah single-URL spot periksa. Google: “a valid item is an item that doesn’t have any critical issues and can appear on Google as a rich result. An invalid item has at least one critical issue preventing it from appearing as a rich result.” (terjemahan) “sebuah valid item adalah sebuah item itu doesn’t memiliki apa pun critical issues dan dapat appear pada Google sebagai sebuah rich hasil. sebuah invalid item memiliki setidaknya one critical issue preventing ini dari appearing sebagai sebuah rich hasil.” Two limitations untuk pertahankan di mind: per-jenis reports hanya appear once Google menemukan valid markup dari itu jenis, dan “the reports aren’t a comprehensive list of all detected items. They show a sample of detected items to help assess the quality of your structured data.” (terjemahan) “ reports aren’t sebuah comprehensive list dari semua detected items. mereka tampilkan sebuah sample dari detected items untuk help assess quality dari Anda data terstruktur.” ini adalah sebuah monitoring surface, not sebuah exhaustive audit.

sebuah pass jawaban hanya itu alat’s own layer. Rich hasil Test, Schema Markup Validator, dan Rich hasil report setiap periksa sebuah berbeda pertanyaan, so sebuah clean hasil di one tells Anda nothing tentang lainnya two — sebuah pass di Schema Markup Validator tidak berarti Google’s Rich hasil Test akan pass, dan neither proves what Rich hasil report akan tampilkan once Google actually melakukan crawl deployed halaman.

Validating sebuah fix (dan why ini takes sebuah while)

setelah Anda’ve fixed sebuah issue, Google’s documented workflow adalah: fix pada-situs, confirm halaman adalah dapat di-crawl (not blocked oleh robots.txt atau noindex), spot-periksa dengan pemeriksaan URL, lalu “click Validate fix on the issue’s details page to start Google’s validation process.” (terjemahan) “click Validate fix pada issue’s detail halaman untuk start Google’s validation process.” Set expectations pada timing — Google says validation “can take two weeks or more, depending on crawl frequency.” (terjemahan) “dapat take two weeks atau more, depending pada crawl frequency.” ini adalah not instant; Google memiliki untuk re-crawl affected halaman.

one framing itu mempertahankan Anda sane

Fixing data terstruktur errors adalah tentang rich-hasil eligibility, not rankings. sebagai John Mueller put ini (reported oleh mesin pencari Roundtable, April 2025), “structured data won’t make your site rank better” (terjemahan) “data terstruktur won’t membuat Anda situs peringkat better” — ini adalah untuk displaying search fitur di Google’s gallery. So payoff dari sebuah clean fix adalah sebuah SERP visual (stars, breadcrumbs, price) dan click-melalui ini dapat earn — tidak pernah sebuah peringkat bump. pertahankan itu straight dan Anda’ll prioritize right errors: ones blocking sebuah visual Anda actually ingin, not setiap warning di report.

Where ini sits

ini adalah sebuah deep-dive sibling di bawah data terstruktur untuk SEO hub — yang sama sub-cluster sebagai schema-markup, JSON-LD, dan rich-hasil deep dives. error taxonomy here adalah troubleshooting counterpart untuk itu: mereka cover what untuk bangun, ini covers what breaks dan cara see ini. untuk broader picture dari pada-halaman signals ini lives alongside — meta tags, header tags, image SEO — see pada-halaman SEO cluster.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.