CINXE.COM
Structured Data | 2021 | The Web Almanac by HTTP Archive
<!doctype html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Structured Data | 2021 | The Web Almanac by HTTP Archive</title> <link rel="stylesheet" href="/static/css/normalize.css?v=3a712a3381a95c0a7b7c6ed3aa03b911"> <link rel="stylesheet" href="/static/css/almanac.css?v=1653be48f4c6c63139a92045bbc0a5c5"> <link rel="stylesheet" href="/static/css/page.css?v=09bfe6babea9027e32ffe7ccfa9f6f4c"> <link rel="preload" href="/static/fonts/Lato-Regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Poppins-Bold.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Lato-Black.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/static/fonts/Lato-Bold.woff2" as="font" type="font/woff2" crossorigin> <script nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-22381566-3', { 'link_attribution': true }); gtag('config', 'G-PQ5N2MZG5M'); </script> <link rel="shortcut icon" href="/static/images/favicon.ico"> <link rel="apple-touch-icon" href="/static/images/apple-touch-icon.png"> <meta name="description" content="Structured Data chapter of the 2021 Web Almanac covering adoption and impact of schema.org, RDFa, Microdata and more."> <meta property="og:title" content="Structured Data | 2021 | The Web Almanac by HTTP Archive"> <meta property="og:url" content="https://almanac.httparchive.org/en/2021/structured-data"> <meta property="og:image" content="https://almanac.httparchive.org/static/images/2021/structured-data/hero_lg.jpg"> <meta property="og:image:height" content="433"> <meta property="og:image:width" content="866"> <meta property="og:type" content="article"> <meta property="og:description" content="Structured Data chapter of the 2021 Web Almanac covering adoption and impact of schema.org, RDFa, Microdata and more."> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@HTTPArchive"> <meta name="twitter:title" content="Structured Data | 2021 | The Web Almanac by HTTP Archive"> <meta name="twitter:image" content="https://almanac.httparchive.org/static/images/2021/structured-data/hero_lg.jpg"> <meta name="twitter:image:alt" content="Chapter image for the Structured Data chapter of the 2021 Web Almanac"> <meta name="twitter:description" content="Structured Data chapter of the 2021 Web Almanac covering adoption and impact of schema.org, RDFa, Microdata and more."> <link rel="webmention" href="https://webmention.io/almanac.httparchive.org/webmention"> <link rel="pingback" href="https://webmention.io/almanac.httparchive.org/xmlrpc"> <link rel="me" href="mailto:team@httparchive.org"> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://almanac.httparchive.org/en/2021/structured-data" }, "headline": "Structured Data | 2021 | The Web Almanac by HTTP Archive", "image": { "@type": "ImageObject", "url": "https://almanac.httparchive.org/static/images/2021/structured-data/hero_lg.jpg", "height": 433, "width": 866 }, "publisher": { "@type": "Organization", "name": "HTTP Archive", "logo": { "@type": "ImageObject", "url": "https://almanac.httparchive.org/static/images/ha.png", "height": 160, "width": 320 }, "sameAs": [ "https://httparchive.org", "https://x.com/HTTPArchive", "https://bsky.app/profile/httparchive.org", "https://github.com/HTTPArchive" ] }, "author": [{ "@type": "Person", "sameAs": [ "https://almanac.httparchive.org/en/2021/contributors#jonoalderson" ,"https://x.com/jonoalderson" ,"https://github.com/jonoalderson" ], "name": "Jono Alderson" },{ "@type": "Person", "sameAs": [ "https://almanac.httparchive.org/en/2021/contributors#cyberandy" ,"https://x.com/cyberandy" ,"https://github.com/cyberandy" ], "name": "Andrea Volpini" }] , "description": "Structured Data chapter of the 2021 Web Almanac covering adoption and impact of schema.org, RDFa, Microdata and more.", "datePublished": "2021-11-17T00:00:00.000Z", "dateModified": "2024-12-02T00:00:00.000Z" } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "en", "item": "https://almanac.httparchive.org/en/" },{ "@type": "ListItem", "position": 2, "name": "2021", "item": "https://almanac.httparchive.org/en/2021" }] } </script> <meta name="citation_title" content="The 2021 Web Almanac: Structured Data"> <meta name="citation_author" content="Jono Alderson"> <meta name="citation_author" content="Andrea Volpini"> <meta name="citation_publication_date" content="2021/11/17"> <meta name="citation_journal_title" content="The 2021 Web Almanac"> <meta name="citation_volume" content="3"> <meta name="citation_issue" content="4"> <meta name="citation_publisher" content="HTTP Archive"> <meta name="citation_technical_report_institution" content="HTTP Archive"> <meta name="citation_language" content="English"> <meta name="citation_fulltext_html_url" content="https://almanac.httparchive.org/en/2021/structured-data"> <link rel="canonical" href="https://almanac.httparchive.org/en/2021/structured-data"> <link rel="alternate" type="application/rss+xml" title="Web Almanac by HTTP Archive RSS (en)" href="/en/rss.xml"> <link rel="alternate" href="https://almanac.httparchive.org/en/2021/structured-data" hreflang="en"> <link rel="alternate" href="https://almanac.httparchive.org/ja/2021/structured-data" hreflang="ja"> <link rel="alternate" href="https://almanac.httparchive.org/en/2021/structured-data" hreflang="x-default"> </head> <body class="year-2021"> <svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" display="none"> <!-- HTTPArchive --> <symbol id="ha-logo" viewBox="0 0 432 225"> <path d="M10.626 7.433h14.5v47.5c6-7.4 13.5-11 22.5-11 4.9 0 9.2 1.2 13.1 3.7 3.9 2.4 6.7 5.8 8.6 10.1 1.9 4.3 2.9 10.7 2.9 19.1v41.6h-14.6v-45.2c0-5.3-1.3-9.6-4-12.9-2.6-3.3-6-4.9-10.3-4.9-3.2 0-6.2.8-9 2.5-2.8 1.6-5.9 4.4-9.3 8.2v52.4h-14.4V7.433m66.4 49.5l27.2-26.7v15.1h23.1v13h-23.1v35.8c0 8.4 3.5 12.6 10.4 12.6 5.2 0 10.7-1.7 16.4-5.2v13.5c-5.6 3.1-11.6 4.7-18.2 4.7s-12.1-1.9-16.5-5.8c-1.4-1.2-2.5-2.5-3.4-3.9-.9-1.5-1.7-3.4-2.3-5.7-.6-2.4-.9-6.9-.9-13.5v-32.5h-12.7v-1.4m54.3 0l27.2-26.7v15.1h23.1v13h-23.1v35.8c0 8.4 3.5 12.6 10.4 12.6 5.2 0 10.7-1.7 16.4-5.2v13.5c-5.6 3.1-11.6 4.7-18.2 4.7s-12.1-1.9-16.5-5.8c-1.4-1.2-2.5-2.5-3.4-3.9-.9-1.5-1.7-3.4-2.3-5.7-.6-2.4-.9-6.9-.9-13.5v-32.5h-12.7v-1.4M212.8 30.1l-27.2 26.7v1.4h39c6.1.2 10.6 1.5 13.9 3.1 3.5 1.6 6.3 4.3 8.3 7.9 2.1 3.7 3.1 7.9 3.1 12.7 0 7.4-2.2 13.5-6.5 18.2-4.3 4.7-9.8 7.1-16.6 7.1-2.8 0-5.5-.4-8.2-1.1v12.3c3.4.9 6.7 1.3 9.7 1.3 10.5 0 19.2-3.5 26-10.6 6.8-7 10.2-16 10.3-27 0-11.6-3.6-20.6-10.9-27.1-7.1-6.4-17.1-9.6-29.8-9.7h-.4l-10.6-.1V30.1z" fill="currentColor" /> <path d="M198 63.7c0 52.2-.1 108.8-.1 154.7h14.8v-52.5c3.4-3.8 6.1-6.4 8.9-8 2.8-1.6 5.8-2.4 9-2.4 4.3 0 7.7 1.6 10.3 4.9 2.6 3.2 4 7.5 4 12.9v45.2h14.5v-41.6c0-8.5-.9-14.9-2.8-19.2-1.9-4.3-4.7-7.7-8.6-10.1-3.9-2.4-8.3-3.7-13.1-3.7-8.8 0-16.1 3.5-22.1 10.6v-53.1c.1-12.5 0-25.1 0-37.7H198zM55.9 174.5v31.1c0 2.5.8 3.7 2.5 3.7s4.5-1.3 8.2-3.9v8.8c-3.3 2.1-5.9 3.5-7.9 4.3-2 .8-4 1.2-6.2 1.2-6.2 0-9.9-2.4-11-7.3-6.1 4.8-12.7 7.2-19.6 7.2-5.1 0-9.3-1.7-12.7-5-3.4-3.4-5.1-7.6-5.1-12.7 0-4.6 1.6-8.7 4.9-12.3 3.3-3.7 8.1-6.5 14.1-8.7l18.5-6.4v-3.9c0-8.8-4.4-13.2-13.2-13.2-7.9 0-15.6 4.1-23 12.2v-15.8c5.6-6.6 13.7-9.9 24.2-9.9 7.9 0 14.2 2.1 19 6.2 1.6 1.3 3 3.1 4.3 5.3 1.3 2.2 2.1 4.4 2.4 6.6.4 2.2.6 6.3.6 12.5m-14.2 29.4v-21.7L32 186c-4.9 2-8.4 3.9-10.5 6-2 2-3 4.4-3 7.4s1 5.5 2.9 7.4c2 1.9 4.5 2.9 7.5 2.9 4.6-.1 8.8-2 12.8-5.8M90 145.3v16.8l.8-1.3c7-11.3 14-16.9 21-16.9 5.5 0 11.1 2.8 17.1 8.3l-7.6 12.7c-5-4.8-9.7-7.2-14-7.2-4.7 0-8.7 2.2-12.2 6.7-3.4 4.4-5.1 9.7-5.1 15.8v38.2H75.5v-73.1H90m96.9 56v14.3c-7.3 2.7-14.4 4.1-21.3 4.1-11.4 0-20.6-3.4-27.4-10.2-6.8-6.8-10.2-15.9-10.2-27.3 0-11.5 3.3-20.8 9.9-27.8 6.6-7 15.3-10.6 26.1-10.6 3.8 0 7.1.4 10.1 1.1 3 .7 6.7 2 11.1 4v15.4c-7.3-4.7-14.1-7-20.3-7-6.5 0-11.9 2.3-16 6.9-4.2 4.6-6.3 10.4-6.3 17.5 0 7.5 2.3 13.4 6.8 17.8 4.6 4.4 10.7 6.6 18.4 6.6 5.5.1 11.9-1.5 19.1-4.8m93.2-86.7c2.4 0 4.4.8 6.1 2.5 1.7 1.6 2.5 3.7 2.5 6s-.8 4.3-2.5 6c-1.7 1.7-3.7 2.5-6.1 2.5-2.2 0-4.2-.8-5.9-2.5-1.7-1.7-2.5-3.8-2.5-6s.8-4.2 2.5-5.9c1.7-1.8 3.7-2.6 5.9-2.6m-7.2 30.7h14.5v73.1h-14.5v-73.1m75 0h15.7l-32.3 74.4h-4.8l-33.1-74.4h15.8l19.7 45 19-45m78.8 37.8h-51.4c.4 7 2.7 12.6 7 16.7s9.9 6.2 16.8 6.2c9.5 0 18.3-3 26.4-8.9v14.1c-4.4 3-8.9 5.1-13.3 6.4-4.3 1.3-9.5 1.9-15.3 1.9-8.1 0-14.6-1.7-19.5-5-5-3.3-9-7.8-12-13.4-3-5.7-4.4-12.2-4.4-19.6 0-11.1 3.2-20.2 9.5-27.1 6.3-7 14.5-10.5 24.6-10.5 9.7 0 17.4 3.4 23.2 10.2 5.8 6.8 8.7 15.9 8.7 27.3v1.7m-51.4-8.6h36.8c-.4-5.8-2.1-10.2-5.2-13.3-3.1-3.1-7.2-4.7-12.4-4.7s-9.5 1.6-12.8 4.7c-3.2 3-5.4 7.5-6.4 13.3" fill="currentColor" /> </symbol> <!-- GitHub --> <symbol id="github-logo" viewBox="0 0 32.6 31.8"> <path d="M16.3 0C7.3 0 0 7.3 0 16.3c0 7.2 4.7 13.3 11.1 15.5.8.1 1.1-.4 1.1-.8v-2.8c-4.5 1-5.5-2.2-5.5-2.2-.7-1.9-1.8-2.4-1.8-2.4-1.5-1 .1-1 .1-1 1.6.1 2.5 1.7 2.5 1.7 1.5 2.5 3.8 1.8 4.7 1.4.1-1.1.6-1.8 1-2.2-3.6-.4-7.4-1.8-7.4-8.1 0-1.8.6-3.2 1.7-4.4-.1-.3-.7-2 .2-4.2 0 0 1.4-.4 4.5 1.7 1.3-.4 2.7-.5 4.1-.5 1.4 0 2.8.2 4.1.5 3.1-2.1 4.5-1.7 4.5-1.7.9 2.2.3 3.9.2 4.3 1 1.1 1.7 2.6 1.7 4.4 0 6.3-3.8 7.6-7.4 8 .6.5 1.1 1.5 1.1 3V31c0 .4.3.9 1.1.8 6.5-2.2 11.1-8.3 11.1-15.5C32.6 7.3 25.3 0 16.3 0z" fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" /> </symbol> <!-- Twitter --> <symbol id="twitter-logo" viewBox="0 0 300 271"> <path xmlns="http://www.w3.org/2000/svg" d="m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z" fill="currentColor" /> </symbol> <!-- LinkedIn --> <symbol id="linkedin-logo" viewBox="0 0 200 200"> <path d="M185.2 0H14.8C6.6 0 0 6.4 0 14.3v171.3c0 7.9 6.6 14.3 14.8 14.3h170.4c8.1 0 14.8-6.4 14.8-14.3V14.3C199.9 6.4 193.3 0 185.2 0zM60.6 167.3H30.4V77.1h30.2v90.2zM45.5 64.8h-.2c-10.1 0-16.7-6.9-16.7-15.6 0-8.8 6.7-15.6 17.1-15.6 10.3 0 16.7 6.7 16.9 15.6 0 8.6-6.5 15.6-17.1 15.6zm124 102.5h-30.2V119c0-12.1-4.4-20.4-15.3-20.4-8.4 0-13.3 5.6-15.5 11-.8 1.9-1 4.6-1 7.3v50.4H77.3s.4-81.8 0-90.3h30.2v12.8c4-6.1 11.2-14.9 27.2-14.9 19.9 0 34.8 12.9 34.8 40.6v51.8zm-62.2-77.1c0-.1.1-.2.2-.3v.3h-.2z" fill="currentColor" /> </symbol> <!-- Mastodon --> <symbol id="mastodon-logo" viewBox="0 0 61 65"> <path d="M60.7539 14.3904C59.8143 7.40642 53.7273 1.90257 46.5117 0.836066C45.2943 0.655854 40.6819 0 29.9973 0H29.9175C19.2299 0 16.937 0.655854 15.7196 0.836066C8.70488 1.87302 2.29885 6.81852 0.744617 13.8852C-0.00294988 17.3654 -0.0827298 21.2237 0.0561464 24.7629C0.254119 29.8384 0.292531 34.905 0.753482 39.9598C1.07215 43.3175 1.62806 46.6484 2.41704 49.9276C3.89445 55.9839 9.87499 61.0239 15.7344 63.0801C22.0077 65.2244 28.7542 65.5804 35.2184 64.1082C35.9295 63.9428 36.6318 63.7508 37.3252 63.5321C38.8971 63.0329 40.738 62.4745 42.0913 61.4937C42.1099 61.4799 42.1251 61.4621 42.1358 61.4417C42.1466 61.4212 42.1526 61.3986 42.1534 61.3755V56.4773C42.153 56.4557 42.1479 56.4345 42.1383 56.4151C42.1287 56.3958 42.1149 56.3788 42.0979 56.3655C42.0809 56.3522 42.0611 56.3429 42.04 56.3382C42.019 56.3335 41.9971 56.3336 41.9761 56.3384C37.8345 57.3276 33.5905 57.8234 29.3324 57.8156C22.0045 57.8156 20.0336 54.3384 19.4693 52.8908C19.0156 51.6397 18.7275 50.3346 18.6124 49.0088C18.6112 48.9866 18.6153 48.9643 18.6243 48.9439C18.6333 48.9236 18.647 48.9056 18.6643 48.8915C18.6816 48.8774 18.7019 48.8675 18.7237 48.8628C18.7455 48.858 18.7681 48.8585 18.7897 48.8641C22.8622 49.8465 27.037 50.3423 31.2265 50.3412C32.234 50.3412 33.2387 50.3412 34.2463 50.3146C38.4598 50.1964 42.9009 49.9808 47.0465 49.1713C47.1499 49.1506 47.2534 49.1329 47.342 49.1063C53.881 47.8507 60.1038 43.9097 60.7362 33.9301C60.7598 33.5372 60.8189 29.8148 60.8189 29.4071C60.8218 28.0215 61.2651 19.5781 60.7539 14.3904Z" fill="currentColor"/> <path d="M50.3943 22.237V39.5876H43.5185V22.7481C43.5185 19.2029 42.0411 17.3949 39.036 17.3949C35.7325 17.3949 34.0778 19.5338 34.0778 23.7585V32.9759H27.2434V23.7585C27.2434 19.5338 25.5857 17.3949 22.2822 17.3949C19.2949 17.3949 17.8027 19.2029 17.8027 22.7481V39.5876H10.9298V22.237C10.9298 18.6918 11.835 15.8754 13.6453 13.7877C15.5128 11.7049 17.9623 10.6355 21.0028 10.6355C24.522 10.6355 27.1813 11.9885 28.9542 14.6917L30.665 17.5633L32.3788 14.6917C34.1517 11.9885 36.811 10.6355 40.3243 10.6355C43.3619 10.6355 45.8114 11.7049 47.6847 13.7877C49.4931 15.8734 50.3963 18.6899 50.3943 22.237Z" fill="white"/> </symbol> <!-- Bluesky --> <symbol id="bluesky-logo" viewBox="0 0 600 530"> <path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" fill="currentColor"/> </symbol> <!-- Globe --> <symbol id="globe-logo" viewBox="0 0 30 30"> <circle cx="14.5" cy="14.5" r="13.5" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> <ellipse cx="14.5" cy="14.5" rx="6.1" ry="13.5" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> <path d="M1.6 9.6h25.8M1.6 19.4h25.8" stroke-width="2" stroke-miterlimit="10" fill="none" stroke="currentColor" /> </symbol> <!-- Bar chart --> <symbol id="bar-chart-logo" viewBox="0 0 18 19"> <path d="M0 9h3v10H0V9zm5-9h3v19H5V0zm5 7h3v12h-3V7zm5-4h3v16h-3V3z" fill="currentColor" /> </symbol> <!-- Comment --> <symbol id="comment-logo" viewBox="0 0 22 22.1"> <path d="M4.4 22.1l8-5.1H22V0H0v17h4.4z" fill="currentColor" /> </symbol> <!-- SQL --> <symbol id="sql-logo" viewBox="0 0 32 14.6"> <path d="M.1 12.4V9.6c.5.4 1.1.8 1.7 1 .6.2 1.2.3 1.8.3.4 0 .7 0 .9-.1s.5-.2.7-.3c.2-.1.3-.2.4-.4.1-.2.1-.3.1-.5s-.1-.5-.2-.7c-.2-.2-.4-.4-.6-.5-.3-.2-.5-.4-.9-.5-.3-.2-.7-.3-1.1-.5-1-.4-1.7-.9-2.2-1.5S0 4.6 0 3.8c0-.7.1-1.2.4-1.7S1 1.2 1.5.9s1-.5 1.6-.7S4.3 0 5 0s1.2 0 1.8.1 1 .2 1.4.4v2.6c-.3-.1-.5-.3-.8-.4s-.5-.2-.7-.2c-.3-.1-.6-.2-.8-.2-.3 0-.5-.1-.7-.1-.3 0-.6 0-.9.1s-.5.2-.7.3c-.2.1-.4.2-.5.4-.1.2-.1.3-.1.5s.1.4.2.6c.1.2.3.3.5.5.1.1.4.3.7.4.3.1.6.3 1 .4.5.2 1 .4 1.4.7.4.2.7.5 1 .8s.5.6.7 1c.2.4.2.8.2 1.3 0 .7-.1 1.3-.4 1.8-.3.6-.7 1-1.1 1.3-.5.3-1 .5-1.6.6s-1.3.2-1.9.2c-.7 0-1.4-.1-2-.2-.6-.1-1.2-.3-1.6-.5zm16 .7c-1.8 0-3.3-.6-4.4-1.8-1.2-1.2-1.7-2.7-1.7-4.6 0-2 .6-3.6 1.7-4.9C12.9.6 14.4 0 16.3 0c1.8 0 3.3.6 4.4 1.8 1.1 1.2 1.7 2.7 1.7 4.7s-.6 3.6-1.7 4.8l-.1.1-.1.1 3.2 3.1h-4L18 12.9c-.6.1-1.2.2-1.9.2zm.1-10.6c-1 0-1.8.4-2.4 1.1-.6.7-.9 1.7-.9 3s.3 2.2.9 3c.6.7 1.4 1.1 2.3 1.1 1 0 1.8-.4 2.3-1.1.6-.7.9-1.7.9-3s-.3-2.3-.8-3.1c-.5-.7-1.3-1-2.3-1zM32 12.9h-7.5V.2h2.8v10.3H32v2.4z" fill="currentColor" /> </symbol> <!-- Search --> <symbol id="search-logo" viewBox="0 0 13 13"> <path d="m4.8495 7.8226c0.82666 0 1.5262-0.29146 2.0985-0.87438 0.57232-0.58292 0.86378-1.2877 0.87438-2.1144 0.010599-0.82666-0.28086-1.5262-0.87438-2.0985-0.59352-0.57232-1.293-0.86378-2.0985-0.87438-0.8055-0.010599-1.5103 0.28086-2.1144 0.87438-0.60414 0.59352-0.8956 1.293-0.87438 2.0985 0.021197 0.8055 0.31266 1.5103 0.87438 2.1144 0.56172 0.60414 1.2665 0.8956 2.1144 0.87438zm4.4695 0.2115 3.681 3.6819-1.259 1.284-3.6817-3.7 0.0019784-0.69479-0.090043-0.098846c-0.87973 0.76087-1.92 1.1413-3.1207 1.1413-1.3553 0-2.5025-0.46363-3.4417-1.3909s-1.4088-2.0686-1.4088-3.4239c0-1.3553 0.4696-2.4966 1.4088-3.4239 0.9392-0.92727 2.0864-1.3969 3.4417-1.4088 1.3553-0.011889 2.4906 0.45771 3.406 1.4088 0.9154 0.95107 1.379 2.0924 1.3909 3.4239 0 1.2126-0.38043 2.2588-1.1413 3.1385l0.098834 0.090049z" fill="currentColor" /> </symbol> <!-- Share Apple --> <symbol id="share-apple-logo" viewBox="0 0 24 24"> <path d="M0 0h24v24H0V0z" fill="none" /> <path d="M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z" /> </symbol> <!-- Share Android --> <symbol id="share-android-logo" viewBox="0 0 24 24"> <path d="M0 0h24v24H0z" fill="none" /> <path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z" /> </symbol> </svg> <div id="skiptocontent"><a href="#maincontent">Skip navigation</a></div> <header id="header" class="alt-bg"> <div class="container"> <div class="top-header"> <a class="navigation-logo" href="/en/2021/"> <span class="wa">Web Almanac</span> <span class="line-group"> <span class="pre">By</span> <span class="ha">HTTP Archive</span> </span> </a> <nav id="header-page-navigation" aria-label="Page navigation"> <ul> <li><a href="/en/2021/contributors">Contributors</a></li> <li><a href="/en/2021/methodology">Methodology</a></li> <li> <a class="nav-dropdown-btn js-hide" href="/en/search">Search</a> <div class="nav-dropdown header search-nav js-enable hidden"> <button type="button" class="nav-dropdown-btn search-button" aria-expanded="false"> Search </button> <ul class="nav-dropdown-list align-right hidden header-search"> <li class="nav-dropdown-list-part"> <form action="/en/search"> <label for="header-search-box" class="visually-hidden">Search</label> <input id="header-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="header-search-icon"> <title id="header-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> </ul> </div> </li> <li> <a class="nav-dropdown-btn js-hide" href="/en/2021/table-of-contents">Table of Contents</a> <div class="nav-dropdown header table-of-contents js-enable hidden"> <button type="button" class="nav-dropdown-btn" aria-expanded="false" aria-label="Table of Contents" > Table of Contents </button> <ul class="nav-dropdown-list hidden header-list"> <li class="nav-dropdown-list-part"> <a href="/en/2021/">Home</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents">Table of Contents</a> </li> <li class="nav-dropdown-list-chapter foreword"> <a href="/en/2021/table-of-contents#foreword">Foreword</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-1">Part I. Page Content</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/css"> Chapter 1: CSS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/javascript"> Chapter 2: JavaScript </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/markup"> Chapter 3: Markup </a> </li> <li class="nav-dropdown-list-chapter nav-dropdown-list-current"> <span> Chapter 4: Structured Data </span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/media"> Chapter 5: Media </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/webassembly"> Chapter 6: WebAssembly </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/third-parties"> Chapter 7: Third Parties </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-2">Part II. User Experience</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/seo"> Chapter 8: SEO </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/accessibility"> Chapter 9: Accessibility </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/performance"> Chapter 10: Performance </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/privacy"> Chapter 11: Privacy </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/security"> Chapter 12: Security </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/mobile-web"> Chapter 13: Mobile Web </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/capabilities"> Chapter 14: Capabilities </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/pwa"> Chapter 15: PWA </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-3">Part III. Content Publishing</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/cms"> Chapter 16: CMS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/ecommerce"> Chapter 17: Ecommerce </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/jamstack"> Chapter 18: Jamstack </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-4">Part IV. Content Distribution</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/page-weight"> Chapter 19: Page Weight </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/resource-hints"> Chapter 20: Resource Hints </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/cdn"> Chapter 21: CDN </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/compression"> Chapter 22: Compression </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/caching"> Chapter 23: Caching </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/http"> Chapter 24: HTTP </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#appendices">Appendices</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/methodology">Methodology</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/contributors">Contributors</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/search">Search</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#ebook">Ebook</a> </li> <li class="nav-dropdown-list-chapter ebook"> <a href="https://cdn.httparchive.org/almanac/ebooks/web_almanac_2021_en.pdf" data-event="ebook-click" data-label="toc-menu">Ebook PDF (32MB)</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown header"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Year Switcher">2021</button> <ul class="nav-dropdown-list hidden header-list"> <li> <a href="/en/2024/structured-data">2024</a> </li> <li> <a href="/en/2022/structured-data">2022</a> </li> <li class="unsupported-year"> <a href="/en/2020/">2020 Home</a> </li> <li class="unsupported-year"> <a href="/en/2019/">2019 Home</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown header"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Language Switcher" >English</button> <ul class="nav-dropdown-list hidden header-list"> <li> <a lang="ja" href="/ja/2021/structured-data">日本語</a> </li> <li> <a class="help-translate" href="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"><em>Help translate</em></a> </li> </ul> </div> </li> </ul> </nav> <nav id="menu" aria-labelledby="menu-btn"> <a href="#footer" class="menu-btn js-hide" aria-label="Page menu"> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> </a> <button type="button" class="menu-btn js-enable hidden" disabled id="menu-btn" aria-label="Open the menu" aria-expanded="false" data-open-text="Open the menu" data-close-text="Close the menu"> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> <span class="menu-btn-bar"></span> </button> <ul class="menu"> <li><a href="/en/2021/contributors">Contributors</a></li> <li><a href="/en/2021/methodology">Methodology</a></li> <li> <form class="search-nav" action="/en/search"> <label for="mobile-search-box" class="visually-hidden">Search</label> <input id="mobile-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="mobile-search-icon"> <title id="mobile-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> <li> <a class="js-hide" href="/en/2021/table-of-contents">Table of Contents</a> <div class="table-of-contents-switcher js-enable hidden"> <label for="table-of-contents-switcher-mobile" class="visually-hidden"> Table of Contents Switcher </label> <select id="table-of-contents-switcher-mobile" data-label="toc-menu-mobile"> <option value="/en/2021/">Home</option> <option value="/en/2021/table-of-contents">Table of Contents</option> <option value="/en/2021/table-of-contents#foreword">Foreword</option> <option value="/en/2021/css"> Chapter 1: CSS </option> <option value="/en/2021/javascript"> Chapter 2: JavaScript </option> <option value="/en/2021/markup"> Chapter 3: Markup </option> <option disabled selected value="/en/2021/structured-data"> Chapter 4: Structured Data </option> <option value="/en/2021/media"> Chapter 5: Media </option> <option value="/en/2021/webassembly"> Chapter 6: WebAssembly </option> <option value="/en/2021/third-parties"> Chapter 7: Third Parties </option> <option value="/en/2021/seo"> Chapter 8: SEO </option> <option value="/en/2021/accessibility"> Chapter 9: Accessibility </option> <option value="/en/2021/performance"> Chapter 10: Performance </option> <option value="/en/2021/privacy"> Chapter 11: Privacy </option> <option value="/en/2021/security"> Chapter 12: Security </option> <option value="/en/2021/mobile-web"> Chapter 13: Mobile Web </option> <option value="/en/2021/capabilities"> Chapter 14: Capabilities </option> <option value="/en/2021/pwa"> Chapter 15: PWA </option> <option value="/en/2021/cms"> Chapter 16: CMS </option> <option value="/en/2021/ecommerce"> Chapter 17: Ecommerce </option> <option value="/en/2021/jamstack"> Chapter 18: Jamstack </option> <option value="/en/2021/page-weight"> Chapter 19: Page Weight </option> <option value="/en/2021/resource-hints"> Chapter 20: Resource Hints </option> <option value="/en/2021/cdn"> Chapter 21: CDN </option> <option value="/en/2021/compression"> Chapter 22: Compression </option> <option value="/en/2021/caching"> Chapter 23: Caching </option> <option value="/en/2021/http"> Chapter 24: HTTP </option> <option value="/en/2021/methodology"> Methodology </option> <option value="/en/2021/contributors"> Contributors </option> <option value="/en/search"> Search </option> <option value="https://cdn.httparchive.org/almanac/ebooks/web_almanac_2021_en.pdf" data-event="ebook-click"> Ebook PDF (32MB) </option> </select> </div> </li> <li> <div class="year-switcher js-show"> <label for="year-switcher-mobile" class="visually-hidden">Year Switcher</label> <select id="year-switcher-mobile"> <option value="/en/2024/structured-data"> 2024 </option> <option value="/en/2022/structured-data"> 2022 </option> <option selected="selected" value="/en/2021/structured-data"> 2021 </option> <option value="/en/2020/"> 2020 Home </option> <option value="/en/2019/"> 2019 Home </option> </select> </div> </li> <li> <div class="language-switcher js-show"> <label for="language-switcher-mobile" class="visually-hidden">Language Switcher</label> <select id="language-switcher-mobile"> <option selected="selected" lang="en" value="/en/2021/structured-data"> English </option> <option lang="ja" value="/ja/2021/structured-data"> 日本語 </option> <hr> <option value="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"> Help translate </option> </select> </div> </li> <li id="mobile-misc" class="misc"> <ul class="misc"> <li> <a href="https://httparchive.org/" aria-labelledby="ha-logo-mobile"> <svg width="70" height="35" role="img"> <title id="ha-logo-mobile">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> </li> <li> <ul class="social-media"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-mobile"> <svg width="20" height="20" role="img"> <title id="twitter-logo-mobile">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-mobile"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-mobile">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" aria-labelledby="github-logo-mobile"> <svg width="22" height="20" role="img"> <title id="github-logo-mobile">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </li> </ul> </li> </ul> </nav> </div> </div> </header> <script nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"> // If JS is enabled then enable menus ASAP to avoid CLS as menu items change from links to buttons (function() { document.querySelectorAll('.js-hide').forEach(element => { // Don't just hide it - delete it completely to avoid any specifity issues element.parentNode.removeChild(element); }); document.querySelectorAll('.js-enable').forEach(element => { element.classList.remove('js-enable'); element.classList.remove('hidden'); element.disabled = false; element.hidden = false; }); })(); </script> <div class="container"> <main id="chapter" class="main"> <nav aria-label="Chapter table of contents" class="index"> <div class="index-box floating-card"> <h2 class="header"> <button type="button" class="index-btn" aria-expanded="false" aria-label="Open the Table of Contents" data-close-text="Close the Table of Contents" data-open-text="Open the Table of Contents">Index</button> <span class="no-button">Index</span> </h2> <ul> <li> <a href="#introduction">Introduction</a> </li> <li> <a href="#key-concepts">Key concepts</a> <ul> <li> <a href="#the-semantic-web">The semantic web</a> </li> <li> <a href="#search-engines-and-beyond">Search engines, and beyond</a> </li> </ul> </li> <li> <a href="#types-of-structured-data-and-coverage">Types of structured data and coverage</a> <ul> <li> <a href="#data-caveats">Data caveats</a> <ul> <li> <a href="#1-the-influence-of-content-management-systems">1. The influence of Content Management Systems</a> </li> <li> <a href="#2-the-limitations-of-home-page-only-data">2. The limitations of home page-only data</a> </li> <li> <a href="#3-data-overlaps">3. Data overlaps</a> </li> <li> <a href="#4-mobile-metrics">4. Mobile metrics</a> </li> </ul> </li> <li> <a href="#usage-by-type">Usage by type</a> </li> <li> <a href="#coverage-by-syntax-type">Coverage by syntax type</a> <ul> <li> <a href="#rdfa">RDFa</a> <ul> <li> <a href="#on-foaf">On FOAF</a> </li> <li> <a href="#on-other-notable-rdfa-findings">On other notable RDFa findings</a> </li> </ul> </li> <li> <a href="#dublin-core">Dublin Core</a> </li> <li> <a href="#social-metadata">Social metadata</a> <ul> <li> <a href="#open-graph">Open Graph</a> </li> <li> <a href="#twitter">Twitter</a> </li> <li> <a href="#facebook">Facebook</a> </li> <li> <a href="#microformats-and-microformats2">Microformats and microformats2</a> </li> </ul> </li> <li> <a href="#microdata">Microdata</a> </li> <li> <a href="#json-ld">JSON-LD</a> <ul> <li> <a href="#json-ld-structures--relationships">JSON-LD structures & relationships</a> </li> <li> <a href="#relationship-depth">Relationship depth</a> </li> <li> <a href="#use-of-sameas">Use of <code>sameAs</code></a> </li> </ul> </li> </ul> </li> </ul> </li> <li> <a href="#conclusion">Conclusion</a> <ul> <li> <a href="#future-years">Future years</a> </li> </ul> </li> </ul> </div> </nav> <div class="content"> <article id="maincontent" class="body"> <div class="subtitle"> Part I Chapter 4 </div> <h1 class="title title-lg"> Structured Data </h1> <div class="article-dates"> <div class="article-date"> Date published: <time id="published-date" datetime="2021-11-17T00:00:00.000Z">2021/11/17</time> </div> <div class="article-date"> Last updated: <time id="modified-date" datetime="2024-12-02T00:00:00.000Z">2024/12/02</time> </div> <script nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"> // Update chapter dates to locale/language-specific format immeadiately with inline // script to avoid annoying shift as much as possible since this is in initial viewport. function formatDates(selector) { if (window.Intl && window.Intl.DateTimeFormat) { var publishedDateElement=document.querySelector(selector); if (!publishedDateElement) return; var publishedDate = new Date(publishedDateElement.getAttribute("datetime")); // Set up the date format - initially using the users default locale // This allows different locales in same language to be respected // (e.g. en-GB or en-US). var options = { day: "numeric", month: "short", year: "numeric", timeZone: "UTC" }; var dateFormat = new Intl.DateTimeFormat([], options) const usedOptions = dateFormat.resolvedOptions(); if (!usedOptions.locale.startsWith("en")) { // Reader is looking at a page in a language that is not their default locale // Set date format to page's language locale to avoid incorrect date translation. dateFormat = new Intl.DateTimeFormat("en", options) } publishedDateElement.textContent = dateFormat.format(publishedDate); } else { console.log("Could not format date"); } } formatDates("#published-date"); formatDates("#modified-date"); </script> </div> <!-- Show large image for large screens and high density screens and use avif and webp when supported --> <picture> <source media="(min-width: 866px)" type="image/avif" srcset="/static/images/2021/structured-data/hero_lg.avif"> <source media="(min-width: 866px)" type="image/webp" srcset="/static/images/2021/structured-data/hero_lg.webp"> <source media="(min-width: 866px)" type="image/jpeg" srcset="/static/images/2021/structured-data/hero_lg.jpg"> <source type="image/avif" srcset="/static/images/2021/structured-data/hero_sm.avif 1x, /static/images/2021/structured-data/hero_lg.avif 2x"> <source type="image/webp" srcset="/static/images/2021/structured-data/hero_sm.webp 1x, /static/images/2021/structured-data/hero_lg.webp 2x"> <source type="image/jpeg" srcset="/static/images/2021/structured-data/hero_sm.jpg 1x, /static/images/2021/structured-data/hero_lg.jpg 2x"> <img src="/static/images/2021/structured-data/hero_lg.jpg" class="content-banner" alt="Hero image of a Web Almanac chracter pulling an identification card out of a wallet and plugging it into a web page." width="866" height="433" fetchpriority="high"> </picture> <div class="bylines"> <div class="byline">Written by <a class="author" href="/en/2021/contributors#jonoalderson">Jono Alderson</a> and <a class="author" href="/en/2021/contributors#cyberandy">Andrea Volpini</a> </div> <div class="byline reviewers">Reviewed by <a class="reviewer" href="/en/2021/contributors#vdwijngaert">Koen Van den Wijngaert</a> and <a class="reviewer" href="/en/2021/contributors#philbarker">Phil Barker</a> </div> <div class="byline analysts">Analyzed by <a class="analyst" href="/en/2021/contributors#GregBrimble">Greg Brimble</a> </div> <div class="byline editors">Edited by <a class="editor" href="/en/2021/contributors#jvandriel">Jarno van Driel</a>, <a class="editor" href="/en/2021/contributors#JasmineDWillson">Jasmine Drudge-Willson</a>, and <a class="editor" href="/en/2021/contributors#tunetheweb">Barry Pollard</a> </div> </div> <h2 id="introduction"><a href="#introduction" class="anchor-link">Introduction</a></h2> <p>When reading web pages, we consume <em>unstructured</em> content. We read paragraphs, examine media, and consider what we digest. As part of that process, we apply intuition and context (such as subject-matter familiarity) to identify key themes, data points, entities, and relationships. As humans, we’re very good at this.</p> <p>But this kind of intuition and context is difficult for <em>software</em> to replicate. It’s difficult for systems to reliably parse, identify, and extract key themes with a high degree of reliability.</p> <p>These limitations can constrain the kinds of things which we can effectively build and create, and limits how “smart” web technology can be.</p> <p>By introducing <em>structure</em> to information, we can make it <em>much</em> easier for software to understand content. We do this by adding labels and metadata which identify key concepts and entities—as well as their properties and relationships.</p> <p>When machines can reliably extract structured data, at scale, we enable new and smarter types of software, systems, services and businesses.</p> <p>The goal of the Web Almanac’s Structured Data chapter is to explore how structured data is currently being used across the web. We hope that this will provide insight into the landscape, the challenges, and the opportunities at hand.</p> <p>This is the first time that this chapter has been included in the Web Almanac, and so we unfortunately lack historical data for the purposes of comparison. Future chapters will also explore year-on-year trends.</p> <h2 id="key-concepts"><a href="#key-concepts" class="anchor-link">Key concepts</a></h2> <p>Structured data is a complex landscape, and one which is by nature abstract and ’meta’. To understand the significance and potential impact of structured data, it’s worth exploring the following key concepts.</p> <h3 id="the-semantic-web"><a href="#the-semantic-web" class="anchor-link">The semantic web</a></h3> <p>When we add structured data to public web pages—and we define the entities that those pages contain (or are about, or reference)—we create a form of <a href="https://en.wikipedia.org/wiki/Linked_data">linked data</a>.</p> <p> We make <em>statements</em> about the things in (and related to) our content in the form of <a href="https://en.wikipedia.org/wiki/Semantic_triple"><em>triples</em></a >. Statements like, “This <strong>article</strong> was <strong>authored</strong> by this <strong>person</strong>”, or “That <strong>video</strong> is <strong>about</strong> a <strong>cat</strong>”. </p> <p>Describing our content in this way enables machines to treat web pages and websites as databases. At scale, it creates a <a hreflang="en" href="https://www.techrepublic.com/article/an-introduction-to-tim-berners-lees-semantic-web/">semantic web</a>; a giant global database of information.</p> <figure> <blockquote><em>The Semantic Web</em> is the name of a long-term project started by W3C with the stated purpose of realizing the idea of having data on the Web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration, and reuse of data across various applications</blockquote> <figcaption> — Greg Ross, <cite><a hreflang="en" href="https://www.techrepublic.com/article/an-introduction-to-tim-berners-lees-semantic-web/">An introduction to Tim Berners-Lee’s Semantic Web</a></cite> </figcaption> </figure> <p>That creates a wealth of possibilities for business, technology, and society.</p> <h3 id="search-engines-and-beyond"><a href="#search-engines-and-beyond" class="anchor-link">Search engines, and beyond</a></h3> <p>To date, some of the broadest consumers of structured data are <em>search engines</em> and <em>social media platforms</em>.</p> <p> In most major search engines, website owners may become eligible for various forms of <a hreflang="en" href="https://developers.google.com/search/docs/advanced/structured-data/search-gallery"><em>rich results</em></a> (which may influence visibility and traffic) by implementing various types of structured data on their websites. </p> <p>In fact, search engines have played such a significant role in the general adoption of (and <a hreflang="en" href="https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data">education around</a>) structured data across the web, that this chapter was born out of Web Almanac <a href="../2020/seo#structured-data">SEO chapters from previous years</a>. In recent years, the influence of search engines has also popularized <a hreflang="en" href="https://schema.org/">schema.org</a> the vocabulary of choice for structured data.</p> <p>In addition to this, social media platforms rely on structured data to influence how they read and display content when it’s shared (or linked to) on their platforms. Rich previews, tailored titles and descriptions, and interactivity in these platforms are often powered by structured data.</p> <p>But there’s more to see and understand here than search engine optimization and social media benefits. The scale, variety, impact and <em>potential</em> of structured data goes far beyond rich results, far beyond search engines, and far beyond schema.org.</p> <p>For example, structured data facilitates:</p> <ul> <li>Easier topic modelling and clustering across multiple pages, websites and concepts; enabling new types of research, comparison and services.</li> <li>Enriching analytics data, to allow for deeper and horizontalized analysis of content and performance.</li> <li>Creating a unified (or at least, connected) language and syntax for querying business systems and website content.</li> <li>Semantic search; using the same rich metadata used for search engine optimization, to create and manage internal search systems.</li> </ul> <p>Whilst the findings of our research are inevitably shaped by the influence of search engines, we hope to also explore other types, formats, and use-cases of structured data.</p> <h2 id="types-of-structured-data-and-coverage"><a href="#types-of-structured-data-and-coverage" class="anchor-link">Types of structured data and coverage</a></h2> <p>Structured data comes in many formats, standards, and syntaxes. We’ve collected data about the most common of these across <a href="./methodology">our data set</a>.</p> <p>Specifically, we’ve identified and extracted structured data relating to:</p> <ul> <li><a href="http://schema.org/">Schema.org</a></li> <li><a hreflang="en" href="https://www.dublincore.org/specifications/dublin-core/">Dublin core</a></li> <li> Meta tags used by social networks: <ul> <li><a hreflang="en" href="https://ogp.me/">Open Graph</a></li> <li><a hreflang="en" href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started">Twitter</a></li> <li><a hreflang="en" href="https://developers.facebook.com/docs/sharing/webmasters/">Facebook</a></li> </ul> </li> <li><a href="http://microformats.org/">Microformats</a> (and <a hreflang="en" href="https://microformats.org/wiki/microformats2">microformats2</a>)</li> <li><a href="https://en.wikipedia.org/wiki/RDFa">RDFa</a>, <a href="https://en.wikipedia.org/wiki/Microdata_(HTML)">Microdata</a> and <a hreflang="en" href="https://json-ld.org/">JSON-LD</a></li> </ul> <p>Collectively, these provide a broad overview of different use-cases and scenarios; and include both legacy standards and modern approaches (e.g., microformats vs JSON-LD).</p> <p>Before we explore specific usage across the various structured data types, we should briefly explore some caveats.</p> <h3 id="data-caveats"><a href="#data-caveats" class="anchor-link">Data caveats</a></h3> <h4 id="1-the-influence-of-content-management-systems"><a href="#1-the-influence-of-content-management-systems" class="anchor-link">1. The influence of Content Management Systems</a></h4> <p>Many of the pages we’ve evaluated are from websites which use a <a href="./cms">Content Management System</a> (CMS), such as <a hreflang="en" href="https://wordpress.org/">WordPress</a> or <a hreflang="en" href="https://www.drupal.org/">Drupal</a>. These systems—or the themes/plugins/modules which enhance their functionality—are often responsible for generating the <a href="./markup">HTML markup</a> which contains the structured data which we’re analyzing.</p> <p>That means that our findings are unavoidably skewed to aligning with the behaviors and output of the most prevalent CMS’. For example, many websites using Drupal automatically output structured data in the form of RDFa, and WordPress (which powers <a href="./cms#top-cmss">a significant percentage of websites</a>) often includes microformats markup in template code. This contributes significantly to the shape of our findings.</p> <h4 id="2-the-limitations-of-home-page-only-data"><a href="#2-the-limitations-of-home-page-only-data" class="anchor-link">2. The limitations of home page-only data</a></h4> <p>Unfortunately, the nature and scale of our data-collection methods limit our analysis to home pages only (i.e., the <em>root URL</em> of each hostname we evaluate).</p> <p>This significantly limits the amount of data we can collect and analyze, and undoubtedly skews the kinds of data we’ve collected.</p> <p>As most home pages act as portals to more specific pages, we can reasonably expect that our analysis underestimates the prevalence of the kinds of content present on that deeper pages. That likely includes information relating to <em>articles</em>, <em>people</em>, <em>products</em> and similar.</p> <p>Conversely, we likely over-index on information typically found on home pages, and site-wide information which is present on all pages—like information about <em>web pages</em>, <em>websites</em> and <em>organizations</em>.</p> <h4 id="3-data-overlaps"><a href="#3-data-overlaps" class="anchor-link">3. Data overlaps</a></h4> <p>The nature of some structured data formats makes it hard to perform this kind of analysis cleanly at scale. In many cases, structured data is implemented in multiple (often overlapping) formats, and the lines between syntaxes and vocabularies get blurred.</p> <p>For example, Facebook and Open Graph metadata are technically a subset of RDFa. That means that our research identifies a page containing a Facebook meta tag in our Facebook category, <em>and</em> our <code>RDFa</code> section. We’ve done our best to clean, normalize, and make sense of these types of overlaps and nuances.</p> <h4 id="4-mobile-metrics"><a href="#4-mobile-metrics" class="anchor-link">4. Mobile metrics</a></h4> <p>Throughout our data set, the adoption and presence of structured data varies only very slightly between our desktop and mobile data sets. As such, for the sake of brevity, our narrative focuses predominantly on the <em>mobile</em> data set.</p> <h3 id="usage-by-type"><a href="#usage-by-type" class="anchor-link">Usage by type</a></h3> <p>We can see that there’s a broad range of different types of structured data across many of the pages in our set.</p> <figure id="fig-1"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-usage-by-type.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-usage-by-type.jpg" alt="Structured data usage." aria-labelledby="fig-1-caption" aria-describedby="fig-1-description" width="600" height="371" data-width="600" data-height="371" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=501587417&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=1876349096"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/present_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-usage-by-type.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-1-description" data-show-text="Show description of Figure 4.1" data-hide-text="Hide description of Figure 4.1">Show description of Figure 4.1</button> <div id="fig-1-description" class="hidden">Bar chart showing the popularity of different structured data types across the web. Of all mobile pages in our data: RDFa is on 60.61%, Open Graph tags are on 57.45%, Twitter tags are on 37.48%, Microdata is on 24.91%, Facebook tags are on 8.15%, Dublin Core tags are on 1.22%, Microformats are used on 0.68%, and microformats2 are used on 0.11%. Desktop usage is similar.</div> <figcaption id="fig-1-caption"> <a href="#fig-1" class="anchor-link">Figure 4.1.</a> Structured data usage. </figcaption> </figure> <p>We can also see that <em>RDFa</em> and <em>Open Graph tags</em> in particular are extremely prevalent, appearing on 60.61% and 57.45% of pages respectively.</p> <p>At the other end of the scale, legacy formats, like <em>Microformats</em> and <em>microformats2</em>, appear on fewer than 1% of pages.</p> <h3 id="coverage-by-syntax-type"><a href="#coverage-by-syntax-type" class="anchor-link">Coverage by syntax type</a></h3> <p>In addition to identifying when a certain type of structured data is present, we collect information on the types of data it describes. We can break each of these down and explore how each format and syntax is being used.</p> <h4 id="rdfa"><a href="#rdfa" class="anchor-link">RDFa</a></h4> <p><a hreflang="en" href="https://www.w3.org/TR/rdfa-lite/">Resource Description Framework in Attributes</a> (RDFa) is a technology for linked data markup, which was introduced by W3C in 2015. It allows users to augment and translate visual information on a web page by adding additional attributes to markup.</p> <p>For example, a website owner might add a <code>rel="license"</code> attribute to a hyperlink in order to explicitly describe it as a link to a licensing information page.</p> <figure id="fig-2"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-rdfa-types.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-rdfa-types.jpg" alt="RDFa types." aria-labelledby="fig-2-caption" aria-describedby="fig-2-description" width="600" height="504" data-width="600" data-height="504" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1063480738&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=379443022"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/rdfa_type_ofs.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-rdfa-types.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-2-description" data-show-text="Show description of Figure 4.2" data-hide-text="Hide description of Figure 4.2">Show description of Figure 4.2</button> <div id="fig-2-description" class="hidden">Bar chart showing the usage of RDFa across the web. Of all mobile pages in our data: <code>foaf:image</code> is on 0.86%, <code>foaf:document</code> is on 0.36%, <code>sioc:item</code> is on 0.24%, <code>schema:webpage</code> is on 0.11%, <code>image</code> is on 0.9%, <code>listitem</code> is on 0.08%, <code>breadcrumblist</code> is on 0.07%, <code>og:website</code> is on 0.06%, <code>skos:concept</code> is on 0.04%, <code>webpage</code> is on 0.04%, <code>v:breadcrumb</code> is on 0.04%, <code>schema:article</code> is on 0.03%, <code>sioc:useraccount</code> is on 0.03%, and <code>person</code> is on 0.03%. Desktop usage is similar.</div> <figcaption id="fig-2-caption"> <a href="#fig-2" class="anchor-link">Figure 4.2.</a> RDFa types. </figcaption> </figure> <p>When we evaluate the types of RDFa, we can see that the <code>foaf:image</code> syntax is present on far more pages than any other type—on upwards of 0.86% of all pages in our data set. Whilst that may seem like a small proportion, it represents over ~65,000 pages, and over 60% of the total RDFa markup that we discovered.</p> <p>Beyond this outlier, the use of RDFa diminishes and fragments considerably, though there are still some interesting discoveries to explore.</p> <h5 id="on-foaf"><a href="#on-foaf" class="anchor-link">On FOAF</a></h5> <p><a href="http://xmlns.com/foaf/spec/">FOAF</a> (or “Friend of a Friend”) is a linked data dictionary of people-related terms, created in the early-2000s. It can be used to describing <em>people</em>, <em>groups</em> and <em>documents</em>.</p> <p>FOAF uses W3C’s RDF syntax and in its <a hreflang="en" href="https://web.archive.org/web/20140331104046/http://www.foaf-project.org/original-intro">original introduction</a> was explained as follows:</p> <figure> <blockquote>Consider a Web of inter-related home pages, each describing things of interest to a group of friends. Each new home page that appears on the Web tells the world something new, providing factoids and gossip that make the Web a mine of disconnected snippets of information. FOAF provides a way to make sense of all this.</blockquote> <figcaption> <cite><a hreflang="en" href="https://web.archive.org/web/20140331104046/http://www.foaf-project.org/original-intro">Introducing FOAF</a></cite> </figcaption> </figure> <p>Anecdotally, we can attribute a prominence of <code>foaf</code> markup in our results to sites running on older versions of the Drupal CMS, which historically added <code>typeof="foaf:image"</code> and <code>foaf:document</code> markup to its HTML by default.</p> <h5 id="on-other-notable-rdfa-findings"><a href="#on-other-notable-rdfa-findings" class="anchor-link">On other notable RDFa findings</a></h5> <p>As well as FOAF properties, various other standards and syntaxes show up in our list.</p> <p>Notably, we can see several <code>sioc</code> properties, such as <code>sioc:item</code> (0.24% of pages) and <code>sioc:useraccount</code> (0.03% of pages). <a hreflang="en" href="https://www.w3.org/Submission/sioc-spec/">SIOC</a> is a standard designed to describe structured data relating to <em>online communities</em>, such as message boards, forums, wikis and blogs.</p> <p>We can also see a <a hreflang="en" href="https://www.w3.org/TR/skos-primer/">SKOS</a> (or “Simple Knowledge Organization System”) property—<code>skos:concept</code>—on 0.04% of pages. SKOS is another standard, which aims to provide a way of describing taxonomies and classifications (e.g., tags, data sets, and so on).</p> <h4 id="dublin-core"><a href="#dublin-core" class="anchor-link">Dublin Core</a></h4> <p><a hreflang="en" href="https://dublincore.org/">Dublin Core</a> is a vocabulary interoperable with linked data standards that was originally conceived in Dublin, Ohio in 1995 at an OCLC (Online Computer Library Center) and NCSA (National Center for Supercomputing Applications) workshop.</p> <p>It was designed to describe a broad range of resources (both digital and physical) and can be used in various business scenarios. Starting in 2000 it became extremely popular among RDF-based vocabularies and received the adoption of the W3C.</p> <p>Since 2008 it is managed by the Dublin Core Metadata Initiative (DCMI) and remains highly interoperable with other linked data vocabularies. It is typically implemented as a collection of meta tags in an HTML document.</p> <figure id="fig-3"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-dublin-core.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-dublin-core.jpg" alt="Dublin Core usage." aria-labelledby="fig-3-caption" aria-describedby="fig-3-description" width="600" height="574" data-width="600" data-height="574" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1985156978&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=358057466"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/dublin_core_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-dublin-core.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-3-description" data-show-text="Show description of Figure 4.3" data-hide-text="Hide description of Figure 4.3">Show description of Figure 4.3</button> <div id="fig-3-description" class="hidden">Bar chart showing the usage of Dublin Core tags across the web. Of all mobile pages in our data: <code>dc.title</code> is on 0.70%, <code>dc.language</code> is on 0.49%, <code>dc.description</code> is on 0.44%, <code>dc.publisher</code> is on 0.22%, <code>dc.creator</code> is on 0.21%, <code>dc.subject</code> is on 0.20%, <code>dc.source</code> is on 0.19%, <code>dc.identifier</code> is on 0.17%, <code>dc.relation</code> is on 0.16%, <code>dcterms.title</code> is on 0.15%, <code>dc.type</code> is on 0.14%, <code>dcterms.rightsholder</code> is on 0.12%, and <code>dcterms.identifier</code> is on 0.11%. Desktop usage is similar.</div> <figcaption id="fig-3-caption"> <a href="#fig-3" class="anchor-link">Figure 4.3.</a> Dublin Core usage. </figcaption> </figure> <p>That the most popular attribute type is <code>dc:title</code> (on 0.70% of pages) comes as no surprise; but it is interesting to see that <code>dc:language</code> is next (above common descriptors like <em>description</em>, <em>subject</em> and <em>publisher</em>) with a penetration of 0.49%. This makes sense, when you consider that Dublin Core is often used in multilingual metadata management systems.</p> <p>It’s also interesting to see the relatively prominent appearance of <code>dc:relation</code> (on 0.16% of pages)—an attribute that is capable of expressing relationships between different concepts.</p> <p>While it might seem to many that Schema.org is predominant in the context of SEO, the role of DC remains pivotal because of its broad interpretation of concepts and its deep roots in the <em>linked open data movement</em>.</p> <h4 id="social-metadata"><a href="#social-metadata" class="anchor-link">Social metadata</a></h4> <p>Social networks and platforms are some of the biggest publishers and consumers of structured data. This section explores the roles, breadth of adoption, and scale of some of their specific structured data formats.</p> <h5 id="open-graph"><a href="#open-graph" class="anchor-link">Open Graph</a></h5> <p><a hreflang="en" href="https://ogp.me/">The Open Graph protocol</a> is an open-source standard, originally created by Facebook. It is a type of structured data specific to the context of <em>sharing content</em>, based loosely on Dublin Core, Microformats and similar standards.</p> <p>It describes a series of meta tags and properties, which may be used to define how content should be (re)presented when shared between platforms. For example, when liking or embedding a post, or sharing a link.</p> <p>These tags are typically implemented in the <code><head></code> of an HTML document, and define elements such as the page’s <em>title</em>, <em>description</em>, <em>URL</em>, and <em>featured image</em>.</p> <p>The Open Graph protocol has since been broadly adopted by many platforms and services, including <em>Twitter</em>, <em>Skype</em>, <em>LinkedIn</em>, <em>Pinterest</em>, <em>Outlook</em> and more. When platforms don’t have their own standards for how shared/embedded content should be presented (and sometimes, even when they do), Open Graph tags are often used to define the default behavior.</p> <figure id="fig-4"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-open-graph.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-open-graph.jpg" alt="Open Graph usage." aria-labelledby="fig-4-caption" aria-describedby="fig-4-description" width="600" height="574" data-width="600" data-height="574" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=688746239&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=1440633828"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/open_graph_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-open-graph.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-4-description" data-show-text="Show description of Figure 4.4" data-hide-text="Hide description of Figure 4.4">Show description of Figure 4.4</button> <div id="fig-4-description" class="hidden">Bar chart showing the usage of Open Graph tags across the web. Of all mobile pages in our data: <code>og:title</code> is on 54.87%, <code>og:url</code> is on 52.03%, <code>og:type</code> is on 48.18%, <code>og:description</code> is on 48.55%, <code>og:site_name</code> is on 43.37%, <code>og:image</code> is on 36.98%, <code>og:locale</code> is on 26.39%, <code>og:image:width</code> is on 12.95%, <code>og:image:height</code> is on 12.91%, <code>og:image:secure_url</code> is on 5.61%, <code>og:image:alt</code> is on 1.75%, <code>og:image:type</code> is on 1.61%, <code>og:updated_time</code> is on 1.54%, and <code>og:locale:alternate</code> is on 0.87%. Desktop usage is similar.</div> <figcaption id="fig-4-caption"> <a href="#fig-4" class="anchor-link">Figure 4.4.</a> Open Graph usage. </figcaption> </figure> <p>The most common type of Open Graph tag is the <code>og:title</code>, which can be found on an incredible 54.87% of pages. That’s followed closely by a set of related attributes, which describe what <em>type</em> of thing is being represented (e.g., <code>og:type</code>, on 48.18% of pages) and <em>how</em> it should be represented (e.g., <code>og:description</code>, on 48.55% of pages).</p> <p>This narrow distribution is to be expected, as these tags are often used together as part of a “boilerplate” set of tags used in the <code><head></code> across all pages on a site.</p> <p>Slightly less common is <code>og:locale</code> (26.39% of pages), which is used to define the language of the page’s content.</p> <p>Less common still is more specific metadata about the <code>og:image</code> tag, in the form of <code>og:image:width</code> (12.95% of pages), <code>og:image:height</code> (12.91% of pages), <code>og:image:secure_url</code> (5.61% of pages) and <code>og:image:alt</code> (1.75% of pages). It’s worth noting that with HTTPS adoption now increasingly the norm, <code>og:image:secure_url</code> (which was intended to identify a <code>https</code> version of the <code>og:image</code>) is now largely redundant.</p> <p>Beyond these examples, usage drops off rapidly, into a long tail of (often malformed, deprecated or erroneous) tags.</p> <h5 id="twitter"><a href="#twitter" class="anchor-link">Twitter</a></h5> <p>Though Twitter uses Open Graph tags as fallbacks and defaults, the platform supports its own flavor of structured data. A set of specific meta tags (all prefixed with <code>twitter:</code>) can be used to define how pages should be presented when URLs are shared on Twitter.</p> <figure id="fig-5"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-twitter.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-twitter.jpg" alt="Twitter meta tag usage." aria-labelledby="fig-5-caption" aria-describedby="fig-5-description" width="600" height="574" data-width="600" data-height="574" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=2059334677&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=485696602"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/twitter_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-twitter.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-5-description" data-show-text="Show description of Figure 4.5" data-hide-text="Hide description of Figure 4.5">Show description of Figure 4.5</button> <div id="fig-5-description" class="hidden">Bar chart showing the usage of Twitter meta tags across the web. Of all mobile pages in our data: <code>twitter:card</code> is on 35.42%, <code>twitter:title</code> is on 20.86%, <code>twitter:description</code> is on 18.68%, <code>twitter:site</code> is on 11.31%, <code>twitter:image</code> is on 11.41%, <code>twitter:label1</code> is on 6.85%, <code>twitter:data1</code> is on 6.85%, <code>twitter:creator</code> is on 3.58%, <code>twitter:url</code> is on 3.13%, <code>twitter:domain</code> is on 2.21%, <code>twitter:image:src</code> is on 0.58%, <code>twitter:text:title</code> is on 0.57%, <code>twitter:app:id:phone</code> is on 0.54%, and <code>twitter:app:url:iphone</code> is on 0.52%. Desktop usage is similar.</div> <figcaption id="fig-5-caption"> <a href="#fig-5" class="anchor-link">Figure 4.5.</a> Twitter meta tag usage. </figcaption> </figure> <p>The most common Twitter meta tag is <code>twitter:card</code>, which was found on 35.42% of all pages. This tag can be used to define how pages should be presented when shared on the platform (e.g., as a <em>summary</em>, or as a <em>player</em> when paired with additional data about a media object).</p> <p>Beyond this outlier, adoption drops off steeply. The next most common tags are <code>twitter:title</code> and <code>twitter:description</code> (both also used to define how shared URLs are presented), which appear on 20.86% and 18.68% of all pages, respectively.</p> <p>It’s understandable why these particular tags—as well as the <code>twitter:image</code> tag (11.41% of pages) and <code>twitter:url</code> tag (3.13% of pages)—aren’t more prevalent, as Twitter falls back to the equivalent Open Graph tags (<code>og:title</code>, <code>og:description</code> and <code>og:image</code>) when they’re not defined.</p> <p>Also of interest are:</p> <ul> <li>The <code>twitter:site</code> tag (11.31% of pages) which defines the Twitter account associated with the website in question.</li> <li>The <code>twitter:creator</code> tag (3.58% of pages), which defines the Twitter account of the author of the web page’s content.</li> <li>The <code>twitter:label1</code> and <code>twitter:data1</code> tags (both on 6.85% of pages), which can be used to define custom data and attributes about the web page. Additional label/data pairs (e.g., <code>twitter:label2</code> and <code>twitter:data2</code>) are also present on a significant number (0.5%) of pages.</li> </ul> <p>Beyond these examples, usage drops off rapidly, into a long tail of (often malformed, deprecated or erroneous) tags.</p> <h5 id="facebook"><a href="#facebook" class="anchor-link">Facebook</a></h5> <p>In addition to Open Graph tags, Facebook supports additional metadata (meta tags, prefixed with <code>fb:</code>) for relating web pages to specific brands, properties and people on their platform.</p> <figure id="fig-6"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-facebook.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-facebook.jpg" alt="Facebook meta tag usage." aria-labelledby="fig-6-caption" aria-describedby="fig-6-description" width="600" height="371" data-width="600" data-height="371" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1536454005&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=1437193020"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/facebook_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-facebook.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-6-description" data-show-text="Show description of Figure 4.6" data-hide-text="Hide description of Figure 4.6">Show description of Figure 4.6</button> <div id="fig-6-description" class="hidden">Bar chart showing the usage of Facebook meta tags across the web. Of all mobile pages in our data: <code>fb:app_id</code> is on 6.06%, <code>fb:admins</code> is on 2.63%, <code>fb:pages</code> is on 0.86%, <code>fb:page_id</code> is on 0.13%, <code>fb:profile_id</code> is on 0.06%, <code>fb:use_automatic_ad_placement</code> is on 0.01%, and <code>fb:article_style</code> is on less than 0.01%. Desktop usage is similar.</div> <figcaption id="fig-6-caption"> <a href="#fig-6" class="anchor-link">Figure 4.6.</a> Facebook meta tag usage. </figcaption> </figure> <p>Of all of the Facebook tags that we detected, there are only three tags with significant adoption.</p> <p>Those are <code>fb:app_id</code>, <code>fb:admins</code>, and <code>fb:pages</code>; which we found on 6.06%, 2.63% and 0.86% of pages respectively.</p> <p>These tags are used to explicitly relate a web page to a Facebook Page/Brand, or to grant permissions to a user (or users) who administrates those profiles.</p> <p>Anecdotally, it’s unclear how well these are supported by Facebook. The platform has gone through radical changes over the past few years, and their technical documentation hasn’t been well-maintained. However, many content management systems, templates and best practice guides—as well as some of Facebook’s debugging tools—still include and make reference to them.</p> <h5 id="microformats-and-microformats2"><a href="#microformats-and-microformats2" class="anchor-link">Microformats and microformats2</a></h5> <p>Microformats (commonly abbreviated as <code>μF</code>) are an open data standard for metadata to embed semantics and structured data in HTML.</p> <p>They are composed of a set of defined classes that describe the meanings behind normal HTML elements, such as headings and paragraphs.</p> <p>The guiding principle behind this format for structured data is to convey semantics by reusing widely adopted standards (semantic (X)HTML). The <a hreflang="en" href="https://microformats.org/wiki/what-are-microformats">official documentation</a> describes Microformats as “designed for humans first and machines second”, and are “a set of simple, open data formats built upon existing and widely adopted standards”.</p> <p>Microformats are available in two versions: Microformats v1 and Microformats v2 (microformats2). The latter, introduced in March 2014, replaces and supersedes v1 and takes advantage of some important lessons learned from both microdata and RDFa syntaxes.</p> <figure id="fig-7"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-microformats.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-microformats.jpg" alt="Microformats usage." aria-labelledby="fig-7-caption" aria-describedby="fig-7-description" width="600" height="371" data-width="600" data-height="371" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1769132909&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=1565986462"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/classic_microformats_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-microformats.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-7-description" data-show-text="Show description of Figure 4.7" data-hide-text="Hide description of Figure 4.7">Show description of Figure 4.7</button> <div id="fig-7-description" class="hidden">Bar chart showing the presence of Microformats markup across the web. Of all mobile pages in our data: <code>adr</code> is on 0.50%, <code>geo</code> is on 0.10% <code>hReview</code> is on 0.06% <code>hReview-aggregate</code> is on 0.05% <code>hProduct</code> is on 0.01% <code>hListing</code> is on 0.01%, and <code>hCard</code> 0.01%. Desktop usage is similar.</div> <figcaption id="fig-7-caption"> <a href="#fig-7" class="anchor-link">Figure 4.7.</a> Microformats usage. </figcaption> </figure> <p>Historically and due to its nature (as an extension of HTML), Microformats have been heavily used by website developers to describe properties of businesses and organizations; particularly in pages promoting local businesses. This goes a long way to explaining the prominence of the <code>adr</code> property (on 0.50% of pages), reviews (<code>hReview</code>, on 0.06% of pages) and other information meant to characterize local businesses and their products/services.</p> <figure id="fig-8"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-microformats2.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-microformats2.jpg" alt="microformats2 usage." aria-labelledby="fig-8-caption" aria-describedby="fig-8-description" width="600" height="371" data-width="600" data-height="371" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=216200284&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=214118301"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/microformats2_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-microformats2.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-8-description" data-show-text="Show description of Figure 4.8" data-hide-text="Hide description of Figure 4.8">Show description of Figure 4.8</button> <div id="fig-8-description" class="hidden">Bar chart showing the presence of microformats2 markup across the web. Of all mobile pages in our data: <code>h-entry</code> is on 0.08% <code>h-card</code> is on 0.04% <code>h-adr</code> is on 0.02% <code>h-feed</code> is on 0.01% <code>h-item</code> is on 0.01% <code>h-product</code> is on less than 0.01%, and <code>h-event</code> is on less than 0.01%. Desktop usage is similar.</div> <figcaption id="fig-8-caption"> <a href="#fig-8" class="anchor-link">Figure 4.8.</a> microformats2 usage. </figcaption> </figure> <p>The difference between legacy microformats and the more modern version is significant, and an interesting insight into changing behaviors and preferences in the use of markup.</p> <p>Where the <code>adr</code> class dominated the classic microformats data set, the equivalent <code>h-adr</code> property only occurs on 0.02% of pages. The results here are dominated instead by the <code>h-entry</code> property (on 0.08% of pages and which describes blog posts and similar content units), and the <code>h-card</code> property (on 0.04% of pages and which describes a <em>business card</em> of an organization or individual).</p> <p>We can speculate on three likely causes for this difference:</p> <ul> <li>Data for common class names (like <code>adr</code>) is almost certainly over-inflated in our microformats v1 data; where it’s difficult to distinguish between when these values are used for <em>structured data</em> vs more <em>generic</em> reasons (e.g., as an HTML class attribute value with associated CSS rules).</li> <li>The use of microformats in general (regardless of type) has decreased significantly, and been replaced with other formats.</li> <li>Many websites and themes still include <code>h-entry</code> (and sometimes <code>h-card</code>) markup on common design elements and layouts. For example, many WordPress themes continue to output a <code>h-entry</code> class on the main content container.</li> </ul> <h4 id="microdata"><a href="#microdata" class="anchor-link">Microdata</a></h4> <p>Like microformats and RDFa, <a href="https://en.wikipedia.org/wiki/Microdata_(HTML)">microdata</a> is based on adding attributes to HTML elements. Unlike microformats, but in common with RDFa, it’s not tied to a set of defined meanings. The standard is extensible and allows authors to declare which vocabularies of data they’re describing; most commonly schema.org.</p> <p>One of the limitations of microdata is that it can be difficult to describe abstract or complex relationships between entities, when those relationships aren’t explicitly reflected in the HTML structure of the page.</p> <p>For example, it may be hard to describe the <em>opening hours</em> of an <em>organization</em> if that information isn’t concurrent or logically structured in the document. Note that, there are standards and methodologies for solving this problem (e.g., by including inline <code><meta></code> tags and properties), but these aren’t widely adopted.</p> <figure id="fig-9"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-microdata.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-microdata.jpg" alt="Microdata types." aria-labelledby="fig-9-caption" aria-describedby="fig-9-description" width="600" height="715" data-width="600" data-height="715" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1112123145&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/microdata_item_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-microdata.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-9-description" data-show-text="Show description of Figure 4.9" data-hide-text="Hide description of Figure 4.9">Show description of Figure 4.9</button> <div id="fig-9-description" class="hidden">Bar chart showing the usage of microdata across the web. Of all mobile pages in our data (normalized to remove the <code>schema.org/</code> prefix): <code>webpage</code> is on 7.44%, <code>sitenavigationelement</code> is on 5.62%, <code>wpheader</code> is on 4.87%, <code>wpfooter</code> is on 4.56%, <code>organization</code> is on 4.02%, <code>blog</code> is on 3.66%, <code>creativework</code> is on 2.14%, <code>imageobject</code> is on 1.83%, <code>blogposting</code> is on 1.34%, <code>person</code> is on 1.37%, <code>postaladdress</code> is on 1.34%, <code>website</code> is on 1.33%, <code>wpsidebar</code> is on 1.38%, <code>product</code> is on 1.22%, <code>imagegallery</code> is on 1.11%, <code>offer</code> is on 1.09%, <code>listitem</code> is on 0.96%, <code>breadcrumblist</code> is on 0.96%, and <code>article</code> is on 0.85%. Desktop usage is similar.</div> <figcaption id="fig-9-caption"> <a href="#fig-9" class="anchor-link">Figure 4.9.</a> Microdata types. </figcaption> </figure> <p>The most common types of microdata across the pages we analyzed describe the web page itself; via properties like <code>webpage</code> (7.44% of pages), <code>sitenavigationelement</code> (5.62% of pages), <code>wpheader</code> (4.87% of pages) and <code>wpfooter</code> (4.56% of pages).</p> <p>It’s easy to speculate on why these types of structural descriptors are more prominent than content descriptors (such as <code>person</code> or <code>product</code>); creating and maintaining microdata requires content producers to add specific code to their content—and that’s often easier to do at template level than it is at content level.</p> <p>Whilst one of the strengths of microdata is its explicit relationship with (and authoring in) the HTML markup, this has limited its approach to content authors with the technical knowledge and capabilities to use it.</p> <p>That said, we see a broad adoption and variety of microdata types. Of note:</p> <ul> <li><code>Organization</code> (4.02%), which typically describes the company which <em>publishes</em> the website, the <em>manufacturer</em> of a product, the <em>employer</em> of an author, or similar.</li> <li><code>CreativeWork</code> (2.14%) the most generic parent type to describe all written and visual content (e.g., blog posts, images, video, music, art).</li> <li><code>BlogPosting</code> (1.34%), which describes an individual blog post (which commonly also identifies a <code>Person</code> as an author).</li> <li><code>Person</code> (1.37%) which is often used to describe content authors and people related to the page (e.g., the publisher of the website, the owner of the publishing organization, the individual selling a product, etc.).</li> <li><code>Product</code> (1.22%) and <code>Offer</code> (1.09%), which, when used together, describe a product which is available for purchase (typically with additional properties which describe pricing, reviews and availability).</li> </ul> <h4 id="json-ld"><a href="#json-ld" class="anchor-link">JSON-LD</a></h4> <p>Unlike microdata and microformats, <a hreflang="en" href="https://json-ld.org/">JSON-LD</a> isn’t implemented by adding properties or classes to HTML markup. Instead, machine-readable code is added to the page as one or more standalone blobs of JavaScript Object Notation. This code contains descriptions of the entities on the page, and their relationships.</p> <p>Because the implementation isn’t tied directly to the HTML structure of the page, it can be much easier to describe complex or abstract relationships, as well as representing information which isn’t readily available in the human-readable content of the page.</p> <figure id="fig-10"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-json-ld.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-json-ld.jpg" alt="JSON-LD usage." aria-labelledby="fig-10-caption" aria-describedby="fig-10-description" width="600" height="676" data-width="600" data-height="676" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=2104105656&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=609208795"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/jsonld_types.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-json-ld.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-10-description" data-show-text="Show description of Figure 4.10" data-hide-text="Hide description of Figure 4.10">Show description of Figure 4.10</button> <div id="fig-10-description" class="hidden">Bar chart showing the usage of JSON-LD on pages across the web. Of all mobile in our data: <code>Website</code> is on 8.90%, <code>Organization</code> is on 6.00%, <code>LocalBusiness</code> is on 1.67%, <code>BreadcrumbList</code> is on 1.45%, <code>WebPage</code> is on 0.97%, <code>ItemList</code> is on 0.50%, <code>Product</code> is on 0.60%, <code>BlogPosting</code> is on 0.46%, <code>Person</code> is on 0.30%, <code>Article</code> is on 0.30%, <code>AutoDealer</code> is on 0.23%, <code>Corporation</code> is on 0.20%, <code>Event</code> is on 0.17%, <code>Store</code> is on 0.16%, <code>VideoObject</code> is on 0.15%, <code>FAQPage</code> is on 0.14%, <code>Restaurant</code> is on 0.18%, and <code>ApartmentComplex</code> is on 0.11%. Desktop usage is similar.</div> <figcaption id="fig-10-caption"> <a href="#fig-10" class="anchor-link">Figure 4.10.</a> JSON-LD usage. </figcaption> </figure> <p>As we might expect, our findings are similar to our findings from evaluating the use of microdata. That’s to be expanded, as both approaches are heavily skewed towards the use of schema.org as a predominant standard. However, there are some interesting differences.</p> <p>Because the JSON-LD format allows for site owners to describe their content independently of the HTML markup, it can be easier to represent more abstract complex relationships, which aren’t tied so strictly to the content of the page.</p> <p>We can see this reflected in our findings, where more specific and structured descriptors are more common than with microdata. For example:</p> <ul> <li><code>BreadcrumbList</code> (1.45% of pages) describes the hierarchical position of the web page on the website (and describes each parent page).</li> <li><code>ItemList</code> (0.5% of pages), which describes a set of entities, such as <em>steps</em> in a <em>recipe</em>, or <em>products</em> in a <em>category</em>.</li> </ul> <p>Outside of these examples, we continue to see a similar pattern as we did with microdata (though at a much lower scale). Descriptions of websites, local businesses, organizations and the structure of web pages account for the majority of broad adoption.</p> <h5 id="json-ld-structures--relationships"><a href="#json-ld-structures--relationships" class="anchor-link">JSON-LD structures & relationships</a></h5> <p>One key advantage of JSON-LD is that we can more easily describe the relationships between entities than we can in other formats.</p> <p>An <em>event</em>, for example, may have an organizing <em>corporation</em>, be located at a specific <em>location</em>, and have tickets available on sale as part of an <em>offer</em>. A <em>blog post</em> describing that event might have an <em>author</em>, and so on, and so on. Describing these kinds of relationships is much easier with JSON-LD than with other syntaxes and can help us tell rich stories about entities.</p> <p>However, these relationships can often become deep, complex and intertwined. So, for the purposes of this analysis, we’re only looking at the most common types of relationships between entities; not evaluating entire trees and relationship structures.</p> <p>Below are the most common connections between types, based on how frequently they occur within all structure/relationship values. Note that some of these structures and values may sometimes overlap, as they’re small parts of larger relationship chains.</p> <figure id="fig-11"> <div class="table-wrap"> <div class="table-wrap-container"> <table> <thead> <tr> <th>Relationship</th> <th>% of desktop pages</th> <th>% of mobile pages</th> </tr> </thead> <tbody> <tr> <td><code>WebSite > potentialAction > SearchAction</code></td> <td class="numeric">6.44%</td> <td class="numeric">6.15%</td> </tr> <tr> <td></td> <td class="numeric">5.06%</td> <td class="numeric">4.85%</td> </tr> <tr> <td><code>@graph > WebSite</code></td> <td class="numeric">4.89%</td> <td class="numeric">4.69%</td> </tr> <tr> <td><code>WebPage > isPartOf > WebSite</code></td> <td class="numeric">4.02%</td> <td class="numeric">3.81%</td> </tr> <tr> <td><code>@graph > WebPage</code></td> <td class="numeric">4.01%</td> <td class="numeric">3.79%</td> </tr> <tr> <td><code>BreadcrumbList > itemListElement > ListItem</code></td> <td class="numeric">3.93%</td> <td class="numeric">3.78%</td> </tr> <tr> <td><code>Organization > logo > ImageObject</code></td> <td class="numeric">2.85%</td> <td class="numeric">3.03%</td> </tr> <tr> <td><code>@graph > BreadcrumbList</code></td> <td class="numeric">3.18%</td> <td class="numeric">2.99%</td> </tr> <tr> <td><code>WebPage > potentialAction > ReadAction</code></td> <td class="numeric">2.92%</td> <td class="numeric">2.71%</td> </tr> <tr> <td><code>WebPage > breadcrumb > BreadcrumbList</code></td> <td class="numeric">2.60%</td> <td class="numeric">2.44%</td> </tr> <tr> <td><code>WebSite</code></td> <td class="numeric">2.49%</td> <td class="numeric">2.30%</td> </tr> <tr> <td><code>@graph > Organization</code></td> <td class="numeric">2.26%</td> <td class="numeric">2.13%</td> </tr> <tr> <td><code>WebSite > publisher > Organization</code></td> <td class="numeric">2.22%</td> <td class="numeric">2.09%</td> </tr> <tr> <td><code>Product > offers > Offer</code></td> <td class="numeric">1.47%</td> <td class="numeric">1.89%</td> </tr> <tr> <td><code>Product</code></td> <td class="numeric">1.41%</td> <td class="numeric">1.73%</td> </tr> <tr> <td><code>@graph > ImageObject</code></td> <td class="numeric">1.80%</td> <td class="numeric">1.71%</td> </tr> <tr> <td><code>ItemList > itemListElement > ListItem</code></td> <td class="numeric">1.71%</td> <td class="numeric">1.69%</td> </tr> <tr> <td><code>@graph > SiteNavigationElement</code></td> <td class="numeric">1.70%</td> <td class="numeric">1.66%</td> </tr> <tr> <td><code>WebPage > primaryImageOfPage > ImageObject</code></td> <td class="numeric">1.67%</td> <td class="numeric">1.59%</td> </tr> </tbody> </table> </div> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=1786787384"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/jsonld_entities_relationships.sql"> View query </a> </li> </ul> </div> </div> <figcaption> <a href="#fig-11" class="anchor-link">Figure 4.11.</a> JSON-LD entity relations. </figcaption> </figure> <p> The most common structure is the relationship between <code>website</code>, <code>potentialAction</code>, and <code>SearchAction</code> schema (accounting for 6.15% of structures). Collectively, this relationship enables the use of a <a hreflang="en" href="https://developers.google.com/search/docs/advanced/structured-data/sitelinks-searchbox"><em>Sitelinks Search Box</em></a> in Google’s search results. </p> <p>Perhaps most interestingly, the next most popular structure (4.85% of relationships) defines no relationships. These pages output only the simplest types of structured data, defining individual, isolated entities and their properties.</p> <p>The next most popular structure (4.69% of relationships) introduces the <code>@graph</code> property (in conjunction with describing a <code>website</code>). The <code>@graph</code> property doesn’t is not an entity in its own right but can be used in JSON-LD to contain and group relationships between entities.</p> <p>As we explore further relationships, we can see various descriptions of content and organizational relationships, such as <code>WebPage > isPartOf > WebSite</code> (3.81% of relationships), <code>Organization > logo > ImageObject</code> (3.03% of relationships), and <code>WebSite > publisher > Organization</code> (2.09% of relationships).</p> <p>We can also see lots of structures related to breadcrumb navigation, such as:</p> <ul> <li><code>BreadcrumbList > itemListElement > ListItem</code> (3.78% of relationships)</li> <li><code>@graph > BreadcrumbList</code> (2.99% of relationships)</li> <li><code>ItemList > itemListElement > ListItem</code> (1.69% of relationships)</li> </ul> <p>Beyond these most popular structures, we see an extremely long-tail of relationships, describing all manner of entities, content types and concepts; as niche as <code>ApartmentComplex > amenityFeature > LocationFeatureSpecification</code> (0.1% of relationships) and <code>AutoDealer > department > AutoRepair</code> (0.04% of relationships) and <code>MusicEvent > performer > PerformingGroup</code> (0.01% of relationships).</p> <p>We should reiterate that these types of structures and relationships are likely to be much more common than our data set represents, as we’re limited to analyzing the home pages of websites. That means that, for example, a website which lists many thousands of individual apartment complexes, but does so on inner pages, wouldn’t be reflected in this data.</p> <figure id="fig-12"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-json-ld-entities-relationships.svg" class=""> <img src="/static/images/2021/structured-data/structured-data-json-ld-entities-relationships.svg" class="" alt="JSON-LD entity relationship as a Sankey diagram." aria-labelledby="fig-12-caption" aria-describedby="fig-12-description" width="1200" height="1200" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="/static/images/2021/structured-data/structured-data-json-ld-entities-relationships.svg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-12-description" data-show-text="Show description of Figure 4.12" data-hide-text="Hide description of Figure 4.12">Show description of Figure 4.12</button> <div id="fig-12-description" class="hidden">Sankey diagram showing a complex interweaving of relationships of the form: “From” -> “Relationship” -> “To”. <code>WebPage</code> is the largest “From” item branching off to multiple “Relationship” types and “To” results (for example <code>WebPage</code> -> <code>PotentialAction</code> -> <code>SearchAction</code>). This is followed by <code>WebSite</code>, then <code>Organization</code>, <code>Product</code>, <code>BreadCrumblist</code>, <code>BlogPosting</code> and then a decreasingly used list of other items. Of the middle “Relationships” column <code>PotentialAction</code> is used most, followed by <code>ItemListElement</code>, <code>IsPartOf</code>, <code>Publisher</code>, <code>image</code> and then a similar long tail of ever-decreasing usage. The “To” column has <code>ImageObject</code> as the most used at the top, following by <code>Organization</code>, <code>SearchAction</code>, <code>ListItem</code>, <code>WebSite</code>, <code>WebPage</code> and then again a longer tail of every decreasing usage. The general sense created by the graph is a lot of different relationships with much cross-usage between the three columns.</div> <figcaption id="fig-12-caption"> <a href="#fig-12" class="anchor-link">Figure 4.12.</a> JSON-LD entity relationship as a Sankey diagram. </figcaption> </figure> <p>The diagram shows the correlation between JSON-LD entities on mobile pages and represent them as flows, visually linking entities and relationships. Each class represents a unique value in the cluster and the height is proportional to its frequency.</p> <p>We’re limiting in the chart the analysis to the top 200 most frequent chains.</p> <p>From the chart we also get first overview of the sectors behind these graphs from general publishing to e-commerce from local business to events, automotive, music and so on.</p> <h5 id="relationship-depth"><a href="#relationship-depth" class="anchor-link">Relationship depth</a></h5> <p>Out of curiosity, we also calculated the deepest, most complex relationships between entities—in both our mobile and desktop data sets.</p> <p>Deeper relationships <em>tend</em> to equate to richer, more comprehensive descriptions of entities (and the other entities they’re related to).</p> <figure id="fig-13"> <div class="figure-wrapper"> <div class="big-number">18</div> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=597889314"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/jsonld_depth_percentiles.sql"> View query </a> </li> </ul> </div> </div> <figcaption id="fig-13-caption"> <a href="#fig-13" class="anchor-link">Figure 4.13.</a> Deepest nested relationship on desktop. </figcaption> </figure> <p>The deepest relationships are:</p> <ul> <li>On desktop, a depth of 18 nested connections.</li> <li>On mobile, a depth of 12 nested connections.</li> </ul> <p>It’s worth considering that these levels of depth may hint at programmatic generation of output, rather than hand-crafted markup, as these structures become challenging to describe and maintain at scale.</p> <h5 id="use-of-sameas"> <a href="#use-of-sameas" class="anchor-link">Use of <code>sameAs</code></a> </h5> <p>One of the most powerful use-cases for structured data to declare when an entity is the <code>sameAs</code> another entity. Building a comprehensive understanding of a <em>thing</em> often requires consuming information which exists in multiple locations and formats. Having a way in which each of those instances can cross-reference the others makes it much easier to “connect the dots” and to build a richer understanding of that entity.</p> <p>Because this is such a powerful tool, we’ve taken the time to explore some of the most common types of <code>sameAs</code> usage and relationships.</p> <figure id="fig-14"> <div class="figure-wrapper"> <a href="/static/images/2021/structured-data/structured-data-json-ld.jpg" class=""> <img src="/static/images/2021/structured-data/structured-data-json-ld.jpg" alt="SameAs usage." aria-labelledby="fig-14-caption" aria-describedby="fig-14-description" width="600" height="638" data-width="600" data-height="638" data-seamless="" data-frameborder="0" data-scrolling="no" data-iframe="https://docs.google.com/spreadsheets/d/e/2PACX-1vT3kZ1Ys-9tId-WBa_8muMzrTAu1Ad5TXYgkopXMmBVc1xmd2N_4PZIpEZEOqRL7baymle0kHzaC6KY/pubchart?oid=1501633178&format=interactive" loading="lazy"> </a> <div class="figure-dropdown nav-dropdown"> <button type="button" class="nav-dropdown-btn js-enable hidden" disabled aria-expanded="false" title="Explore the results"> <span class="visually-hidden">Explore the results</span> <svg aria-hidden="true" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" /> </svg> </button> <ul class="figure-dropdown-list nav-dropdown-list floating-card hidden"> <li> <a href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing#gid=685929099"> View data </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/jsonld_same_ases.sql"> View query </a> </li> <li> <a href="/static/images/2021/structured-data/structured-data-json-ld.jpg"> View image </a> </li> </ul> </div> </div> <button type="button" class="fig-description-button novisibility-until-js" aria-expanded="false" aria-controls="fig-14-description" data-show-text="Show description of Figure 4.14" data-hide-text="Hide description of Figure 4.14">Show description of Figure 4.14</button> <div id="fig-14-description" class="hidden">Bar chart showing the usage of <code>sameAs</code> declarations on pages across the web. Of all mobile in our data: <code>facebook.com</code> occurs on 4.26%, <code>instagram.com</code> occurs on 2.74%, <code>twitter.com</code> occurs on 2.46%, <code>youtube.com</code> occurs on 1.78%, <code>linkedin.com</code> occurs on 1.04%, <code>pinterest.com</code> occurs on 0.60%, <code>google.com</code> occurs on 0.51%, <code>yelp.com</code>, <code>wikidata.org</code> occurs on 0.12%, <code>wikipedia.org</code> occurs on 0.11%, <code>tumblr.com</code> occurs on 0.08%, <code>uptodown.io</code> occurs on 0.10%, <code>vk.com</code> occurs on 0.08%, <code>soundcloud.com</code> occurs on 0.04%, <code>vimeo.com</code> occurs on 0.03%, <code>pinterest.co.uk</code> occurs on 0.03%, <code>tripadvisor.com</code> occurs on 0.03%, <code>t.me</code> occurs on 0.03%, and <code>flickr.com</code> occurs on 0.02%. Desktop usage is similar.</div> <figcaption id="fig-14-caption"> <a href="#fig-14" class="anchor-link">Figure 4.14.</a> SameAs usage. </figcaption> </figure> <p>The <code>sameAs</code> property accounts for 1.60% of all JSON-LD markup and is present on 13.03% of pages.</p> <p>We can see that the most common values of the <code>sameAs</code> property (normalizing from <em>URLs</em> to <em>hostnames</em>) are social media platforms (e.g., facebook.com, instagram.com), and official sources (e.g., wikipedia.org, yelp.com)—with the sum of the former accounting for ~75% of usage.</p> <p>It’s clear that this property is primarily used to identify the social media accounts of websites and businesses; likely motivated by Google’s historical reliance on this data as an input for managing <em>knowledge panels</em> in their search results. Given that this requirement was <a hreflang="en" href="https://x.com/googlesearchc/status/1143558928439005184">deprecated in 2019</a>, we might expect this data set to gradually alter in coming years.</p> <h2 id="conclusion"><a href="#conclusion" class="anchor-link">Conclusion</a></h2> <p>Structured data is used broadly, and diversely, across the web. Whilst some of this is undoubtedly stale (legacy sites/pages, using outmoded formats), there is also strong adoption of new and emerging standards.</p> <p>Anecdotally, much of the adoption we see of modern standards like schema.org (particularly via JSON-LD) appears to be motivated by organizations and individuals who wish to take advantage of search engines’ support (and rewards) for providing data about their pages and content. But outside of this, there’s a rich landscape of people who use structured data to enrich their pages for other reasons. They describe their websites and content so that they can integrate with other systems, so that they can better understand content, or in order to facilitate <em>others</em> to tell <em>their own</em> stories and build their own products.</p> <p>A web made of deeply connected, structured data which powers a more integrated world has long been a science-fiction dream. But perhaps, not for much longer. As these standards continue to evolve, and their adoption continues to grow, we pave a road towards an exciting future.</p> <h3 id="future-years"><a href="#future-years" class="anchor-link">Future years</a></h3> <p>In future years we hope to be able to continue the analysis started here, and to map the evolution of structured data usage over time.</p> <p>We look forward to exploring further.</p> </article> <div class="chapter-links"> <h2 id="explore-results"> <a href="#explore-results" class="anchor-link"> Explore the results </a> </h2> <a class="alt btn" hreflang="en" href="https://docs.google.com/spreadsheets/d/1uEA217YjpX1xdRVBnIz9ekjpjIrpGIh5GwUxvnzJNig/edit?usp=sharing"> <svg width="18" height="18" role="img" aria-hidden="true"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bar-chart-logo"></use> </svg> View results </a> <a class="alt btn" hreflang="en" href="https://github.com/HTTPArchive/almanac.httparchive.org/tree/main/sql/2021/structured-data/"> <svg width="18" height="18" role="img" aria-hidden="true"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sql-logo"></use> </svg> View queries </a> <a class="alt btn" hreflang="en" href="https://github.com/HTTPArchive/almanac.httparchive.org/issues/new?assignees=&labels=bug%2C+writing&title=Issue+with+the+2021+structured-data+chapter"> <svg width="19" height="18" role="img" aria-hidden="true"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> Suggest edit </a> <a class="alt btn" hreflang="en" href="https://github.com/HTTPArchive/almanac.httparchive.org/issues/923/"> <svg width="18" height="18" role="img" aria-hidden="true"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#globe-logo"></use> </svg> Help translate </a> </div> <section class="webmentions js-enable hidden"> <div id="reactions" class="no-reactions"> <h2> <a href="#reactions" class="anchor-link">Reactions</a> </h2> <div class="reactions" data-source="View source"> <div class="reaction-tabs" role="tablist" aria-label="reactions"> <button id="likes-tab" role="tab" aria-selected="true" aria-controls="likes-panel" tabindex="0" class="no-reactions"> <span id="likes-count">0</span> <span id="likes-label" data-singular="like" data-plural="likes" data-plural-alt="">likes</span> </button> <button id="reposts-tab" role="tab" aria-selected="false" aria-controls="reposts-panel" tabindex="-1" class="no-reactions"> <span id="reposts-count">0</span> <span id="reposts-label" data-singular="repost" data-plural="reposts" data-plural-alt="">reposts</span> </button> <button id="replies-tab" role="tab" aria-selected="false" aria-controls="replies-panel" tabindex="-1" class="no-reactions"> <span id="replies-count">0</span> <span id="replies-label" data-singular="reply" data-plural="replies" data-plural-alt="">replies</span> </button> <button id="mentions-tab" role="tab" aria-selected="false" aria-controls="mentions-panel" tabindex="-1" class="no-reactions"> <span id="mentions-count">0</span> <span id="mentions-label" data-singular="mention" data-plural="mentions" data-plural-alt="">mentions</span> </button> </div> <div id="likes-panel" role="tabpanel" tabindex="0" aria-labelledby="likes-tab"> </div> <div id="reposts-panel" role="tabpanel" tabindex="0" aria-labelledby="reposts-tab" hidden> </div> <div id="replies-panel" role="tabpanel" tabindex="0" aria-labelledby="replies-tab" hidden> </div> <div id="mentions-panel" role="tabpanel" tabindex="0" aria-labelledby="mentions-tab" hidden> </div> </div> </div> </section> <section class="authors"> <h2 id="authors"> <a href="#authors" class="anchor-link"> Authors </a> </h2> <ul> <li> <div aria-hidden="true"> <a href="/en/2021/contributors#jonoalderson" tabindex="-1"> <img class="avatar" alt="Jono Alderson avatar" src="https://avatars.githubusercontent.com/u/11629607?v=4&s=200" height="200" width="200" loading="lazy"> </a> </div> <div class="info"> <a href="/en/2021/contributors#jonoalderson"><span class="name">Jono Alderson</span></a> <div class="social"> <a class="twitter" href="https://x.com/jonoalderson" aria-labelledby="author-jonoalderson-twitter"> <svg width="22" height="22" role="img"> <title id="author-jonoalderson-twitter">@jonoalderson on Twitter/X</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> @jonoalderson </a> <a class="github" href="https://github.com/jonoalderson" aria-labelledby="author-jonoalderson-github"> <svg width="22" height="20"> <title id="author-jonoalderson-github">jonoalderson on GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> jonoalderson </a> <a class="website" href="https://www.jonoalderson.com" aria-labelledby="author-jonoalderson-website"> <svg width="22" height="22"> <title id="author-jonoalderson-website">Jono Alderson website</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#globe-logo"></use> </svg> https://www.jonoalderson.com </a> </div> <div class="bio"> Jono Alderson is a digital strategist, marketing technologist, and full stack developer. He enjoys dabbling with website performance, technical SEO, schema.org and all things structured data. </div> </div> </li> <li> <div aria-hidden="true"> <a href="/en/2021/contributors#cyberandy" tabindex="-1"> <img class="avatar" alt="Andrea Volpini avatar" src="https://avatars.githubusercontent.com/u/837037?v=4&s=200" height="200" width="200" loading="lazy"> </a> </div> <div class="info"> <a href="/en/2021/contributors#cyberandy"><span class="name">Andrea Volpini</span></a> <div class="social"> <a class="twitter" href="https://x.com/cyberandy" aria-labelledby="author-cyberandy-twitter"> <svg width="22" height="22" role="img"> <title id="author-cyberandy-twitter">@cyberandy on Twitter/X</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> @cyberandy </a> <a class="github" href="https://github.com/cyberandy" aria-labelledby="author-cyberandy-github"> <svg width="22" height="20"> <title id="author-cyberandy-github">cyberandy on GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> cyberandy </a> <a class="website" href="https://wordlift.io/blog/en/entity/andrea-volpini" aria-labelledby="author-cyberandy-website"> <svg width="22" height="22"> <title id="author-cyberandy-website">Andrea Volpini website</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#globe-logo"></use> </svg> https://wordlift.io/blog/en/entity/andrea-volpini </a> </div> <div class="bio"> Andrea Volpini is the CEO of WordLift, and is currently focusing on the semantic web, SEO and artificial intelligence. </div> </div> </li> </ul> </section> <section class="citation-box"> <h2 id="cite"> <a href="#cite" class="anchor-link">Citation</a> </h2> <details> <summary>BibTeX</summary> <pre id="bibtex-citation"> @inbook{WebAlmanac.2021.StructuredData, author = "Alderson, Jono and Volpini, Andrea and Wijngaert, Koen Van den and Barker, Phil and Brimble, Greg and Driel, Jarno van and Drudge-Willson, Jasmine and Pollard, Barry", title = "Structured Data", booktitle = "The 2021 Web Almanac", chapter = 4, publisher = "HTTP Archive", year = "2021", language = "English", url = "https://almanac.httparchive.org/en/2021/structured-data" }</pre> </details> </section> <div id="cta-container" class="invisible"> <a class="alt btn chapter-cta comment-cta webmentions-cta hidden" href="#reactions"> <svg width="22" height="22" role="img" aria-hidden="true"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#comment-logo"></use> </svg> <span class="num-reactions"></span> <span class="reactions-label" data-singular="reaction" data-plural="reactions" data-plural-alt="">Reactions</span> </a> <button class="alt btn chapter-cta share-cta hidden"> <svg width="22" height="22" role="img" aria-hidden="true" class="apple-icon hidden"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#share-apple-logo"></use> </svg> <svg width="22" height="22" role="img" aria-hidden="true" class="android-icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#share-android-logo"></use> </svg> Share </button> </div> <nav aria-label="Previous and next chapter navigation" id="chapter-navigation"> <a id="previous-chapter" title="Previous Chapter (press 'p' or ',')" href="/en/2021/markup"> <span class="arrow" aria-hidden="true">⌃</span> <span class="chapter-no"> Chapter 3 </span> <span class="chapter-title"> Markup </span> </a> <a id="next-chapter" title="Next Chapter (press 'n' or '.')" href="/en/2021/media"> <span class="arrow" aria-hidden="true">⌃</span> <span class="chapter-no"> Chapter 5 </span> <span class="chapter-title"> Media </span> </a> </nav> </div> </main> </div> <footer id="footer" class="alt-bg"> <div class="container"> <div class="home-logo"> <a class="navigation-logo" href="/en/2021/"> <span class="wa">Web Almanac</span> <span class="line-group"> <span class="pre">By</span> <span class="ha">HTTP Archive</span> </span> </a> </div> <hr> <nav id="footer-nav-items" aria-label="Footer navigation" class="nav-items"> <ul> <li><a href="/en/2021/contributors">Contributors</a></li> <li><a href="/en/2021/methodology">Methodology</a></li> <li> <a class="nav-dropdown-btn js-hide" href="/en/search">Search</a> <div class="nav-dropdown footer search-nav js-enable hidden"> <button type="button" class="nav-dropdown-btn search-button" aria-expanded="false"> Search </button> <ul class="nav-dropdown-list align-right hidden footer-search"> <li class="nav-dropdown-list-part"> <form action="/en/search"> <label for="footer-search-box" class="visually-hidden">Search</label> <input id="footer-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="footer-search-icon"> <title id="footer-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> </ul> </div> </li> <li> <a class="nav-dropdown-btn js-hide" href="/en/2021/table-of-contents">Table of Contents</a> <div class="nav-dropdown footer table-of-contents js-enable hidden"> <button type="button" class="nav-dropdown-btn" aria-expanded="false" aria-label="Table of Contents" > Table of Contents </button> <ul class="nav-dropdown-list hidden footer-list"> <li class="nav-dropdown-list-part"> <a href="/en/2021/">Home</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents">Table of Contents</a> </li> <li class="nav-dropdown-list-chapter foreword"> <a href="/en/2021/table-of-contents#foreword">Foreword</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-1">Part I. Page Content</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/css"> Chapter 1: CSS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/javascript"> Chapter 2: JavaScript </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/markup"> Chapter 3: Markup </a> </li> <li class="nav-dropdown-list-chapter nav-dropdown-list-current"> <span> Chapter 4: Structured Data </span> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/media"> Chapter 5: Media </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/webassembly"> Chapter 6: WebAssembly </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/third-parties"> Chapter 7: Third Parties </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-2">Part II. User Experience</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/seo"> Chapter 8: SEO </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/accessibility"> Chapter 9: Accessibility </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/performance"> Chapter 10: Performance </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/privacy"> Chapter 11: Privacy </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/security"> Chapter 12: Security </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/mobile-web"> Chapter 13: Mobile Web </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/capabilities"> Chapter 14: Capabilities </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/pwa"> Chapter 15: PWA </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-3">Part III. Content Publishing</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/cms"> Chapter 16: CMS </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/ecommerce"> Chapter 17: Ecommerce </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/jamstack"> Chapter 18: Jamstack </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#part-4">Part IV. Content Distribution</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/page-weight"> Chapter 19: Page Weight </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/resource-hints"> Chapter 20: Resource Hints </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/cdn"> Chapter 21: CDN </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/compression"> Chapter 22: Compression </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/caching"> Chapter 23: Caching </a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/http"> Chapter 24: HTTP </a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#appendices">Appendices</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/methodology">Methodology</a> </li> <li class="nav-dropdown-list-chapter"> <a href="/en/2021/contributors">Contributors</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/search">Search</a> </li> <li class="nav-dropdown-list-part"> <a href="/en/2021/table-of-contents#ebook">Ebook</a> </li> <li class="nav-dropdown-list-chapter ebook"> <a href="https://cdn.httparchive.org/almanac/ebooks/web_almanac_2021_en.pdf" data-event="ebook-click" data-label="toc-menu">Ebook PDF (32MB)</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown footer"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Year Switcher">2021</button> <ul class="nav-dropdown-list hidden footer-list"> <li> <a href="/en/2024/structured-data">2024</a> </li> <li> <a href="/en/2022/structured-data">2022</a> </li> <li class="unsupported-year"> <a href="/en/2020/">2020 Home</a> </li> <li class="unsupported-year"> <a href="/en/2019/">2019 Home</a> </li> </ul> </div> </li> <li> <div class="nav-dropdown footer"> <button type="button" class="nav-dropdown-btn js-enable" disabled aria-expanded="false" aria-label="Language Switcher" >English</button> <ul class="nav-dropdown-list hidden footer-list"> <li> <a lang="ja" href="/ja/2021/structured-data">日本語</a> </li> <li> <a class="help-translate" href="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"><em>Help translate</em></a> </li> </ul> </div> </li> </ul> </nav> <nav id="mobile-footer-nav-items" aria-label="Footer navigation" class="nav-items"> <ul> <li><a href="/en/2021/contributors">Contributors</a></li> <li><a href="/en/2021/methodology">Methodology</a></li> <li> <form class="search-nav" action="/en/search"> <label for="mobile-footer-search-box" class="visually-hidden">Search</label> <input id="mobile-footer-search-box" class="search-input" type="search" name="q" placeholder="Search" title="Search" aria-label="Search"> <button class="search-button" type="submit"> <svg width="13" height="13" role="img" aria-labelledby="mobile-footer-search-icon"> <title id="mobile-footer-search-icon">Search</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#search-logo"></use> </svg> </button> </form> </li> <li> <a class="js-hide" href="/en/2021/table-of-contents">Table of Contents</a> <div class="table-of-contents-switcher js-enable hidden"> <label for="table-of-contents-switcher-mobile-footer" class="visually-hidden"> Table of Contents Switcher </label> <select id="table-of-contents-switcher-mobile-footer" data-label="toc-menu-mobile"> <option value="/en/2021/">Home</option> <option value="/en/2021/table-of-contents">Table of Contents</option> <option value="/en/2021/table-of-contents#foreword">Foreword</option> <option value="/en/2021/css"> Chapter 1: CSS </option> <option value="/en/2021/javascript"> Chapter 2: JavaScript </option> <option value="/en/2021/markup"> Chapter 3: Markup </option> <option disabled selected value="/en/2021/structured-data"> Chapter 4: Structured Data </option> <option value="/en/2021/media"> Chapter 5: Media </option> <option value="/en/2021/webassembly"> Chapter 6: WebAssembly </option> <option value="/en/2021/third-parties"> Chapter 7: Third Parties </option> <option value="/en/2021/seo"> Chapter 8: SEO </option> <option value="/en/2021/accessibility"> Chapter 9: Accessibility </option> <option value="/en/2021/performance"> Chapter 10: Performance </option> <option value="/en/2021/privacy"> Chapter 11: Privacy </option> <option value="/en/2021/security"> Chapter 12: Security </option> <option value="/en/2021/mobile-web"> Chapter 13: Mobile Web </option> <option value="/en/2021/capabilities"> Chapter 14: Capabilities </option> <option value="/en/2021/pwa"> Chapter 15: PWA </option> <option value="/en/2021/cms"> Chapter 16: CMS </option> <option value="/en/2021/ecommerce"> Chapter 17: Ecommerce </option> <option value="/en/2021/jamstack"> Chapter 18: Jamstack </option> <option value="/en/2021/page-weight"> Chapter 19: Page Weight </option> <option value="/en/2021/resource-hints"> Chapter 20: Resource Hints </option> <option value="/en/2021/cdn"> Chapter 21: CDN </option> <option value="/en/2021/compression"> Chapter 22: Compression </option> <option value="/en/2021/caching"> Chapter 23: Caching </option> <option value="/en/2021/http"> Chapter 24: HTTP </option> <option value="/en/2021/methodology"> Methodology </option> <option value="/en/2021/contributors"> Contributors </option> <option value="/en/search"> Search </option> <option value="https://cdn.httparchive.org/almanac/ebooks/web_almanac_2021_en.pdf" data-event="ebook-click"> Ebook PDF (32MB) </option> </select> </div> </li> <li> <div class="year-switcher js-show"> <label for="year-switcher-mobile-footer" class="visually-hidden">Year Switcher</label> <select id="year-switcher-mobile-footer"> <option value="/en/2024/structured-data"> 2024 </option> <option value="/en/2022/structured-data"> 2022 </option> <option selected="selected" value="/en/2021/structured-data"> 2021 </option> <option value="/en/2020/"> 2020 Home </option> <option value="/en/2019/"> 2019 Home </option> </select> </div> </li> <li> <div class="language-switcher js-show"> <label for="language-switcher-mobile-footer" class="visually-hidden">Language Switcher</label> <select id="language-switcher-mobile-footer"> <option selected="selected" lang="en" value="/en/2021/structured-data"> English </option> <option lang="ja" value="/ja/2021/structured-data"> 日本語 </option> <hr> <option value="https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Translators'-Guide"> Help translate </option> </select> </div> </li> </ul> </nav> <div id="footer-mobile-social-media" class="mobile-ha-social-media"> <a class="ha-logo" href="https://httparchive.org/" aria-labelledby="httparchive-logo-footer-mobile"> <svg width="70" height="35" role="img"> <title id="httparchive-logo-footer-mobile">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> <ul class="social-media"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-footer-mobile"> <svg width="20" height="20" role="img"> <title id="twitter-logo-footer-mobile">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-footer-mobile"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-footer-mobile">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" rel="me" aria-labelledby="github-logo-footer-mobile"> <svg width="22" height="20" role="img"> <title id="github-logo-footer-mobile">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </div> <hr> <p class="copyright"> <span>© Web Almanac. Licensed under <a hreflang="en" href="https://github.com/HTTPArchive/almanac.httparchive.org/blob/main/LICENSE">Apache 2.0</a>.</span> <br> <a class="accessibility-statement" href="/en/accessibility-statement">Accessibility Statement</a> <span class="footer-bullet">•</span> <a class="rss-feed" href="/en/rss.xml">RSS Feed</a> </p> <a class="ha-logo not-mobile" href="https://httparchive.org/" aria-labelledby="ha-logo-footer"> <svg width="70" height="35" role="img"> <title id="ha-logo-footer">HTTP Archive home</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ha-logo"></use> </svg> </a> <ul class="social-media not-mobile"> <li> <a href="https://x.com/HTTPArchive" aria-labelledby="twitter-logo-footer"> <svg width="20" height="20" role="img"> <title id="twitter-logo-footer">Twitter</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#twitter-logo"></use> </svg> </a> </li> <li> <a href="https://bsky.app/profile/httparchive.org" aria-labelledby="bluesky-logo-footer"> <svg width="20" height="20" role="img"> <title id="bluesky-logo-footer">Bluesky</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#bluesky-logo"></use> </svg> </a> </li> <li> <a href="https://github.com/HTTPArchive/almanac.httparchive.org" rel="me" aria-labelledby="github-logo-footer"> <svg width="22" height="20" role="img"> <title id="github-logo-footer">GitHub</title> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#github-logo"></use> </svg> </a> </li> </ul> </div> </footer> <script async src="/static/js/almanac.js?v=1830c897b7a91e8f3ba7a8c08e07540d" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"></script> <script defer src="/static/js/webmentions.js?v=dbb31a967a22e06b6c1bb62d7a9ff9a0" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-PQ5N2MZG5M" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"></script> <link rel="preconnect" href="https://www.google-analytics.com"> <script defer src="/static/js/web-vitals.js?v=f6f30f40e7d014a2d38f1362c5eb6244" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"></script> <script defer src="/static/js/send-web-vitals.js?v=b7224f484fe762e075d4838286ddb066" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"></script> <script type="speculationrules" nonce="u00xgSRQXuo7tWqtlNmYC-GkHklvX4LW"> { "prerender": [ { "source": "document", "where": { "and": [ {"href_matches": "/*"}, {"not": {"href_matches": "/static/*"}} ] }, "eagerness": "moderate" } ] } </script> </body> </html>