Closed RiccardoMasutti closed 4 years ago
Thanks again @RiccardoMasutti, another solid idea. However I think this one can be implemented better.
It would be way better if the blog post writer didn't have to manually adjust the JSON-LD markup for each post they write.
Putting the following markup in _layouts/post.html
solves this:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "{{ page.title }}",
"description": "{{ page.excerpt }}",
"image": "https://bisq.network/images/bisq-fav.png",
"author": {
"@type": "Person",
"name": "{{ page.author }}"
},
"publisher": {
"@type": "Organization",
"name": "Bisq",
"logo": {
"@type": "ImageObject",
"url": "https://bisq.network/images/bisq-fav.png"
}
},
"datePublished": "{{ page.date }}",
"dateModified": "{{ page.date }}",
"mainEntityOfPage": "{{ site.url }}{{ page.url }}"
}
The markup above also makes the following changes:
@type
to BlogPosting
(is there a reason you picked NewsArticle
instead?)name
to "Bisq" (see this comment)dateModified
and mainEntityOfPage
properties, as the testing tool highly recommended them (see mainEntityOfPage
documentation at the bottom of this page)As for images, perhaps we could start adding some. In any case, some posts will have images and some will not, so it would be nice to assign image
a value based on whether or not page.image
exists...but that's more of a "nice-to-have" feature than a "must-have" feature for now, in my opinion.
Thanks again @RiccardoMasutti, another solid idea. However I think this one can be implemented better.
It would be way better if the blog post writer didn't have to manually adjust the JSON-LD markup for each post they write.
Putting the following markup in
_layouts/post.html
solves this:{ "@context": "https://schema.org", "@type": "BlogPosting", "headline": "{{ page.title }}", "description": "{{ page.excerpt }}", "image": "https://bisq.network/images/bisq-fav.png", "author": { "@type": "Person", "name": "{{ page.author }}" }, "publisher": { "@type": "Organization", "name": "Bisq", "logo": { "@type": "ImageObject", "url": "https://bisq.network/images/bisq-fav.png" } }, "datePublished": "{{ page.date }}", "dateModified": "{{ page.date }}", "mainEntityOfPage": "{{ site.url }}{{ page.url }}" }
The markup above also makes the following changes:
- change
@type
toBlogPosting
(is there a reason you pickedNewsArticle
instead?)- change publisher
name
to "Bisq" (see this comment)- add
dateModified
andmainEntityOfPage
properties, as the testing tool highly recommended them (seemainEntityOfPage
documentation at the bottom of this page)As for images, perhaps we could start adding some. In any case, some posts will have images and some will not, so it would be nice to assign
image
a value based on whether or notpage.image
exists...but that's more of a "nice-to-have" feature than a "must-have" feature for now, in my opinion.
That's awesome! Didn't know about ready-to-use variables. I added the markup in _layouts/post.html
.
If I had known before I would not have lost 2 hours to add them manually article by article :D
Let me remove again the added content and this PR should be ready to merge
It's easier for me to start a new PR from scratch. Closing this one.
Following #290 and #291
As specified on https://developers.google.com/search/docs/data-types/article
Final result:
This will boost traffic and SEO for Bisq.network.
@m52go unfortunately, for
NewsArticle
we cannot useProject
asPublisher
. Google acceptsOrganization
only. By the way, I specifiedBisq Decentralized Autonomous Organization
aspublisher.name
.It does not mean in any way that Bisq is a "standard" company. From now on it would be ideal to use this scheme for each article we publish and, if possible, add a unique image for each one.