A page can be indexed, fast, and unique, and still send machines the wrong facts. Structured data is the JSON-LD block that names the organization, the article, the price, or the FAQ. It is an SEO issue when the markup is invalid and rich results disappear, or when it describes a different entity than the one on the page. It is a GEO issue when ChatGPT, Perplexity, or a Google AI Overview repeats a price, date, or address that the visible copy never stated.
This guide follows common SEO and GEO issues that hurt rankings. Use the indexing and crawl guide when the URL is not in the index, duplicate content and keyword cannibalization when the wrong URL ranks, and the Core Web Vitals guide when field data for speed or stability is poor. Use this one when Search Console reports structured-data errors, or when the markup and the paragraph disagree.
What schema is for
Schema does not act as a ranking boost on its own. Google has said that for years. Valid markup makes a page eligible for a rich result, and it gives search systems a typed version of facts that are also on the page: the name, the canonical URL, the author, the date, the price, the address.
Generative engine optimization has the same constraint. Many AI crawlers read the HTML and do not execute JavaScript. A JSON-LD block in the initial HTML is easy to parse. It helps only when it matches the passage you want quoted. Hidden claims, or a template that still describes another brand, give the retriever two versions of the page. How to rank in AI search covers the passage. This guide covers the markup that must not contradict it.
Errors that show up in audits
| Error | What breaks | Usual cause |
|---|---|---|
| Missing required property | The rich result is ineligible | Article without headline or image; Product without offers |
| Invalid value | The item is dropped | A date that is not ISO 8601, a rating above 5, an empty name |
| Markup the visitor cannot see | Policy failure, and a GEO mismatch | FAQ, price, or star rating present only in JSON-LD |
| Two entities in conflict | The wrong name or URL is stored | Organization in the layout plus a different LocalBusiness in the page |
| Wrong language URL | English facts on the Chinese canonical | One JSON-LD snippet copied onto both locales |
| Self-serving reviews | Stars ignored, or a manual action | Review snippet on your own service page, written by you |
“Valid” in a syntax checker is not the same as eligible. The Rich Results Test and Search Console’s enhancements report are the checks that match Google Search. A green JSON parse can still be ineligible because a required field is missing or the type is not a supported rich result.
Google has also retired or narrowed several rich-result types. How-to rich results were removed. FAQ rich results are limited to well-known government and health sites. Marking up every service page as FAQPage or HowTo will not bring those treatments back, and a block that does not match visible questions is still a content mismatch for any system that reads it.
Schema as an SEO ranking problem
Teams treat a ranking drop after a redesign as a keyword problem. Often the new template shipped JSON-LD with the staging URL, a relative image, or an Organization whose url is the apex host while the canonical is www. Search still indexes the page. The enhancement report fills with errors, the breadcrumb or article rich result stops, and the click-through rate falls. That is a technical SEO issue with a measurable traffic effect, not a copy problem.
On Hong Kong sites the pattern is familiar:
priceCurrencyleft asUSDon a page that sells in HKDaddressCountryomitted, or set to a market the company leftopeningHourscopied from a template that assumes a US timezone, so the published hours do not match the shop in Hong Konglogopointing at a file the template no longer publishes, which fails the logo requirement- Breadcrumb URLs that include a trailing slash while the site’s canonicals do not
Fix the template. Correcting one article’s JSON-LD will not repair a layout that injects the same broken Organization on every URL.
The url and mainEntityOfPage inside the script must be the canonical of that language. A parameterised URL, or the English path on the Traditional Chinese page, fights the canonical tag. That conflict is the same class of problem as the duplicate-content guide: machines are asked to treat two URLs as the page.
Why schema errors are a GEO issue
An AI answer that names the wrong fee, the wrong year, or a discontinued product is often quoting a source that disagreed with itself. If the paragraph says the engagement starts with an audit, and the JSON-LD Offer still lists a 2023 price, a parser can store the price. The citation then looks confident and is wrong.
The same split happens with identity. Local SEO and GEO for Hong Kong covers the Google Business Profile and directories. Schema is the on-site copy of that identity. If name, address, and sameAs differ from the profile and from the footer, entity resolution gets worse, not better. Models cite the competitor whose name, address, and service list agree everywhere.
Author markup has the same job as the byline. author should be a person or organization a reader can see, consistent with the E-E-A-T signals on the page. An author name that exists only in JSON-LD does not make the article more citable.
Do not hide the answer in schema to “help AI” while the HTML stays vague. Put the definition, the steps, and the table in the visible article, as described in content formats AI platforms cite. Then make the JSON-LD a typed copy of those facts.
A practical order of fixes
- Read Search Console’s enhancement reports and list the types that are invalid or ineligible. Syntax that never qualified for a rich result is a lower priority than a type you actually depend on, such as
Article,Organization,LocalBusiness,Product, orBreadcrumbList. - Make the visible page the source of truth. Delete any claim that appears only in the script: a star rating, a price, an FAQ, a phone number.
- Keep one primary entity per page. The layout can state the organization. The article states the article. They must not use two different legal names or two different canonical URLs.
- Set
url,@id, andinLanguageto the canonical of that locale. English and Traditional Chinese pages need their own blocks.zh-Hant-HKbelongs on the Chinese URL, not on both. - Align
name,address,telephone, andsameAswith the footer and the Google Business Profile. Use HKD where the page charges in HKD. - Match
headline,datePublished,dateModified, andauthorto the title, the dates, and the byline the visitor sees. UpdatedateModifiedwhen the facts change, not on every deploy. - Remove review and FAQ markup that exists to chase a rich result Google no longer shows for that site. Keep a visible FAQ if it answers real questions. It does not need a type that will be ignored.
- Re-test the English URL and the Chinese URL in the Rich Results Test after the deploy. Confirm the fetched HTML, not a local file, contains the corrected script.
Then ask the prompts you care about and see whether the cited facts match the page. A remaining citation gap, once the markup and the paragraph agree, is a content and entity problem. The broader SEO and GEO issues guide is the right next audit.
Questions teams ask
Does schema markup improve AI rankings?
It improves the chance that a machine stores the same facts a person can read. It does not earn a citation by itself. Google AI Overviews still lean on indexed pages, and other products quote passages their crawlers fetched. Invalid or conflicting JSON-LD can make those passages less trustworthy. Valid JSON-LD that repeats a clear answer can make the entity, date, and price easier to extract. The answer still has to be on the page.
Will fixing schema bring rich results back?
It restores eligibility for types Google still supports on that page. It will not restore a how-to rich result, or an FAQ rich result on a site that is outside the sites Google still uses for that treatment. If the enhancement report says a required property is missing, add that property and wait for a recrawl. If the URL is excluded from the index, schema will not put it back. Start with the crawl guide.
Should both languages share one JSON-LD block?
No. Each canonical needs markup whose url and inLanguage match that URL, and whose headline and FAQ text match that language. A shared block that always names the English path teaches search and answer engines that the Chinese page is an alias. Hreflang belongs in the link tags, not as a substitute for a second script.
The Rich Results Test passes, but citations are still wrong. Why?
The test checks eligibility for a rich result. It does not check that the price, date, or address is the one you stand behind, or that a second script later in the page contradicts the first. Compare every JSON-LD block on the URL with the footer, the byline, and the opening paragraph. If those agree and the citation is still wrong, the gap is elsewhere: thin copy, a duplicate URL, or an off-site listing.
What to review this month
Open the enhancement reports and export the error types that affect the most URLs. For the template behind those URLs, write down the Organization name, the canonical url, the price currency, and the author. Ship one layout change so English and Traditional Chinese each emit their own block, matched to visible copy. Re-fetch both URLs and confirm the old staging domain, the old currency, and any self-serving review stars are gone.
Schema is a technical SEO issue with a GEO consequence: search loses the rich result, and answer engines store the fact you no longer mean. Treat the JSON-LD as part of the same audit as the canonical, the byline, and the business profile.