2017-01-25 5 views
0

Я занят добавлением микроданных (schema.org) на сайт о программном приложении.schema.org itemref questions

Вместо того, чтобы повторять себя с точки зрения дублирования кода, я пытаюсь добавить метаданные один раз (когда это возможно) и ссылаться на него.

Это где я все еще возникают вопросы:

Как вы правильно ссылаться на другие метаданные без метаданных добавляемый к самой странице? Позвольте мне привести пример: первый я попытался это:

<!DOCTYPE html> 
<html itemscope itemtype="http://schema.org/WebSite" lang="en"> 
<body itemprop="mainEntity" itemscope itemtype="http://schema.org/WebPage"> 
    <div class="main"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-md-12"> 
        <!-- info about product and reference to the metadata --> 
       <div itemscope itemtype="http://schema.org/SoftwareApplication" itemref="microdataMyProduct1"> 
        <!-- product info on website --> 
       </div> 
       </div> 
      </div> 
     </div> 
    </div> 

<!-- this metadata gets also added to the WebPage --> 
    <div id="microdataMyProduct1"> 
    <meta itemprop="name" content="My Product 1" /> 
    </div> 
</body> 
</html> 

Но этот код выше добавляет также микроданное itemprop по данному продукту в рамки «WebPage». (Где Google инструмент тестирования жалуется, потому что некоторые itemprop от «SoftwareApplication» не действительны для «WebPage»)

Так я думал, чтобы добавить объем элемента и заменить эти строки:

<div itemscope itemtype="http://schema.org/SoftwareApplication" itemref="microdataMyProduct1"> 
<!-- ... --> 
<div id="microdataMyProduct1"> 
<!-- ... --> 

с этими линиями :

<div itemscope itemtype="http://schema.org/SoftwareApplication" itemref="microdataMyProduct1"> 
<!-- ... --> 
<div itemscope itemtype="http://schema.org/SoftwareApplication" id="microdataMyProduct1"> 
<!-- ... --> 

Проблема в том, что у меня теперь есть два предмета/предметы. Это верно? В другом столбце stackoverflow я читал, что вы не должны использовать itemref в комбинации с идентификаторами, а ссылаться на внешний url. Я смущен.

Вот пример, который я сейчас (ссылки на несколько других метаданных с использованием itemref (внутри головы и в микроданных себя):

<!DOCTYPE html> 
<html itemscope itemtype="http://schema.org/WebSite" lang="en"> 
<head> 
    <meta name="author" content="Company 1"> 
    <meta itemprop="author" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1"> 
    <meta itemprop="about" itemscope itemtype="http://schema.org/SoftwareApplication" itemref="microdataMyProduct1"> 
    <!-- ... --> 
</head> 
<body itemprop="mainEntity" itemscope itemtype="http://schema.org/WebPage"> 
    <div itemprop="hasPart" itemscope itemtype="http://schema.org/WPHeader"> 
    <nav class="navbar" itemprop="hasPart" itemscope itemtype="http://schema.org/SiteNavigationElement"> 
     <!-- ... --> 
    </nav> 
    </div> 

    <div class="main"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-md-12"> 
        <!-- another second product on the page --> 
       <div itemscope itemtype="http://schema.org/SoftwareApplication"> 
        <h3 itemprop="name">Second Product</h3> 
        <meta itemprop="applicationCategory" content="BusinessApplication" /> 
        <meta itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
        <meta itemprop="producer" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
        <meta itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataOtherCompany" /> 
        <!-- ... --> 
       </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    <div class="footer" itemprop="hasPart" itemscope itemtype="http://schema.org/WPFooter"> 
    </div> 


    <!-- Product 1 microdata --> 
<!-- ##################### --> 
    <div hidden class="hidden" itemscope itemtype="http://schema.org/SoftwareApplication" id="microdataMyProduct1"> 
    <meta itemprop="name" content="My Product 1" /> 
    <meta itemprop="applicationCategory" content="BusinessApplication" /> 
    <meta itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
    <meta itemprop="producer" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
    <meta itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataOtherCompany" /> 
    </div> 

<!-- Company 1 microdata --> 
<!-- ################### --> 
    <div hidden class="hidden" itemscope itemtype="http://schema.org/LocalBusiness" id="microdataCompany1"> 
     <meta itemprop="name" content="Company 1"> 
     <!-- ... --> 
     <div itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification"> 
     <link itemprop="dayOfWeek" href="http://schema.org/Monday" /> 
     <time itemprop="opens" content="8:00:00" /> 
     <time itemprop="closes" content="12:30:00" /> 
     <time itemprop="opens" content="13:30:00" /> 
     <time itemprop="closes" content="18:00:00" /> 
     </div> 
     <div itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification"> 
     <link itemprop="dayOfWeek" href="http://schema.org/Tuesday" /> 
     <time itemprop="opens" content="8:00:00" /> 
     <time itemprop="closes" content="12:30:00" /> 
     <time itemprop="opens" content="13:30:00" /> 
     <time itemprop="closes" content="18:0:00" /> 
     </div> 
    </div> 

<!-- Other Company microdata --> 
<!-- ######################## --> 
    <div hidden class="hidden" itemscope itemtype="http://schema.org/LocalBusiness" id="microdataOtherCompany"> 
     <meta itemprop="name" content="Other Company"> 
     <meta itemprop="legalName" content="Other Company Ltd."> 
     <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> 
     <meta itemprop="streetAddress" content="FooStreet"> 
     <!-- ... --> 
     </div> 
    </div> 
</body> 
</html> 

Является ли это правильное использование микроданных для страницы на сайте ? о продукте ли itemref = «» атрибуты используются правильно

+0

Связанный: [? Как разбить itemscope на несколько элементов HTML] (http://stackoverflow.com/q/29135360/1591669) – unor

ответ

0

Вы не должны дублировать itemscope для ВЕ и обозначаемого элемента правильное использование будет выглядеть следующим образом:.

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta name="author" content="Company 1"> 
 
</head> 
 
<body> 
 
<main itemprop="mainEntity" itemscope itemtype="http://schema.org/WebPage"> 
 
    <div itemprop="hasPart" itemscope itemtype="http://schema.org/WPHeader"> 
 
    <nav class="navbar" itemprop="hasPart" itemscope itemtype="http://schema.org/SiteNavigationElement"> 
 
    </nav> 
 
    </div> 
 
    <div class="main"> 
 
    <div class="container"> 
 
     <div class="row"> 
 
     <div class="col-md-12"> 
 
      <div itemscope itemtype="http://schema.org/SoftwareApplication" itemref="microdataMyProduct1"> 
 
      </div> 
 
      <!-- another second product on the page --> 
 
      <div itemscope itemtype="http://schema.org/SoftwareApplication"> 
 
      <h3 itemprop="name">Second Product</h3> 
 
      <meta itemprop="applicationCategory" content="BusinessApplication" /> 
 
      <meta itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
 
      <meta itemprop="producer" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
 
      <meta itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataOtherCompany" /> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="footer" itemprop="hasPart" itemscope itemtype="http://schema.org/WPFooter"> 
 
    </div> 
 
</main> 
 
    <!-- Product 1 microdata --> 
 
    <!-- ##################### --> 
 
    <div hidden class="hidden" id="microdataMyProduct1"> 
 
    <meta itemprop="name" content="My Product 1" /> 
 
    <meta itemprop="applicationCategory" content="BusinessApplication" /> 
 
    <meta itemprop="creator" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
 
    <meta itemprop="producer" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataCompany1" /> 
 
    <meta itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness" itemref="microdataOtherCompany" /> 
 
    <meta itemprop="image" content="http://example.com/example.gif" /> 
 
    </div> 
 
    <!-- Company 1 microdata --> 
 
    <!-- ################### --> 
 
    <div hidden class="hidden" id="microdataCompany1"> 
 
    <meta itemprop="name" content="Company 1"> 
 
    <meta itemprop="image" content="http://example.com/example.gif" /> 
 
    <div itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification"> 
 
     <link itemprop="dayOfWeek" href="http://schema.org/Monday" /> 
 
     <time itemprop="opens" content="8:00:00" /> 
 
     <time itemprop="closes" content="12:30:00" /> 
 
     <time itemprop="opens" content="13:30:00" /> 
 
     <time itemprop="closes" content="18:00:00" /> 
 
    </div> 
 
    <div itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification"> 
 
     <link itemprop="dayOfWeek" href="http://schema.org/Tuesday" /> 
 
     <time itemprop="opens" content="8:00:00" /> 
 
     <time itemprop="closes" content="12:30:00" /> 
 
     <time itemprop="opens" content="13:30:00" /> 
 
     <time itemprop="closes" content="18:0:00" /> 
 
    </div> 
 
    </div> 
 
    <!-- Other Company microdata --> 
 
    <!-- ######################## --> 
 
    <div hidden class="hidden" id="microdataOtherCompany"> 
 
    <meta itemprop="name" content="Other Company"> 
 
    <meta itemprop="image" content="http://example.com/example.gif" /> 
 
    <meta itemprop="legalName" content="Other Company Ltd."> 
 
    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> 
 
     <meta itemprop="streetAddress" content="FooStreet"> 
 
    </div> 
 
    </div> 
 
</body> 
 
</html>

+1

вы уверены? потому что теперь вы добавляете свойства «microdataMyProduct1» в WebPage. Это генерирует ошибки, такие как «applicationCategory: BusinessApplication» (Google не распознает свойство applicationCategory для объекта типа WebPage). вы можете протестировать фрагмент кода: https://search.google.com/structured-data/testing- tool Вы столкнулись с проблемой сейчас, о которой я упоминал в своем посте ... – juFo

+0

Хорошо, я редактировал код. «WebSite» удаляется, «WebPage» переносится. – br3t

+0

это временное исправление, поскольку другие объекты могут быть добавлено/вложено, что приводит к той же проблеме ... – juFo