Jump to content



Photo
- - - - -

Google Rich Snippets / semantic web for more attractive listings in google

google rich snippets rdf microdata good relations snippet seo

This topic has been archived. This means that you cannot reply to this topic.
12 replies to this topic

#1   bruyndoncx

bruyndoncx

    osCommerce Teenager

  • Members
  • 3,144 posts

Posted 07 January 2012 - 18:42

what is the best way to implement google rich snippets in oscommerce ?
http://support.googl...en&answer=99170


i've found the good relations add -n for oscommerce 2.2RCA but it is fairly old and not updated to v2.3.1 since the summer of 2009.

is good relations really the way forward, or are there alternatives to consider ?
Don't just sit there - contribute to the responsive bootstrap community effort !
http://forums.oscomm...iew__getnewpost


Hava a nice day !
Carine Bruyndoncx


Seen anything good relevant on the net about responsive design for ecommerce ?
You might as well post it in my responsive liive shop review thread .

#2   WebDev22

WebDev22
  • Members
  • 451 posts

Posted 10 January 2012 - 02:54

I'd like to find out as well. Carina, have you learned anything since your post?

#3 ONLINE   Jack_mcs

Jack_mcs
  • Members
  • 26,545 posts

Posted 10 January 2012 - 03:53

Google is just saying to use html to spruce up the meta description tags of your pages. You need to have a meta tags contribution installed that will allow you to edit the meta description tag. Header Tags SEO will do this but some of the others may as well.

#4   bruyndoncx

bruyndoncx

    osCommerce Teenager

  • Members
  • 3,144 posts

Posted 11 January 2012 - 00:08

If you look at this page
http://support.googl...n&answer=146750
it basically explains a whole lot of tags that are recommended by google to explain your offer(just a single product)

also there are warnings on the page that you should checkout schema.org for more detailed item types that microsoft and yahoo also support

this is way beyond meta tags as far as I can tell, it is really always in the body content
Don't just sit there - contribute to the responsive bootstrap community effort !
http://forums.oscomm...iew__getnewpost


Hava a nice day !
Carine Bruyndoncx


Seen anything good relevant on the net about responsive design for ecommerce ?
You might as well post it in my responsive liive shop review thread .

#5 ONLINE   Jack_mcs

Jack_mcs
  • Members
  • 26,545 posts

Posted 11 January 2012 - 01:47

Yes, you are correct. The example shown on the page the OP posted is of a product description, which google has always taken from the meta desciption, if it was present, so I assumed the markup code was for that tag. But it turns out, on closer examination, they are talking about adding the markup to the text on the page, like the product description. My apologies to the OP for the mistake. And here I've gone all year without making one yet. :/

#6   DunWeb

DunWeb

    The Censored One

  • Members
  • 13,084 posts

Posted 11 January 2012 - 03:19

And here I've gone all year without making one yet. :/



Ten days mistake free ! opps, Zero days mistake free !......lol (just kidding with you)



Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

See my Profile to learn more about add ons, templates, support plans and custom coding (click here)

#7 ONLINE   Jack_mcs

Jack_mcs
  • Members
  • 26,545 posts

Posted 11 January 2012 - 04:24



Ten days mistake free ! opps, Zero days mistake free !......lol (just kidding with you)



Chris

/smile.png' class='bbc_emoticon' alt=':)' />

#8   Web-Source 5

Web-Source 5

    ¤

  • Members
  • 18 posts

Posted 11 January 2012 - 20:35


<?php

/*

  $Id$

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License

*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);

  $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

  $product_check = tep_db_fetch_array($product_check_query);

  require(DIR_WS_INCLUDES . 'template_top.php');

  ?>

<?php

  if ($product_check['total'] < 1) {

  header('HTTP/1.1 404 Not Found');

?>

<div id="not-found" itemscope itemtype="http://schema.org/Product">

  <div class="center">

	<?php echo TEXT_PRODUCT_NOT_FOUND; ?>

	</div>

  <div class="floatleft">

	<?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?>

  </div>

<?php

  } else {

	$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

	$product_info = tep_db_fetch_array($product_info_query);

	tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$_GET['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

	if ($new_price = tep_get_products_special_price($product_info['products_id'])) {

	  $products_price = '<del>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</del> <span class="sale-price alert" itemprop="price">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';

   $products_info_class = 'sale-display';

	} else {

	  $products_price = '<span itemprop="price">'. $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .'</span>';

   $products_info_class = 'display';

	}

	  $products_model = $product_info['products_model'];

	  $products_name = $product_info['products_name'];

?>

<div itemscope itemtype="http://schema.org/Product">

<?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?>

    

  <h1 itemprop="name"><?php echo $products_name; ?></h1>

 

  

	<div id="offer" itemprop="offers" itemscope itemtype="http://schema.org/Offer">

	 <?php echo $products_price; ?>

		<br />

	 <meta itemprop="priceCurrency" content="<?php echo LANGUAGE_CURRENCY; ?>" />

  <?php if ($product_info['products_quantity'] > 0) { ?>

   <link itemprop="availability" href="http://schema.org/InStock" /><strong>In Stock</strong>

			<br />

   <?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_draw_button(IMAGE_BUTTON_IN_CART, 'cart', null, 'primary');

	  } else { ?>

	   <link itemprop="availability" href="http://schema.org/OutOfStock" /><strong>Out of Stock</strong>

			<br />

  <?php  if ($product_info['products_date_available'] > date('Y-m-d H:i:s'))

   echo '<small>' . sprintf(TEXT_DATE_AVAILABLE, tep_date_short($product_info['products_date_available'])) . '</small>';

	 } ?>

</div>

<?php

	if (tep_not_null($product_info['products_image'])) {

	  $pi_query = tep_db_query("select image, htmlcontent from " . TABLE_PRODUCTS_IMAGES . " where products_id = '" . (int)$product_info['products_id'] . "' order by sort_order");

	  if (tep_db_num_rows($pi_query) > 0) {

?>

	<div id="piGal" style="float: right;">

	  <ul>

<?php

		$pi_counter = 0;

		while ($pi = tep_db_fetch_array($pi_query)) {

		  $pi_counter++;

		  $pi_entry = '		<li><a href="';

		  if (tep_not_null($pi['htmlcontent'])) {

			$pi_entry .= '#piGalimg_' . $pi_counter;

		  } else {

			$pi_entry .= tep_href_link(DIR_WS_IMAGES . $pi['image']);

		  }

		  $pi_entry .= '" target="_blank" rel="fancybox" itemprop="image">' . tep_image(DIR_WS_IMAGES . $pi['image']) . '</a>';

		  if (tep_not_null($pi['htmlcontent'])) {

			$pi_entry .= '<div style="display: none;"><div id="piGalimg_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div></div>';

		  }

		  $pi_entry .= '</li>';

		  echo $pi_entry;

		}

?>

	  </ul>

	</div>

<script type="text/javascript">

$('#piGal ul').bxGallery({

  maxwidth: 300,

  maxheight: 200,

  thumbwidth: <?php echo (($pi_counter > 1) ? '75' : '0'); ?>,

  thumbcontainer: 300,

  load_image: 'ext/jquery/bxGallery/spinner.gif'

});

</script>

<?php

	  } else {

?>

	<div id="piGal" style="float: right;">

	  <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank" rel="fancybox">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), null, SMALL_IMAGE_WIDTH, 'itemprop="image"') . '</a>'; ?>

	</div>

<?php

	  }

?>

<script type="text/javascript">

$("#piGal a[rel^='fancybox']").fancybox({

  cyclic: true

});

</script>

<?php

	}

?>

<div class="description" itemprop="description">

<?php echo stripslashes($product_info['products_description']); ?>

</div>

<?php

	$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");

	$products_attributes = tep_db_fetch_array($products_attributes_query);

	if ($products_attributes['total'] > 0) {

?>

	<p><?php echo TEXT_PRODUCT_OPTIONS; ?></p>

	<p>

<?php

	  $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");

	  while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {

		$products_options_array = array();

		$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");

		while ($products_options = tep_db_fetch_array($products_options_query)) {

		  $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);

		  if ($products_options['options_values_price'] != '0') {

			$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';

		  }

		}

		if (is_string($_GET['products_id']) && isset($cart->contents[$_GET['products_id']]['attributes'][$products_options_name['products_options_id']])) {

		  $selected_attribute = $cart->contents[$_GET['products_id']]['attributes'][$products_options_name['products_options_id']];

		} else {

		  $selected_attribute = false;

		}

?>

	  <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br />

<?php

	  }

?>

	</p>

<?php

	}

?>

	<div class="clearfix"></div>

<?php

	if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {

?>

	<small><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></small>

<?php

	}

?>

<?php

	$reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$_GET['products_id'] . "' and reviews_status = 1");

	$reviews = tep_db_fetch_array($reviews_query);

?>

  <div class="contentBlock">

	<span class="buttonAction">

	 </span>

	<?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params())); ?>

  </div>

<?php

	if ((USE_CACHE == 'true') && empty($SID)) {

	  echo tep_cache_also_purchased(3600);

	} else {

	  include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);

	}

?>

</form>

<?php

  }

?>

</div>

<?php

  require(DIR_WS_INCLUDES . 'template_bottom.php');

  require(DIR_WS_INCLUDES . 'application_bottom.php');


Edited by Web Source 5, 11 January 2012 - 20:36.


#9   Web-Source 5

Web-Source 5

    &curren;

  • Members
  • 18 posts

Posted 11 January 2012 - 20:37

The above is a bit modified out of the standard 2.3 product_info page, but is marked up with the proper microformatting.

#10   bruyndoncx

bruyndoncx

    osCommerce Teenager

  • Members
  • 3,144 posts

Posted 11 January 2012 - 22:07

Thank you, that's a real help. Is this pages snippets available in google ?
I read somewhere you'd have to ask for inclusion of the snippets
Don't just sit there - contribute to the responsive bootstrap community effort !
http://forums.oscomm...iew__getnewpost


Hava a nice day !
Carine Bruyndoncx


Seen anything good relevant on the net about responsive design for ecommerce ?
You might as well post it in my responsive liive shop review thread .

#11   Web-Source 5

Web-Source 5

    &curren;

  • Members
  • 18 posts

Posted 11 January 2012 - 22:20

Somewhere within google webmaster tools, under their rich snippets information pages they do have a place you can submit your site. It's been a while since I've been there, but that still does not guarantee they will use the markup in search results. I've been using these for over a year now, and have noticed the markup in results for category listings, and that was using their rich snippet format, I recently changed the markup to reflect what is outlined @ schema.org, and have not yet had to to see the end result in the SE's. I do expect the markup to one day be much more useful than just SE results however. I feel it is only a matter of time before Google Product search, and other product comparison engines start to use it.

This thought is totally experimental, I have yet to try it, but shall very soon -- I believe if you do away with the meta description, then the SE's will pick up better on the micro-data as they will have nothing else between their search results and the true page content.

#12   Partyurlaub

Partyurlaub
  • Members
  • 1 posts

Posted 29 February 2012 - 12:17

Hi built a rich snippet test for music like the one Google describes with Lady Gaga and MySpace.
http://www.google.com/webmasters/tools/richsnippets?view=&url=http%3A%2F%2Fwww.myspace.com%2Fladygaga
The rich snippet testing tool tells me that everythins is correct but it wont display on google search... any ideas?

Google search example with my website zrce.eu:

http://www.google.ch/search?q=zrce+2012&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a#sclient=psy-ab&hl=de&client=firefox-a&hs=j8P&rls=org.mozilla:de%3Aofficial&source=hp&q=+zrce+freemasons+djs&pbx=1&oq=+zrce+freemasons+djs&aq=f&aqi=&aql=&gs_sm=3&gs_upl=3136l5812l1l6130l7l7l0l0l0l0l78l382l6l6l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=a0d31e9a79b16c67&biw=1120&bih=844

Rich Snippet Testing Tool: www.google.com/webmasters/tools/richsnippets?url=zrce.eu%2Ffreemasons%2F&view=

My Code used in Wordpress on zrce.eu/freemasons/]]


<div itemscope="" itemtype="http://schema.org/MusicGroup" style="font-size:90%">
<ul class="trackList">
<li itemprop="tracks" itemscope="" itemtype="http://schema.org/Mu...usicRecording">
<meta itemprop="url" content="http://amzn.to/yEjbdx"><a title="Uninvited (Radio Edit) [feat. Bailey Tzuke] Freemasons ft. Bailey Tzuke" href="http://amzn.to/yEjbdx" target="_blank" itemprop="offers"><strong><span itemprop="name">Uninvited feat. Bailey Tzuke </span></strong></a><meta itemprop="duration" content="PT3M4S"> 3:04
</li>
<li itemprop="tracks" itemscope="" itemtype="http://schema.org/Mu...usicRecording">
<meta itemprop="url" content="http://amzn.to/y0MV0K"><a title="Rain Down Love Freemasons mit Siedah Garrett" href="http://amzn.to/y0MV0K" target="_blank" itemprop="offers"><strong><span itemprop="name">Rain Down Love </span></strong></a><meta itemprop="duration" content="PT4M46S"> 4:46
</li>
<li itemprop="tracks" itemscope="" itemtype="http://schema.org/Mu...usicRecording">
<meta itemprop="url" content="http://amzn.to/zFFDEt"><a title="Love On My Mind Freemasons ft Amanda Wilson" href="http://amzn.to/zFFDEt" target="_blank" itemprop="offers"><strong><span itemprop="name">Love On My Mind </span></strong></a><meta itemprop="duration" content="PT5M37S"> 5:37
</li>
<li itemprop="tracks" itemscope="" itemtype="http://schema.org/Mu...usicRecording">
<meta itemprop="url" content="http://amzn.to/wcY0JF"><a title="Believer (Radio Edit) Freemasons " href="http://amzn.to/wcY0JF" target="_blank" itemprop="offers"><strong><span itemprop="name">Believer </span></strong></a><meta itemprop="duration" content="PT3M9S"> 3:09
</li>
</ul>
</div>


Edited by Jan Zonjee, 29 February 2012 - 12:34.


#13   Peper

Peper
  • Members
  • 382 posts

Posted 12 March 2012 - 06:03

Google and Bing can definitely use the extra information.
If you think about it, every pc with windows comes with internet explorer - Bing in other words
Do not just use Google for seo and forget about Bing

The microdata add on that were uploaded years ago is way bit tricky to install on a modified version of osc
I think every shop owner should move towards microdata.
Google and Bing can use the extra information if implemented and will be a definite advantage.

If I could, I would have made a new add on which is easier to implement the data (developers please help writing a new)
Contributions successfully installed : Header tags SEO, Scrolling new products, Customer testimonials, Support tickets, Polls, Link exchange, SPPC, X-sell, Master products, Dhtml menu, Image cache, Slide show, Product videos, Product custom sort, Product notes, Discount coupons, Ask question(review style + admin), CP builder, Customers also purchased, price list, // SEO URLS 5, and forgot the others and then a real admin setup.