El componente para Joomla K2 nos permite una gestión avanzada de nuestros artículos, añadiendo funcionalidades extra que no disponemos en el gestor de contenidos de Joomla!. El problema viene cuando las herramientas para webmaster de Google nos avisan de que este componente esta creando contenido duplicado, seguidamente explicamos la solución al problema.
Hay que modificar el código de algunos ficheros del template de K2, para esto se recomienda hacer un override o documentar bien los cambios que se van a realizar para evitar problemas en futuras actualizaciones del componente.
Para los artículos de K2 hay que modificar el fichero components/com_k2/templates/default/item.php añadiremos el siguiente código:
<?php
if ($this->item->link!= JRequest::getURI()) JApplication::redirect($this->item->link,'','' ,true);
?>
Para las categorías de K2 hay que modificar el fichero components/com_k2/templates/default/category_item.php añadiremos el siguiente código:
<?php
Estos cambios redigiran todas las url's duplicadas a una sola URL.
$this->original_link = JRoute::_(K2HelperRoute::getCategoryRoute(JRequest::getVar('id'),
0));
if (JRequest::getInt('start') > 0) $this->original_link .= "?start=" . JRequest::getVar('start');
$this->real_link = JRequest::getURI();
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
?>
Si tenemos instalado el componente Xmap Sitemap Generartor, también tendremos un problema con las URL's de K2, para solucionarlo hay que hacer unos pequeños cambios en el código del plugin para K2 de Xmap.
Tenemos que modificar el fichero com_k2.php que se encuentra normalmente en el directorio plugins/xmap/com_k2.
Cambiaremos la siguiente línea, que se encuentra en la 317 aproximadamente:
$node->link = 'index.php?option=com_k2&view=itemlist&task=category&id='.$row->id.':'.$row->alias;
Por
$node->link = 'index.php?option=com_k2&view=itemlist&task=category&id='.$row->id.':'.$row->alias . '&Itemid=' .$parent->id;
Para las url's de las categorias, cambiaremos la siguiente línea, que se encuentra en la 323 aproximadamente:
$node->link = 'index.php?option=com_k2&view=item&id='.$row->id.':'.$row->alias;
Por
$node->link = 'index.php?option=com_k2&view=item&id='.$row->id.':'.$row->alias . '&Itemid=' .$parent->id;
Si deseamos que Google no indexe las etiquetas de K2, que son cosideradas como contenido duplicado debemos añadir la siguiente línea al fichero robots.txt:
Disallow: */itemlist/tag/*
Realizando todas estas acciones mejoramos el SEO de nuestra web con Joomla! y K2.