I'm trying to be a good boy and implement the relevant markup and tags that make people happy and clappy. In doing so I have assimilated multiple sources of information, and implemented multiple types of mark-up.

What I'm wondering is: should I?

At first it seems sensible to use as many formats as you can be bothered to implement, so that whatever is looking at your page will gleefully gobble up the data that it likes, but then there's this:

Google's Structured Data Testing Tool

“Ah, you have duplicated your data!” I hear you call. Well, yes, technically I have, but I have done so intentionally using multiple formats:

<!DOCTYPE html>
<html itemscope itemtype='https://schema.org/WebPage' lang='en' vocab="http://schema.org/" typeof="WebPage">
<title>Example.com</title><meta charset=utf-8>
<meta name=DC.format content=text/html>
<meta name=DC.language content=en>
<meta name=DC.rights content="© 2015-2016 Example.com. All rights reserved.">
<meta itemprop='name' name='DC.title' property='name' content='Example.com'>
<meta itemprop='description' name='description' property='description' content='An example web page.'>
<meta name='DC.description' content='An example web page.'>
<meta name='DC.subject' content='Websites'>

<script type='application/ld+json'>
    "@context": "http://schema.org",
    "@type": "WebPage",
    "name": "Example.com",
    "description": "An example web page."

It's all actually done using a PHP template - I only have to enter the data once - but what worries me is the output from Google's Structured Data Testing Tool: it suggests that there are two WebPage elements, which of course there are not.

Yandex simply tells you what it finds:

Yandex's structured data validator

  • Will Google list two web pages, or is Google smart enough to recognise that the data in different formats is separate, even if it is identical?
  • Does it matter? Maybe just being listed is good enough, even if it's duplicate. And maybe that would be Google's problem to deal with, though it would impact me more than them.
  • Should I just stick to one format?

I will be adding more markup as I go, this is just an example, but I thought I would stop now in case I'm wasting my time and only have to remove a chunk of it later.

Any help is of course fully appreciated.

  • "Will Google list two web pages" - do you have two URLs?
    – MrWhite
    Commented Feb 26, 2016 at 0:28
  • That's a good point!
    – Ken Sharp
    Commented Feb 26, 2016 at 1:27

3 Answers 3


It makes sense that Google’s SDTT shows multiple entries¹, because it can’t know if these entities are supposed to represent the same thing or not.

All three syntaxes supported by Google Search provide a way to denote a URI for the entity (@id in JSON-LD, itemid in Microdata, about in RDFa). It’s always a good idea to provide such a URI, but if representing the same entity in different syntaxes, it becomes especially important. If they have the same URI, it’s clear that these entities represent the same thing.

While Google’s SDTT does merge entities with the same URI if the same syntax is used, it doesn’t merge them if different syntaxes are used (but it still displays the URIs, so maybe it’s only the SDTT that doesn’t support it).

So if you decide to provide the same structured data in different syntaxes, you may want to consider specifying URIs that represent the thing (whether Google supports it or not).

But should you provide the same structured data in multiple syntaxes? Hard to give a definite answer without knowing all factors that could play a role in your case. For example, if you know that some of your users want to make use of different tools that support only certain syntaxes, it can make sense to provide your structured data in all these syntaxes.

In the general case, I’d only use one syntax.

¹ Interestingly the SDTT doesn’t seem to create an additional entry for the RDFa specified in the head, but when moving it to the body, two entries get created (one from Microdata, one from RDFa). The behaviour for head is probably a bug in the SDTT.

  • I noticed that about the RDFa. The reason I added the multiple formats is to that it will be covered by than one service. Anyway, I've submitted the site to Google to crawl to see how it handles it and work with the others from there. I shall return....!
    – Ken Sharp
    Commented Feb 26, 2016 at 19:48

A sane ranking would reject redundancy as pointless or penalize it, so I'd stick to a single format. (This will cut down on page bloat and make your pages both compile and load faster, too, not that you likely care too much about that.)

Alas, I don't know the algorithms that Google (or any other automatic indexing site) uses, so I can't guarantee you that this is how it will work.

You actually are being completely redundant, there. Those are simply two ways to get those microformat strings embedded. The key/value pairs are the same and ought to be interpreted the same. Yandex is telling you more about how it found it, and Google is telling you more about what that says.

Given that this is what header metadata is supposed to do, I lean towards using that.

(I have sympathy for JSON users, though, since it's a lot shorter)

  • The problem being that not all indexers use the same format. So by removing one I blind it. Silly I know. Google itself says that it uses different formats for different purposes. Indeed the SDTT itself offers "options" for validating. I can't be bothered to find relevant links right now - it's late. I could test the loading and rendering slowdown but I imagine we're talking microseconds. I am curious now though....
    – Ken Sharp
    Commented Feb 26, 2016 at 1:30

Determine only one type of markup to use and have only that one indexed. Have all other markups be declared as duplicates by inserting the following between <head> and </head> of the HTML code of the duplicate pages:

<link rel="canonical" href="http://domainoforiginalpage.com/path/to/original/document.htm">

Google recommends this approach for webmasters like myself that have a desktop and mobile version of the same site. After all, its the content that is printable that ultimately counts.

Here's info: https://developers.google.com/webmasters/mobile-sites/mobile-seo/separate-urls

You may also want to include the following between <head> and </head> in the orginal document that is to be indexed.

<link rel="alternate" href="http://alternateurl.com/path/to/repeated/document.htm">

You may also add a media parameter if the copied document is meant for specific devices at specific resolutions.

Here's more info on the parameters that can be used for media:



  • The rel='canonical' attribute is certainly a good idea but I don't think it is relevant to the question. How would this avoid duplication of markup data?
    – Ken Sharp
    Commented Feb 26, 2016 at 19:45
  • If you really want to avoid having duplicate copies then choose one type and for the copies, make an HTTP 301 redirect to the original. For this question: "Will Google list two web pages, or is Google smart enough to recognise that the data in different formats is separate, even if it is identical?", rel=canonical allows you to have as many copies as desired and google will choose the one without the canonical tag that all other copied pages point to. And ultimately, the content (the text people see) is whats evaluated regardless of the (X)HTML markup used. Commented Feb 27, 2016 at 3:41
  • But that's in reference to multiple pages containing the same data. That isn't the case I'm talking about: there is one page with multiple formats of markup. rel=canonical has nothing to do with that. Multiple URLs are not being presented to the crawler. Given that the markup points to the same URL that rel=canonical does, then the same question arises.
    – Ken Sharp
    Commented Feb 27, 2016 at 9:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.