2017-10-06 4 views
2

그래서 저는 Schema.org를보고있었습니다. 나는이Schema.org <head> HTML 마크 업 : 메타 태그 만 사용할 수 있습니까?

<html itemscope itemtype="http://schema.org/Article"> 

<html> 태그를 변경할 필요가 또는 난 그냥 내 <head></head> 블록 내에서만 메타 태그를 사용할 수 있습니까?

<meta itemprop="name" content="The Name or Title Here"> 
<meta itemprop="description" content="This is the page description"> 
<meta itemprop="image" content="http://www.example.com/image.jpg"> 

답변

1

섹션은 약 Microdatawhatwg.org에 명시 적으로 HTML 문서의 head - 요소에 meta -elements을 언급하지 않습니다. 결론적으로 유효한 마크 업을 사용하려면 itemscope이 필요합니다.

당신이 schema.org의 설명을 살펴 경우이 부분에 대한 웹 페이지을 확인할 수있는 것들 :이 당신이 돈에 따르면

[…] if they [the properties] are found outside of an itemscope , they will be assumed to be about the page.

:

Every web page is implicitly assumed to be declared to be of type WebPage, so the various properties about that webpage, such as breadcrumb may be used. We recommend explicit declaration if these properties are specified, but if they are found outside of an itemscope, they will be assumed to be about the page.

흥미로운 부분이있다 html - element에 itemscope이 필요 없습니다. 그러나 그것은 제안보다 명확한 명세를 읽습니다.


Google의 Structured Data Testing Tool에서도이 동작을 볼 수 있습니다. 이 코드를 실행할 때 :

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta itemprop="name" content="The Name or Title Here"> 
     <meta itemprop="description" content="This is the page description"> 
     <meta itemprop="image" content="http://www.example.com/image.jpg"> 
    </head> 
</html> 

... 어떤 데이터도 캡처하지 않습니다. 이 오류없이 즉시 당신이 지정되지 않은 유형 결과 itemscope를 추가, 데이터를 캡처 시작합니다 : 실패하거나 적어도 너무 적은 특성과 같은 오류가 발생합니다 itemtype="http://schema.org/Article"를 사용

Screenshot from Google's tool

이 유형 주어진다 Article.


모든 다른 유형은 schem.org의 WebPage overview에서 찾을 수 있습니다. 어쩌면 하나가 전체 페이지에 적합 할 수도 있습니다.

+0

굉장히 간단하고 효과적이다. 나는 기사의 블로그 웹 사이트 비디오 등을 전환 한 후 어쨌든간에 태그를 수정하는 것이 사이트가 쉽지 않다라고 생각한다. 생각하고 오픈 그래프에 충실하십시오. – C0nw0nk

+1

@ C0nw0nk Open Graph의 경우에도 실제로는 '가 필요하지만 대부분의 파서에서는 필요하지 않습니다. [ogp.me] (http://ogp.me)를 참조하십시오. – insertusernamehere

+0

당신은'itemscope만이 정의되지 않은 타입으로 존재한다면 말했습니다 .' 기사, 비디오, 이미지, 블로그 등 모든 유형에 보편적으로 사용될 수있는 정의되지 않은 타입의 예를 줄 수 있습니까? – C0nw0nk

1

주어진 예에 따르면 scheme.org에서 예 모두 Google 용으로 의무화되어 있습니다.

은 데이터가 제대로이 도구를 사용하여 캡처되고 있는지 여부를 확인하려면 :

Structured data testing tool

을 당신이 itemtype="http://schema.org/Article"을 생략하면 데이터가 캡처되지 않습니다 것을 볼 수 있습니다 위의 도구를 사용하여.

+0

정보 주셔서 감사합니다 :) 나는 웹 사이트, 기사, 비디오, 이미지에 적용 할 수있는 보편적 인 스키마 속성이 있습니다. 위의 itemtype은 내가 모든 것을위한 함수가 환상적 일 것이라고 적용 할 수 있다면 기사를위한 것입니다. – C0nw0nk

+0

가장 일반적인 방법은 http://schema.org/CreativeWork입니다. 가능하면 범위를 좁히십시오. :) – Vincent1989

+0

또한 스키마 마이크로 데이터가 html과 간섭하기 때문에 구현하기가 다소 지저분 해지고 있다는 점에 유의하십시오.Google에서는 https://developers.google.com/search/docs/guides/intro-structured-data 대신 JSON-LD를 사용하도록 권장했습니다. – Vincent1989

4

속성은 항목에 속해야합니다. itemscope 속성을 가진 항목을 만들고 (이 항목에 itemtype 속성을 부여 할 수 있습니다).

itemscope이 없으면 마크 업 예가 잘못되었습니다.

단지 head 요소 내에 마이크로 데이터를 제공 할 수있다, 그러나 그것은 두 가지 이유 때문에하지 않는 것이 좋습니다 : 마이크로 데이터가 기존 마크 업에 사용하기위한 한

  • . 특정 meta/link 개의 요소를 head (with itemref, see an example)에 포함하는 것이 일반적 일 수 있지만 대부분의 콘텐츠는 일반적으로 body입니다. head의 요소 만 사용하려면 대부분의 콘텐츠를 복제해야합니다. 하지만 그 길을 가고 싶다면 might prefer to use JSON-LD.

  • head은 그룹화 요소 (예 : div)의 사용을 허용하지 않으므로 Microdata를 표현하기가 복잡해집니다. 모든 속성에 대해 itemref을 사용해야하고 모든 항목에 대해 style과 같은 요소를 오용해야합니다 (예 : the first snippet in this answer 참조).

귀하의 예는 다음과 같이 수 : 빨리 당신이 더 필요로

<head itemscope itemtype="http://schema.org/Article"> 
    <meta itemprop="name" content="The Name or Title Here"> 
    <meta itemprop="description" content="This is the page description"> 
    <link itemprop="image" href="http://www.example.com/image.jpg"> 
</head> 

그러나 :

<head> 
    <style itemscope itemtype="http://schema.org/Article" itemref="p1a p1b p1c"></style> 
    <meta id="p1a" itemprop="name" content="The Name or Title Here"> 
    <meta id="p1b" itemprop="description" content="This is the page description"> 
    <link id="p1c" itemprop="image" href="http://www.example.com/image.jpg"> 
</head> 

당신이 head 요소에 itemscope를 사용할 수 있다면, 그것은 더 나은 것 하나의 항목 (일반적으로 Organization/Person 인 경우, author 등)보다 빠릅니다. k는 더 이상 필요하지 않으며, 첫 번째 발췌 문장과 같은 해결책이 필요합니다.

body 요소 내에서 meta/link 요소를 Microdata에 사용할 수 있습니다. 이렇게하면 itemscopediv 요소를 사용할 수 있으므로 더 쉽게 사용할 수 있습니다.

<div itemscope itemtype="http://schema.org/Article"> 
    <meta itemprop="name" content="The Name or Title Here"> 
    <meta itemprop="description" content="This is the page description"> 
    <link itemprop="image" href="http://www.example.com/image.jpg"> 
</div> 

이 (내가 link 요소와 image 속성에 대한 meta 요소를 교체 using meta is invalid for this purpose 이유는 대신 기존 콘텐츠를 마크 업의 콘텐츠를 복제 그래서하더라도, body에서이 작업을 수행하는 것이 바람직 할 것 .)

+1

@insertusernamehere : Schema.org와 Microdata는 다른 사물과 프로젝트이므로 Schema.org가 어떤 글을 쓰더라도 유효하지 않은 Microdata에 영향을 미치지 않습니다. (그런데 RDFa에서 유효합니다.) - Schema.org의 'WebPage'에 대한 설명은 데이터 소비자 (잘못된 데이터로 작업해야 함)를 의미하지만 저자는 'WebPage' 암시 적으로; 필자는 작성자가 'WebPage'설명의 다음 문장에서 조언을 따르는 것이 좋습니다. "명시 적 선언 [...]"을 권합니다. – unor