9 ms·
JSON-LD explained for personal websites
- mananaysiempre 4mo agoA bit disappointing that (IIUC) for the common parsers you have to say everything twice, in HTML and in the accompanying JSON-LD form even though RDFa exists for the exact purpose of letting you point at the values already present in your markup. (Admittedly RDFa is perhaps too flexible for its own good when you just want to mark up some stuff, but if you’re writing a full parser anyway dealing with a bit of excessive cleverness in the format should not be too bad.)
- panzi 4mo agoAnd then there is https://schema.org/ https://schema.org/ It's the item* attributes, e.g.: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/... Also Dublin Core in <meta> tags. Why do they keep adding conflicting meta data formats to HTML!?!
- 9dev 4mo agohttps://xkcd.com/927/ https://xkcd.com/927/
- captn3m0 4mo agoThere is also microformats.
- klodolph 4mo agoI think if you are using Dublin Core, it’s because you’re a library. Maybe I am off the mark, but that is the sense I get from this—not all these standards should be used for all pages on the web. I think you should just think about what metadata you actually care about, and the main metadata I care about (choose your own list) is authorship, publish date, last update, subject keywords, thumbnail (OpenGraph 1200x630), and summary. There’s a long list of additional metadata that I could put in my webpages because there are standardized ways to do it, but, why bother?
- rhdunn 4mo agoDublin Core is effectively similar/related to schema.org's CreativeWork. If you have a creative work (audiobook, short story, news article, etc.) then Dublin Core is applicable, in addition to the corresponding CreativeWork subtype. And yes, you should use whatever metadata is applicable to your site and test it against the search engines/etc. you want to support to make sure that they are reading the metadata correctly.
- jauco 4mo agoTo be fair schema.org and dublin core say “when a property is name ‘title’ it means …” and you can expect to find the following properties… Json-ld says: if you want to know whether the “title” property means the schema.org or the dublin core variant then you can find out which it is by <json-ld algorithm> So you’d always use json-ld _with_ schema.org or something.
- alwillis 4mo agoThey don't conflict; they were designed to work together. You can have schema.org (in JSON-LD, RDFa, or micro data) on the same page as Dublin Core, etc. For example, there's no explicit property in schema's Person type [1] for a nickname. But the FOAF standard does [2]. Just add FOAF to the JSON-LD context: { "@context": { "@vocab": "https://schema.org/", "foaf": "http://xmlns.com/foaf/0.1/", "pronouns": "https://schema.org/pronouns" } You now use the FOAF nickname property: "@type": "Person", "givenName": "Timothy", "familyName": "Berners-Lee", "foaf:nick": "TBL", You can do the same thing with Dublin Core, DBPedia, etc. [1]: https://schema.org/Person https://schema.org/Person [2]: https://xmlns.com/foaf/spec/#term_nick https://xmlns.com/foaf/spec/#term_nick
- klodolph 4mo agoIMO this is going overboard. Any time you are duplicating data from HTML into JSON-LD, consider just omitting that data from JSON-LD, unless the data isn’t consistently present in HTML (because it is a bitch to be consistent about this stuff). I tried using RDFa and liked the property that it was theoretically less redundant, but switched to JSON-LD because it JSON-LD is just easier to get working. And this is speaking as somebody who uses a hand-rolled static site generator—the issue here is that whether information is present in the raw HTML is something contextual, and if something isn’t present in the HTML then you need to put it somewhere else or it’s not mechanically parseable from the page. Like, to a human reader, a post on “Alice’s Blog” is assumed to be authored by Alice, so I may omit the “by Alice” text from the document, and then I would want to put that metadata in the page some other way. Putting the metadata in JSON-LD lets me just be dumb about it. The metadata is always in JSON-LD, and the HTML may or may not contain an explicit representation of that same metadata. Easy. But the JSON-LD does not need to contain the URL of the page (which is <link rel=canonical>) or the title (which is in <title>), for example.
- alwillis 4mo ago> I tried using RDFa and liked the property that it was theoretically less redundant, but switched to JSON-LD because it JSON-LD is just easier to get working. For me, it depends on the project. For personal projects, I tend to use RDFa; otherwise, JSON-LD.
- mariusor 4mo agoI solved this by building Web Components out of them. Basically the HTML needs just a custom template tag, which includes a script with the JSON-LD payload. The component corresponding to the template, initializes itself based on that data. See here for an example: https://releases.bruta.link/releases/2026/June/21 https://releases.bruta.link/releases/2026/June/21 Granted, all of this is not for SEO purposes, but part of the ActivityPub ecosystem, which also uses JSON-LD for data encoding.
- lenkite 4mo agoWe have semantic HTML, but for some weird reason we need to yet again re-express the semantic meaning of our website in bespoke weird JSON in a script tag that the browser won't process.
- klodolph 4mo agoI have used JSON-LD in my own websites and found that it fills a separate need from semantic HTML. Your semantic HTML will specify things that the browser processes, like the title and headings. The JSON-LD data is metadata, like date created, date updated, tags, authorship. These things can be expressed in the HTML using micro data, but I stopped using micro data because JSON-LD was easier. The JSON-LD I populate from the same data that I use to generate my site, and I use the JSON-LD metadata to generate things like index pages (list of blog posts from 2024, all posts related to topic X, etc). The main consumers of JSON-LD are search engines. If you are interested in getting offended, then think about how we are also putting OpenGraph metadata in our web pages. Two different metadata formats for the same page.
- tommica 4mo agoStructured data exists yo pass the metadata. Issue with it is that of might impact the way your html needs to be structured, this can be messy.
- rglullis 4mo agoWhat I see as the ideal would be a world where servers and browsers could do content negotitation, and have browsers attempting first to request only the json-ld from the website and using its own internal renderer format.
- _heimdall 4mo agoMicrodata is also a thing, and if I'm not mistaken supports the same vocabulary as JSON-LD (schema.org is a good resource). That said, JSON-LD has the default for a while now, much like how we largely abandoned REST for RPC. I'm not actually sure if microdata is still supported by all the important parsers today, I've defaulted to using LD for any site I've built for clients, especially ecommerce sites where I want Google Search exposure. Edit: its worth noting the comparison with semantic HTML. Semantic HTML helps define the structure of the markup but not real world context like "this is a product for sale" or "this is a train schedule."
- deleted 4mo ago[deleted]
- tommica 4mo agoSuper useful article, wish that had existed in my seo days. I had misunderstood the type field, because to me I was often just linking to a webpage, even if it is for a saas, the marketing page is still a webpage.
- klodolph 4mo agoI would encourage people who have the pragmatic bent to read about JSON-LD from the Google documentation for web sites; https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data https://developers.google.com/search/docs/appearance/structu... You’ll also notice that a lot of the information is relevant to only a small subset of sites. Rotten Tomatoes can publish the critic rating for movies using JSON-LD, but that’s not relevant for me (even if I write a review for a movie). JSON-LD is nice because it’s easy and it is actually used by search engines. Yes, it can duplicate information in the web page itself, but I think the dream of perfectly annotating information so it only appears exactly once in your document is, well, a dream of spherical cows and massless ropes. It takes human effort to make a webpage and I am ok with a little duplication in the final product. My <h1> duplicates information in <title> anyway.
- jack_pp 4mo agoBut duplicating data will increase water expenditure. /s
- inigyou 4mo ago403. That’s an error. Your client does not have permission to get URL /search/docs/appearance/structured-data/intro-structured-data from this server. That’s all we know.
- edent 4mo agoYou can use the JSON-LD for your movie reviews even if you're not a big site. I use it on my site for reviews (books, games, movies) and it seems to show up in most search engines with the star rating etc.
- tannhaeuser 4mo agoFedi review sites (neodb/reviewdb, bookwyrm) make use of JSON-LD in a big way. Their entire data federation is based on ActivityStreams and JSON-LD, and so is the review data they get authors to share on their federation along with legacy sites such as goodreads. They're also considerate of proper RDF mappings (context namespace, RDF-friendly encoding of collections, etc.).
- JdeBP 4mo ago> It can aid web crawlers in understanding the semantic structure of your site, qualifying you for richer link previews, and even potentially improving your search ranking. This is fighting the last war, to stretch a metaphor. As far as I and my WWW site are concerned, Google has nowadays switched to giving people lengthy LLM-generated versions of my stuff, with errors, above pointing people to my actual stuff. 'Breadcrumbs' and getting a pretty display name instead of the domain name, don't address the fact that Google de-prioritizes all of that, pretty tweaks or no, nowadays. This is a lot of effort for stuff that people visiting my actual site directly will never see, and which people using Google will not find above the fold of its own massively LLM-ized version of stuff.
- reaperducer 4mo agoYep. For years we loaded up web sites with "microdata" tags and attributes in the hope that they would drive traffic. All it did was train Google's AI so people would never leave Google.
- jack_pp 4mo agoConsidering that LLMs will give increasingly better sources for their stuff you still want to make it easy for Google to index your stuff. Also keep in mind if your site is better indexed by crawlers you can literally influence future LLMs
- giaour 4mo ago> Also keep in mind if your site is better indexed by crawlers you can literally influence future LLMs Ah, what a glorious fate to aspire to. Most people I know who have maintained blogs do so to build their personal brand, normally because they make a living through writing or consulting. Gently influencing the pre-tuning weights of future models is just providing unpaid labor to hyperscalers.
- jack_pp 4mo agoI remember reading somewhere that you can influence Gemini search for example, say you're selling vacuum cleaners, you want to make a landing page for it basically saying it is the best vacuum in existence and Gemini will recommend it above others or something like that. LE: so if you're consulting for Elixir or whatever, maybe it can help to make a "hidden" page only for LLM search where you basically lie about yourself making yourself to be the utmost Elixir expert on the planet
- gomoboo 4mo agoDo these attributes actually help with search engine visibility or do they just make it easier for search engines to keep users from leaving the search page? Honest question here.
- prima-facie 4mo agoImagine if we had managed to deliver on the original promises of the Semantic Web, instead of having these locked-in platforms. How incredibly useful all that linked and structured data would've been to humans and LLMs at the same time. https://www.w3.org/2001/sw/ https://www.w3.org/2001/sw/
- deftio 4mo agoIt seems useful but then we have to manage similar metadata in multiple places, so hygiene around consistency becomes important
- arthurlockman 4mo agoIf only there was some kind of markup language for websites where different tags could have different meanings. If only.
- bryanhogan 4mo agoSome additional information, what you actually want to implement for every website is Structured Data, using the Schema.org vocabulary. JSON-LD is one of the ways to do this. There's also RDFa and Microdata. I used this article and can recommend it when I first learned about it: https://neilpatel.com/blog/get-started-using-schema/ https://neilpatel.com/blog/get-started-using-schema/ You can try exploring what data to add with this tool: https://technicalseo.com/tools/schema-markup-generator/ https://technicalseo.com/tools/schema-markup-generator/ The full list can be found on the schema.org site: https://schema.org/docs/schemas.html https://schema.org/docs/schemas.html
- bryanhogan 4mo agoForgot to mention, Google also has an introduction to Structured Data that is helpful: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data https://developers.google.com/search/docs/appearance/structu...
- dieselgate 4mo agoI've worked on professional SEO teams for a large stock photography org and this needs to be higher. JSON-LD is just the most attainable technical "bolt-on" implementation of structured data from both a server and client-side rendered web architecture.
- hi_hi 4mo agoIn the old days (a few weeks ago) you could read google’s SEO recommendations and guidelines. This was great for debunking many a recommendation from clueless SEO agencies trying to force requirements on dev teams. Is there any similar recommendations available for their new, LLM, world?
- denkmoon 4mo agoReinventing XML but worse.
- inkyoto 4mo agoIt is exactly the other way round: JSON-LD has largely displaced and superseded RDF/XML in many web applications.
- sandeepkd 4mo agoThere is a fine balance after which the symbiosis turns into exploitation. Websites trying to get visibility with the help of search engines was mutually beneficial to a large degree. However this is altogether going in a direction where the website owner is getting nothing for their sweat work.
- ghssds 4mo agoFor rich link previews, OpenGraph[0] is much more often supported than JSON-LD. For seo purpose, the kind of JSON-LD a search engine will support is very specific and limited. You are far better consulting the targetted search engine's documentation (Google[1], Bing[2]) and following that. Anything else is a waste of time. Outside of search engines, again, without a specific purpose, JSON-LD is mostly useless. If you have a specific need that requires JSON-LD, go ahead and include the data you know will be useful. Including anything else is like shouting into the void. IndieWeb[3] does use structured data but considers JSON-LD a DRY violation and uses Microformats[4] instead. 0: https://ogp.me https://ogp.me 1: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data https://developers.google.com/search/docs/appearance/structu... 2: https://www.bing.com/webmasters/help/marking-up-your-site-with-structured-data-3a93e731 https://www.bing.com/webmasters/help/marking-up-your-site-wi... 3: https://indieweb.org/ https://indieweb.org/ 4: https://microformats.org/ https://microformats.org/
- zwu-var 3mo agoThis is exactly my gripe with such structured web standards! There are just way too many for me to bother with, and none of them has good support.
- psaltaren 4mo agoThanks, I've seen these JSON-LD "updates" in Codex and Claude way to long without understanding what it's all about :)
- codelong888 4mo ago[flagged]
- flexagoon 4mo agoIsn't this just Opengraph but in json? What's the advantage?
- unkl_ 4mo agoI found out some years ago that emails that have the fancy features like plane tickets embedded or tracking information are all done with JSON-LD in the emails. AFAIK only gmail supports it, though. EDIT: some more info about it: https://www.emailonacid.com/blog/article/email-development/schema-markup-gmail/ https://www.emailonacid.com/blog/article/email-development/s...
- bob778 4mo agoOutlook and iCloud support a subset (like tickets and reservations) too
- jgalt212 4mo agoSince 2024, the traffic to our content based marketing pages is down about 85%. What I don't get is how Google has not been terribly impacted as well by the rise of the zero click SERP. Their SERP ad revenue, which is click-based, must be down by a similarly egregious amount. That being said, I've been unable to find any published numbers to refute or confirm this thesis.
- tosief 4mo agowe use JSON-LD on our SaaS and it made a noticeable difference for rich snippets. the FAQ Page schema in particular, google started showing our FAQ answers directly in search results within a week of adding it. one thing i learned the hard way: keep the FAQ answers in the JSON-LD identical to what is viseble on the page. google will ignore schema if the text doesn't match the page content.
- mring33621 4mo agoi understand the desire, but this is torture, unless you can get a machine to generate it for you.
- account42 4mo agoI'm not even sure what reason you'd have for adding this to a personal website in $current_year. Making things easier for automated data extractors isn't really what I'd consider a priority.
- brachkow 3mo agoOne of the most frustrating experiences building my app was that search engine discovery doesn't work by itself. My expectation was that I would make an SSR-rendered website, with sane content and meta tags, and my app would appear at least on the 1-3 page of search, because clever search engines would parse it. In reality, I need to do all the JSON-LD, landings proposed not for sales but for SEO, fighting with Google Search Console, getting proper backlinks, etc. And only after that could I hope that my project would appear at least somewhere.
- dewey-decibel 3mo agoI work in website monitoring we specifically had a client ask if we could add support for testing on page JSON-LD. Like other commenters have said, it seems what people are most focused on is the structured data that Google uses for rich results (AggregateRating, Event, Organization for the knowledge panel). FAQ Page used to get a lot of attention as well but for the record let it be known that between May and August 2026 Google is removing in phases support for FAQPage rich results. Google still uses the schema but no longer for rich results.