Actualización de contenido y SEO. Implementación en WordPress SEO WordPress
El contenido fresco es crítico para el SEO, no creo que nadie tenga dudas sobre esto. Una web es algo vivo y si no hay contenido fresco está muerta. Crear contenido fresco tiene mucho que ver con crear contenido nuevo de forma regular, pero también con su actualización.
Actualizar antiguos posts con nueva información los convierte de nuevo en contenido fresco. Se puede aprovechar para miles de cosas, como incorporar datos actualizados, mejorar la redacción, investigar nuevas palabras clave o añadir gráficos explicativos. Y quien sabe, puede incluso que se obtenga una pieza de contenido actualizada apta para ser promocionada de nuevo en tus redes sociales.
La estrategia evergreen content
La actualización de contenido como estrategia SEO, conocida como estrategia evergreen content, persigue mantener el contenido relevante y actual para el usuario a lo largo del tiempo.
En mi opinión, es una estrategia que entra dentro de la filosofía de mejora progresiva, algo que Google ya recomendaba en un post de Octubre de 2015. En ese post, Google anunciaba que depreciaba las recomendaciones para rastreo Ajax que había realizado en 2009. Lo hizo aludiendo a la mejora tecnológica de sus crawlers, que ahora podían rastrear ajax sin problemas, y al progressive enhancement, cuyos principios recomendaba seguir.
Aunque de ahí no se puede concluir directamente que la actualización de contenido afecta de forma positiva al posicionamiento en buscadores, creo que sienta una base sólida para pensar que sí y entender por qué: una web actualizada y en continua mejora denota una dedicación permanente a la calidad de su contenido.
La forma en la que Google utiliza exactamente la «frescura» para posicionar los resultados es una incógnita, además de no utilizarla igual para todas las búsquedas, ya que cada búsqueda tiene necesidades de «frescura» diferentes.
Por ejemplo, la búsqueda de una noticia que está volando por las redes sociales tiene unas necesidades de frescura mucho más fuertes que la búsqueda sobre un término de anatomía humana.
Y es que hay contenido que por su propia naturaleza es relevante para un período de tiempo concreto más o menos amplio. Por ejemplo, noticias y eventos suelen ser relevantes para cortos períodos de tiempo y suelen perder el factor de «frescura» rápidamente. Este tipo de contenido no es susceptible de someterse a la estrategia evergreen conent.
Sin embargo, contenido atemporal, tales como tutoriales, definiciones o artículos explicativos tipo wiki, es idóneo para implementar una estrategia de actualización continua.
Factores destacados
Entre los factores de «frescura» más destacados que afectan a la actualización de contenido podemos citar:
- Fecha de incepción: la frescura es máxima en la fecha de publicación de una página, a partir de aquí comienza a descender.
- Grado de actualización: se puede ganar frescura al realizar una actualización importante en el contenido, especialmente si se realiza en el tema central. Si se actualiza una sola sentencia o elementos accesorios de la página, como los comentarios o elementos de navegación, la actualización puede ser ignorada como factor de frescura.
- Frecuencia de actualización: una página que mantiene una alto grado de actualización y además de forma regular, tendría un mayor nivel de frescura mantenido a lo largo del tiempo.
- Ratio actualización/creación: la actualización de contenido debe ir acompañada de creación de nuevo contenido para un mejor ranking global.
Con estos factores, se puede deducir que una página con fecha de publicación alejada pero que ha sido actualizada regularmente sería premiada en el posicionamiento. Este efecto se podría deber a que se mantiene, pero sobre todo se mejora progresivamente, dos aspectos muy importantes en SEO: las métricas de experiencia de usuario y las métricas de reputación online. Por ejemplo, con nuevas menciones en redes sociales o con la obtención de nuevos enlaces desde páginas de nueva creación, lo que se podría llamar «enlaces frescos», una señal de que el contenido se mantiene actual y relevante.
Influencia de las fechas
Si Google cuenta con información sobre la fecha de publicación de un artículo, y la fecha es relevante para la búsqueda, esta fecha afecta al posicionamiento. Además, Google puede mostrar esta fecha en los resultados de búsqueda. Así se puede escuchar en el Google Webmasters Hangout del 20 de Junio de 2016.
Pero si no hay dudas de que el contenido fresco, nuevo o actualizado, tiene efectos positivos para el SEO, si hay opiniones más o menos encontradas sobre que hacer con las fechas. Algunas de las preguntas más habituales son:
- ¿Mostrar las fechas a los buscadores?
- ¿Mostrar las fechas a los usuarios?
- ¿Mostrar las fechas a ambos?
- ¿Modificar la fecha de publicación con la fecha de actualización?
Si se busca información de casos reales, se pueden encontrar opiniones dispares. Por ejemplo, en este análisis de ShoutMeLoud se concluye que mostrar las fechas a los usuarios es positivo, por la mayor transparencia y mejor experiencia de usuario, pero que ofrecerle esa información a los buscadores puede afectar negativamente al tráfico orgánico, principalmente debido a un menor CTR, mientras que en otros análisis esto es cierto solo para fechas desfasadas en relación a la búsqueda realizada por el usuario.
En mi experiencia y resultados personales, una estrategia de evergreen content y mejora progresiva da resultados óptimos a medio-largo plazo cuándo la fecha de publicación y de actualización están disponibles para ambos, para los buscadores y para los usuarios.
Para informar a Google de las fechas y detalles del contenido nada mejor que utilizar el marcado estructurado de datos. Y para mostrar la fecha en el documento nada mejor que el elemento <time>
.
Un ejemplo de datos estructurados podría ser:
<script type="application/ld+json">
{
"@context":"http:\/\/schema.org",
"@type" : "Article",
"datePublished" : "2016-06-04T16:29:04+00:00",
"dateModified" : "2018-08-22T09:26:32+00:00"
// .....
}
</script>
Y un ejemplo de fechas en el contenido:
Publicado el <time datetime="2016-06-04T11:28:02+00:00">4 junio, 2016</time> - Actualizado el <time datetime="2018-08-22T09:26:32+00:00">22 agosto, 2018</time>
Implementar las fechas de publicación y actualización en WordPress
Aunque Google puede entender varios formatos de fecha, para datos estructurados hay que utilizar el formato ISO 8601, que en PHP se corresponde con el formato c
.
Para obtener la fecha/hora de publicación y la fecha/hora de actualización de un post podemos utilizar:
get_the_date()
y get_the_modified_date()get_the_time()
yget_the_modified_time()
(get_post_modified_time()
si estamos fuera del loop)
En cualquier de ellas se puede especificar el formato deseado, incluyendo el formato ISO 8601. Por ejemplo:
// Algún post ID (no necesario si estamos en el loop)
$post_id = 85;
// Fecha de publicación en el formato configurado en WordPress
$post_date = get_the_time( get_option( 'date_format' ), $post_id );
// Fecha y hora de publicación en formato ISO 8601
$post_datetime_machine = get_the_time( 'c', $post_id );
// Fecha de actualización en el formato configurado en WordPress
$post_date_modified = get_post_modified_time( get_option( 'date_format' ), false, $post_id, true ) ;
// Fecha y hora de actualización en foramto ISO 8601
$post_datetime_modified_machine = get_post_modified_time( 'c', false, $post_id );
Luego podríamos mostrar estas fechas, por ejemplo, del siguiente modo:
// Si la fecha de publicación y modificación son iguales,
// mostrar solo fecha de publicación
if( $post_date == $post_date_modified ) { ?>
<time datetime="<?php echo $post_datetime_machine; ?>"><?php echo $post_date; ?></time>
<?php } else { ?>
<?php echo __( 'Published on', 'cyb-textdomain' ) . $post_date; ?>
<?php echo __( 'Last update on', 'cyb-textdomain' ); ?>
<time datetime="<?php echo $post_datetime_modified_machine; ?>"><?php echo $post_date_modified; ?></time>
<?php } ?>
Y para generar el marcado estructurado del post e insertarlo en el head podríamos hacer algo así:
add_action( 'wp_head', 'cyb_post_structured_data' );
function cyb_post_structured_data() {
if ( is_singular( 'post' ) ) {
$post = get_queried_object();
$structured_data = [
"@context" => "http://schema.org",
"@type" => "Article",
"mainEntityOfPage" => [
"@type" => "WebPage",
"@id" => get_permalink( $post->ID )
],
"headline" => $post->post_title,
"datePublished" => get_the_time( 'c', $post->ID ),
"dateModified" => get_post_modified_time( 'c', false, $post->ID ),
// Resto de elementos
// ....
];
?>
<script type="application/ld+json">
<?php echo wp_json_encode( $structured_data ); ?>
</script>
<?php
}
}
Con esto tendríamos a los motores de búsqueda informados de las fechas de publicación y actualización de nuestro contenido; y que que las utilicen si quieren y lo estiman oportuno, lo más importante es la actualización realizada en el contenido. Y lo mismo para nuestros lectores que contarían con la información adecuada sobre la actualidad y relevancia de lo que están leyendo.
PD: no confundas las fechas de publicación/actualización con las fechas de rastreo e indexación. En las segundas no tenemos nada que hacer y no las puedes manipular.