Fix "No Machine-Readable Metadata": JSON-LD Guide
This page was flagged because it has no machine-readable metadata: no structured data (JSON-LD) telling search engines and AI answer engines what the page is, who published it, and how its facts connect to known entities. The fix is to add a JSON-LD script block using schema.org types like Article, Organization, FAQPage, or Product. It's a warning, not a critical error, but resolving it makes your page eligible for Google rich results and far easier for ChatGPT, Perplexity, and Google AI Overviews to parse and cite accurately.
What this means
"Machine-readable metadata" means structured data: a block of code that describes your page's meaning in a format machines can parse without inferring it from the visible text. The audit flags this when a page has no recognizable structured data, most commonly no JSON-LD (JavaScript Object Notation for Linked Data) using the schema.org vocabulary.
Your HTML already carries readable content and basic meta tags like title and description. But a crawler reading raw HTML still has to guess the rest. Is this an article or a product page? Who is the author? When was it published? What organization stands behind it? Structured data answers those questions explicitly.
JSON-LD is the format Google recommends and the one AI engines parse most reliably. It lives in a single <script type="application/ld+json"> block, usually in the <head>, and stays separate from your visible markup. Older formats like Microdata (inline itemscope/itemprop attributes) and RDFa still work, but they interleave data with HTML, which is harder to maintain. This check is satisfied by having valid structured data present; JSON-LD is the recommended way to add it.
Note that Open Graph and Twitter Card tags are a related but different kind of metadata. They control how a link previews when shared on social platforms and do not count as schema.org structured data. A page with only Open Graph tags can still be flagged here.
Why it matters
For classic Google ranking, structured data is not a direct ranking signal, but it is the eligibility gate for rich results: review stars, breadcrumb trails, article bylines with dates, product price and availability, and more. A page with no structured data cannot earn these enhanced listings, so it shows a plainer, less clickable result next to competitors who mark up their pages. Schema also feeds Google's Knowledge Graph, helping it connect your brand and authors to known entities.
The bigger reason in 2026 is answer engines. ChatGPT, Perplexity, and Google AI Overviews use structured data to understand, verify, and attribute content. JSON-LD maps cleanly onto how these systems represent information: a FAQPage block is literally a list of question-answer pairs, which is the shape a model reaches for when it wants a clean, quotable answer. Crawlers like GPTBot read static HTML and parse the JSON-LD block directly, so your facts arrive pre-labeled instead of being scraped ambiguously from prose.
The practical effect: when metadata is missing, an AI engine has to guess who wrote your page, whether it's authoritative, and which facts are quotable. That guessing makes it less likely to cite you and more likely to attribute your information to a competitor who labeled theirs. Explicit author, organization, and date fields also serve as E-E-A-T signals that both Google and AI systems weigh when deciding whom to trust.
How to fix it
- 1
Pick the schema type that matches the page
Structured data only helps when it accurately describes the page. Use Article (or BlogPosting / NewsArticle) for editorial content, Product for a product page, FAQPage for a genuine Q&A page, LocalBusiness for a physical location, and Organization or WebSite for your homepage. A single page can carry more than one type. Don't mark up content that isn't visible on the page; mismatched or invisible schema violates Google's structured-data policies, can trigger a manual action, and is ignored by AI crawlers.
- 2
Add a JSON-LD block to the page
Insert a
<script type="application/ld+json">block containing your schema, ideally in the<head>. JSON-LD is Google's recommended format and the one AI crawlers parse most reliably because it sits separate from your HTML. Start with the schema.org context, declare the@type, and fill in real values from the page. Keep every value factually identical to what a visitor sees. See the code example below for a complete Article block you can adapt. - 3
Add Organization schema site-wide
Beyond per-page types, publish one Organization block (typically on the homepage or in a shared layout) with your legal name, logo URL, and a
sameAsarray linking to your official profiles: LinkedIn, Wikipedia, Crunchbase, X, and so on. This is the anchor that lets Google's Knowledge Graph and AI engines resolve your brand to a real-world entity, which strengthens every citation of your content. Reuse the same name and logo everywhere so the entity stays consistent. - 4
Validate before you ship
Paste your URL or code into Google's Rich Results Test (search.google.com/test/rich-results) to confirm eligibility for specific rich features, and use the Schema Markup Validator (validator.schema.org) for general syntax and vocabulary errors. Fix every error and review the warnings. A trailing comma, invalid JSON, or a wrong property name can cause Google to skip the whole block, so a clean validator pass is non-negotiable.
- 5
Make sure crawlers see it in the raw HTML
Ideally the JSON-LD is present in the server-rendered HTML so crawlers see it without executing scripts. Googlebot renders JavaScript, but many AI crawlers (including GPTBot) primarily read static HTML and may miss schema injected client-side. On Next.js, output it in a server component or via the Metadata API; on WordPress, Yoast and Rank Math both inject it server-side. If you inject with JavaScript, view the page source (or fetch it with curl) and confirm the block is in the raw response, not just the rendered DOM.
- 6
Confirm the fix and re-audit
After deploying, use the URL Inspection tool in Google Search Console to request indexing, then watch the Enhancements reports over the following days for detected structured-data types. Re-run this audit to clear the warning. After any content edit, spot-check that the schema values still match the page; stale dates or prices in JSON-LD are worse than none because they actively mislead both Google and AI engines.
Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Add Machine-Readable Metadata",
"description": "A practical guide to adding JSON-LD structured data.",
"image": "https://example.com/images/cover.jpg",
"datePublished": "2026-07-07T09:00:00+05:30",
"dateModified": "2026-07-07T09:00:00+05:30",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://example.com/authors/jane-doe"
},
"publisher": {
"@type": "Organization",
"name": "Example Co",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/guides/metadata"
}
}
</script>A complete JSON-LD Article block. Place it in the page <head>. Replace every value with your real data; the fields must match what's visible on the page.
Platform-specific steps
Both plugins output schema.org JSON-LD server-side automatically. In Yoast, set the content type per post under the Schema tab (Article vs Web Page) and configure your Organization/Person under Yoast SEO > Settings > Site representation. In Rank Math, use the Schema Generator on each post and set the site-wide entity under Titles & Meta. Avoid running two schema plugins at once, which produces duplicate or conflicting blocks.
Most themes emit Product and Organization JSON-LD, but coverage varies. Check theme.liquid and the product template for an existing ld+json block before adding your own. If you add schema in the theme, pull values from Liquid objects (product.title, product.price) so they stay in sync with the store, and validate a live product URL rather than the code alone.
Render the JSON-LD in a server component or via the Metadata API so it lands in the initial HTML response, not the client-rendered DOM. A common pattern is a <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }} /> in a server component. Confirm it appears in view-source or a curl fetch, since AI crawlers like GPTBot may not execute JavaScript.
Both add some basic schema automatically but give limited control. Wix lets you add custom JSON-LD via the Custom Code / Velo (page code) settings; Squarespace supports code injection in the page header for site-wide blocks like Organization. Because their built-in markup can be incomplete, validate each key page in the Rich Results Test and add only the missing types to avoid duplicates.
Frequently asked
No. Open Graph and Twitter Card tags control how your link previews when shared on social media (the title, image, and description in the card). They're useful, but they aren't schema.org structured data and won't satisfy this check or make you eligible for Google rich results. You still need a JSON-LD block using schema.org types like Article, Product, or Organization.
Not directly. Structured data is not a ranking factor on its own. What it does is make you eligible for rich results (review stars, article dates, product pricing) that raise click-through, and it feeds Google's Knowledge Graph and E-E-A-T signals. The gains in visibility and trust are real, but you won't see a rank jump from schema alone.
Use JSON-LD. Google explicitly recommends it, AI crawlers parse it more reliably, and it keeps your structured data in one clean script block separate from your HTML, so it's far easier to maintain. Microdata and RDFa still work but embed data inline across your markup, which is harder to manage and more prone to errors.
It helps. AI answer engines read JSON-LD to understand what your page is, who wrote it, and which facts are quotable, and a FAQPage or Article block maps directly onto the format a model uses to build an attributable answer. It's not a guarantee of a citation, but unlabeled content forces the engine to guess, which makes it less likely to cite you correctly.
Yes. Only mark up content that's actually visible on the page. Adding schema for content that isn't there, or stuffing in irrelevant types, violates Google's policies, can trigger a manual action, and is ignored by AI crawlers. Keep every value in your JSON-LD identical to the visible page, and validate before shipping so a syntax error doesn't cause the whole block to be dropped.
Does your site have this issue?
Run a free, AI-powered audit and we’ll flag this and 150+ other checks in about a minute. No signup.