GoodRelations is a standardized vocabulary for product, price, and company data that can (1) be embedded into existing static and dynamic Web pages and that (2) can be processed by other computers. This increases the visibility of your products and services in the latest generation of search engines, recommender systems, and other novel applications.
Martin Hepp
martin.hepp at ebusiness-unibw.org
Sat Dec 11 09:12:03 CET 2010
Dear all: Here are a few Google-specific hints regarding GoodRelations: 1. Multiple items per page ========================== Google's Rich Snippets validator complains if you define multiple gr:Offering nodes in one page. In this post, I want to show how you can handle multiple items on one page and still get your content validated by Google. Background: Since Rich Snippets should summarize the main content for a page as a whole, they don't work well for multi-item pages, at least not for now. It's possible that Google will expand their support so that multiple items on one page will be listed below the organic search results in the future, but that is speculative at this point. There is a simple solution to the problem: Instead of adding the markup to an overview page that lists multiple products, put the RDFa markup into the item pages, i.e. such pages that show the details for one single item. Most shops have such a view for each product, and if your shop hasn't, there are good SEO reasons to create one. That should do the trick. If you list related items (consumables, similar products) you could still expose those in a GoodRelations compatible way using just pointers from the main product to the related products using gr:isAccessoryOrSparePartFor, gr:isConsumableFor, or gr:isSimilarTo, but without gr:Offering data for those on the main page (there offer meta-data etc. will be inside their item pages). Note that in this case, you have to model not just the offer (gr:Offering) with the minimal GoodRelations recipe but also the product (gr:ProductOrServicesSomeInstancesPlaceholder), because the relationship is between two products, not between two offers. An example of this more granular yet Google-compliant way of modeling Rich Snippets is at http://www.heppnetz.de/rdfa4google/tc3b.html It validates in Google, see http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Fwww.heppnetz.de%2Frdfa4google%2Ftc3b.html&view= 2. Identifiers / RDFa about =========================== Even if Google's original recipe does not use the RDFa attribute "about", you should use it and define new hash fragments for all key GoodRelations elements, i.e. gr:Offering, gr:BusinessEntity, gr:LocationOfSalesAndServiceProvisioninhg, and gr:ProductOrService (plus subclasses), because this makes your items much more accessible for Semantic Web applications (otherwise, entity consolidation and adding interesting link won't work or are difficult). It does not matter which text/string your use as an identifier, as long as it is unique for that particular page. Example (Bad) ------------- <div typeof="gr:Offering" > <span property="gr:name">Hepp Research Personal SCSI Controller Card</span> </div> Example (Good) -------------- <div typeof="gr:Offering" about="#product_data"> <span property="gr:name">Hepp Research Personal SCSI Controller Card</span> </div> A full example is at http://www.heppresearch.com/gr4google Best Martin Hepp