Как в DLE настроить микроразметку Schema.org
Как в DLE настроить микроразметку для поисковых систем Schema.org – на примере шаблона Default. Особенности кода и тестирования валидности.

При всех достоинствах DLE, над его созданием работают программисты, которые считают, что пользователь, купивший движок, должен по умолчанию разбираться во всех скриптах и тегах.
Пользователям же хочется иметь готовый к использованию продукт, заниматься контентом, а не разбирать талмуды настроек.
Почему в шаблонах DLE нельзя по умолчанию сделать микроразметку Schema.org – загадка. Ведь без нее поисковые системы не будут нормально ранжировать контент.
Зачатки микроразметки есть лишь в шаблоне Default (версия 14), но и на нем валидаторы выдают ошибки.
Валидаторы
Для проверки микроразметки используются два валидатора:
От Google: https://search.google.com/structured-data/testing-tool?hl=ru
И от Яндекс: https://webmaster.yandex.ru/tools/microtest/
Настройка кода под статьи
Итак, пример правильного кода для fullstory.tpl на примере шаблона Default (жирным выделено то, что нужно менять):
<article class="box story[fixed] fixed_story[/fixed] fullstory" itemscope itemtype="http://schema.org/Article">
<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<meta itemprop="addressLocality" content="Урюпинск, Россия" />
<meta itemprop="postalCode" content="9999" />
<meta itemprop="streetAddress" content="Ул. Остапа Бендера, 56" />
</div>
<meta itemprop="telephone" content="+7-00-000-90-00" />
<div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
<img itemprop="url image" src="logo.png" style="display:none;"/>
<meta itemprop="width" content="64">
<meta itemprop="height" content="64">
</div>
<meta itemprop="name" content="Название сайта">
</div>
<meta itemprop="image" content="{image-1}" />
<div class="box_in">
[not-group=5]
<ul class="story_icons ignore-select">
<li class="fav_btn">
[add-favorites]<span title="Добавить в закладки"><svg class="icon icon-fav"><use xlink:href="#icon-fav"></use></svg></span>[/add-favorites]
[del-favorites]<span title="Убрать из закладок"><svg class="icon icon-star"><use xlink:href="#icon-star"></use></svg></span>[/del-favorites]
</li>
<li class="edit_btn">
[edit]<i title="Редактировать">Редактировать</i>[/edit]
</li>
</ul>
[/not-group]
<h2 class="title" itemprop="headline">{title}</h2>
<div class="text" itemprop="articleBody">
<div class="box banner ignore-select">
</div>
{full-story}
Теги: {tags}
[poll]
{poll}
[/poll]
[edit-date]<p class="editdate grey">Новость отредактировал: <b>{editor}</b> - {edit-date}<br>
[edit-reason]Причина: {edit-reason}[/edit-reason]</p>[/edit-date]
</div>
{pages}
<div class="story_tools ignore-select">
<div class="category">
<svg class="icon icon-cat"><use xlink:href="#icon-cat"></use></svg>
{link-category}
</div>
[rating]
<div class="rate">
[rating-type-1]<div class="rate_stars">{rating}</div>[/rating-type-1]
[rating-type-2]
<div class="rate_like">
[rating-plus]
<svg class="icon icon-love"><use xlink:href="#icon-love"></use></svg>
{rating}
[/rating-plus]
</div>
[/rating-type-2]
[rating-type-3]
<div class="rate_like-dislike">
[rating-plus]<span title="Нравится"><svg class="icon icon-like"><use xlink:href="#icon-like"></use></svg></span>[/rating-plus]
{rating}
[rating-minus]<span title="Не нравится"><svg class="icon icon-dislike"><use xlink:href="#icon-dislike"></use></svg></span>[/rating-minus]
</div>
[/rating-type-3]
[rating-type-4]
<div class="rate_like-dislike">
<span class="ratingtypeplusminus ignore-select ratingplus">{likes}</span>
[rating-plus]<span title="Нравится"><svg class="icon icon-like"><use xlink:href="#icon-like"></use></svg></span>[/rating-plus]
<span class="ratingtypeplusminus ratingminus ignore-select">{dislikes}</span>
[rating-minus]<span title="Не нравится"><svg class="icon icon-dislike"><use xlink:href="#icon-dislike"></use></svg></span>[/rating-minus]
</div>
[/rating-type-4]
</div>
[/rating]
</div>
[fixed]<span class="fixed_label" title="Важная новость"></span>[/fixed]
</div>
<div class="meta ignore-select">
<ul class="right">
<li class="complaint" title="Жалоба">[complaint]<svg class="icon icon-bad"><use xlink:href="#icon-bad"></use></svg><span class="title_hide">Жалоба</span>[/complaint]</li>
<li class="grey" title="Просмотров: {views}"><svg class="icon icon-views"><use xlink:href="#icon-views"></use></svg> {views}</li>
<li title="Комментариев: {comments-num}">[com-link]<svg class="icon icon-coms"><use xlink:href="#icon-coms"></use></svg> {comments-num}[/com-link]</li>
</ul>
<ul class="left">
<li class="story_date"><svg class="icon icon-info"><use xlink:href="#icon-info"></use></svg><span class="grey"></span><time datetime="{date=Y-m-d}" class="grey" itemprop="datePublished">[day-news]{date}[/day-news]</time></li>
</ul>
</div>
<meta itemprop="author" content="{login}">
</article>
<div class="rightside ignore-select">
{include file="modules/rightside_fullstory.tpl"}
</div>
<div class="box next-prev ignore-select">
[prev-url]<a href="{prev-url}" class="btn">Предыдущая публикация</a>[/prev-url]
[next-url]<a href="{next-url}" class="btn right">Следующая публикация</a>[/next-url]
</div>
<div class="comments ignore-select">
<div class="box">
[comments]<h4 class="heading">Комментарии <span class="grey hnum">{comments-num}</span></h4>[/comments]
<div class="com_list">
{comments}
</div>
</div>
{navigation}
{addcomments}
</div>
Жирным выделены места для модернизации. В общем, везде, где есть itemprop.
При таком раскладе оба валидатора ошибок не выдают, кроме предупреждений о dateModified и mainEntityOfPage. Но игра с data-edit ничего не дала. Может кто-то напишет в комментариях о возможностях модернизации, либо разработчики DLE наконец-то внедрят правильную микроразметку.
Пробежимся по основным моментам
http://schema.org/Article – здесь подразумевается, что микроразметка делается под статью, под информационный контент. Для интернет-магазинов необходимо использовать Product.
Publisher – тут, по идее, нужно указывать организацию (Organization) или физическое лицо, управляющее сайтом (Person).
На сайте Schema.ord для физлица приведен такой пример микроразметки:
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">George Bush</span>, the
<span itemprop="disambiguatingDescription">41st President of the United States</span>
is the father of
<div itemprop="children" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">George W. Bush</span>, the
<span itemprop="disambiguatingDescription">43rd President of the United States</span>.
</div>
</div>
Однако, когда этот фрагмент вставляешь в код, вылезает ошибка: “Необходимо указать значение для поля publisher”
Если же использовать “name”, как советуют в Интернете, то выходит уже другая ошибка: “Person – недопустимый тип целевого объекта для свойства publisher”.
В общем, настроить микроразметку для Person не удалось никак.
Вышеприведенный вариант для организации является полностью рабочим, для других шаблонов все делается по аналогии.
Остается надеяться, что DataLife Engine решит вопрос с микроразметкой уже с новым релизом, благо сделать пару полей в админке не так уж сложно.
Комментариев 0