About the Structured Data Linter

The Structured Data Linter is a tool aiding webmasters and web developers to verify the structured data present in their HTML pages. Search engines use structured data to understand webpages more accurately and to present enhanced search results. The Linter understands the microdata, JSON-LD and RDFa formats according to their latest specifications. Note however that it does not guarranty that all consumers (e.g. search engines) will make use of all the structured data available in your page. The linter does not currently support microformats (contributions welcome).

In addition to providing snippet visualizations for schema.org, the linter performs limited vocabulary validations for schema.org, Dublin Core Metadata Terms, Friend of a Friend (FOAF), GoodRelations, Facebook's Open Graph Protocol, Semantically-Interlinked Online Communities (SIOC), Facebook's Open Graph Protocol, Simple Knowledge Organization System (SKOS), and Data-Vocabulary.org.

The Structured Data Linter was initiated by St├ęphane Corlosquet and Gregg Kellogg , as part of the larger Structured Data initiative. Community input is welcome to improve this tool, suggest new features, etc. Anyone can contribute by filing issues on Github or forking the linter git repository.

Find out more about using rich formats at structured-data.org.

This is version 3.27.1 of the Structured Data Linter is based on RDF.rb, RDF::Reasoner, along parsers and serializers included in linkeddata gems developed in the Ruby programming language. This service is implemented using Sinatra and runs curtosey of Heroku. The linter and many of the gems used to implement it are open-source and public domain.

Programatic Access to the Linter

The Linter is implemented as an HTML Web Application, with most of the work performed via Ajax requests using a JSON content type. This allows applications to interact with the Linter directly through using JSON requests. To do this, construct an HTTP GET request using the Accept: application/json HTTP header with a url query parameter referencing the page to be processed. For example:

curl -H 'Accept: application/json' http://linter.structured-data.org/?url=http://linter.structured-data.org/

This will return a JSON object containing the following keys:

Generated Snippets in HTML
Generated Tabular structured representation in HTML.
Linter warnings; ideally, this should be empty.
Statistics about parsed triples and snippet templates used.
Extensive debugging output, if the debug query parameter is passed.

Looking something like the following:

  "snippet": "...",
  "html": "...",
  "messages": [],
  "statistics": {"count": 9, "templates": []}


The Structured Data Linter is a free service, with limited hosting resources. To help offset costs in hosting, maintaining and enhancing this service, consider contributing any amount.