Микроразметка Schema.org для контента — статей, QA и FAQ

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X

Установка Микроразметки на сайт.

#1 9 февраля 2024 в 21:45

Здравствуйте! Мне нужен исполнитель для установки микроразметки на сайт. Провёл аудит сайта и по результату данных требуется установка микроразметки. Также прочитал интересную статью на эту тему и понимаю что для сео (не напрямую конечно) это очень хорошо влияет. Увеличивается кликабельность. Поэтому друзья кто хочет помочь моему порталу для установления разметки буду благодарен. Проект направлен на помощь инвалидам. Кто заинтересован напишите обсудим стоимость ваших услуг. 

#2 9 февраля 2024 в 21:49

Есть готовое дополнение ищите. И судя по отзывам той статье 5 лет почти, но она актуальна.

#3 10 февраля 2024 в 00:01

Спасибо большое. Очень помогли. Сейчас буду проверять как будет работать.

Добавлено спустя 1 час

Не понимаю. Аудит сайта показывает что разметки нет. Хотя на сайте всё подключил. Может время надо чтобы Яндекс её распознал? 

Сегодня в 02:17
#4 10 февраля 2024 в 11:27

Мне нужен исполнитель для установки микроразметки на сайт.

Иван

Аудит сайта показывает что разметки нет. Хотя на сайте всё подключил.

Иван

Компонент который вам посоветовали — Open Graph, а в заголовке темы у вас написано Schema.org… Причем одно другому не мешает.

Раньше в блогах была доработка Schema.org для компонента Open Graph, но она насколько знаю не поддерживается...

Определитесь, что нужно и может кто откликнется.

Добавлено спустя Только что

ЗЫ: или может я чего то не понял в теме)

#5 10 февраля 2024 в 15:46

schema.org для статей есть в виджете Автор блога. Если внешний вид виджета не устраивает или выводить его считаете не целесообразным, по FTP идете сюда: ВАШ_САЙТ_/templates/modern/content, делаете копию файла default_item.tpl переименовываете его в соответствии с системным именем вашего типа контента в котором размещены ваши статьи, по умолчанию это articles, т.е. имя файла получим articles_item.tpl.

В самый верх нашего файла добавляем:

  1. <?php
  2. $microdata = '<script type="application/ld+json">{';
  3. $microdata .= '"@context": "https://schema.org",';
  4. $microdata .= '"@type": "Article",';
  5. $microdata .= '"headline": "' . strip_tags(htmlspecialchars($item['title'])) . '",';
  6. $microdata .= '"image": "'. strip_tags($this->site_config->host) . (html_image_src($item['photo'], 'big', true)) . '",';
  7. $microdata .= '"datePublished": "'.date('c', strtotime($item['date_pub'])).'",';
  8. $microdata .= '"dateModified": "'.date('c', strtotime($item['date_last_modified'])).'",';
  9. $microdata .= '"author": {';
  10. $microdata .= '"@type": "Person",';
  11. $microdata .= '"name": "' . strip_tags(htmlspecialchars($item['user_nickname'])) . '",';
  12. $microdata .= '"url": "' . strip_tags($this->site_config->host) . (href_to_profile($item['user_id'])) . '"';
  13. $microdata .= '}';
  14. $microdata .= '}</script>';
  15. $this->addHead($microdata);
  16. ?>

Проверяем тут: search.google.com/test/rich-results?hl=ru

Для остальных типов контента читаем мануалы поисковиков какие типы разметки они поддерживают

Яндекс: yandex.ru/support/webmaster/schema-org/what-is-schema-org.html

Гугл: developers.google.com/search/docs/appearance/structured-data/search-gallery?hl=ru

Делаем по аналогии с выше приведённым примером. 

#6 10 февраля 2024 в 18:14

schema.org для статей есть в виджете Автор блога. Если внешний вид виджета не устраивает или выводить его считаете не целесообразным, по FTP идете сюда: ВАШ_САЙТ_/templates/modern/content, делаете копию файла default_item.tpl переименовываете его в соответствии с системным именем вашего типа контента в котором размещены ваши статьи, по умолчанию это articles, т.е. имя файла получим articles_item.tpl.

В самый верх нашего файла добавляем:

  1. <?php
  2. $microdata = '<script type="application/ld+json">{';
  3. $microdata .= '"@context": "https://schema.org",';
  4. $microdata .= '"@type": "Article",';
  5. $microdata .= '"headline": "' . strip_tags(htmlspecialchars($item['title'])) . '",';
  6. $microdata .= '"image": "'. strip_tags($this->site_config->host) . (html_image_src($item['photo'], 'big', true)) . '",';
  7. $microdata .= '"datePublished": "'.date('c', strtotime($item['date_pub'])).'",';
  8. $microdata .= '"dateModified": "'.date('c', strtotime($item['date_last_modified'])).'",';
  9. $microdata .= '"author": {';
  10. $microdata .= '"@type": "Person",';
  11. $microdata .= '"name": "' . strip_tags(htmlspecialchars($item['user_nickname'])) . '",';
  12. $microdata .= '"url": "' . strip_tags($this->site_config->host) . (href_to_profile($item['user_id'])) . '"';
  13. $microdata .= '}';
  14. $microdata .= '}</script>';
  15. $this->addHead($microdata);
  16. ?>

Проверяем тут: search.google.com/test/rich-results?hl=ru

Для остальных типов контента читаем мануалы поисковиков какие типы разметки они поддерживают

Яндекс: yandex.ru/support/webmaster/schema-org/what-is-schema-org.html

Гугл: developers.google.com/search/docs/appearance/structured-data/search-gallery?hl=ru

Делаем по аналогии с выше приведённым примером. 

Василий Сергеевич

Вы можете мне помочь? Я вам заплачу.

Добавлено спустя 2 минуты

Мне нужен исполнитель для установки микроразметки на сайт.

Иван

Аудит сайта показывает что разметки нет. Хотя на сайте всё подключил.

Иван

Компонент который вам посоветовали — Open Graph, а в заголовке темы у вас написано Schema.org… Причем одно другому не мешает.

Раньше в блогах была доработка Schema.org для компонента Open Graph, но она насколько знаю не поддерживается...

Определитесь, что нужно и может кто откликнется.

ЗЫ: или может я чего то не понял в теме)

RSN

Вообще мне нужен Schema.org,, но как вы правильно заметили одно другому не мешает. Поскольку Open Graph аудит тоже показывает что нужно, но если с первым мне понятно предназначение то со вторым нет.

#7 10 февраля 2024 в 22:19

Вот здесь обсуждали ранее… кто то утверждает, что микроразметка shema.org уже есть в движке… Но я ее так и не нашел… сервисы проверки тоже не видят ее… Черт знает… может нужно что то как то настроить? Толком нигде здесь на форуме внятного ответа не нашел:(

instantcms.ru/forum/mikrorazmetka-schema-org-i-preobrazovanie-izobrazhenii-v-webp.html#post-358369

#8 26 февраля 2024 в 22:49

Спасибо всем. Проблема решена.

#9 27 февраля 2024 в 00:36

Напишите пожалуйста как решили или ссылку на решение. Может другим пригодится тоже...

#10 27 февраля 2024 в 00:46

Напишите пожалуйста как решили или ссылку на решение. Может другим пригодится тоже...

Юран

Решил проблему с помощью вот этого специалиста maxisoft, он настроил мне и подключил. Проверил через аудит сайта что разметка стоит, всё в порядке. Единственное что яндекс после несколько обходов отобразит в поиске возможность этой разметки. Я до сих пор жду когда яндекс обработает. Скорее всего недели 2 или 3 нужно подождать.

Добавлено спустя 3 минуты

Кстати, хочу подметить, что у меня стоит реклама на сайте. И за полтора года у меня доход был 400 рублей, поскольку трафика не было. После проведения работ по настройкам у меня доход вырос за 6 дней, на 3000 рублей, а трафика как не было так и нет. Вот что это может быть? Ваши предположения?

#11 27 февраля 2024 в 18:57

Кстати, хочу подметить, что у меня стоит реклама на сайте. И за полтора года у меня доход был 400 рублей, поскольку трафика не было. После проведения работ по настройкам у меня доход вырос за 6 дней, на 3000 рублей, а трафика как не было так и нет. Вот что это может быть? Ваши предположения?

Иван

пруфы?

#12 27 февраля 2024 в 20:57

Кстати, хочу подметить, что у меня стоит реклама на сайте. И за полтора года у меня доход был 400 рублей, поскольку трафика не было. После проведения работ по настройкам у меня доход вырос за 6 дней, на 3000 рублей, а трафика как не было так и нет. Вот что это может быть? Ваши предположения?

Иван

пруфы?

Василич

Не понял. Что такое пруфы?

Добавлено спустя 4 минуты

Кстати, хочу подметить, что у меня стоит реклама на сайте. И за полтора года у меня доход был 400 рублей, поскольку трафика не было. После проведения работ по настройкам у меня доход вырос за 6 дней, на 3000 рублей, а трафика как не было так и нет. Вот что это может быть? Ваши предположения?

Иван

пруфы?

Василич

Изображение

Добавлено спустя 1 минуту

Не могу дать гарантий что такой доход связан с разметкой, но после настройки с разметкой через неделю примерно я заметил рост прибыли.

#13 19 октября 2025 в 16:21

Как вариант можно так сделать для статейника. Соответственно создав свои файлы для типа сонтента в шаблоне ( которые tpl.php)

<?php
// Начало микроразметки Schema.org для Article
?>
<div itemscope itemtype=«schema.org/Article»>

<?php if (!empty($fields['title']['is_in_item']) && in_array('page', $fields['title']['options']['is_in_item_pos'])){ ?>
    <h1 itemprop=«headline»>  <!-- Добавлено itemprop для заголовка -->
        <?php html($item['title']); ?>
        <?php if ($item['is_private']) { ?>
            <span class=«is_private  text-secondary» title="<?php html(LANG_PRIVACY_HINT); ?>">
                <?php html_svg_icon('solid', 'lock'); ?>
            </span>
        <?php } ?>
    </h1>
    <?php if ($item['parent_id'] && !empty($ctype['is_in_groups'])){ ?>
        <div class=«parent_title item_<?php echo $item['parent_type']; ?>_title mt-n2»>
            <a href="<?php echo rel_to_href($item['parent_url']); ?>">
                <?php html_svg_icon('solid', 'user-friends'); ?>
                <?php html($item['parent_title']); ?>
            </a>
        </div>
    <?php } ?>
<?php } ?>

<?php 
// Автор текста (добавлено здесь, если нужно после заголовка)
if (!empty($item['user'])) { ?>
 
    <meta itemprop=«author» content="<?php echo htmlspecialchars($item['user']['nickname']); ?>">
    <?php if (!empty($item['user']['profile_url'])) { ?><meta itemprop=«url» content="<?php echo $item['user']['profile_url']; ?>">
    <?php } ?>
<?php } ?>

<?php if ($this->hasMenu('item-menu')){ ?>
    <?php $this->menu('item-menu', true, 'nav nav-tabs my-3'); ?>
<?php } ?>

<div class=«content_item <?php echo $ctype['name']; ?>_item clearfix text-break my-3»>
    <?php if($fields_fieldsets) { ?>
        <div class=«icms-content-fields»>
        <?php foreach ($fields_fieldsets as $fieldset_id => $fieldset) { ?>

            <?php $is_fields_group = !empty($ctype['options']['is_show_fields_group']) && $fieldset['title']; ?>

            <?php if ($is_fields_group) { ?>
                <div class=«fields_group fields_group_<?php echo $ctype['name']; ?>_<?php echo $fieldset_id ?>»>
                    <h3 class=«icms-content-fields__group_title»><?php html($fieldset['title']); ?></h3>
            <?php } ?>

            <?php if (!empty($fieldset['fields'])) { ?>
                <?php foreach ($fieldset['fields'] as $field) { ?>

                    <div class=«field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?> <?php echo $field['options']['wrap_type']; ?>_field <?php echo $field['options']['wrap_style'].' '.$field['options']['wrap_style_item']; ?>» <?php if($field['options']['wrap_width']){ ?> style=«width: <?php echo $field['options']['wrap_width']; ?>;»<?php } ?>>
                        <?php if ($field['options']['label_in_item'] != 'none') { ?>
                            <div class=«field_label title_<?php echo $field['options']['label_in_item']; ?>»>
                                <?php echo string_replace_svg_icons($field['title']).($field['options']['label_in_item']=='left'? ': ': ''); ?>
                            </div>
                        <?php } ?>
                        <div class=«value» <?php echo ($field['type'] == 'text' || $field['type'] == 'html')? 'itemprop=«articleBody»': ''; ?>>  <!-- Добавлено itemprop для текста статьи (если это поле текста) -->
                            <?php
                            // Для картинок: если поле — изображение, добавим itemprop
                            $field_html = $field['html'];
                            if ($field['type'] == 'image') {
                                // Предполагаю, что $field['html'] содержит <img>, добавим itemprop=«image»
                                $field_html = str_replace('<img ', '<img itemprop=«image» ', $field_html);
                            }
                            echo $field_html;
                            ?>
                        </div>
                    </div>

                <?php } ?>
            <?php } ?>

            <?php if ($is_fields_group) { ?></div><?php } ?>

        <?php } ?>
        </div>
    <?php } ?>

    <!-- Остальной код (props, hooks и т.д.) оста -->

    <?php if ($props_fieldsets) { ?>
        <div class=«content_item_props <?php echo $ctype['name']; ?>_item_props table-responsive-sm mt-3»>
            <table class=«table table-hover table-sm»>
                <?php foreach($props_fieldsets as $fieldset_id => $fieldset){ ?>
                    <?php if ($fieldset['title']){ ?>
                        <thead>
                            <tr class=«props_groups props_group_<?php echo $ctype['name']; ?>_<?php echo $fieldset_id ?> table-secondary»>
                                <th class=«heading» colspan=«2»><?php html($fieldset['title']); ?></th>
                            </tr>
                        </thead>
                    <?php } else { ?>
                        <thead>
                            <tr class=«props_groups props_group_<?php echo $ctype['name']; ?>_<?php echo $fieldset_id ?>»>
                                <th class=«d-none» colspan=«2»></th>
                            </tr>
                        </thead>
                    <?php } ?>
                    <tbody>
                    <?php if ($fieldset['fields']){ ?>
                        <?php foreach($fieldset['fields'] as $prop){ ?>
                             <tr class=«prop_wrap prop_<?php echo $prop['type']; ?>»>
                                <td class=«title»><?php html($prop['title']); ?></td>
                                <td class=«value»>
                                    <?php echo $prop['html']; ?>
                                </td>
                            </tr>
                        <?php } ?>
                    <?php } ?>
                    </tbody>
                <?php } ?>
            </table>
        </div>
    <?php } ?>

    <?php
        $hooks_html = cmsEventsManager::hookAll(«content_{$ctype['name']}_item_html», $item);
        if ($hooks_html) { echo html_each($hooks_html); }
    ?>

    <?php if (!empty($item['show_tags'])){ ?>
        <div class=«tags_bar mt-3»>
            <?php echo html_tags_bar($item['tags'], 'content-'.$ctype['name'], 'btn btn-outline-secondary btn-sm icms-btn-tag', ''); ?>
        </div>
    <?php } ?>

    <?php if ($ctype['item_append_html']){ ?>
        <div class=«append_html»><?php echo $ctype['item_append_html']; ?></div>
    <?php } ?>

    <?php if (!empty($item['info_bar'])){ ?>
        <div class=«info_bar»>
            <?php foreach($item['info_bar'] as $bar){ ?>
                <div class=«bar_item <?php echo !empty($bar['css'])? $bar['css']: ''; ?>» title="<?php html(!empty($bar['title'])? $bar['title']: ''); ?>">
                    <?php if (!empty($bar['icon'])){ ?>
                        <?php html_svg_icon('solid', $bar['icon']); ?>
                    <?php } ?>
                    <?php if (!empty($bar['href'])){ ?>
                        <a class=«stretched-link» href="<?php echo $bar['href']; ?>"><?php echo $bar['html']; ?></a>
                    <?php } else { ?>
                        <?php echo $bar['html']; ?>
                    <?php } ?>
                </div>
            <?php } ?>
        </div>
    <?php } ?>

</div>

Добавлено спустя 1 минуту

Не соображу, как туда встроить вывод рейтинга, и комментариев.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожее в блогах

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.