Star Rating Rich Snippets Not Showing on Google - google-rich-snippets

I have tried several ways to try to get Rich Snippets Markup showing for my Reviews. I am currently just testing it on one page in order to find out what to do to get it to show on Google.
I have re-indexed my site and no luck.
Google says for the test that it is working correctly, but I cannot get it to show up.
Does anyone have any ideas what I might be doing wrong? I am lost.
https://bitcoincasinolord.com/casino-reviews/bitstarz/
​
<script type="application/ld+json">
{
"#context": "http://schema.org/",
"#type": "Review",
"url": "https://bitcoincasinolord.com/casino-reviews/bitstarz-casino-review/",
"itemReviewed": {
"#type": "Organization",
"name": "Bitstarz Casino"
},
"reviewRating": {
"#type": "Rating",
"ratingValue": "8.9",
"bestRating": "10",
"worstRating": "0"
},
"author": {
"#type": "Organization",
"name": "BitcoinCasinoLord"
}
}
</script>

it is not must to show the everything as rich results. if you page passes rich result test that's good but google decides what to show as rich result. it depends upon many factors.
Reasons Why Your Rich Snippets Aren’t Showing

Related

Should the schema.org type Webpage show up as rich result?

I'm having trouble getting my paywalled content indexed by Google. I want try and see if adding schema to the pages to mark them as paywalled content will fix this problem.
Therefor I add this piece of code to my pages;
<script type="application/ld+json">
{
"#context": "https://schema.org",
"#type": "WebPage",
"name": "Page title",
"description": "Page description.",
"publisher": {
"#type": "EducationalOrganization",
"name": "Name Educational Organization"
},
"isAccessibleForFree": "False"
}
</script>
I tested this via: https://search.google.com/test/rich-results but the result is "No items detected". Is this how it should be because I used the WebPage type? Or is there something I should do to get this to work?

JSON-LD for multiple pages (Course Intro page & Lesson pages) that make up a course

I'm unsure how to mark-up my pages that make up a course. Let's say I have the following pages, where the first in each group is a Course Introduction page, and each of the following is a single Lesson Page within the course. All the pages together technically make up the entire course. The course is completely online, and you go at your own pace.
www.myeducationalsite.com/course-1
www.myeducationalsite.com/course-1/lesson-1
www.myeducationalsite.com/course-1/lesson-2
www.myeducationalsite.com/course-1/lesson-3
www.myeducationalsite.com/course-2
www.myeducationalsite.com/course-2/lesson-1
www.myeducationalsite.com/course-2/lesson-2
I am using the Course object from schema.org to describe the Course Introduction page, but I was unsure which object type to use for the Lesson pages.
I'm also unsure how to describe their relationships. The hasCourseInstance property didn't seem to be what I need, but maybe I'm misunderstanding. I understand I can use hasPart and isPartOf to describe relationships, but I was unsure what #type to even use on the Lesson pages.
How can I use JSON-LD to describe the relationship of the pages that make up the Course?
Browsing the schema.org site tells that the hasPart relationship points to a CreativeWork, the most relevant sub-class of which for your use-case might perhaps be LearningResource:
The LearningResource type can be used to indicate CreativeWorks
(whether physical or digital) that have a particular and explicit
orientation towards learning, education, skill acquisition, and other
educational purposes.
So perhaps something along these lines?
[
{
"#context": "https://schema.org/",
"#id": "https://www.myeducationalsite.com/course-1",
"#type": "Course",
"hasPart": [
{
"#type": "LearningResource",
"#id": "https://www.myeducationalsite.com/course-1/lesson-1"
},
{
"#type": "LearningResource",
"#id": "https://www.myeducationalsite.com/course-1/lesson-2"
},
{
"#type": "LearningResource",
"#id": "https://www.myeducationalsite.com/course-1/lesson-3"
}
]
},
{
"#context": "https://schema.org/",
"#id": "https://www.myeducationalsite.com/course-2",
"#type": "Course",
"hasPart": [
{
"#type": "LearningResource",
"#id": "https://www.myeducationalsite.com/course-2/lesson-1"
},
{
"#type": "LearningResource",
"#id": "https://www.myeducationalsite.com/course-2/lesson-2"
}
]
}
]
Here is a link to JSON-LD Playground for the above.

JSON-LD: What is the correct syntax for the Report schema type?

I've used several JSON-LD formatting tools (Example 1, Example 2, Example 3), but none are so specific as to list the schema type Report, and its property reportNumber. The schema type is documented here, but without examples.
This page has been a helpful reference, but I still have uncertainty.
So I would like to know if the following syntax is correct, and what to change if it's not:
<script type="application/ld+json">
{
"#context": "https://schema.org",
"#type": "Report",
"reportNumber": "1234",
"headline": "Report Headline",
"description": "Report Description",
"image": "img.jpg",
"author": {
"#type": "Organization",
"name": "Org. Name",
"url": "example.com"
},
"publisher": {
"#type": "Organization",
"name": "Org. Name",
"logo": {
"#type": "ImageObject",
"url": "logo.svg"
}
},
"datePublished": "2021-11-24",
"dateModified": "2021-11-24"
}
</script>
I just swapped the type Article for Report. It appears to me that Report is a subset of the Article type, making properties like headline and description still valid, but in addition, making the property reportNumber valid. I'm new to JSON-LD.
It looks like you are doing it correctly. In JSON-LD you can use any of the properties of a class in any of its subclasses.
In order to validate your JSON-LD, I have used the Google's structured tool JSON-LD validator, available at https://validator.schema.org/. I think you may find it useful in the future.
Your snippet passed the tests with zero errors or warnings. Just be careful with "logo.svg", because it is a relative path.I would add the full URL to your logo. The same applies for img.jpg

Structured Data Testing Tools following #id references for JSON-LD – Will this work as expected?

I'm working on marking up a site with schema data using JSON-LD. After doing my homework, I learned that #id could be used to reference other snippets of schema. Such as writing WebPage schema that isPartOf my WebSite schema.
Following this, I created the basic schemas for my website; Organization, WebSite, and WebPage where WebSite links to WebPage and Organization.
When I plug my markup into Google's Structured Data Testing tool, it all gets rolled up into the WebSite schema. However, when I remove the #id references, then it is shown as three different types of schema.
With #id
Without #id
Of course, I want my schema data to be interpreted as a series of relationships, that's the whole point. But I also want to make sure each individual schema is being parsed.
So what do you think, will this be okay?
Organization
{
"#context": "http://schema.org",
"#type": "Organization",
"#id": "https://example.com/#organization",
"name": "Organization",
"legalName": "Organization, Inc",
"description": "We rock",
"logo": "https://www.example.com/images/logo.jpg",
"url": "https://www.example.com",
"telephone": "+1-111-111-1111",
"sameAs": ["https://twitter.com/example", "https://www.linkedin.com/company/example/", "https://plus.google.com/u/0/+example", "https://www.facebook.com/example", "https://www.youtube.com/user/example", "https://www.instagram.com/example/", "https://en.wikipedia.org/wiki/example", "https://www.wikidata.org/wiki/Q1", "https://www.crunchbase.com/organization/example"],
"address":
{
"#type": "PostalAddress",
"streetAddress": "111 Street",
"addressLocality": "Nowhere",
"postalCode": "11111",
"addressCountry": "United States"
}
}
WebSite
{
"#context": "http://schema.org",
"#type": "WebSite",
"#id": "https://example.com/#website",
"name": "Website",
"alternateName": "Web",
"url": "https://www.example.com",
"hasPart":
{
"#type": "WebPage",
"#id": "https://www.example.com/#webpage"
}
}
WebPage
{
"#context": "http://schema.org",
"#type": "WebPage",
"#id": "https://www.example.com/#webpage",
"name": "Webpage",
"description": "Told you, we rock",
"url": "https://www.example.com/",
"isPartOf":
{
"#id": "https://www.example.com/#website"
},
"potentialAction":
{
"#type": "SubscribeAction",
"agent":
{
"#type": "Organization",
"#id": "https://example.com/#organization"
},
"object":
{
"#type": "Product",
"name": "Mailing List"
}
}
}
Of course, I want my schema data to be interpreted as a series of relationships, that's the whole point.
Exactly. Making use of #id references is one way to achieve this, nesting the full items is the other way. The result will be the same, i.e., they are equivalent.
But I also want to make sure each individual schema is being parsed.
If you know a consumer that only recognizes top-level items, you might want to adapt. It’s often possible to have one item of your choice on the top-level (by making use #reverse or inverse properties, if existing), but tools like Google’s SDTT might of course display the parsed result in a different way.
But unless you know such a consumer, I don’t think it would be advisable to omit using properties with item values. You would miss out on the most important semantic signal: relations.
In theory, providing the mainEntity/mainEntityOfPage property should be sufficient for page-oriented consumers to learn what the primary entity on that page is. In practice, consumers might not recognize/support this property, of course. But I don’t see how it should be easier for consumers to handle several top-level items, where it’s unclear in which relation they stand to each other (because the relations aren’t specified), so consumers should have an interest to support the common way how Schema.org structured data is provided on the Web.

Schema.org: what schema is best suited for covering pages of word definitions?

I am looking into Schema.org as a means of improving SEO for our product. It's pretty clear to me why it makes sense to use it, but I'm struggling to choose an appropriate schema which fits my needs.
Our product can be described approximately as a kind of dictionary, where word has its own page, which is composed of a brief definition, followed by a more extensive elaboration on the meaning. Like so:
WORD
definition paragraph
extended description paragraph
list of used sources
So my question would be: what schema is best suited for my needs, and if no of the existing options suffices, would you recommend me to create my own scheme? I can imagine using existing schemes benefits SEO better, but I'm a layman on the subject.
So far the best option seems to be the Article scheme, which has an articleSection property which can be used to distinguish between definition as description, however not semantically, so I wonder if there's a better option I'm overlooking. Also, a decent property covering listed sources seems to be lacking, since I don't consider citations and mentions to quite respect the actual semantic meaning.
Thanks!
Here is a JSON-LD array that may be appropriate for you.
When spoken it says: "I have a data catalog named Product Dictionary. The Product Dictionary is composed of individual data sets. Words from our Product Dictionary are defined in data-sets. Two data-sets are featured here. Each data-set has parts that provide additional information about the Word. The name of the parts is data-feed. Each data-feed includes additional information. etc."
Here is that structure:
<script type="application/ld+json" id="">
{
"#context": {
"#vocab": "http://schema.org/"
},
"#type": "DataCatalog",
"#id": "http://example.com/identifier/20000",
"name": "Product Dictionary",
"hasPart": [{
"#type": "Dataset",
"#id": "http://example.com/identifier/21000",
"name": "word-1",
"description": "meaning of word-1",
"hasPart": {
"#type": "DataFeed",
"#id": "http://example.com/identifier/21100",
"name": "name of DataFeed-1",
"dataFeedElement": {
"#type": "DataFeedItem",
"#id": "http://example.com/identifier/21110",
"name": "name of DataFeedItem-1",
"item": {
"#type": "Thing",
"#id": "http://example.com/identifier/21111",
"name": "name of Thing-1",
"description": "description of Thing-1"
}
}
}
},
{
"#type": "Dataset",
"#id": "http://example.com/identifier/22000",
"name": "word-2",
"description": "meaning of word-2",
"hasPart": {
"#type": "DataFeed",
"#id": "http://example.com/identifier/22100",
"name": "name of DataFeed-2",
"dataFeedElement": {
"#type": "DataFeedItem",
"#id": "http://example.com/identifier/22110",
"name": "name of DataFeedItem-2",
"item": {
"#type": "Thing",
"#id": "http://example.com/identifier/22111",
"name": "name of Thing-2",
"description": "description of Thing-2"
}
}
}
}]
}
</script>
If you adapt this approach, include the <script> (also known as a JSON-LD island) in your HTML page.
You can test the structure here:
https://search.google.com/structured-data/testing-tool