Schema BlogPosting Markup Update 2024

Schema BlogPosting Markup- I recently changed this blog's Schema Markup and Structured Data from Article (https://developers.google.com/search/docs/advanced/structured-data/article) to type BlogPosting (https://schema.org/BlogPosting), in Json-LD format by removing Blogger's built-in Microdata.

Schema BlogPosting Markup Update 2024

Why use JSON-LD format? Because (currently) that's what Google Developer (https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data?hl=id) recommends. After all, this format is (in my opinion) the easiest to use, it is not complicated if you want to change the type or add or remove other items at any time. Compared to the application of Microdata that attaches to HTML content.

Why decide to replace (again) Schema and Stuctured Data into BlogPosting schema markup? In line the beasr BlogPosting markup is more or less the same as Article markup. But for me schema BlogPosting markup is more suitable to be installed on the Blogger / blogspot platform with this type of content like in Khalistablog.

Schema BlogPosting Markup Update 2024

Here's the JSON-LD format for the Schema BlogPosting Markup:

<script type='application/ld+json'>{
  &quot;@context&quot;: &quot;http://schema.org&quot;,
  &quot;@type&quot;: &quot;BlogPosting&quot;,
  &quot;inLanguage&quot;: &quot;id-ID&quot;,
  &quot;headline&quot;: &quot;<data:post.title.escaped/>&quot;,&quot;description&quot;: &quot;<b:eval expr='snippet(data:post.snippets.long, { length: 250 })'/>&quot;,&quot;articleBody&quot;: &quot;<b:eval expr='snippet(data:post.body,{ length: 1500, ellipsis: false, links: false, linebreaks: false }).escaped'/>&quot;,&quot;keywords&quot;: &quot; <b:loop values='data:post.labels' var='label'><data:label.name/><b:if cond='not data:label.isLast'>, </b:if></b:loop>&quot;,&quot;datePublished&quot;: &quot;<data:post.date.iso8601/>&quot;,
  &quot;dateModified&quot;: &quot;<data:post.lastUpdated.iso8601/>&quot;,&quot;image&quot;: {
    &quot;@type&quot;: &quot;ImageObject&quot;,&quot;url&quot;: &quot;<b:if cond='data:blog.postImageUrl'><b:eval expr='resizeImage(data:blog.postImageUrl, 1200, &quot;1200:675&quot;)'/><b:else/>https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJlmRFzdzLAmEPQOqDue5pBW-M7WwXpwEEJNYvCTb8pr3J7PDnMdq8T3yYjBFMizAWHnkztGq_GNAEKvF6tdXsgD7EZW1WQM9Icr17qTZsztCm7u-E78t-e1pejxjt9_gAR0i-ad4AMh0/w810-c-h456/no-thumbnail_810.png</b:if>&quot;,
    &quot;height&quot;: 675,
    &quot;mainEntityOfPage&quot;: {
    &quot;@type&quot;: &quot;WebPage&quot;,
    &quot;@id&quot;: &quot;<data:post.url.escaped/>&quot;,
    &quot;name&quot;: &quot;<data:post.title.escaped/>&quot;
  },
    &quot;width&quot;: 1200},&quot;publisher&quot;: {
    &quot;@type&quot;: &quot;Organization&quot;,
    &quot;name&quot;: &quot;<data:blog.title.escaped/>&quot;,
    &quot;logo&quot;: {
      &quot;@type&quot;: &quot;ImageObject&quot;,
      &quot;url&quot;: &quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKx91TQMc5sNsoMaFHU4jAAOy9YMyy1S0-2dG7OxKmFTcVP3XtqxvvjVZzc8nuKXvUgaJ0WY-ZDSbIV6R_ENsH5A8Vu8NvT00csphfswa1LePYN2GHiIoF-61L1CYTkokgnjFLS-6ZJwU/s1600/logo.png&quot;,
      &quot;width&quot;: 600,
      &quot;height&quot;: 133
    }
  },<b:if cond='data:post.author.aboutMe or data:post.author.authorPhoto.image'>&quot;author&quot;: {
    &quot;@type&quot;: &quot;Person&quot;,
    &quot;name&quot;: &quot;<data:post.author.name/>&quot;,
    &quot;url&quot;: &quot;<b:if cond='data:post.author.profileUrl'><data:post.author.profileUrl/></b:if>&quot;</b:if>
  }
}</script>

ArticleBody Issue

In articleBody use <b:eval expr='snippet(data:post.body,{ length: 1500, ellipsis: false, links: false, linebreaks: false }).escaped'/> (which is actually the output also exactly the same as <data:post.longSnippet/>) instead of using <data:post.body/>, because it turns out that the output is in HTML, not just text in the post body. Thus, if the post contains certain code elements, such as quotation marks (") or (') then it is considered the closing of the articleBody element in JSON-LD. This will trigger an error in Google Search Console or Google Webmasters.

Actually, this articleBody output should contain the entire actualization of the paragraph in the post body (in text without line break). It's just that this cannot be applied optimally, because it only triggers an error in GSC. The best solution is, stick to the long snippet format or not use it at all. So I chose to use long snippets only.

Testing in the Rich Results Test

From the BlogPosting Markup Schema format above, the results of the Rich Results Test will look like the following image:

Schema BlogPosting Markup

Thus the review of Schema BlogPosting Markup this time, if there are any inputs or suggestions about this. Let's discuss in the comments column. Thanks for listening.

Provide comments relevant to the posted articles and provide critiques and suggestions for the progress of the blog