Prepare structured data before launching a dentist’s website (part III)

We explore SEO’s structured data, rich snippets, testing tools and best practices for a dentist’s website

Omar Benseddik
8 min readMay 1, 2019
Hey Google, tell me

When you ask Google how to whiten your teeth, because hey, you are probably not so happy with their current state, Google asks websites back how to whiten teeth.

Google will go through millions of websites and gather the correct information for you. Not only it will look for the correct information, but it will aim to present it to you in a good-looking display.

When you do your search, this is what you get:

A rich snippet with instructions

What you are presented with, is a series of instructions that explain how to naturally whiten your teeth. The format presented to you did not get to appear randomly. Someone did prepare a set of structured data and inserted it in the code of the website so you get to see a list.

Google did recognize the structured data and displayed it at the top of the Search Engine Result Page (SERP), facilitating your search and saving you time.

The example above is what you call a rich snippet.

A rich snippet is simply a search result with more data displayed (e.g. stars and pictures).

Let’s look at a few other examples since there are more formats:

A bit promising, wikiHow — show us your degree in dentistry?
We got an image here. Fancy!

You get the idea. They look better than plain text and increase the likelihood to receive a click (therefore increasing click-through rate — CTR), pushing the website to position itself higher in the rankings.

Note that using structured data per se is not an SEO ranking signal, but if you manage to get a rich snippet, there is a stronger likelihood of people visiting your website first.

As we (Seif, Aouss and I) are building a website for my mother who’s a dentist, we are exploring how to create rich snippets with the help of structured data. 📑

Let’s bite this topic together.

Short note: when I first heard of this topic I felt intimidated thinking it was way too technical but realized it is not as complex as it looks.

Let’s not have any “cavity” in our knowledge

Skip the other two types of languages

Let’s first understand what a few key terms mean:

Structured data

This is a format you use to present information in a certain manner by classifying content in different boxes.

Take for example a dentist’s website. Instead of writing plain code for the following:

  • Address
  • Phone number
  • Name of the dental clinic

You could structure that data in a way for the engine to easily identify what it stands for. When you insert the code in your website, you follow certain guidelines so that those elements appear after a certain tag. The data you add is in the form of key-value, allowing the search engine to quickly pick it up.

Check this out:

<script type="application/ld+json">
"@context": "",
"@type": "Dentist",
"address": {
"@type": "PostalAddress",
"addressLocality": "Casablanca",
"addressCountry": "Morocco",
"streetAddress": "8 Boulevard Yacoub El Mansour"
"description": "A top-class dental clinic located in the heart of Casablanca that offers multiple dental services.",
"name": "Centre Dentaire Dr. Sbaï",
"telephone": "+212522236921"

As you can see, each data is marked up with a previous tag that tells the search engine Google what we are talking about. Because each individual element is now structured, Google can search your dental clinic business by address, phone number, name and so on. 📡

The advantage of using such structured data is creating the possibility for Google to generate a rich snippet, like the ones we saw above.

Let’s define both Schema and JSON-LD.


Google supports three types of languages when it comes to structured data. The recommended one in the documentation is JSON-LD. So, let’s just use it and not bother with the other two. Dead simple.

JSON-LD stands for JavaScript Object Notation — Linked Data. Its primary purpose is object identification and therefore helps with structured data markup.


When you want to know how to structure your data, you can head to either:

Schema or Google’s search gallery

Both are resources with a multitude of markups: book, event, job posting, recipe, and so many others.

Google clearly states that we should rely on their documentation rather than Schema’s. However, since the “Dentist” markup is not available there, we’ll stick with Schema for this one.

Here we come

How do we move on — is there a “bridge”?

Once you search for your category, you’ll end up with a long list of properties. You are not meant to fill each one of those.

Let’s stick with the Dentist example.

How do I do that? Hah! Great question. The good news is that you don’t need to manually write the JSON-LD, there are tools for that. ⚒️

Head to Merkle and select the markup you want to create:

There are many alternatives

Start populating the fields:

We haven’t launched the website yet — this is why it shows as Invalid URL

Once you fill the relevant fields, you can either copy on the top right the JSON-LD or head directly to Google Structured Data Testing Tool (SDTT).

SDTT helps you validate your data and informs you if there’s anything to fix or add, let’s have a look:

Error and warning! Missing image and recommended adding a price range

I did not include an image nor price range. Let’s add those and try again:


Cool! No errors and no warnings.

When we click on Preview, this is what we get:

For your image to be in the enriched snippet for your local business (e.g. dentist), your picture has to be indexable and crawlable. As we did not launch the website yet, the preview will not show the image.

Just because the structured data is validated, does not mean that the information is inherently correct (in the example above I perhaps have inserted incorrect information).

If you type the wrong phone number, well, it’ll be validated but people will end up calling the pizza shop instead. 🍕

Once we have launched the website with images, we have to ensure a fresh and updated image sitemap. Follow the documentation to understand more.

Are we limited to one markup only? Nope!

For the sake of simplicity, I have only presented the “Dentist” one, but plan to add a Q&A page, Social Profile, and a Review Snippet. As we keep adding structured data markup, we have to keep updating the sitemap.

Where do we “implant” this data?

Dentists are not nice

Now that you have created your JSON-LD and tested it, it’s time to put it on your website’s code.

If you are a WordPress user, there are plugins that can assist you (All in One Schema Rich Snippets, WP SEO Structured Data Schema).

But given how we aim to have a fast website, we code the website from scratch. #Seif

Insert the JSON-LD inside a <script> tag (see above) in either the <head> or <body> tags of the page.

Ta-da! That simple.

Need inspiration? Snoop on your competitors with the Chrome extension OpenLink Structured Data Sniffer and understand what others do. 🐶

My website is not live yet — is there a “suture”? (skip if this is not the case for you)

Following the documentation, if your website is not deployed and you would still like to test the markup, you can do so.

You have to expose a tunnel to your page to use the SDTT. Doing so is preventive and allows you to test the page before going live.

A solution to this is ngrok. It will create a public URL that connects to a non-public page on the local host or firewalled server, and it will allow you to test the page.

If it does not work, you have to make sure that the page is not protected by robots.txt (or another blocking element).

Alternatively, you could try accessing the page using incognito mode.

How do you avoid “fractures”?

SEO can taste disgusting to some

There are many mistakes people make when playing with structured data.

🔱 When you submit a data markup, do not get hasty expecting to see your rich snippet immediately (if at all).

Google still has to re-crawl and re-index your page. If deemed worthy, you will get there.

🔱 Do not publish your structured data without testing it first.

🔱 Include all the required properties to be eligible for rich snippets.

🔱 Once you deploy a few pages with structured data, head over to Google Search Console and use the URL inspection tool to make sure the page is not blocked by elements that could refrain you from indexing.

🔱 Do not hide the marked-up content from the users. If you include elements in the marked-up data and not on the page, Google will consider that you are trying to cheat the system and will penalize you.

For example, if you mark aggregate reviews yet hide them on the page, that is a no-no.

🔱 Make sure to be a verified site owner if you go for Local Business markup.

Ending on a dry-mouth? Nope!

Once the website is launched (May), I will monitor the health of the pages in Google Search Console and update this article to share with you how to use the Rich Results Tool.

To sum this up, generating structured data is not that complex, you can do it without being a developer, and you should leverage its power to attract more website visitors.

Recall last time on the 1st April, I told you I’d post on the 1st of the next month? It was not a joke. 🤡

Cracking consistency

Stay tuned for the 1st of June and follow this account. 🐴

Recommended tools

🔧 Google Structured Data Testing Tool

🔧 Google Structured Data Markup Helper

🔧 Schema Markup Generator (JSON-LD)

🔧Another JSON-LD generator

🔧 Free Image Sitemap Generator

🔧 ngrok

🔧 Chrome extension: open link structured data


📚 Google ‘s documentation: image sitemaps

📚 Schema

📚 Presentation from Izzi Smith sharing insights

📚 Testing with a non-public URL

📚 Search result categories

📚 Codelabs: learn how to use structured data