Introducción
Las URLs rotas o errores 404 son uno de los mayores enemigos del SEO técnico y de la experiencia de usuario. Si tu sitio WordPress o eCommerce genera enlaces que terminan en páginas no encontradas, estás perdiendo posicionamiento, visitas y conversiones.
En este artículo te enseño cómo detectar estas URLs rotas directamente desde la base de datos (sin depender únicamente de plugins) y cómo construir un dashboard en PHP para monitorizarlas y gestionarlas tú mismo.
Índice
- 1. ¿Por qué es importante detectar URLs rotas?
- 2. Orígenes comunes de los errores 404
- 3. Tablas y fuentes de datos donde rastrear URLs rotas
- 4. Consultas SQL útiles para localizar URLs inexistentes
- 5. Crear un dashboard en PHP para visualizar los errores
- 6. Automatizar limpieza, redirecciones o reportes
- 7. Conclusión
1. ¿Por qué es importante detectar URLs rotas?
Las páginas 404 afectan a:
- 🚫 El SEO: Google penaliza sitios con enlaces rotos internos o externos.
- 🧭 La navegación del usuario: genera frustración y pérdida de confianza.
- 📉 Las conversiones: especialmente si enlaces rotos apuntan a productos o páginas de venta.
2. Orígenes comunes de los errores 404
Origen | Ejemplo | Solución típica |
---|---|---|
Migraciones mal hechas | Enlaces antiguos sin redirección | Redirecciones 301 o limpiar referencias |
Contenido eliminado | Páginas borradas sin control | Redireccionar o devolver 410 |
Enlaces internos rotos | Menús, widgets o botones con URL antigua | Actualizar enlaces o regenerar menús |
Errores en el sitemap | Sitemap incluye páginas ya eliminadas | Regenerar sitemap |
3. Tablas y fuentes de datos donde rastrear URLs rotas
- wp_posts: para revisar URLs antiguas o inconsistentes
- wp_postmeta: para campos personalizados que contienen enlaces
- wp_options: donde suelen almacenarse menús o widgets
- Logs de servidor (access_log / error_log): fuente ideal de errores 404 reales
- Herramientas externas: como Screaming Frog, Google Search Console, Ahrefs, etc.
4. Consultas SQL útiles para localizar URLs inexistentes
Detectar enlaces internos rotos en campos personalizados:
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_value LIKE '%http%' AND meta_value LIKE '%tudominio.com%' AND NOT EXISTS ( SELECT 1 FROM wp_posts WHERE guid = wp_postmeta.meta_value );
💡 Esto detecta campos donde se guarda una URL pero ya no hay contenido en ese enlace.
Buscar URLs antiguas que ya no están en el contenido activo:
SELECT ID, post_title, post_content FROM wp_posts WHERE post_content LIKE '%/categoria-antigua/%' AND post_status = 'publish';
5. Crear un dashboard en PHP para visualizar los errores
Puedes crear un panel sencillo que lea errores desde tu log de servidor y los muestre en pantalla.
<?php $log = file('/var/log/apache2/access.log'); // Cambia la ruta según tu sistema $errores = []; foreach ($log as $line) { if (strpos($line, '404') !== false) { preg_match('/GET (.*?) HTTP/', $line, $matches); if (!empty($matches[1])) { $url = $matches[1]; $errores[$url] = ($errores[$url] ?? 0) + 1; } } } arsort($errores); echo "<h3>Errores 404 detectados:</h3><ul>"; foreach ($errores as $url => $count) { echo "<li><strong>$count veces:</strong> $url</li>"; } echo "</ul>"; ?>
💡 Puedes añadir filtros por fecha, excluir bots o integrar exportación CSV.
6. Automatizar limpieza, redirecciones o reportes
- Genera automáticamente redirecciones 301 para URLs rotas frecuentes
- Guarda en base de datos los errores detectados y genera informes periódicos
- Usa `wp_safe_redirect()` o `.htaccess` para redireccionar desde PHP
- Conecta Google Sheets o tu CRM para registrar los errores más críticos
7. Conclusión
Controlar los errores 404 y las URLs rotas es una parte fundamental del mantenimiento SEO de cualquier web profesional. Con SQL y un poco de PHP puedes hacer tu propio sistema de monitorización.
¿Quieres que te preparemos un dashboard a medida o revisar los logs de tu sitio?
📩 Escríbenos y lo hacemos contigo.