diff --git a/path_breadcrumbs.module b/path_breadcrumbs.module
index c48cf30..49d68fa 100644
--- a/path_breadcrumbs.module
+++ b/path_breadcrumbs.module
@@ -339,7 +339,7 @@ function path_breadcrumbs_breadcrumb($variables) {
     }

     // Add options for rich snippets.
-    $elem_tag = 'span';
+    $elem_tag = 'li';
     $elem_property = '';
     $root_property = '';
     $options = array('html' => TRUE);
@@ -347,22 +347,27 @@ function path_breadcrumbs_breadcrumb($variables) {
     if ($snippet == PATH_BREADCRUMBS_RICH_SNIPPETS_RDFA) {

       // Add link options for RDFa support.
-      $options['attributes'] = array('rel' => 'v:url', 'property' => 'v:title');
+      $options['attributes'] = array(
+        'property' => 'ListItem',
+        'typeof'   => 'WebPage',
+      );
       $options['absolute'] = TRUE;

       // Set correct properties for RDFa support.
-      $elem_property = ' typeof="v:Breadcrumb"';
-      $root_property = ' xmlns:v="http://rdf.data-vocabulary.org/#"';
+      $elem_property = ' property="itemListElement" typeof="ListItem"';
+      $root_property = ' vocab="http://schema.org/" typeof="BreadcrumbList"';
     }
     elseif ($snippet == PATH_BREADCRUMBS_RICH_SNIPPETS_MICRODATA) {

       // Add link options for microdata support.
-      $options['attributes'] = array('itemprop' => 'url');
+      $options['attributes'] = array('itemprop' => 'item');
       $options['absolute'] = TRUE;

       // Set correct properties for microdata support.
-      $elem_property = ' itemscope itemtype="http://data-vocabulary.org/Breadcrumb"';
-      $elem_tag = 'div';
+      $elem_property = ' itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"';
+      $elem_tag = 'li';
+
+      $root_property = ' itemscope itemtype="http://schema.org/BreadcrumbList"';

       // Add style that will display breadcrumbs wrapped in <div> inline.
       drupal_add_css(drupal_get_path('module', 'path_breadcrumbs') . '/css/path_breadcrumbs.css');
@@ -428,7 +433,12 @@ function path_breadcrumbs_breadcrumb($variables) {

       // Wrap title in additional element for microdata support.
       if ($snippet == PATH_BREADCRUMBS_RICH_SNIPPETS_MICRODATA) {
-        $title = '<span itemprop="title">' . $title . '</span>';
+        $title = '<span itemprop="name">' . $title . '</span>';
+        $title .= '<meta itemprop="position" content="' . ($key + 1) . '">';
+      }
+      elseif ($snippet == PATH_BREADCRUMBS_RICH_SNIPPETS_RDFA) {
+        $title = '<span property="name">' . $title . '</span>';
+        $meta .= '<meta property="position" content="' . ($key + 1) . '">';
       }

       // Support title attribute.
@@ -448,12 +458,14 @@ function path_breadcrumbs_breadcrumb($variables) {
       $new_breadcrumb = !empty($href) ? l($title, $href, $options) : $title;

       // Replace old breadcrumb link with a new one.
-      $breadcrumbs[$key] = '<' . $elem_tag . ' class="' . implode(' ', $classes) . '"' . $elem_property . '>' . $new_breadcrumb . '</' . $elem_tag . '>';
+      $breadcrumbs[$key] = '<' . $elem_tag . ' class="' . implode(' ', $classes) . '"' . $elem_property . '>' . $new_breadcrumb . $meta . '</' . $elem_tag . '>';
     }

     // Get breadcrumb delimiter and wrap it into <span> for customization.
-    $delimiter = variable_get('path_breadcrumbs_delimiter', '»');
-    $delimiter = '<span class="delimiter">' . trim($delimiter) . '</span>';
+    $delimiter = variable_get('path_breadcrumbs_delimiter');
+    if ($delimiter) {
+      $delimiter = '<span class="delimiter">' . trim($delimiter) . '</span>';
+    }

     $classes = array('breadcrumb');

@@ -463,14 +475,23 @@ function path_breadcrumbs_breadcrumb($variables) {
     if (user_access('administer path breadcrumbs') && $path_breadcrumbs_data && isset($path_breadcrumbs_data->variant)) {
       $contextual_links = array(
         '#type' => 'contextual_links',
-        '#contextual_links' => array('path_breadcrumbs' => array('admin/structure/path-breadcrumbs/edit', array($path_breadcrumbs_data->variant->machine_name))),
+        '#contextual_links' => array(
+          'path_breadcrumbs' => array(
+            'admin/structure/path-breadcrumbs/edit',
+            array($path_breadcrumbs_data->variant->machine_name),
+          )
+        ),
       );
       $prefix = drupal_render($contextual_links);
       $classes[] = 'contextual-links-region';
     }
+    $crumbs_amount = variable_get('path_breadcrumbs_display_amount', FALSE);
+    if ($crumbs_amount) {
+      $classes[] = 'breadcrumbs-amount-' . count($breadcrumbs);
+    }

     // Build final version of breadcrumb's HTML output.
-    $output .= '<div class="' . implode(' ', $classes) . '"' . $root_property . '>' . $prefix . implode(" $delimiter ", $breadcrumbs) . '</div>';
+    $output .= '<ol class="' . implode(' ', $classes) . '"' . $root_property . '>' . $prefix . implode(" $delimiter ", $breadcrumbs) . '</ol>';

     return $output;
   }
diff --git a/path_breadcrumbs_ui/path_breadcrumbs_ui.admin.inc b/path_breadcrumbs_ui/path_breadcrumbs_ui.admin.inc
index 38f5264..c3f53cc 100644
--- a/path_breadcrumbs_ui/path_breadcrumbs_ui.admin.inc
+++ b/path_breadcrumbs_ui/path_breadcrumbs_ui.admin.inc
@@ -306,6 +306,13 @@ function path_breadcrumbs_ui_settings($form, $form_state) {
     '#default_value' => variable_get('path_breadcrumbs_enable_on_error_pages', FALSE),
   );

+  $form['path_breadcrumbs_settings']['path_breadcrumbs_display_amount'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Add a the amount of breadcrumbs'),
+    '#description' => t('Adds a class with the total amount of breadcrumbs to the top level container'),
+    '#default_value' => variable_get('path_breadcrumbs_display_amount', FALSE),
+  );
+
   $form['#submit'][] = 'path_breadcrumbs_ui_settings_submit';

   return system_settings_form($form);
