Как встроить микроразметку schema.org через ld-json

ЕСТЬ РЕШЕНИЕ
#1 28 августа 2025 в 18:10

Сразу хочу попросить сильно не критиковать и не ругать, так как я не кодер, не разработчик, но немного знаю про SEO и слегка разбираюсь в устройстве icms на уровне пользователя, просто поправьте, если в чем-то ошибаюсь.

Instant — прекрасная мощная cms для самых разных проектов, особенно для контентных. Но есть ограничения по использованию микроразметки schema.org с помощью скрипта ld-json. Между тем, много где говорится о косвенной пользе для SEO микроразметки schema.org (на прямую не влияет, но улучшает сниппеты, что повышает CTR, а еще улучшает понимание поисковиками сути страницы, что может влиять и на ранжирование) для специализированных видов контента, например: услуги, новости, блоги, локальный бизнес, отзывы и т.д. 

Я хочу на сайте использовать дополнительные бонусы для SEO, которые может давать разметка schema.org, поэтому есть задача встроить разметку в самые разные страницы: главная страница типа контента, категории и подкатегории, контентные страницы. 

Оптимально встраивать разметку через скрипт <script type=«application/ld+json»> размещенный в <head>. Можно так же размещать в любом месте <body>, есть еще вариант прописывать вручную разметку schema.org в формате Microdata в html самого контента.

Прописывать вручную в html каждой страницы как Microdata конечно можно, но это неудобно, если есть сотни страниц с разной структурой и набором данных (например специализированные услуги).

Втулить скрипт ld-json в любое место <body> — не вариант, cms не дает такую возможность (поправьте, если ошибаюсь).

Настраивать <head> в icms можно только для всех страниц сайта, что не вариант для сайта с множеством разных видов контента.

И даже если бы было поле для встраивания скрипта ld-json в страницы ТК, для меня это не было бы решением, так как главные страницы ТК и категории у меня не просто структурные элементы, а полноценные страницы, важные с точки зрения SEO, поэтому мне важна разметка в том числе и для главной страницы ТК и для страниц категорий.

Решение вижу в том, чтобы был виджет, который бы встраивал скрипт ld-json в <head> или в <body>, и привязывался бы к наборам страниц, создаваемых в настройках «Виджеты и страницы».

Таких дополнений и доработок на сайте я не нашел. Самое близкое, что нашел — это дополнение «PLMETA — Изменение метатегов», это виджет, который привязывается к наборам страниц и настраивает <head> для них, но он меняет только мета-теги. Вот если бы был подобный виджет, который настраивал бы <head> для набора страниц, добавляя в него нужный код ld-json — то это было бы решением.

Видел доработку для дополнения OpenGraph, которая позволяет встраивать разметку schema.org, но доработка старая, не поддерживается, не известно работает ли. 

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

UPD Был и остаюсь чайником в Инстанте. Оказалось все просто! Вопрос с разметкой schema.org через ld-json решается штатными средствами системы. Есть тип виджета HTML-блок. Нужно создать страницу в виджетах по нужной маске, и вставить в любое место страницы виджет HTML-блок, в опцию вставить нужный код с разметкой в формате ld+json, c помощью css сделать виджет невидимым. Ну и все. Разметка встраивается в <body>, все работает, вадидаторы микроразметки говорят, что все ок, нужные структурированные данные имеются. Вопрос решен. Всем спасибо за внимание.

#2 28 августа 2025 в 20:00

приведите пример, что вы вписали в виджет?)

#3 29 августа 2025 в 11:18
приведите пример, что вы вписали в виджет?)
Def

Вписал в виджет код микроразметки schema.org в формате ld-json. Пример кода для страницы с профессиональными услугами, данные условны:

  1. <script type="application/application/ld+json">
  2. {
  3. "@context": "https://schema.org",
  4. "@type": "ProfessionalService",
  5. "name": "Название вашей компании или услуги",
  6. "description": "Краткое и понятное описание ваших профессиональных услуг, которые вы предоставляете клиентам.",
  7. "url": "https://www.vash-sait.ru",
  8. "telephone": "+7-900-123-45-67",
  9. "email": "info@vash-sait.ru",
  10. "areaServed": "Россия",
  11. "openingHours": "Mo-Fr 09:00-18:00",
  12. "address": {
  13. "@type": "PostalAddress",
  14. "streetAddress": "ул. Центральная, д. 123",
  15. "addressLocality": "Москва",
  16. "postalCode": "123456",
  17. "addressCountry": "RU"
  18. },
  19. "serviceType": "Юридические консультации", // Основной тип услуги
  20. "provider": {
  21. "@type": "Person", // Или "Organization", если услуги оказывает компания
  22. "name": "Иванов Иван Иванович",
  23. "jobTitle": "Ведущий юрист-консультант",
  24. "description": "Опытный юрист с более чем 10-летним стажем, специализирующийся на гражданском и арбитражном праве."
  25. },
  26. "hasOfferCatalog": {
  27. "@type": "OfferCatalog",
  28. "name": "Основные услуги",
  29. "itemListElement": [
  30. {
  31. "@type": "Offer",
  32. "itemOffered": {
  33. "@type": "Service",
  34. "name": "Первичная юридическая консультация (1 час)",
  35. "description": "Разбор вашей ситуации, анализ документов, прогноз перспектив дела и план дальнейших действий."
  36. },
  37. "price": 3000,
  38. "priceCurrency": "RUB"
  39. },
  40. {
  41. "@type": "Offer",
  42. "itemOffered": {
  43. "@type": "Service",
  44. "name": "Составление искового заявления",
  45. "description": "Подготовка грамотного и обоснованного искового заявления для подачи в суд."
  46. },
  47. "price": 10000,
  48. "priceCurrency": "RUB"
  49. },
  50. {
  51. "@type": "Offer",
  52. "itemOffered": {
  53. "@type": "Service",
  54. "name": "Комплексное ведение дела в суде",
  55. "description": "Полное сопровождение вашего дела: от подачи иска до получения решения суда."
  56. },
  57. "price": 50000,
  58. "priceCurrency": "RUB"
  59. },
  60. {
  61. "@type": "Offer",
  62. "itemOffered": {
  63. "@type": "Service",
  64. "name": "Абонентское юридическое обслуживание (ежемесячно)",
  65. "description": "Постоянная правовая поддержка вашего бизнеса: консультации, проверка договоров, претензионная работа."
  66. },
  67. "price": 25000,
  68. "priceCurrency": "RUB",
  69. "priceSpecification": {
  70. "@type": "UnitPriceSpecification",
  71. "billingIncrement": 1,
  72. "unitCode": "MON"
  73. }
  74. }
  75. ]
  76. },
  77. "aggregateRating": {
  78. "@type": "AggregateRating",
  79. "ratingValue": "4.9",
  80. "bestRating": "5",
  81. "worstRating": "1",
  82. "ratingCount": "47"
  83. },
  84. "sameAs": [
  85. "https://vk.com/your_profile",
  86. "https://t.me/your_channel",
  87. "https://linkedin.com/in/your_profile"
  88. ]
  89. }
  90. </script>
#4 29 августа 2025 в 13:05

Вписал в виджет код микроразметки schema.org в формате ld-json.

Funkonaut

а переменные полей можно вставлять и они будут выводиться корректно?) Или вы просто тексты вставили итоговые?

#5 29 августа 2025 в 16:08
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

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

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