• Resolved commadelimited

    (@commadelimited)


    I run Meeple Mountain, a board game review website. Many of our articles are “reviews” of board games (a product). After some research I determined that the “Review” schema type was the most appropriate. However, I’m running into some trouble when vetting it against Google’s Rich Results test; getting an “Item does not support reviews” error.

    I have the following questions.

    1. Is this the correct schema type for a product review?
    2. If yes, then am I missing some information which makes this valid?

    I’m attaching a screenshot of the edit screen for the link I provided.

    The page I need help with: [log in to see the link]

Viewing 15 replies - 1 through 15 (of 17 total)
  • Plugin Author JS Morisset

    (@jsmoriss)

    You can’t have the subject of a review be a review – WPSSO would have shown a notification error as well for that condition (see the SSO notification icon in the top toolbar). See here for the supported subject Schema types for a review: https://developers.google.com/search/docs/appearance/structured-data/review-snippet

    js.

    Thread Starter commadelimited

    (@commadelimited)

    Thank you JS. I was under the impression that the schema was supposed to represent the content of the page, which in my case is a review (of a product). But from your comment, and the documentation you linked to, I think I need to change the schema type to Product, or even better, Game.

    I know that I change the default schema for post types, but to test I changed the “Schema Type” to Game and tried it out. I don’t get any more errors, but neither does the Rich Results tool recognize that my content is a Review.

    Could you please advise?

    Plugin Author JS Morisset

    (@jsmoriss)

    Don’t confuse the Schema type of your content, which would be a Review, and the SUBJECT of your review – i.e. the Schema type for WHAT you are reviewing.

    Document SSO > Edit General > Schema Type = Review

    Document SSO > Edit Schema > SUBJECT Schema Type = ???

    You’re reviewing something, right? That is the subject of your review – Google wants to know what that subject is. It’s not a review, it’s the SUBJECT of your review.

    The help text for the “Subject Schema Type” is:

    A Schema type for the subject of this review (for example, Schema type “Product” for a review of a product). Note that although the Schema.org standard allows the subject of a review to be any Schema type, Google only allows reviews for a few specific Schema types (and their sub-types).

    It sounds like I need to improve it. Any suggestions?

    js.

    • This reply was modified 2 years, 5 months ago by JS Morisset.
    Thread Starter commadelimited

    (@commadelimited)

    Ahhh. No, I think that description is spot on. My only comment is that bit is buried in a submenu of a submenu. I found it, and in my case it’s set to “Review”. FYI it’s locked in this screenshot because this is my private staging environment.

    This is under SSO > Advanced Settings > Document Types > Schema. Is this the correct place to change it for all reviews?

    Thread Starter commadelimited

    (@commadelimited)

    Aha, got it! Schema type is Review, subject schema type is Game.

    I’ll have to remember how to map fields into the schema (author and game name) but this is now green. Thanks a lot JS, what a big help you and your software are.

    Thread Starter commadelimited

    (@commadelimited)

    Okay, I’ve got one last question here, and feel free to suggest I open a new thread, or point to a specific part of the documentation. I’ve got this working with a bit of manual effort, but the fields I’m editing seem to be good candidates for value mapping. I just can’t find it in the setup for the plugin.

    Edit Review (my custom post type) > Document SSO > Edit Schema

    • Subject Schema Type – How would I default this value to “Game”?
    • Review Rating – This will need to be manually entered, but it’s also buried in a submenu. Is it possible to extract this field into a top level module for ease of entry,? I suppose I could write a quick plugin which allowed this to be done. I just wanted to check if this is already available.
    • Subject Name – I have a custom field which includes the desired name.
    • Subject Author Type – This will always be “Person”
    • Subject Author Name – This will always be the author of the article.
    Plugin Author JS Morisset

    (@jsmoriss)

    Schema Review is a sub-type of CreativeWork (see https://schema.org/Review), so you’re seeing CreativeWork and Review options in order – this is correct.

    There is currently no supported custom field name for the review subject name, although that may be added in a future release. Note that reading custom fields is defined in the Advanced settings page, which is a Premium feature.

    You can choose a default Schema type for the subject of a review, but that is located in the Schema Defaults metabox on the Advanced settings page, which is a Premium feature.

    By using the same review subject author name – you would be saying that all games you review have been created by the same person. Although reviews can be for the same Schema type, like games or products, generally other properties vary, like the author, manufacturer, publisher, etc., so we have not coded specific default options for these. Are you saying that all games you review have been created by the same author?

    js.

    • This reply was modified 2 years, 5 months ago by JS Morisset.
    Thread Starter commadelimited

    (@commadelimited)

    JS, it appears that I do have Core Premium FWIW; at least according to my plugin manager (see below).

    I found the default setting under Advanced Settings > Schema Defaults > Review > Default Subject Schema Type (and updated it to Game). I double checked in a review post type and it’s working as desired.

    As for Review subject name, that would be a request from me. In my case I have a custom field which associates a board game with the review post. So being able to map that to the review would be nice.

    Not all reviews are written by a single reviewer. But it would be nice if I could map the author of a review into the Subject Author Name field.

    As you no doubt know, Google will invalidate the review if certain fields are empty. So all of these questions are focused on making it simpler for my writing team to add ratings. The fewer things they have to do manually, the more likely it will be that they do it correctly and completely.

    Plugin Author JS Morisset

    (@jsmoriss)

    Not all reviews are written by a single reviewer. But it would be nice if I could map the author of a review into the Subject Author Name field.

    The review, and the subject of that review, are not the same. The subject author is the author of the SUBJECT of the review, NOT the review. So, in your case, the author of the game.

    js.

    Thread Starter commadelimited

    (@commadelimited)

    Oooooh. Man, these distinctions are subtle.

    I _have_ the “author” of the game available, but in my case that’s not important to most people. They’ll just want the name of the game, and our rating. I did some testing in the Rich Results tool, and it appears that the minimum valid schema requires the rating, subject name (the game), subject schema type (defaults to game). I’ve got subject author type set to none, and that did the trick.

    Thanks again for your help, and your expertise.

    Plugin Author JS Morisset

    (@jsmoriss)

    The Google search crawler and search engine is not “most people” – the information provided to Google is for Google, not people. If you have information that you can provide to Google in Schema markup, you probably should, as that helps Google understand your content and contextualize it with similar content on the web. This is why, for example, Google requires a globally unique ID for products in Schema markup – it’s for Google, not people.

    js.

    Thread Starter commadelimited

    (@commadelimited)

    Hrm, that’s a good point. But I’m trying to balance simplicity in entering this information, with its usefulness in improving our organic search traffic.

    Now that I’ve got a handle on what is minimally required, I intend to write a script which will update old reviews with new information. Does WPSSO offer any custom WP CLI commands I could use to save this data? In the research I did earlier this week to retrieve the schema_review_rating_alt_name and schema_review_rating fields I noticed that both of them are stored in the wp_postmeta table under a key of _wpsso_meta. I’m not sure I feel comfortable editing that field directly, even via WPCLI, without a bit of guidance.

    Plugin Author JS Morisset

    (@jsmoriss)

    _wpsso_meta is an array.

    Here’s some sample code:

    $md_opts = WpssoPost::get_meta( $post_id, WPSSO_META_NAME, $single = true );
    
    if ( is_array( $md_opts ) ) { // Just in case.
    
        $md_opts[ 'schema_review_rating_alt_name' ] = 'Blah blah';
    
        WpssoPost::update_meta( $post_id, WPSSO_META_NAME, $md_opts );
    }

    You could use the WordPress get/update_post_meta() functions, but those functions are buggy – better to use get/update_metadata() if you want to use WordPress functions (the WPSSO methods above are just wrappers for get/update_metadata() anyway).

    js.

    Plugin Author JS Morisset

    (@jsmoriss)

    FYI, since WPSSO Core v16.4.0-b.4, you can also do this instead:

    $changed = WpssoPost::update_options_key( $post_id,
        'schema_review_rating_alt_name', 'Blah blah' );

    js.

    Thread Starter commadelimited

    (@commadelimited)

    Tres bien JS, thank you. I suspected it wouldn’t be that hard. I really appreciate the time you’ve spent interacting and educating me.

Viewing 15 replies - 1 through 15 (of 17 total)

The topic ‘What’s the correct schema type for a “Product review”?’ is closed to new replies.