Introducción
Cuando haces una migración, restructuración o limpieza de URLs en WordPress, es imprescindible crear redirecciones 301 para no perder tráfico ni posicionamiento SEO.
Hacerlas una a una desde plugins puede ser lento e ineficiente. En esta guía aprenderás a crear redirecciones 301 masivas directamente desde la base de datos, sin depender de plugins externos y con control total desde código o MySQL.
Índice
- 1. ¿Cuándo se usan redirecciones 301?
- 2. Opciones para aplicar redirecciones en WordPress
- 3. Crear tabla personalizada para redirecciones
- 4. Cargar redirecciones desde CSV
- 5. Código PHP para forzar redirecciones al cargar WordPress
- 6. Alternativa avanzada: usar .htaccess o nginx para gran volumen
- 7. Conclusión
1. ¿Cuándo aplicar redirecciones 301?
- 🔁 Has cambiado la estructura de URLs (categorías, slugs, idiomas)
- 📦 Has migrado contenido desde otro CMS
- 🧹 Estás eliminando páginas antiguas pero quieres preservar tráfico
- 🧠 Google Search Console detecta errores 404 recurrentes
2. Opciones comunes para hacer redirecciones
Método | Ventajas | Desventajas |
---|---|---|
Plugins como Redirection | Interfaz sencilla | Puede ralentizar grandes sitios |
.htaccess / nginx | Rendimiento excelente | No editable desde WordPress |
Función PHP + tabla propia | Flexible, escalable, seguro | Requiere conocimientos técnicos |
3. Crear una tabla personalizada para redirecciones
CREATE TABLE wp_redirecciones_301 ( id INT AUTO_INCREMENT PRIMARY KEY, origen VARCHAR(255) NOT NULL, destino VARCHAR(255) NOT NULL, activo TINYINT DEFAULT 1 );
💡 Puedes añadir campos como tipo (301, 302), fecha, notas, etc.
4. Importar redirecciones desde un CSV
Ejemplo básico de contenido del CSV:
origen | destino |
---|---|
/blog/entrada-antigua | /nueva-url |
/producto-x | /productos/actualizados/producto-x |
Insertar en la base de datos:
LOAD DATA INFILE '/ruta/redirecciones.csv' INTO TABLE wp_redirecciones_301 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (@origen, @destino) SET origen = TRIM(@origen), destino = TRIM(@destino);
5. Código PHP para aplicar redirecciones
add_action('template_redirect', function () { global $wpdb; $uri = esc_url_raw($_SERVER['REQUEST_URI']); $redir = $wpdb->get_row($wpdb->prepare( "SELECT destino FROM wp_redirecciones_301 WHERE origen = %s AND activo = 1", $uri )); if ($redir) { wp_redirect(home_url($redir->destino), 301); exit; } });
🧠 Este código revisa si la URL actual existe en la tabla y, si está activa, lanza un 301 hacia la nueva.
6. Alternativa: usar .htaccess o nginx
Para miles de redirecciones o tráfico muy alto:
Redirect 301 /pagina-antigua /pagina-nueva
💡 Si usas nginx:
rewrite ^/antigua-url$ /nueva-url permanent;
📋 Puedes generar estas líneas automáticamente desde un exportador PHP.
7. Conclusión
Las redirecciones 301 son una herramienta esencial para preservar tráfico, mantener el SEO y mejorar la experiencia de usuario.
Con una tabla propia y un script PHP puedes gestionarlas de forma masiva y profesional, sin depender de plugins pesados.
📩 ¿Te gustaría tener esto automatizado o integrado con Google Sheets? Escríbenos y lo preparamos a medida.