Introducción

El contenido duplicado es uno de los problemas más invisibles pero críticos en WordPress, especialmente en sitios con muchos artículos, autores o migraciones de contenido.

¿Qué es el contenido duplicado?
Es cuando varias páginas comparten el mismo contenido o muy similar. Esto confunde a los motores de búsqueda y reduce la visibilidad SEO de tu web.

En este artículo aprenderás a detectar distintos tipos de contenido duplicado directamente desde la base de datos, usando MySQL, sin plugins, y con precisión quirúrgica.

 

Índice

1. Tipos de contenido duplicado

2. Consultas SQL para detectar duplicados

3. Qué hacer con los duplicados encontrados

4. Comparativa SQL vs Plugin

5. Exportar resultados a CSV desde PHP

6. Conclusión

1. Tipos de contenido duplicado

TipoDescripciónImpacto en SEO
Títulos duplicadosVarias entradas con el mismo títuloConfusión de keywords
Slugs (URLs) repetidosURLs similares (slug-2, slug-3…) tras importar contenidoFragmentación de autoridad
Contenido (post_content) igualMismo cuerpo de texto en diferentes postsPenalización directa por duplicación
Metadescripciones igualesCampos SEO (meta_description) repetidosBajada en CTR en resultados de búsqueda
Etiquetas/categorías similaresTaxonomías con el mismo nombrePáginas de archivo duplicadas

2. Consultas SQL para detectar duplicados

Detectar títulos duplicados

SELECT post_title, COUNT(*) AS repeticiones
FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY post_title
HAVING repeticiones > 1;

Qué hace: agrupa por título y detecta los que están repetidos.
Útil para: descubrir artículos con el mismo encabezado tras migraciones, autores diferentes o redacción poco cuidada.

 

Detectar contenido idéntico

SELECT post_content, COUNT(*) AS repeticiones
FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY post_content
HAVING repeticiones > 1;

Qué hace: agrupa por contenido idéntico (post_content).
Puedes añadir LENGTH(post_content) > 100 para evitar detectar contenidos vacíos o triviales.

 

Detectar slugs repetidos

SELECT post_name, COUNT(*) as repeticiones
FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY post_name
HAVING repeticiones > 1;

Esto te ayudará a localizar URLs que WordPress ha generado como nombre-del-post-2, nombre-del-post-3, etc.
Es típico tras importar contenido varias veces o al clonar artículos.

3. Qué hacer con los duplicados encontrados

AcciónCuándo aplicarlaCómo hacerlo
EliminarContenido irrelevante o pruebasDesde admin o SQL
Unificar2 posts similaresCopiar lo útil y redirigir
RedirigirSlugs duplicados301 o plugin

4. Comparativa SQL vs Plugin

MétodoPrecisiónVelocidadIdeal para
SQLAltaMuy rápidaAuditorías técnicas
Plugin SEOMediaVariableUsuarios no técnicos

5. Exportar resultados a CSV desde PHP

<?php
require('wp-load.php');
global $wpdb;
$results = $wpdb->get_results("
  SELECT post_title, COUNT(*) AS repeticiones
  FROM {$wpdb->prefix}posts
  WHERE post_type = 'post' AND post_status = 'publish'
  GROUP BY post_title
  HAVING repeticiones > 1
", ARRAY_A);
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=duplicados.csv');
$output = fopen('php://output', 'w');
fputcsv($output, ['Título', 'Repeticiones']);
foreach ($results as $row) { fputcsv($output, $row); }
fclose($output);
exit;
?>

6. Conclusión

Con estas herramientas puedes auditar tu WordPress y limpiar contenido duplicado fácilmente. Mejorarás SEO, evitarás confusiones y optimizarás tu contenido.

Ir al contenido