Meta, Open Graph & JSON-LD inspector

Paste a page, or just its head, and read everything it declares the way each standard reads it: the title and the character encoding by the HTML Standard, every meta element classified (the standard's own names, the WHATWG MetaExtensions registry, the pragma directives, the non-conforming ones), every link element with its rel tokens (canonical per RFC 6596, hreflang alternates, icons, manifest), the Open Graph object with its arrays and structured properties per ogp.me, the twitter:* card properties as registered, the robots and googlebot rules by Google's published list, the viewport, and every JSON-LD block parsed and outlined per JSON-LD 1.1. Forty-six findings, each quoting the sentence it rests on. Parsed inertly with parse5; nothing is fetched or executed.

Web & HTTP
Try

17 meta elements, 5 link elements, 10 Open Graph properties, 2 twitter:* properties, one JSON-LD block. No errors, no warnings, 2 notes, 6 things in order.

The basics

DOCTYPE and mode
present no-quirks
lang
en
title
Example Books, used books for children 38 characters
charset
utf-8 meta charset, ends at byte 94
description
A bookshop of used children's books, with a catalogue you can search by age and author. 87 characters
canonical
https://example.com/books/
viewport
width=device-width, initial-scale=1
robots
robots: indexfollowmax-snippet:150max-image-preview:large
hreflang
pt-BRx-default
icons and manifest
icon 32x32: /favicon.icomanifest: /site.webmanifest

Findings

  1. noteM23line 23twitter:card value outside the registry's four

    twitter:card is "summary_large_image", a type in common use that the MetaExtensions registry does not list (it names summary, photo, app and player). X's own card documentation is not published any more (checked 2026-10-05), so no current normative source is quoted.

  2. noteM45line 9hreflang alternates

    2 hreflang alternates; an x-default is among them. link rel=alternate with hreflang is the HTML link type "alternate" (4.6.7) with the language of the alternate; which pages should list which alternates is the consumer's documentation, not the standard's.

  3. goodM44In order

    One description.

  4. goodM44In order

    The four required Open Graph properties are present.

  5. goodM44line 4In order

    UTF-8 declared once, within the first 1024 bytes.

  6. goodM44line 6In order

    One title element with text.

  7. goodM44line 8In order

    One canonical link.

  8. goodM44line 27In order

    JSON-LD block 1 is valid JSON with a @context and every node typed.

17 meta elements

#elementcontentclassline
1charset="charset"utf-8charset4
2name="viewport"
MetaExtensions: "Provides a way for documents to specify (using markup rather than CSS) the size, zoom factor, and orientation of the viewport." Google: "Presence of this tag indicates to Google that the page is mobile friendly."
width=device-width, initial-scale=1registered5
3name="description"
HTML 4.2.5.1: "a free-form string that describes the page. The value must be appropriate for use in a directory of pages, e.g. in a search engine." Google: "In some situations, this description is used in the snippet shown in search results."
A bookshop of used children's books, with a catalogue you can search by age and author.standard name7
4property="og:title"Example BooksOpen Graph13
5property="og:type"websiteOpen Graph14
6property="og:url"https://example.com/books/Open Graph15
7property="og:image"https://example.com/cover.jpgOpen Graph16
8property="og:image:width"1200Open Graph17
9property="og:image:height"630Open Graph18
10property="og:image:alt"A shelf of picture booksOpen Graph19
11property="og:description"Used children's books, searchable by age and author.Open Graph20
12property="og:locale"en_USOpen Graph21
13property="og:site_name"Example BooksOpen Graph22
14name="twitter:card"summary_large_imagetwitter card23
15name="twitter:site"@exampletwitter card24
16name="robots"
MetaExtensions: "A comma-separated list of operators explaining how search engine crawlers should treat the content." Google: "applies to all search engines".
index, follow, max-snippet:150, max-image-preview:largeregistered25
17name="theme-color"
HTML 4.2.5.1: "a string that matches the CSS <color> production, defining a suggested color that user agents should use to customize the display of the page or of the surrounding user interface."
#0b7285standard name26

5 link elements

#relhrefattributesline
1canonicalhttps://example.com/books/8
2alternatehttps://example.com/pt/livros/hreflang="pt-BR"9
3alternatehttps://example.com/books/hreflang="x-default"10
4icon/favicon.icosizes="32x32"11
5manifest/site.webmanifest12

Open Graph

og:titleog:typeog:imageog:url og:type website.

og:title
Example Books
og:type
website
og:url
https://example.com/books/
og:image
https://example.com/cover.jpg
og:description
Used children's books, searchable by age and author.
og:locale
en_US
og:site_name
Example Books
  • og:image https://example.com/cover.jpg 1200×630 alt

twitter:* card

  • twitter:card summary_large_image registered
  • twitter:site @example registered

JSON-LD: one block

  1. 1valid JSON@context https://schema.org; one nodeline 27
    1. BookStore“Example Books”

The whole tree the parser built, and its repairs, are shown by the HTML structure & DOM explainer, and selectors can be tried against it in the CSS selector tester. This page reads the head as written: no URL is fetched or resolved, so it cannot say whether an image exists, whether a canonical target answers, or how a given platform will render a card. Descriptions of meta names are the standard's and the registry's own sentences; what a crawler or a social platform does with a tag is quoted from that party's published documentation, dated. Inputs over 300,000 characters are refused.

API endpointGEThttps://ronutz.com/api/v1/meta-og-jsonld-inspectorDocumented, not served. Opens the specification.

References