Implementar RDFA breadcrumb de Google para Drupal 7

Implementar RDFA breadcrumb de Google para Drupal 7

A parte de los módulos de SEO que hay disponibles para Drupal, las últimas actualizaciones de Google le dan mucha importancia a los Datos Estructurados para posicionar nuestra página.

Aunque muchos temas ya incluyen gran cantidad de datos estructurados en su diseño, la verdad es que no he encontrado ninguno que incluyera la funcionalidad para migas de pan RDFa en Drupal.

La implementación del tipo de datos Breadcrumb no solo afectará al SEO de Drupal, sino que alterará la forma en la que el motor de búsqueda de Google muestra los resultados. Es lo que google llama Rich Snippets.

Implementar RDFA breadcrumb de Google para Drupal 7

 

Para implementar RDFa breadcrumb de Google para Drupal 7, simplemente sustituye la función themename_breadcrumb por la que incluyo a continuación. Normalmente la encontrareis en el archivo template.php de vuestro tema.

 

function themename_breadcrumb($variables) {

   $breadcrumb = $variables[‘breadcrumb’];

   $breadcrumb = substr_replace($breadcrumb, ‘http:// sitename.es/’, 9, 1); //cambia la ruta relativa de la miga de pan por una absoluta

   $rich_snippet = ‘rel=”v:url” property=”v:title” ‘; 

   $breadcrumb = substr_replace($breadcrumb, $rich_snippet, 3, 0); //añade los rel apropiados a los enlaces

   if (!empty($breadcrumb)) {

          $breadcrumb[] = ‘<strong property=”v:title” style=”font-weight: 100;”>’.drupal_get_title().'</strong>’;  //si no es un enlace, le añade el rel title

          $output = ‘<nav class=”breadcrumb”><span typeof=”v:Breadcrumb”>’ . implode(‘</span> » <span typeof=”v:Breadcrumb”>’, $breadcrumb) . ‘</span></nav>’; //construye la miga de pan

          return $output;

  }

}

Por si teneis dudas, es perfectamente compatible con el módulo Custom Breadcrumbs. Debereis tener paciencia porque Google es un poco arbitrario a la hora de mostrar este formato de RDFa breadcrumb en Drupal aunque esté bien implementado, pero a la larga tomará todos los datos de vuestra página.

Si quereis comprobar si lo habeis implementado bien podeis utilizar la herramienta de prueba de datos estructurados de webmaster tools.

¿No paras en todo el día y aún así no llegas a todo?

Curso de productividad personal
Guía para trabajar de forma más inteligente
Consigue totalmente GRATIS estas 10 lecciones directamente aplicables a tu trabajo para aprovechar mejor tu tiempo y dejar de agobiarte por tener demasiado que hacer.

Ya hay 4 comentarios en este artículo. ¡Tu opinión me interesa!

  • Lo primero felicidades tienes unos artículos muy buenos e interesantes. Pero tengo unas dudas:
    ¿Que tipo de Doctype deberíamos implementar para que funcionen correctamente?. En mi caso tenia doctype XHTML+RDFa 1.0 y las etiquetas nav se ve que no son correctas para este tipo de doctype. La cosa es que cambie el doctype por el de html5 y me dice que no acepta los formatos RDFa. Claro que funciona pero ya que estamos mirando el seo creo que es importante saber cual debería ser el doctype correcto para poder pasar la validación W3C.

    Un saludo y felicidades titan

    • Si lo dices por los errores de validación W3 de http://validator.w3.org/, la mayoría de los errores vienen del módulo RDF de Drupal, porque muchas de las reglas que añade este módulo son experimentales y no son reconocidas por el validator.

      En un principio el código que describo en este artículo no debería dar problemas con w3 validator si utilizas el doctype HTML5. Este mismo blog tiene 0 errores de validación y tengo las breadcrumbs implementadas como describo aqui.

      Yo elimite los doctypes de las plantillas para dejar que los validadores de código eligieran el tipo de documento más apropiado por si mismas. Lo último que he leido sobre doctypes dice que en HTML5 lo natural es tener simplemente !DOCTYPE HTML

      Muchas gracias por leerme :)

  • Esto me ha servido de mucho, pero sólo una duda adicional. Yo quiero que sea linkeable el titular del nodo que se visualiza en el Breadcrumb, en la estructura inferior.Inicio » Política » Maduro dice que “la situación mejorará”.Yo agregué esto: $breadcrumb[] = l(drupal_get_title(), current_path());El problema es que cuando hay comillas de por medio, sale así el breadcrumb:Inicio » Política » Maduro dice que "la situación mejorará".Gracias de antemano por la respuesta.

¿Te ha gustado? Tus comentarios nos enriquecen a todos ;)

Ya casi somos 5.000 trabajadores inteligentes. ¿Te unes a nosotros?