我在我的网站上使用了一堆语义标记,来自schema.org,Dublin Core,OGP,FBML,数据词汇。但是因为我使用HTML5,所以W3C验证器不喜欢所有XMLNS
标记,例如
xmlns:schema="http://schema.org/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:og="http://ogp.me/ns/book#"
xmlns:fb="http://www.facebook.com/2008/fbml"
xmlns:v="http://rdf.data-vocabulary.org/#"
问题是:如果我不使用XMLNS
(或prefix:dcterms
等),搜索引擎是否仍然会理解网站的语义?是的,Google Rich Snippets测试工具仍会显示所有标记......但问题仍然存在。
使用这样的标记:
<html>
<head>
<meta property="og:title" content="Book-Title" />
<meta name="dcterms.title" lang="de-DE" content="Book-Title"/>
</head>
<body>
<div itemscope itemtype="http://schema.org/Book">
<h2 itemprop="name">Book-Title</h2>
</div>
</body>
</html>
答案 0 :(得分:2)
您在此处使用三种不同的方式指定元数据:
meta
- name
您在<meta name="dcterms.title" lang="de-DE" content="Book-Title"/>
中使用Dublin Core的情况很好,因为您在这里使用了registered HTML5 name
value。
您使用带有schema.org词汇表的Microdata很好,因为您指定了完整的URI:
<div itemscope itemtype="http://schema.org/Book">
<h2 itemprop="name">Book-Title</h2>
</div>
使用<meta property="og:title" content="Book-Title" />
您正在使用RDFa语法(因为property
属性),因此您需要指定URI,因为此处og
是前缀。
您可以使用完整的URI而不是前缀,例如:
<meta property="http://ogp.me/ns#title" content="Book-Title" />
您可以使用html
属性在head
或prefix
元素中指定前缀:
<head prefix="og: http://ogp.me/ns#">
<meta property="og:title" content="Book-Title" />
</head>
或者您可以使用meta
- name
代替RDFa(与您使用Dublin Core dcterms.title
的方式相同),因为og:title
是已注册的HTML5 { {1}}值(如果你想在这里停止使用RDFa,取决于你的用例):
name