Problema en la implementación de las etiquetas canonical en paginaciones con Yoast SEO y Rank Math (y cómo corregirlo)

En ocasiones, los plugins Yoast SEO y Rank Math no gestionan correctamente las etiquetas canonical en las paginaciones de un blog. Por defecto, suelen apuntar la canonical hacia la portada del blog, lo cual es incorrecto. Según la documentación oficial de Google, cada página paginada debe utilizar una canonical autorreferenciada.

En este artículo te mostraré cómo resolver este error habitual mediante un código personalizado, tranquilo te compartiré varios ejemplos. Además, te explicaré la forma correcta de gestionar las canonicals en paginaciones para que comprendas la lógica detrás de esta configuración y evites perjudicar el SEO de tu web.

Qué recomienda Google para canonicals en paginaciones

La documentación oficial de Google indica que las paginaciones de un blog deben usar canonical self‑referencing (autorreferenciada, es decir, apuntando a sí mismas) y no hacia la portada o primera página del blog.

Te explico en detalle este enfoque:

1. Cada página paginada debe tener su propia canonical

La documentación sobre paginación de Google Search Central dice textualmente: «Don’t use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL». Es decir, no uses la primera página como canonical, sino que cada página paginada debe apuntar a sí misma.

Esto garantiza que cada página es vista por Google como una entidad separada, no como una copia de la principal.

2. Evitar problemas de rastreo e indexación

Cuando una página de paginación (por ejemplo: blog/page/2/, blog/page/3/, etc.) tiene un canonical que apunta a la página principal del blog en lugar de a sí misma, Google interpreta que esas páginas son duplicados de la principal.

En consecuencia:

  • No las indexa porque la etiqueta canonical le indica que la URL “canónica” es la principal, no la paginada.
  • Rastrea menos esas URLs, ya que no tienen valor único para el índice, y por tanto su contenido (los posts que aparecen en esas páginas) puede quedar sin descubrir o con menor frecuencia de rastreo.
  • Pierdes visibilidad de esos posts si no están enlazados desde otras páginas indexadas (por ejemplo, la home, menú, sitemap XML o enlaces internos directos).

El error habitual de Yoast SEO y Rank Math

En WordPress suelo trabajar con los plugins Yoast SEO y Rank Math. Sin embargo, tras auditar cientos de páginas web, he comprobado que en muchas de ellas las etiquetas canonical no están correctamente implementadas en las paginaciones del blog. Este es un fallo bastante común en ambos plugins.

Cómo corregirlo en WordPress

Para solucionar este problema, suelo generar un fragmento de código personalizado con la ayuda de herramientas como ChatGPT o Claude. También tengo pendiente probar Cursor, ya que está más orientado a tareas de programación y podría ofrecer resultados más precisos.

Una vez creado el código, el siguiente paso es probarlo en la web. Lo más recomendable es hacerlo primero en un entorno de pruebas o, al menos, contar con una copia de seguridad antes de aplicarlo.

Dado que se trata de código PHP, podría insertarse directamente en el archivo functions.php del tema activo. Sin embargo, prefiero usar plugins como Code Snippets o WPCode, que permiten gestionarlo de forma más segura y organizada.

Puede ser que no te funcionen correctamente estos códigos, pues cada web es un mundo. De todas formas, lo tienes fácil, pues parte de uno de estos ejemplos según el plugin de SEO y que uses y adáptalo a tu web.

Ejemplo de código PHP para Yoast SEO

Ejemplo 1:

// Añadir canonical autorreferenciada en las paginaciones
function agregar_canonical_en_paginaciones() {
if ( is_paged() ) {
echo '<link rel="canonical" href="' . get_pagenum_link( get_query_var( 'paged' ) ) . '" />';
}
}
add_action( 'wp_head', 'agregar_canonical_en_paginaciones' );

Ejemplo 2:

// 1. Eliminar la canonical de Yoast en páginas paginadas
add_filter('wpseo_canonical', function ($canonical) {
if (is_paged()) {
return false;
}
return $canonical;
});

// 2. Insertar nuestra canonical justo después de <meta name="robots">
add_action('template_redirect', function () {
if (is_paged()) {
ob_start(function ($html) {
// Obtener la URL de la página actual paginada
$canonical_url = esc_url(get_pagenum_link(get_query_var('paged')));
$canonical_tag = '<link rel="canonical" href="' . $canonical_url . '">' . "\n";

// Insertar justo después del meta robots
$html = preg_replace(
'#(<meta name=["\']robots["\'][^>]*>)#i',
'$1' . "\n" . $canonical_tag,
$html
);

return $html;
});
}
});

Ejemplo de código PHP para Rank Math

Ejemplo 1:

add_action('template_redirect', function () {
// Obtener la ruta actual sin dominio ni parámetros
$request_path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');

// Detectar si estamos en /blog/2/, /blog/3/, etc.
if (preg_match('#^blog/([0-9]+)/?$#', $request_path)) {

ob_start(function ($html) {
// 1. Eliminar cualquier canonical existente (ej. la de Rank Math)
$html = preg_replace('#<link rel=["\']canonical["\'].*?>#i', '', $html);

// 2. Generar nuestra canonical autorreferenciada
$canonical_path = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
$canonical_url = home_url(user_trailingslashit($canonical_path));
$canonical_tag = '<link rel="canonical" href="' . esc_url($canonical_url) . '">' . "\n";

// 3. Insertar justo después de <meta name="robots">
$html = preg_replace(
'#(<meta name=["\']robots["\'][^>]*>)#i',
'$1' . "\n" . $canonical_tag,
$html
);

return $html;
});
}
});

Consejos de implementación y comprobación

Para asegurarte de que el código funciona correctamente, abre una página paginada de tu blog, revisa su código fuente y utiliza la búsqueda (Ctrl+F o Cmd+F) para localizar la etiqueta canonical. Verifica que:

  • Solo exista una etiqueta canonical.
  • Esté ubicada dentro de la sección <head>

Ten en cuenta que este problema no solo puede darse en las paginaciones del blog, sino también en las de categorías o páginas de autor. En esos casos, será necesario adaptar el código para que cubra dichos escenarios.

Conclusión y recomendaciones finales

Una implementación incorrecta de las canonicals en paginaciones puede afectar negativamente en el rastreo y la indexación de tu contenido, y es un error común en Yoast SEO y Rank Math. Siguiendo las directrices de Google y aplicando los fragmentos de código adecuados, podrás asegurarte de que cada página paginada apunte a sí misma y mantener tu SEO técnico en óptimas condiciones.

Si necesitas ayuda para implementarlo o revisar tu web, puedo echarte una mano 🙂

5 1 vote
¿Te ha gustado este post?
Picture of Rocío Santamaría
Rocío Santamaría
Especialista en posicionamiento web y estrategia de contenidos desde hace más de 7 años. También, formo y doy charlas en eventos, escuelas de negocio y másteres. Inquieta y curiosa por naturaleza, nunca dejo de formarme ni de aprender cosas nuevas, filosofía Kayzen.
Subscribe
Notify of
guest
0 Comments
el más antiguo
el más nuevo el más votado
Inline Feedbacks
View all comments
Índice

¿te ha gustado este artículo?

Las webs que llegan a primera página tirando dados, con dados se caen. Basta de juegos. Hablemos de la estrategia integral de posicionamiento web que conecta al mercado con los objetivos de tu negocio.