🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo cambiar la URL de PrestaShop sin romper la tienda (en DirectAdmin)

Actualizado el 27 de octubre de 2025

Cambiar la URL de tu tienda PrestaShop es una tarea que, si se hace a lo loco, puede dejarte la tienda en blanco o con enlaces rotos por todas partes. Pero no te preocupes: si sigues esta guía paso a paso, adaptada para servidores con panel DirectAdmin, podrás hacer el cambio sin sustos y sin perder tu posicionamiento en Google.

Aquí no vamos a asumir que eres un experto en servidores. Vamos a ir despacio, explicando cada paso, los errores típicos y cómo solucionarlos. El objetivo es que cambies la URL (ya sea por un cambio de dominio, migración a HTTPS o mudanza a un subdominio) con la tranquilidad de saber que tu tienda seguirá funcionando.


Antes de Empezar: Entiende qué vas a Hacer y por qué es Delicado

Cuando hablamos de cambiar la URL de PrestaShop, no solo cambiamos una dirección en la barra del navegador. Detrás de esa URL hay una base de datos llena de rutas absolutas (como http://www.tudominio.com/img/p/123.jpg) que apuntan a recursos internos.

Si cambias el dominio sin actualizar esas rutas, tu tienda intentará buscar las imágenes, los CSS y los enlaces en la dirección antigua. El resultado será una página web sin estilos, sin fotos y con enlaces que llevan a un sitio que ya no existe.

Por eso, este proceso tiene dos frentes de batalla: el servidor (archivos y configuración) y la base de datos (las rutas internas). Vamos a atacar ambos frentes con calma.


Fase 1: Preparación y Backup (El Paso que Nunca Debes Saltarte)

Antes de tocar nada, necesitas un plan B. Si algo sale mal, podrás restaurar tu tienda en segundos. No es negociable.

1.1. Haz una Copia de Seguridad Completa de Archivos y Base de Datos

En DirectAdmin, tienes dos herramientas principales para esto:

  • Copia de seguridad de archivos: Entra en tu panel de DirectAdmin. Busca la sección "Gestor de Archivos" o "Backup". Debes comprimir la carpeta donde está instalada tu tienda (normalmente public_html o una subcarpeta como public_html/tienda). Descarga ese archivo ZIP a tu ordenador.

  • Copia de seguridad de la base de datos: Ve a la sección "MySQL Management" o "Base de Datos MySQL". Encontrarás tu base de datos listada. Usa la opción de "Descargar" o "Dump" (volcado) para generar un archivo .sql y descárgalo también.

[WARNING] MUY IMPORTANTE: Guarda ambos backups (archivos y base de datos) en un lugar seguro fuera de tu servidor (en tu PC, en un disco duro externo o en la nube). Si el cambio de URL sale mal, estos archivos son tu salvavidas. No continúes sin hacer esto.

1.2. Identifica tu Configuración Actual

Necesitas saber dos datos clave antes de empezar:

  1. La URL antigua: Por ejemplo, http://www.mitienda.com.
  2. La URL nueva: Por ejemplo, https://www.mitienda.com (si añades SSL) o https://tienda.midominionuevo.com.

Anota ambas direcciones en un papel. Las usarás constantemente.


Fase 2: El Cambio en el Servidor (DirectAdmin)

Ahora vamos a tocar la configuración del servidor. Dependiendo de si cambias el dominio completo o solo mueves la tienda a una subcarpeta, los pasos varían ligeramente.

2.1. Caso A: Cambias el Dominio Principal en DirectAdmin

Si has comprado un dominio nuevo y quieres que sea el principal de tu cuenta, la cosa es más sencilla a nivel de servidor.

  1. Añade el dominio nuevo: En DirectAdmin, ve a "Domain Setup" o "Agregar Dominio". Añade tu nuevo dominio como dominio principal o como dominio adicional (addon domain).
  2. Mueve los archivos: Con el "Gestor de Archivos", copia o mueve todos los archivos de tu tienda desde la carpeta del dominio antiguo (ej. public_html/antiguo.com) a la carpeta del nuevo dominio (ej. public_html/nuevo.com).
  3. Crea o copia la base de datos: Si tu nuevo dominio tiene una base de datos vacía, puedes importar el backup .sql que hiciste antes. Si estás usando la misma base de datos, no necesitas hacer nada aquí.

[TIP] Asegúrate de que el nuevo dominio apunte a tu servidor (los DNS) antes de continuar. Si no, no podrás ver los cambios.

2.2. Caso B: Mueves PrestaShop a una Subcarpeta o Subdominio

Esto es muy común cuando quieres tener la tienda en tudominio.com/tienda o en tienda.tudominio.com.

  1. Crea la subcarpeta: En el "Gestor de Archivos", crea una nueva carpeta dentro de public_html. Por ejemplo, public_html/tienda.
  2. Sube los archivos: Mueve todos los archivos de tu PrestaShop a esa nueva carpeta. Si lo haces por FTP, asegúrate de que la transferencia sea en modo binario para que los archivos no se corrompan.
  3. Para un subdominio: En DirectAdmin, ve a "Subdomains" y crea uno nuevo (ej. tienda). DirectAdmin creará automáticamente la carpeta public_html/tienda y la configurará. Luego, subes los archivos ahí.

Fase 3: El Cambio en la Base de Datos (El Corazón del Problema)

Esta es la parte más crítica. Aquí es donde se actualizan todas las rutas internas de tu tienda. Hay dos métodos: el manual (con phpMyAdmin) y el automático (con un script).

3.1. Método Manual (Recomendado para Usuarios Cautelosos)

Vamos a usar phpMyAdmin, que es la herramienta que te ofrece DirectAdmin para gestionar tus bases de datos.

  1. Accede a phpMyAdmin: En DirectAdmin, busca el icono de "MySQL Management" y haz clic en el enlace que dice "phpMyAdmin".
  2. Selecciona tu base de datos: En la columna de la izquierda, haz clic sobre el nombre de la base de datos de tu tienda PrestaShop.
  3. Ve a la pestaña SQL: En la parte superior, haz clic en la pestaña "SQL". Se abrirá una caja de texto donde puedes escribir consultas.
  4. Ejecuta las consultas de actualización:

Aquí viene la magia. Necesitas ejecutar una serie de comandos SQL para reemplazar la URL antigua por la nueva en todas las tablas.

[INFO] El prefijo de las tablas de PrestaShop suele ser ps_, pero puede ser diferente si lo cambiaste durante la instalación. Ajusta el prefijo en los comandos si es necesario.

Consulta 1: Actualizar la configuración general

UPDATE ps_configuration SET value = 'http://www.tudominionuevo.com' WHERE name IN ('PS_SHOP_DOMAIN');
UPDATE ps_configuration SET value = 'http://www.tudominionuevo.com' WHERE name IN ('PS_SHOP_DOMAIN_SSL');

Consulta 2: Actualizar las URLs en las tablas de tiendas y tienda

UPDATE ps_shop_url SET domain = 'www.tudominionuevo.com', domain_ssl = 'www.tudominionuevo.com' WHERE main = 1;

Consulta 3: La consulta maestra para todas las demás tablas

Esta es una consulta que actualiza todas las ocurrencias de la URL antigua en cualquier campo de texto de todas las tablas. Es muy potente, así que úsala con cuidado.

UPDATE ps_links_rewrite SET link_rewrite = REPLACE(link_rewrite, 'URL_ANTIGUA', 'URL_NUEVA');

[WARNING] NO ejecutes esta consulta "maestra" directamente. Es demasiado genérica y podría dañar datos que no deben tocarse. La mejor práctica es buscar y reemplazar en tablas específicas. Las más importantes son:

  • ps_product (campo description, description_short, link_rewrite)
  • ps_category (campos description, link_rewrite)
  • ps_cms (campos content, link_rewrite)
  • ps_manufacturer (campo description)
  • ps_supplier (campo description)

Para cada tabla, ejecuta una consulta como esta:

UPDATE ps_product SET description = REPLACE(description, 'http://www.tudominioantiguo.com', 'http://www.tudominionuevo.com');
UPDATE ps_product SET description_short = REPLACE(description_short, 'http://www.tudominioantiguo.com', 'http://www.tudominionuevo.com');
UPDATE ps_product SET link_rewrite = REPLACE(link_rewrite, 'http://www.tudominioantiguo.com', 'http://www.tudominionuevo.com');

Y así sucesivamente con cada tabla que contenga texto.

3.2. Método Automático (Con un Script en la Raíz)

Esta es una alternativa más rápida y menos propensa a errores, pero requiere que subas un archivo temporal a tu servidor.

  1. Crea un archivo PHP: Abre un editor de texto (como el Bloc de Notas) y pega el siguiente código:
<?php
// Configuración de la base de datos (la encuentras en app/config/parameters.php)
define('DB_SERVER', 'localhost');
define('DB_NAME', 'tu_base_de_datos');
define('DB_USER', 'tu_usuario');
define('DB_PASS', 'tu_contraseña');
define('DB_PREFIX', 'ps_');

// URLs a reemplazar
$old_url = 'http://www.tudominioantiguo.com';
$new_url = 'http://www.tudominionuevo.com';

// Crear conexión
$conn = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

// Obtener todas las tablas
$tables = array();
$result = $conn->query("SHOW TABLES");
while ($row = $result->fetch_row()) {
    $tables[] = $row[0];
}

foreach ($tables as $table) {
    // Obtener columnas de la tabla
    $columns = array();
    $result = $conn->query("SHOW COLUMNS FROM $table");
    while ($col = $result->fetch_assoc()) {
        if (in_array($col['Type'], array('text', 'varchar', 'longtext', 'mediumtext', 'tinytext'))) {
            $columns[] = $col['Field'];
        }
    }

    // Actualizar cada columna de texto
    foreach ($columns as $column) {
        $conn->query("UPDATE $table SET $column = REPLACE($column, '$old_url', '$new_url')");
        echo "Tabla $table, columna $column actualizada.<br>";
    }
}

echo "¡Proceso completado!";
$conn->close();
?>
  1. Sube el archivo: Nombra el archivo como cambiar_url.php y súbelo a la raíz de tu tienda PrestaShop (donde está el index.php).
  2. Ejecútalo: Accede a http://www.tudominionuevo.com/cambiar_url.php en tu navegador. Verás el progreso de la actualización.
  3. Bórralo: IMPORTANTÍSIMO: En cuanto termine, borra el archivo cambiar_url.php de tu servidor. Dejarlo ahí es un agujero de seguridad enorme.

[TIP] Este script es más seguro que la consulta SQL genérica porque solo toca columnas de tipo texto, evitando dañar datos binarios o numéricos.


Fase 4: Configuración Final en el Back Office de PrestaShop

Una vez que la base de datos está actualizada, entra en tu panel de administración de PrestaShop (normalmente en tudominio.com/admin).

  1. Ve a Parámetros Avanzados > Rendimiento: Desactiva la caché y regenera el caché (botón "Vaciar la caché").
  2. Ve a Parámetros Avanzados > URL de la tienda: Aquí verás los campos de dominio y SSL. Asegúrate de que estén actualizados con la nueva URL.
  3. Regenera el .htaccess: Ve a Parámetros de la tienda > SEO y URLs y haz clic en "Guardar" sin cambiar nada. Esto regenera el archivo .htaccess con las nuevas rutas.

Fase 5: SEO y Redirecciones (No Rompas tu Posicionamiento)

Este es el punto que diferencia un cambio de URL exitoso de un desastre SEO.

5.1. Configura las Redirecciones 301

Un redireccionamiento 301 le dice a Google que tu página se ha movido permanentemente a una nueva dirección. Sin esto, perderás todo el "jugo" SEO de tus enlaces antiguos.

En el .htaccess:

DirectAdmin te permite editar el archivo .htaccess desde el "Gestor de Archivos". Al principio del archivo, añade estas líneas (ajustando las URLs):

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^tudominioantiguo\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.tudominioantiguo\.com$
RewriteRule (.*) http://www.tudominionuevo.com/$1 [R=301,L]

[WARNING] Si no sabes qué es .htaccess, ten mucho cuidado. Un error aquí puede tumbar tu web. Haz una copia de seguridad del archivo original antes de editarlo. Si no te sientes seguro, busca la opción de "Redirecciones" en DirectAdmin, que es más amigable.

5.2. Actualiza Google Search Console y tu Sitemap

  1. Añade la nueva propiedad en Google Search Console.
  2. Envía el nuevo sitemap (tudominionuevo.com/sitemap.xml).
  3. Solicita el cambio de dirección en la herramienta de "Cambio de dirección" (dentro de la propiedad antigua) si cambiaste de dominio.

5.3. Actualiza Enlaces Internos y Externos

Revisa que no tengas enlaces internos rotos en tu menú, en tus productos, etc. También, si tienes enlaces externos apuntando a tu tienda (por ejemplo, en redes sociales o directorios), actualízalos.


Solución de Problemas Comunes (FAQ)

1. Mi tienda se ve en blanco o con errores de "500 Internal Server Error"

  • Causa: Generalmente es un problema con el archivo .htaccess o con la caché de PrestaShop.
  • Solución: Borra el archivo .htaccess y vuelve a generarlo desde el Back Office (Parámetros de la tienda > SEO y URLs > Guardar). Si el problema persiste, desactiva la caché desde config/defines.inc.php (cambiando _PS_MODE_DEV_ a true para ver el error exacto).

2. Las imágenes no cargan

  • Causa: Las rutas en la base de datos no se actualizaron correctamente.
  • Solución: Vuelve a ejecutar las consultas SQL de reemplazo, prestando especial atención a las tablas ps_product, ps_category y ps_image. Asegúrate de que la ruta en el campo id_image y las carpetas de imágenes (/img/p/) sean correctas.

3. No puedo acceder al Back Office

  • Causa: La URL en la tabla ps_configuration o ps_shop_url sigue siendo la antigua.
  • Solución: Conecta a la base de datos por phpMyAdmin y ejecuta manualmente las consultas de actualización de ps_configuration y ps_shop_url que vimos antes.

4. He movido la tienda a una

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel