Cómo mover WordPress de subdirectorio a la raíz del dominio (cPanel)
¿Tu WordPress está en un subdirectorio (como tudominio.com/blog) y quieres que cargue directamente en tudominio.com? Es una petición muy común, sobre todo cuando terminas de construir una web provisional y quieres que el dominio principal muestre tu trabajo final.
Mover WordPress de un subdirectorio a la raíz del dominio no es complicado, pero requiere seguir los pasos en orden para no romper nada. Si usas cPanel, tienes la ventaja de contar con herramientas gráficas que simplifican el proceso.
En esta guía te explico, paso a paso y sin tecnicismos, cómo hacerlo de forma segura. Incluso si es tu primera vez, podrás seguirlo.
Antes de empezar: prepara el terreno
La clave para mover WordPress sin sustos es la preparación. No te saltes esta fase. Necesitas tener todo listo antes de tocar un solo archivo.
Haz una copia de seguridad completa
Esto es innegociable. Si algo sale mal, tu copia de seguridad es tu red de seguridad. Debes guardar dos cosas:
- Los archivos: Todos los archivos de tu WordPress (la carpeta del subdirectorio).
- La base de datos: Toda la información de tu sitio (entradas, páginas, usuarios, configuraciones).
En cPanel, puedes hacer esto fácilmente:
- Para archivos: Ve a "Administrador de archivos", entra en la carpeta
public_html, busca tu subdirectorio (ej.blog), haz clic derecho y selecciona "Comprimir". Descarga el archivo.zipresultante a tu ordenador. - Para la base de datos: Ve a "phpMyAdmin" (dentro de "Bases de datos"). Selecciona tu base de datos a la izquierda, luego ve a la pestaña "Exportar" y elige el método "Rápido" y formato SQL. Descarga el archivo.
[WARNING] No continúes sin tener estas dos copias de seguridad en tu ordenador. Es la única forma de revertir cualquier error.
Anota tu configuración actual
Antes de mover nada, necesitas saber dos cosas:
- La URL actual: ¿Dónde está tu WordPress ahora? (Ej:
http://tudominio.com/blog). - La URL de destino: ¿Dónde quieres que esté? (Ej:
http://tudominio.com).
También es útil que anotes la ruta exacta de tu subdirectorio (ej: public_html/blog) y el nombre de tu base de datos y usuario (lo encontrarás en el archivo wp-config.php dentro de tu subdirectorio).
Paso 1: Mueve los archivos a la raíz
Ahora sí, vamos a la acción. Este paso consiste en mover físicamente todos los archivos de WordPress desde tu subdirectorio a la carpeta public_html.
- Accede a cPanel y abre el "Administrador de archivos".
- Entra en
public_html. Verás tu subdirectorio (ej:blog) y probablemente otros archivos comoindex.phpo.htaccess(puede que estén ocultos, actívalos en "Configuración" > "Mostrar archivos ocultos"). - Entra en tu subdirectorio (ej:
blog). - Selecciona todos los archivos y carpetas que hay dentro. Puedes usar "Seleccionar todo" en la barra superior.
- Haz clic en "Copiar" en la barra superior. En el campo "Ruta de destino", escribe
/home/TU_USUARIO/public_html(reemplaza TU_USUARIO con tu nombre de usuario de cPanel). - Haz clic en "Copiar archivos".
[TIP] Te recomiendo copiar en lugar de mover. Así, si algo falla, tus archivos originales siguen en el subdirectorio y puedes volver a intentarlo sin problemas.
Una vez copiado, verifica que en public_html ahora tienes las carpetas wp-admin, wp-content, wp-includes y los archivos como index.php, wp-config.php, etc.
Paso 2: Cambia la URL del sitio en la base de datos
Este es el paso más delicado. Tu WordPress "recuerda" su dirección. Si no se la cambias, te redirigirá al subdirectorio antiguo.
No edites la base de datos directamente a mano. Es muy fácil cometer errores. Usa una herramienta de reemplazo seguro.
- Vuelve a phpMyAdmin en cPanel.
- Selecciona tu base de datos en el panel izquierdo.
- Haz clic en la pestaña "SQL" en la parte superior.
- En el cuadro de texto, pega el siguiente comando SQL:
UPDATE wp_options SET option_value = replace(option_value, 'http://tudominio.com/blog', 'http://tudominio.com') WHERE option_name = 'siteurl' OR option_name = 'home';
UPDATE wp_posts SET guid = replace(guid, 'http://tudominio.com/blog','http://tudominio.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://tudominio.com/blog', 'http://tudominio.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://tudominio.com/blog', 'http://tudominio.com');
[INFO] Importante: Reemplaza
tudominio.compor tu dominio real,blogpor tu subdirectorio real, ywp_por el prefijo de tus tablas (si lo cambiaste al instalar, deberías saberlo; el más común eswp_).
Este comando busca en las tablas más importantes y reemplaza la URL antigua por la nueva. Es una forma segura de hacerlo.
Paso 3: Ajusta la configuración de WordPress (wp-config.php)
Ahora vamos a decirle a WordPress dónde están sus archivos de forma explícita. Esto ayuda a evitar problemas de rutas.
- En el "Administrador de archivos", ve a
public_htmly busca el archivowp-config.php. - Haz clic derecho sobre él y selecciona "Editar".
- Busca la línea que dice
define('WP_HOME', 'http://example.com');odefine('WP_SITEURL', 'http://example.com');. Si no existen, no pasa nada. Las añadiremos. - Justo antes de la línea que dice
/* ¡Eso es todo, deja de editar! Feliz publicación. */, añade estas dos líneas (ajustando la URL):
define('WP_HOME', 'http://tudominio.com');
define('WP_SITEURL', 'http://tudominio.com');
- Guarda los cambios y cierra el editor.
Paso 4: Limpia el subdirectorio y ajusta el .htaccess
Ya casi lo tienes. Ahora hay que "limpiar" el desorden para que todo funcione correctamente.
Elimina el subdirectorio
Ahora que has copiado los archivos y ya no los necesitas, puedes eliminar el subdirectorio original para que no haya conflictos.
- En el "Administrador de archivos", ve a
public_html. - Busca tu subdirectorio (ej:
blog), haz clic derecho y selecciona "Eliminar".
[WARNING] Asegúrate de que la copia en
public_htmlfunciona antes de eliminar el subdirectorio. Si algo falla, siempre puedes volver a copiarlo.
Verifica el archivo .htaccess
WordPress usa un archivo llamado .htaccess para gestionar los enlaces permanentes. A veces necesita una actualización.
- En
public_html, busca el archivo.htaccess. Si no lo ves, activa "Mostrar archivos ocultos". - Si existe, haz clic derecho y elige "Editar". Debería tener un contenido similar a este:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Si la línea RewriteBase / no está o tiene una ruta (ej: RewriteBase /blog/), cámbiala por RewriteBase / y guarda.
- Si el archivo no existe, créalo. En el "Administrador de archivos", haz clic en "+ Archivo", nómbralo
.htaccessy pega el contenido de arriba.
Paso 5: Actualiza los enlaces internos y el caché
El paso final es verificar que todo está en orden, pero hay un detalle: los enlaces que hayas escrito manualmente en tus entradas o páginas (por ejemplo, enlaces a imágenes o a otras páginas) pueden seguir teniendo la URL antigua.
- Inicia sesión en tu WordPress (ve a
tudominio.com/wp-admin). - Ve a Ajustes > Enlaces permanentes. No cambies nada, solo haz clic en "Guardar cambios". Esto fuerza a WordPress a regenerar las reglas de reescritura.
- Revisa tu sitio. Navega por las páginas principales, haz clic en las entradas, mira las imágenes. ¿Todo se ve bien?
Buscar y reemplazar en la base de datos (si es necesario)
Si encuentras enlaces rotos o imágenes que no cargan, es porque hay URLs antiguas en el contenido. Puedes usar un plugin como "Better Search Replace" para solucionarlo de forma segura.
- Instala y activa el plugin "Better Search Replace".
- Ve a Herramientas > Better Search Replace.
- En "Buscar", escribe
http://tudominio.com/blogy en "Reemplazar por", escribehttp://tudominio.com. - Selecciona todas las tablas de tu base de datos (o las más grandes, como
wp_postsywp_postmeta). - Marca la casilla "Ejecutar como consulta seca" y haz clic en "Ejecutar".
[TIP] Este plugin es más seguro que el comando SQL directo porque te permite hacer una "prueba en seco" para ver cuántas coincidencias hay antes de aplicar los cambios.
Solución de problemas comunes
A veces, las cosas no salen a la primera. Aquí tienes los problemas más típicos y cómo solucionarlos.
El sitio no carga o da error 500
Esto suele ser un problema con el archivo .htaccess. Vuelve a revisarlo y asegúrate de que tiene el contenido correcto y que RewriteBase es /.
Aparece un bucle de redirección
Esto significa que la URL en la base de datos no se ha actualizado correctamente. Repite el Paso 2 y asegúrate de usar el comando SQL correcto, con tu dominio y subdirectorio exactos.
Las imágenes no se ven
Es el problema más común. Las URLs de las imágenes están guardadas en la base de datos. Usa el plugin "Better Search Replace" del Paso 5 para actualizarlas todas.
No puedo acceder a wp-admin
Esto suele pasar si el paso 2 o el paso 3 no se hicieron bien. Verifica que WP_HOME y WP_SITEURL en wp-config.php sean correctos y que la base de datos tenga la URL nueva. Si no puedes acceder, edita el archivo wp-config.php y añade estas líneas para forzar la URL:
define('WP_HOME', 'http://tudominio.com');
define('WP_SITEURL', 'http://tudominio.com');
Preguntas frecuentes (FAQ)
¿Es seguro mover WordPress de subdirectorio a la raíz?
Sí, es un proceso estándar y seguro si sigues los pasos correctamente y tienes una copia de seguridad. La clave está en actualizar las URLs en la base de datos y mover los archivos.
¿Perderé mis datos (entradas, páginas, usuarios)?
No, no pierdes nada. Estás moviendo los archivos y la base de datos, no borrándolos. La información se mantiene intacta.
¿Qué pasa con el subdirectorio después de mover WordPress?
Una vez que has confirmado que todo funciona, puedes eliminar el subdirectorio public_html/blog para que no haya archivos duplicados que puedan causar confusión.
¿Necesito cambiar algo en mi dominio o DNS?
No. El dominio sigue siendo el mismo. Solo estás cambiando la ubicación de los archivos dentro de tu hosting.
¿Puedo usar el comando SQL si mi prefijo de tablas no es wp_?
Sí, solo tienes que cambiar wp_ por tu prefijo real (ej: mi_prefijo_options, mi_prefijo_posts, etc.).
Mover WordPress a la raíz es un proceso que, con calma y siguiendo estos pasos, puedes hacer tú mismo sin necesidad de contratar a un programador. Solo recuerda: copia de seguridad, paciencia y verificación. ¡Tu sitio estará en la raíz en poco tiempo!
