<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Dentalog Notes]]></title><description><![CDATA[Dentalog Notes]]></description><link>https://dentalog.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 12:15:12 GMT</lastBuildDate><atom:link href="https://dentalog.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Structured data for health and dental content]]></title><description><![CDATA[Which schema.org types fit an information site, how we mark up dentalog.fr today, and the lessons we apply as we extend the graph.]]></description><link>https://dentalog.hashnode.dev/structured-data-for-health-and-dental-content</link><guid isPermaLink="true">https://dentalog.hashnode.dev/structured-data-for-health-and-dental-content</guid><category><![CDATA[webdev]]></category><category><![CDATA[SEO]]></category><category><![CDATA[structured data]]></category><category><![CDATA[JSON-LD]]></category><dc:creator><![CDATA[Dentalog]]></dc:creator><pubDate>Tue, 10 Nov 2026 19:12:02 GMT</pubDate><content:encoded><![CDATA[<p>Which schema.org types fit an information site, how we mark up dentalog.fr today, and the lessons we apply as we extend the graph.</p>
<p>Structured data does not make a dental page true, and it does not replace a clear author or a careful text. It is a machine-readable restatement of facts on the page: who publishes it, how the page sits in the site, whether a block is a real FAQ, and what kind of document it is. That restatement should stay modest. The page is usually an explanation for the public, not a clinic visit and not a diagnosis.</p>
<p>We are Dentalog, an independent French dental information site. This article looks at schema.org types that fit, then describes what we publish today and the lessons we keep in mind when we add types. The observations below are based on the homepage, legal and contact pages, category hubs, glossary entries, price pages, and a sample of 100 sitemap URLs, checked on 10 November 2026.</p>
<h2>Types that usually fit an information site</h2>
<p><strong>MedicalWebPage</strong> is the schema.org type for a page whose main content is medical information. It can sit on a guide or a condition page when the visible text is health information. It is a poor fit for a marketing landing page, and it should not imply that the publisher provides treatment if the site only publishes information.</p>
<p><strong>FAQPage</strong> is appropriate when the page shows a real question and answer list. Each <code>Question</code> needs an <code>acceptedAnswer</code> that matches the visible text. A heading is not enough if the answers are missing from JSON-LD, and JSON-LD answers should not exist if the reader cannot see them.</p>
<p><strong>Article</strong> or <strong>BlogPosting</strong> describes a dated editorial piece, with a headline, an author, and preferably <code>datePublished</code> / <code>dateModified</code>. Either type can work. If the HTML presents a guide as an article, the JSON-LD should not call it a product or a local business.</p>
<p><strong>Organization</strong> names the publisher: legal name, logo, and a canonical site URL. A standalone <code>Organization</code> (or a <code>WebSite</code> that points at it) helps every page share the same entity, rather than repeating a slightly different publisher block on a few articles only.</p>
<p><strong>BreadcrumbList</strong> describes the path that places the page in the tree: home, category, current document. It is simple and easy to keep in sync with the visible breadcrumb.</p>
<p><strong>Person</strong>, often nested on the article as <code>author</code>, attaches a named writer. It supports experience and expertise signals only if the same identity is visible on the page and the profile is not inflated.</p>
<p>A small, honest <code>Organization</code> example looks like this:</p>
<pre><code class="language-json">{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Dentalog",
  "url": "https://dentalog.fr/",
  "logo": "https://dentalog.fr/dentalog-favicon.png"
}
</code></pre>
<p>A compact <code>BreadcrumbList</code> can be as short as home, category, and the current URL. A <code>FAQPage</code> should include only questions that appear on the page.</p>
<h2>How we mark up dentalog.fr today</h2>
<p>On the public site, JSON-LD is the structured data format we use. We have not added microdata or RDFa.</p>
<p>A <code>BreadcrumbList</code> is present on almost every page in the 100-URL sample, including category hubs, glossary entries, many guides, and the legal pages. <code>FAQPage</code> appears on some articles. One example is <a href="https://dentalog.fr/carie-dentaire-causes-symptomes-traitements">https://dentalog.fr/carie-dentaire-causes-symptomes-traitements</a>, which includes both <code>BreadcrumbList</code> and <code>FAQPage</code>. Some guides use <code>BlogPosting</code> or <code>Article</code>, with a nested <code>Person</code> author (name, image, and a profile URL) and a nested <code>Organization</code> publisher.</p>
<p>That is the current layer: a site-wide breadcrumb, FAQ markup where a visible question and answer list is already on the page, and a richer article object on some guides. We add a medical page type only where the page is medical information.</p>
<h2>Lessons we apply as we extend the graph</h2>
<p>The first lesson is simple: a visible FAQ and a <code>FAQPage</code> object should describe the same questions and the same answers. On a price page such as the implant fee guide at <a href="https://dentalog.fr/implant-dentaire-prix">https://dentalog.fr/implant-dentaire-prix</a>, the structured data should restate the document, and a FAQ block should appear only when that FAQ is on the page.</p>
<p>Other lessons we keep in mind when we add types:</p>
<ul>
<li>We describe ourselves as an information publisher, not as a <code>Dentist</code> or <code>LocalBusiness</code>, because we do not run a practice and we do not offer appointments.</li>
<li>We would add <code>MedicalWebPage</code> only where the page is medical information, and we would not invent medical codes the text never mentions.</li>
<li><code>FAQPage</code> answers must match the visible answers.</li>
<li>Dates in a <code>BlogPosting</code> or <code>Article</code> block should match dates that a reader can also see in the HTML.</li>
<li>The publisher name should be the same wherever an organization is declared.</li>
</ul>
<p>None of this requires a dramatic rewrite. It requires the JSON-LD to describe the page that already exists, and types to be added only where the visible content already supports them.</p>
<h2>Trust signals in the E-E-A-T sense</h2>
<p>Google's quality rater guidance talks about experience, expertise, authoritativeness, and trust. Structured data can repeat those signals. It cannot create them.</p>
<p>For a dental information site, the visible signals matter first: a named author, a publisher with legal pages, dates that can be checked, a clear statement that the text is information rather than a treatment plan, and no invented reviews. On dentalog.fr, article pages already show a named byline and photograph, and, on guides that include a <code>BlogPosting</code> or <code>Article</code> object, that block repeats the person and an organization publisher.</p>
<p>We would not claim that adding <code>MedicalWebPage</code> everywhere would change how the site is understood. As we extend the graph, we do it where the page already supports the type: a stable <code>Organization</code> on the site, <code>FAQPage</code> only where the FAQ is complete and visible, and an article type with dates that match the HTML. We treat structured data as documentation, not as decoration.</p>
]]></content:encoded></item></channel></rss>