Structured data checker

What does this page declare in structured data, and does each item have the properties Google asks for?

Baca dalam bahasa Indonesia

What to check

For example yourbusiness.com/services

The checker runs in your browser with JavaScript, which is off here. To have a person look at the page instead: Request a Search Presence Review

The report is kept for 24 hours, and only this browser can open it. How scans are handled

Want a person to read it? Request a Search Presence Review Know what needs changing? Discuss your project

What it checks

The checker reads the JSON-LD and microdata in the HTML the server sends, or the JSON-LD you paste, and compares each item with schema.org and with Google’s documentation: 18 checks in three groups. The report names each one with what it found, why it matters and how to check it yourself.

All 18 checks

Surface

How the address answers, and where it leads.

  • The answer the address gives If the page answers with an error, Google can drop it from its search results.
  • Redirects before the page Each redirect is a detour on the way to the page, and too many make Google give up.

Structure

The tags and headers a crawler reads.

  • Content added by scripts Content that scripts add later may be read late, or not at all, by some search engines.
  • The structured data declared Structured data is a description of the page written for search engines, such as opening hours or prices.
  • JSON-LD that parses One typo in the structured data makes search engines skip the whole block.
  • The schema.org context Search engines need to know the structured data uses schema.org’s vocabulary, or they may ignore it.
  • A type for every item Each item in the structured data must say what it is, such as a business or a product.
  • Types that schema.org defines A type that schema.org does not define, often a typo, means nothing to Google.
  • Properties that schema.org defines A detail with a name schema.org does not define, often a typo, is not read by Google.
  • Properties on the types that expect them Some details sit on an item that usually does not carry them, so they may be in the wrong place.
  • RDFa on the page RDFa is another way to write structured data; this check only counts it.

Presence

Permission to crawl and index, and the sitemap.

  • robots.txt for Googlebot If robots.txt blocks Google’s crawler, Google cannot read this page.
  • The robots meta tag A noindex tag asks Google not to show the page in its search results at all.
  • The X-Robots-Tag header A noindex in the page’s headers asks Google not to show it in its search results at all.
  • The properties Google requires Without the details Google requires, the page cannot get a richer look in search results.
  • The properties Google recommends Adding the details Google recommends can make a richer look in search results more likely.
  • Values in the form Google documents Dates, prices and links written in another form than Google documents may not be used.
  • Google features that are limited or retired Google has retired some of its richer search looks, and limits others to certain sites.

Example

A real check of tulus.studio, made on 15 October 2026.

The example report

Report: https://tulus.studio/

Checked
15 October 2026, 04:24 WIB

1 page inspected. 14 applicable checks ran; 1 not tested.

Nothing to fix.

The checks in each group
  • Surface:

    2 passed

    How the address answers, and where it leads.

  • Structure:

    6 passed

    The tags and headers a crawler reads.

  • Presence:

    6 passed

    Permission to crawl and index, and the sitemap.

Each piece of a ring is one check.

  • Passed
  • Warning
  • Error
What the page declares

1 JSON-LD block and no microdata: 6 items.

Compared with schema.org 30.1 and with Google’s documentation of its search features, as read on 15 October 2026.

  1. Organization JSON-LD block 1, line 1

    name
    TULUS
    alternateName
    TULUS.studio
    url
    https://tulus.studio/
    description
    TULUS: Search Presence Engineering in Bandung, Indonesia. Web development, SEO and website care that help customers find, understand and choose a business.
    slogan
    Nothing hidden.
    logo

    ImageObject JSON-LD block 1, line 1

    url
    https://tulus.studio/icon-512.png
    width
    512
    height
    512
    address

    PostalAddress JSON-LD block 1, line 1

    addressLocality
    Bandung
    addressCountry
    ID
    knowsAbout
    Search Presence Engineering
    knowsAbout
    Web development
    knowsAbout
    Search engine optimization
    knowsAbout
    Technical SEO
    knowsAbout
    Local SEO
    knowsAbout
    E-commerce development
    knowsAbout
    Website performance
    knowsAbout
    Web accessibility
    email
    inquiry@tulus.studio
  2. WebSite JSON-LD block 1, line 1

    url
    https://tulus.studio/
    name
    TULUS
    alternateName
    TULUS.studio
    description
    Beautiful websites. Strong search presence. Built with honest intent.
    inLanguage
    en
    publisher
    the Organization item above
  3. WebPage JSON-LD block 1, line 1

    This checker knows no Google search feature for this type.

    url
    https://tulus.studio/
    name
    TULUS — Search Presence Engineering studio in Bandung
    description
    TULUS: Search Presence Engineering in Bandung, Indonesia. Web development, SEO and website care that help customers find, understand and choose a business.
    inLanguage
    en
    isPartOf
    the WebSite item above
    about
    the Organization item above
    primaryImageOfPage

    ImageObject JSON-LD block 1, line 1

    url
    https://tulus.studio/og/default.png

The JSON-LD as written

  1. Block 1, line 1, in <head>, 2 kB, valid JSON
    {"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://tulus.studio/#organization","name":"TULUS","alternateName":"TULUS.studio","url":"https://tulus.studio/","description":"TULUS: Search Presence Engineering in Bandung, Indonesia. Web development, SEO and website care that help customers find, understand and choose a business.","slogan":"Nothing hidden.","logo":{"@type":"ImageObject","url":"https://tulus.studio/icon-512.png","width":512,"height":512},"address":{"@type":"PostalAddress","addressLocality":"Bandung","addressCountry":"ID"},"knowsAbout":["Search Presence Engineering","Web development","Search engine optimization","Technical SEO","Local SEO","E-commerce development","Website performance","Web accessibility"],"email":"inquiry@tulus.studio"},{"@type":"WebSite","@id":"https://tulus.studio/#website","url":"https://tulus.studio/","name":"TULUS","alternateName":"TULUS.studio","description":"Beautiful websites. Strong search presence. Built with honest intent.","inLanguage":"en","publisher":{"@id":"https://tulus.studio/#organization"}},{"@type":"WebPage","@id":"https://tulus.studio/#webpage","url":"https://tulus.studio/","name":"TULUS — Search Presence Engineering studio in Bandung","description":"TULUS: Search Presence Engineering in Bandung, Indonesia. Web development, SEO and website care that help customers find, understand and choose a business.","inLanguage":"en","isPartOf":{"@id":"https://tulus.studio/#website"},"about":{"@id":"https://tulus.studio/#organization"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://tulus.studio/og/default.png"}}]}

Surface

2 of 2 applicable checks passed

How the address answers, and where it leads.

2 checks with nothing to fix
The answer the address gives

Passed Observed

The address, after any redirects, answered with a success status (2xx).

More about this check
Why it matters
Google considers a page for indexing when it answers 2xx, though indexing is not certain even then. Google does not index an address that answers 4xx, and drops one that keeps answering 5xx.
How to check it
Run curl -IL with the address and read the status of the last answer. In Search Console, a live test of the final address in URL Inspection shows whether Google could fetch it.

Official documentation: How HTTP status codes affect Google’s crawlers

Evidence

  1. Answer https://tulus.studio/

    200 OK
Redirects before the page

Passed Observed

The address led to the page directly or through no more than three redirects.

More about this check
Why it matters
Google advises redirecting straight to the final address; failing that, ideally no more than 3 hops and fewer than 5. Its crawlers follow up to 10; Search Console reports a chain too long, or a loop, as a redirect error.
How to check it
Run curl -IL with the address: it prints each answer in turn, and only the last should be 200.

Official documentation: Redirects and Google Search

Evidence

  1. Answer https://tulus.studio/

    200 OK

Structure

6 of 6 applicable checks passed

The tags and headers a crawler reads.

8 checks with nothing to fix
The structured data declared

Information Observed

Items declared: 3. JSON-LD blocks: 1. Microdata items: 0. Elements with RDFa: 0.

More about this check
Why it matters
Google uses structured data to understand the content of a page and, for the features it supports, to show the page with a richer appearance in search results, called a rich result. This check reads the HTML the server sends, so structured data that a script adds later is not counted here.
How to check it
Test the page in Google’s Rich Results Test, which looks at the page after its scripts have run, and compare the items it finds with what is counted here.

Official documentation: Introduction to structured data markup in Google Search

Evidence

  1. HTML https://tulus.studio/ line 1, column 2,465

    <script type="application/ld+json">
JSON-LD that parses

Passed Observed

Every JSON-LD block is valid JSON.

More about this check
Why it matters
A JSON-LD block must be valid JSON to be read at all. One missing comma, quote or bracket makes a JSON parser reject the whole block, with every item in it.
How to check it
Test the page again in Google’s Rich Results Test and check that it now finds the items of every block.

Official documentation: Introduction to structured data markup in Google Search

Evidence

Nothing to show: the finding rests on what is absent from the page.

The schema.org context

Passed Observed

Every JSON-LD block names schema.org as its @context.

More about this check
Why it matters
The @context says which vocabulary a block’s types and properties come from. Google’s features use the schema.org vocabulary, and markup in the old data-vocabulary.org vocabulary is no longer eligible for Google’s rich results. schema.org says that both https://schema.org and http://schema.org are fine.
How to check it
View the page source, find each JSON-LD script, and read its @context near the top.

Official documentation: Introduction to structured data markup in Google Search

Evidence

Nothing to show: the finding rests on what is absent from the page.

A type for every item

Passed Observed

Every item names its type.

More about this check
Why it matters
The type, written as @type in JSON-LD or itemtype in microdata, says what an item describes, such as a Product, an Event or a LocalBusiness. Google defines its features by type, so an item without one cannot belong to any of them.
How to check it
Find each item at the line shown in the page source, and check that it has an @type or an itemtype.

Official documentation: Introduction to structured data markup in Google Search

Evidence

Nothing to show: the finding rests on what is absent from the page.

Types that schema.org defines

Passed Observed

Every type is one that schema.org defines (release 30.1).

More about this check
Why it matters
Google’s features are defined in schema.org’s vocabulary, so a type that schema.org does not define belongs to none of them. schema.org writes each name with exact capital letters, such as LocalBusiness, and an unknown type may be a misspelling of the one you meant.
How to check it
Look each type up on schema.org: a defined type has its own page, such as https://schema.org/LocalBusiness.

Official documentation: Full schema hierarchy

Evidence

Nothing to show: the finding rests on what is absent from the page.

Properties that schema.org defines

Passed Observed

Every property is one that schema.org defines.

More about this check
Why it matters
Google’s features name their properties in schema.org’s vocabulary, so a property schema.org does not define is read by none of them. schema.org writes each name with exact capital letters, such as openingHoursSpecification, and an unknown property may be a misspelling of the one you meant.
How to check it
Open the schema.org page of the item’s type, such as https://schema.org/LocalBusiness, and find the property in its list.

Official documentation: Full schema hierarchy

Evidence

Nothing to show: the finding rests on what is absent from the page.

Properties on the types that expect them

Passed Observed

Every property is one that schema.org lists for its item’s type or one of the type’s parents.

More about this check
Why it matters
schema.org lists, for each property, the types it may be used on. Its own data model calls these associations closer to guidelines than formal rules, so this is not an error. It can show that a property sits on the wrong item, such as a price written on a Product instead of on its Offer.
How to check it
Open the property’s page on schema.org: the types it is used on should include the item’s type or one of its parents.

Official documentation: Data model

Evidence

Nothing to show: the finding rests on what is absent from the page.

RDFa on the page

Not applicable Observed

No element carries RDFa, so no RDFa item goes unchecked.

More about this check
Why it matters
Google supports structured data in three formats, JSON-LD, microdata and RDFa, and recommends JSON-LD where a site allows it. This check reads JSON-LD and microdata, and only counts RDFa.
How to check it
Test the page in Google’s Rich Results Test and read the items it finds.

Official documentation: Introduction to structured data markup in Google Search

Evidence

Nothing to show: the finding rests on what is absent from the page.

Not tested (1)
  • Content added by scripts Not tested This needs a browser that runs the page’s scripts. The checker reads the HTML the server sends and runs nothing.

Presence

6 of 6 applicable checks passed

Permission to crawl and index, and the sitemap.

7 checks with nothing to fix
robots.txt for Googlebot

Passed Observed

Nothing in robots.txt forbids Googlebot to fetch this address.

More about this check
Why it matters
Google does not crawl or index content that robots.txt blocks. The address itself can still appear in search results, without a description, when other pages link to it.
How to check it
In Search Console, URL Inspection reports whether crawling is allowed for this address, and the robots.txt report shows the file Google last fetched.

Official documentation: How Google interprets the robots.txt specification

Evidence

  1. robots.txt https://tulus.studio/robots.txt line 1

    User-agent: *
  2. robots.txt https://tulus.studio/robots.txt line 2

    Allow: /
The robots meta tag

Passed Observed

No robots or googlebot meta tag in the page carries noindex or none.

More about this check
Why it matters
When Googlebot crawls a page and finds noindex, Google drops the page from its search results, even when other sites link to it. The rule none means noindex, nofollow.
How to check it
View the page source and search for noindex. URL Inspection in Search Console shows whether indexing is allowed.

Official documentation: Block Search indexing with noindex

Evidence

  1. HTML https://tulus.studio/ line 1, column 538

    <meta name="robots" content="index, follow, max-image-preview:large">
The X-Robots-Tag header

Passed Observed

No X-Robots-Tag header in the answer carries noindex or none for all crawlers or for Googlebot.

More about this check
Why it matters
The X-Robots-Tag header has the same effect as a robots meta tag, and it also covers files such as PDFs. When Googlebot finds noindex or none in it, Google drops the address from its search results.
How to check it
Run curl -I with the address and read any X-Robots-Tag lines. URL Inspection in Search Console shows whether indexing is allowed.

Official documentation: Robots meta tag, data-nosnippet, and X-Robots-Tag specifications

Evidence

Nothing to show: the finding rests on what is absent from the page.

The properties Google requires

Passed Observed

Every item of a type used by these Google features has the properties Google requires: Organization, Site names.

More about this check
Why it matters
Google’s documentation lists, for each feature, the properties an item must have. Items that are missing required properties are not eligible for rich results. An item that has them all and follows Google’s guidelines is eligible, and Google still decides whether to show it.
How to check it
Test the page in Google’s Rich Results Test, which catches most technical errors, and read what it reports for the feature named.

Official documentation: Structured data markup that Google Search supports

Evidence

Nothing to show: the finding rests on what is absent from the page.

Values in the form Google documents

Passed Observed

Every value checked is in the form Google documents for it.

More about this check
Why it matters
Google’s documentation gives the form of many values: dates and durations in ISO 8601, prices as numbers with a dot for decimals, currencies as three-letter ISO 4217 codes, links as full addresses, and schema.org names for fixed lists such as availability; a value in another form may not be used. Where Google asks for a date and time, as for an article, give the time and its time zone: without them Google uses Googlebot’s own time zone, so the day it reads can differ from yours.
How to check it
Compare each value with the description of its property on the feature’s page in Google’s documentation.

Official documentation: Structured data markup that Google Search supports

Evidence

Nothing to show: the finding rests on what is absent from the page.

Google features that are limited or retired

Not applicable Observed

No item belongs to a Google feature that this check knows as limited or retired.

More about this check
Why it matters
Google retires search features, and limits some to certain sites. Google says that structured data it no longer uses does not cause problems in Search, has no visible effect there, and does not need to be removed.
How to check it
Google’s list of the structured data features it supports names the features it uses today. A retired feature is not on it.

Official documentation: Structured data markup that Google Search supports

Evidence

Nothing to show: the finding rests on what is absent from the page.

Checked in 0.9 s with 2 requests, 18 kB received.

What this check cannot see

Two things about this page stay out of a public check’s reach:

  • Whether Google shows a rich result for the page. An item with every property Google requires is eligible, and Google decides what it shows.
  • Structured data the page’s own scripts add after it loads. The checker reads the HTML the server sends; Google’s Rich Results Test runs the scripts.

Everything a public scan cannot see