For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

Free tool

Schema markup validator

The schema markup validator fetches a page and checks every JSON-LD block on it against the required and recommended properties for its type, such as Organization, Product, Article or FAQPage. Each finding quotes the property and says whether it breaks the markup or only weakens it. Free, no sign-up, and nothing is stored.

Check a page

Seconds, on our server · Free, no sign-up

Free, no sign-up, and the whole result is shown. Nothing is stored.

Or try one of ours:

Your result appears here

JSON-LD blocks
how many, each parsed
Errors and warnings
required, then recommended
Each type found
property by property
Not checked
types it has no rules for, named

See our own run

Share
Our runattensira.com

Inputattensira.com/about

JSON-LD blocks
5, all valid JSON
✓ Passes
Errors
0
✓ Passes
Warnings
11 missing recommended properties
◐ Weak
Organization
No sameAs or contactPoint in one block
◐ Weak
Person
No url or image
◐ Weak
Not checked
ContactPoint, ListItem, ProfilePage: syntax and @type only
Schema markup validator, this site's route, n=1 run ·

What does it report?

  1. Errors

    A block that is not valid JSON, has no @context or @type, or lacks a property the table below requires for its type.

  2. Warnings

    A recommended property is missing. The markup works; it says less.

  3. Passes

    Every property in the table is present. Each finding names the type and property, with no score.

Does our own About page pass?

We ran the validator on attensira.com/about.

Nothing is broken, and eleven things are thinner than they could be. The interesting one: the homepage Organization lists three sameAs profiles, and the About page's Organization lists none. Two descriptions of the same company that disagree are worse than one.

The validator also says which types it does not know the rules for. A tool that checked ProfilePage against nothing and called it valid would be lying to you.

The run is the result panel at the top of this page. Read on 4 Oct 2026.

Which properties does it require for each type?

Each type links the documentation its row is based on: Google's structured data pages where Google documents the type, schema.org where it does not, all read on 4 October 2026. The split into required and recommended is our reading of those pages, not Google's own eligibility check. This is the whole rule set; nothing is applied that is not listed here.

TypeRequiredRecommended
ArticleArticle rich results in Google Search.RequiredheadlineRecommendedauthor, datePublished, dateModified, image
BlogPostingArticle rich results for blog posts.RequiredheadlineRecommendedauthor, datePublished, dateModified, image
NewsArticleArticle rich results for news.RequiredheadlineRecommendedauthor, datePublished, dateModified, image
ProductProduct rich results, price and availability.RequirednameRecommendedimage, description, offers, brand, aggregateRating
OfferPrice and availability inside a Product.Requiredprice, priceCurrencyRecommendedavailability, url, priceValidUntil
OrganizationWho publishes this site.RequirednameRecommendedurl, logo, sameAs, contactPoint
LocalBusinessLocal business rich results and map listings.Requiredname, addressRecommendedtelephone, openingHoursSpecification, url, geo
WebSiteThe site name Google shows in results.Requiredname, urlRecommendedpotentialAction, publisher
WebPagePage-level identity and freshness.RequirednameRecommendeddescription, url, dateModified, breadcrumb
BreadcrumbListBreadcrumb trail in the result snippet.RequireditemListElementRecommended—
FAQPageQuestion and answer pairs on the page.RequiredmainEntityRecommended—
HowToStep-by-step instructions.Requiredname, stepRecommendedtotalTime, supply, tool, image
EventEvent rich results.Requiredname, startDate, locationRecommendedendDate, description, offers, performer, image
RecipeRecipe rich results.Requiredname, image, recipeIngredient, recipeInstructionsRecommendedauthor, cookTime, prepTime, nutrition, aggregateRating
VideoObjectVideo rich results and key moments.Requiredname, thumbnailUrl, uploadDateRecommendeddescription, duration, contentUrl, embedUrl
JobPostingJob listing rich results.Requiredtitle, description, datePosted, hiringOrganizationRecommendedjobLocation, baseSalary, employmentType, validThrough
SoftwareApplicationSoftware listing, including free web tools.RequirednameRecommendedapplicationCategory, operatingSystem, offers, url
PersonWho wrote or runs something.RequirednameRecommendedurl, sameAs, jobTitle, image
ItemListOrdered or unordered list of entities.RequireditemListElementRecommendednumberOfItems, itemListOrder
QAPageA single user-submitted question with answers.RequiredmainEntityRecommended—

What would the crew fix on our About page?

Inside Attensira, a JSON-LD-only fix counts as a safe change that can ship on its own in Act mode; in the default Draft mode it waits for you. What counts as a safe change.

Pull requestyour-site

JSON-LD only: one Organization on /about and the homepage

attensirawaits for your review

about page · JSON-LD

  1. unchanged: "@type": "Organization",
  2. added: "sameAs": [
  3. added: "https://x.com/attensira",
  4. added: "https://www.linkedin.com/company/attensira",
  5. added: "https://github.com/attensira",
  6. added: ],
  7. unchanged: "name": "Attensira",
Web engineer agentWeb engineer · would hand you a pull request like thisExample · the kind of change this finding calls for, not one that shipped

Does structured data matter for AI answers?

Less than most guides claim, and we say so about our own product: every structured-data change Attensira proposes carries the note "hygiene, not a lever: we do not expect this alone to move an answer." No engine publishes that it ranks or cites pages by their JSON-LD, and nobody outside the engines can measure it.

What markup does reliably is remove guesswork. It states, in a form a parser cannot misread, which string is the publisher, which is the author, which date is the last change and which text is an answer. Search engines use it for rich results, and any system that reads your page gets the facts without inferring them. The three that carry the most:

  • Organization: who publishes the site, with sameAs links that tie the name to profiles an engine can check.
  • Article or BlogPosting with author and dateModified: who wrote it and when it last changed, stated rather than inferred.
  • FAQPage: question and answer pairs marked as such, which is the same shape as the passages assistants quote.

Markup does not make a weak page strong. It makes a strong page legible.

How do you fix the common failures?

What it showsWhyWhat to do
Block is not valid JSONWhy: A trailing comma, a smart quote pasted from a document, or an unescaped quotation mark inside a string.What to do: Remove the stray character. Until then the whole block is discarded, with all the markup in it.
No @contextWhy: Without it the block is arbitrary JSON, not JSON-LD, and is ignored.What to do: Add "@context": "https://schema.org" to every top-level node.
An Article with no authorWhy: Who wrote it is inferred, not stated.What to do: Nest a Person or Organization with a name and, ideally, a url to a real bio page. A bare string works but carries less.
No dateModifiedWhy: When the page last changed is inferred, not stated.What to do: Emit it from your CMS in ISO 8601. Do not hardcode it or bump it on every deploy: a date that always says today tells a crawler nothing.
A Product with no offersWhy: A price without a currency is not usable.What to do: Nest an Offer with price, priceCurrency and availability.
Markup that contradicts the pageWhy: This tool cannot detect it.What to do: Make the JSON-LD match what a reader sees. Marking up a rating you do not display is a policy violation, not a shortcut.

Questions people ask about this check

My page passes here but Google's Rich Results Test flags it. Why?

Different scope. This tool checks property presence against the documented required and recommended sets. Google additionally checks value formats, image dimensions, and eligibility rules that change per feature and per country. Use this to catch structural problems quickly, then confirm eligibility in Google's own tester.

Should I use JSON-LD, microdata or RDFa?

JSON-LD, in nearly every case. It lives in one block in the head or body rather than being interleaved with your markup, which means it survives template changes and is far easier to generate correctly from a CMS. This tool counts microdata and RDFa items so you know they are there, but validates JSON-LD only.

Does structured data get me cited by ChatGPT or Claude?

Not on its own. No engine documents a direct causal link between structured data and being cited. What it does is make the facts on your page unambiguous: who wrote it, when it was updated, what entity it is about. That is hygiene, not a lever. The page still has to be worth citing, and the crawler still has to be allowed in, which is a robots.txt question.

How many JSON-LD blocks should a page have?

As many as it has distinct things to describe. One block per entity is fine, and so is a single block with an @graph array. What matters is that each node is complete and that you are not describing the same entity twice with conflicting values.

Do you store the pages I check?

No. The page is fetched, parsed in the request, and the result is returned to your browser. There is no account, no email field and no saved history. The shareable link simply re-runs the check against the same URL.

This checks the markup. Attensira's crew keeps it consistent.

7 days free · card required