Después de una modificación de los permalinks de un sitio WordPress no basta con configurar los redirect 301. Y es que, si no tomamos las precauciones necesarias dentro de nuestro sitio, pueden desaparecer las últimas acciones en redes sociales relacionadas con tu sitio.  Aquí te explicamos cómo evitarlo.

change_enlaces_permanentes

Durante el ciclo de vida de un sitio web es habitual tener que cambiar la estructura URL de varias páginas, un procedimiento en algunos casos obligatorio y en otros opcional,  pero en ambos casos, un procedimiento que todavía conlleva ciertos riesgos, especialmente desde el punto de vista de los motores de búsqueda.

Cambiar todas las URL de las páginas es como trasladar físicamente la página a otra posición. Es una buena manera de informar al mundo exterior de este traslado. La praxis y el sentido común sugieren usar el redirect de tipo 301 (el permanente) para informar a los motores de búsqueda de que una página no está disponible en la vieja URL pero es posible recuperarla en otra nueva.

En el mundo de los blogs está permitido definir las URL de las páginas de los artículos individuales con el término permalink. En la interfaz de administración dentro de WordPress, en la sección relativa a la configuración, hay una página reservada a la gestión de los enlaces permanentes.

A través de la configuración de esta página se puede cambiar la estructura de los permalink de los post de WordPress.

Ahora, a parte de las consideraciones lógicas, prácticas y filosóficas que hay detrás de esta decisión, imaginemos que queremos cambiar la estructura de los permalink de un sitio WordPress pasando del esquema http://www.fulano.es/aaaa/mm/dd/titulo-post/ al esquema http://www.fulano.es/titulo-post/.

En este ejemplo las letras aaaa se refieren al año de publicación del post (expresado en 4 cifras), mm al mes de publicación y dd al día de la publicación.

Para efectuar el cambio basta con seleccionar la opción “nombre del artículo” dentro de la página de los enlaces permanentes de WordPress y clickar en la pestaña “guardar cambios”. Salvo contratiempos particulares los nuevos permalink deberían estar activos.

Ahora es necesario configurar los redireccionamientos de tipo 301 para hacer que en los motores de búsqueda se indexen los nuevos URL y que los backlinks de los viejos post no reestablezcan un error 404.

Para llevar a cabo esto basta con un seguir una regla simple en el archivo  .htaccess del propio sitio o, mejor aún, en el archivo de configuración de Apache si podéis hacerlo.

Basándonos en el ejemplo anterior, la regla es la siguiente:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://www.fulano.es/$4

Este instrumento realizado por Joost de Valk te será útil para crear una regla correcta.

Impacto del cambio de los permalinks en las acciones compartidas en las redes sociales.

El principal argumento de este post no es el cambio de los permalinks o las implicaciones de dicho procedimiento desde el punto de vista SEO, sino su impacto sobre en la contabilización de likes, retweets y de +1 recibidos desde las viejas URL.

Si, de hecho, has llevado a cabo un cambio de la estructura de permalinks y sobre tu sitio añades los plugins sociales que muestran el número de likes, de retweets y de +1 recibidos de varios artículos, descubrirás desgraciadamente que ahora todos los contadores están a cero como si nadie hubiera nunca compartido ninguno de tus artículos.

Si nadie ha compartido un post tuyo obviamente no hay problema. Pero si las entradas antiguas tenían acción, puedes solucionarlo fácilmente.

Partiendo de este artículo he modificado el script sugerido para adaptarlo a mi situación. El código lo he insertado en el archivo functions.php del tema de WordPress utilizado.

Personalmente prefiero insertar las funciones en este archivo, más que dentro del archivo del tema mismo (como single.php, index.php etc). Hecho que permite un mayor orden y evita tener que insertar el mismo código en diversos archivos, disminuyendo la posibilidad de errores en caso de cambios.

El propósito de esta función es pasar a varios plugin sociales la vieja URL para los artículos insertados antes del cambio de los permalink y la nueva URL para los insertados posteriormente. Esto permitirá no perder la información sobre cuantas veces se han compartido los contenidos en el pasado.

Aquí está la función:

[php]
function social_sharing() {
global $post;
$url_change_date = strtotime(«1/7/2013»);
$post_date = strtotime(get_the_date(‘m/d/Y’));
$sharing_urlgp = get_permalink();
$sharing_url = get_permalink();

if ($post_date < $url_change_date ) {
$url_date_prefix = «/» . date(«Y», $post_date) .
«/» . date(«m», $post_date) .
«/» . date(«d», $post_date);

$sharing_url = str_replace(«://www.fulano.es»,
«://www.fulano.es» . $url_date_prefix,
$sharing_url);
} ?>
<div class=»tweetshare»><a href=»https://twitter.com/share» class=»twitter-share-button» data-url=»<?php echo $sharing_url; ?>» data-via=»tixx» data-lang=»it» data-related=»usuario_twitter»>Tweet</a></div>
<div class=»fb-like» data-href=»<?php echo $sharing_url; ?>» data-send=»true» data-layout=»button_count» data-width=»180″ data-show-faces=»false»></div>
<div class=»g-plusone» data-size=»medium» data-href=»<?php echo $sharing_url; ?>»></div>
<?php }
[/php]

Te bastara después renombrar esta función dentro de tu plantilla, usando el código.

En la línea:

$url_change_date = strtotime(«1/7/2013»);

Deberías insertar la fecha en la cual has efectuado el cambio de permalink en inglés, por tanto mes/día/año.

En el  www.fulano.es deberás obviamente insertar el nombre de tu dominio.

En lugar de usuario_twitter tendrás que escribir el nombre de tu cuenta Twitter.

Acordaos de insertar dentro del tema los códigos para renombrar los JavaScript relativos a Facebook, Twitter e Google +1, ya que si no las pestañas no funcionaran.

Subrayo el hecho de valorar bien si es necesario o no modificar los permalinks del sitio, ya que no es una operación que se tome a la ligera.

About The Author Alessandro Bellucci

comments (0)

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>