Desindexación Masiva de URLs con Estado 410

🎯 Objetivo del Script

El script borradores.php está diseñado para un flujo de trabajo SEO específico: identificar y procesar URLs de contenido que fue previamente publicado y posteriormente movido a borrador o papelera, con el fin de:

  1. ✅ Obtener las URLs originales (antes de ser despublicadas)
  2. ✅ Enviarlas a Google Search Console para solicitar desindexación
  3. ✅ Configurar respuestas HTTP 410 (Gone) para indicar eliminación permanente

📊 ¿Por Qué es Importante Este Proceso?

Problema SEO

Cuando mueves contenido publicado a borrador o papelera en WordPress:

  • ❌ La URL devuelve 404 (Not Found)
  • ❌ Google sigue teniendo la página en su índice
  • ❌ Los usuarios pueden llegar a páginas inexistentes desde búsquedas
  • ❌ Desperdicias crawl budget en URLs muertas
  • ❌ La página sigue apareciendo en resultados de búsqueda (mala experiencia)

Solución Correcta: HTTP 410

El código 410 Gone es superior al 404 porque:

  • ✅ Indica que el recurso existió pero fue eliminado permanentemente
  • ✅ Google lo procesa más rápido que un 404
  • ✅ Acelera la desindexación automática
  • ✅ Es la señal correcta según las directrices de Google

🔄 Flujo de Trabajo Completo

FASE 1: Extracción de URLs 📋

1.1. Ejecutar el Script

# Subir borradores.php a la raíz de WordPress https://tusitioweb.com/borradores.php 

1.2. Obtener el Listado

El script genera:

  • Tabla visual con todos los posts en borrador/papelera
  • Área de texto con URLs limpias (una por línea)
  • Botón para copiar todo al portapapeles

Ejemplo de salida:

https://tusitioweb.com/articulo-eliminado-1/ https://tusitioweb.com/guia-antigua/ https://tusitioweb.com/producto-descatalogado/ 

1.3. Filtrado Importante ⚠️

Revisar manualmente el listado para identificar:

  • ✅ URLs que SÍ estuvieron publicadas previamente (estas necesitan desindexación)
  • ❌ URLs de borradores que NUNCA se publicaron (no necesitan desindexación)

FASE 2: Solicitud de Desindexación a Google 🔍

2.1. Vía Google Search Console (Método Recomendado)

Opción A: Eliminación Masiva de URLs

  1. Accede a Google Search Console
  2. Ve a Herramientas y informes antiguosEliminaciones
  3. Click en Nueva solicitud
  4. Selecciona Eliminar temporalmente URL
  5. Pega las URLs (máximo 100 por solicitud)

Opción B: API de Indexación de Google (Para volúmenes grandes)

# Usa la API de Google Indexing para solicitudes programáticas # Requiere: cuenta de servicio GCP + activar API 

2.2. Vía Herramienta de Inspección de URL

Para casos específicos:

  1. Inspecciona la URL en Search Console
  2. Click en Solicitar desindexación

Nota: Las solicitudes manuales tardan 24-48 horas en procesarse.


FASE 3: Implementar Código HTTP 410 ⚙️

3.1. Método Recomendado: Plugin + functions.php

Opción A: Usar un Plugin de Redirecciones

Plugins recomendados:

  • Redirection (gratis, robusto)
  • Safe Redirect Manager
  • Simple 301 Redirects

Configuración:

URL origen: /articulo-eliminado-1/ Código HTTP: 410 Gone 

Opción B: Código en functions.php (Más control)

/** * Devolver 410 Gone para URLs específicas de contenido eliminado * Añadir al functions.php del tema hijo */ add_action('template_redirect', 'vm_handle_410_gone_urls'); function vm_handle_410_gone_urls() { // Array de URLs que deben devolver 410 $gone_urls = array( '/articulo-eliminado-1/', '/guia-antigua/', '/producto-descatalogado/', // ... añade todas las URLs del script ); // Obtener la URI actual $current_uri = $_SERVER['REQUEST_URI']; $current_uri = rtrim($current_uri, '/') . '/'; // Normalizar // Verificar si la URL actual está en el array if (in_array($current_uri, $gone_urls)) { status_header(410); nocache_headers(); // Plantilla personalizada para 410 echo '<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="robots" content="noindex, nofollow"> <title>410 - Contenido Eliminado Permanentemente</title> <style> body { font-family: system-ui, sans-serif; text-align: center; padding: 50px; background: #f5f5f5; } .container { max-width: 600px; margin: 0 auto; background: white; padding: 40px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } h1 { color: #d32f2f; } p { color: #666; line-height: 1.6; } a { color: #1976d2; text-decoration: none; } </style> </head> <body> <div> <h1>410 - Contenido Eliminado</h1> <p>Esta página existió anteriormente pero ha sido <strong>eliminada permanentemente</strong> de nuestro sitio web.</p> <p><a href="/">← Volver a la página principal</a></p> </div> </body> </html>'; exit; } } 

3.2. Método Alternativo: .htaccess (Apache)

# Añadir al archivo .htaccess # Devolver 410 Gone para URLs específicas RewriteEngine On # Lista de URLs eliminadas permanentemente RewriteRule ^articulo-eliminado-1/?$ - [R=410,L] RewriteRule ^guia-antigua/?$ - [R=410,L] RewriteRule ^producto-descatalogado/?$ - [R=410,L] # Plantilla personalizada para 410 ErrorDocument 410 /410.html 

3.3. Verificar la Implementación

# Comprobar que la URL devuelve 410 curl -I https://tusitioweb.com/articulo-eliminado-1/ # Respuesta esperada: HTTP/2 410 

Herramientas online:

  • https://httpstatus.io/
  • Chrome DevTools → Network → Headers

FASE 4: Monitoreo y Validación 📈

4.1. Verificar Desindexación

Método 1: Búsqueda site:

site:tusitioweb.com "título del artículo eliminado" 

Método 2: Google Search Console

  • Sección Cobertura
  • Filtrar por "Excluidas" → "410 Gone"

4.2. Tiempos Esperados

Acción Tiempo Esperado
Solicitud en GSC procesada 24-48 horas
URL desaparece del índice 1-4 semanas
Con 410 activo 3-7 días (más rápido)

4.3. Seguimiento Continuo

# Cada semana, verificar: 1. ¿Las URLs siguen devolviendo 410? ✓ 2. ¿Han desaparecido de Google? ✓ 3. ¿Hay nuevos borradores para procesar? ✓ 

🛠️ Herramientas Complementarias

Script de Verificación Masiva

#!/bin/bash # verificar-410.sh - Comprobar múltiples URLs while IFS= read -r url; do status=$(curl -o /dev/null -s -w "%{http_code}" "$url") echo "$url → $status" done < urls.txt 

Exportar desde el Script

El script ya incluye:

  • ✅ Botón de copia al portapapeles
  • ✅ Formato de una URL por línea
  • ✅ Listo para pegar en herramientas

⚠️ Consideraciones Importantes

¿410 o 301?

Situación Código Correcto
Contenido eliminado permanentemente 410 Gone
Contenido movido a otra URL 301 Redirect
Contenido fusionado con otro 301 Redirect
Contenido temporalmente no disponible 503 Service Unavailable

Casos Especiales

❌ NO uses 410 si:

  • El contenido será republicado en el futuro
  • Existe una página similar donde redirigir (usa 301)
  • Es contenido estacional (deja 404 o usa 301)

✅ SÍ usa 410 si:

  • Eliminaste productos descatalogados
  • Borraste contenido duplicado/thin
  • Removiste contenido obsoleto sin reemplazo
  • Limpieza de contenido de baja calidad

📋 Checklist Completo

Antes de Ejecutar

  • [ ] Backup de la base de datos
  • [ ] Lista de posts a eliminar/desindexar
  • [ ] Verificar que estuvieron publicados previamente

Durante la Ejecución

  • [ ] Subir borradores.php a la raíz de WordPress
  • [ ] Ejecutar y copiar el listado de URLs
  • [ ] Guardar el listado en archivo de texto
  • [ ] Eliminar borradores.php del servidor 🔴

Configuración 410

  • [ ] Elegir método (plugin, functions.php o .htaccess)
  • [ ] Implementar código 410 para las URLs
  • [ ] Verificar con curl o herramienta online
  • [ ] Probar 3-5 URLs aleatorias manualmente

Desindexación Google

  • [ ] Solicitar eliminación en Google Search Console
  • [ ] Dividir en lotes de 100 URLs si es necesario
  • [ ] Guardar confirmaciones de Google

Seguimiento (1 semana después)

  • [ ] Verificar que URLs devuelven 410
  • [ ] Comprobar desaparición del índice con site:
  • [ ] Revisar informe de cobertura en GSC
  • [ ] Documentar resultados

Seguimiento (1 mes después)

  • [ ] Confirmar desindexación completa
  • [ ] Verificar que no hay errores de rastreo
  • [ ] Actualizar documentación interna

🎓 Mejores Prácticas SEO

1. Comunicación Clara

<!-- En la página 410, incluye: --> - Por qué se eliminó el contenido - Sugerencias de contenido relacionado - Enlace a la página principal - Fecha de eliminación (opcional) 

2. Documentación

Mantén un registro de: - URLs eliminadas y fechas - Razón de la eliminación - Capturas del tráfico antes de eliminar - Confirmaciones de Google 

3. Alternativas Antes de Eliminar

Considera primero: ¿Puedo actualizar el contenido? ¿Puedo fusionarlo con otro artículo? ¿Puedo redirigirlo a algo relevante? ¿Realmente necesito eliminarlo? 

🚀 Automatización Avanzada

Integración con WP-CLI

# Listar todos los posts en papelera wp post list --post_status=trash --format=csv # Eliminar permanentemente después de 410 wp post delete $(wp post list --post_status=trash --format=ids) --force 

Monitoreo Programático

/** * Cron job para notificar nuevos borradores */ add_action('transition_post_status', 'vm_notify_unpublished_posts', 10, 3); function vm_notify_unpublished_posts($new_status, $old_status, $post) { if ($old_status === 'publish' && in_array($new_status, ['draft', 'trash'])) { // Enviar email al admin con la URL $url = get_permalink($post->ID); wp_mail( get_option('admin_email'), 'Contenido despublicado: requiere acción 410', "URL a procesar: $url" ); } } 

📚 Recursos Adicionales

Documentación Oficial

Plugins Recomendados

  • Redirection - Gestión completa de redirecciones
  • SEO Framework - Control granular de meta robots
  • WP 410 - Plugin específico para 410 Gone

💡 Resumen Ejecutivo

El flujo completo en 4 pasos:

  1. Ejecuta borradores.php → Copia URLs
  2. Implementa código 410 → Verifica respuestas
  3. Solicita desindexación en GSC → Espera confirmación
  4. Monitorea durante 1 mes → Documenta resultados

Resultado: Índice limpio, crawl budget optimizado, mejor experiencia de usuario.


🔐 Recordatorio de Seguridad: Siempre elimina borradores.php del servidor después de usarlo. Es una herramienta de auditoría puntual, no debe quedar expuesta.



Volver al catálogo Actualizado: 20/12/2025

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias. Política de cookies

Puede gestionar sus preferencias en cualquier momento.