Reescritura de URL PrestaShop: checklist de 5 pasos para arreglar Friendly URLs rotas

Friendly URL está activada, pero los enlaces de producto siguen mostrando index.php?id_product=12 – o cada ruta amigable devuelve 404. La reescritura de URL PrestaShop solo funciona cuando el interruptor del Back Office, el archivo de reescritura en la raíz (Apache) y las reglas del servidor web coinciden. Esta es una checklist de 5 pasos: identificar el síntoma, confirmar el ajuste de la tienda, corregir la capa del servidor, comprobar una URL y limpiar duplicados y 404 antiguos.

El consejo genérico de «activar Friendly URL» es fácil de encontrar en un chatbot. Lo que suele hacer perder horas es aplicar la corrección equivocada al síntoma – o saltarse la comprobación de éxito o fracaso tras cada paso. Sigue la lista en orden. Las etiquetas oficiales están en Parámetros de la tienda → Tráfico en la documentación de PrestaShop 9. Antes de editar la configuración del servidor, haz una copia de seguridad completa de PrestaShop.

Paso 1 – Identificar qué está roto

Abre una ficha de producto en una ventana privada y anota qué caso se da. No lo omitas – los tres casos requieren correcciones distintas.

  • A – URLs sin reescribir todavía. La barra de direcciones sigue mostrando id_product, id_category o controller= tras activar Friendly URL. PrestaShop no está generando enlaces reescritos (o la caché sirve una página antigua).
  • B – URLs amigables con 404. Los enlaces se ven correctos (/categoria/slug-del-producto), pero cada ruta amigable devuelve Not Found. La tienda genera slugs; el servidor web no los enruta hacia PrestaShop.
  • C – Solo funciona en un dominio. La tienda principal va bien; un dominio multitienda, subdominio o subdirectorio falla. Suele ser URL de tienda / DNS / document root – no un segundo fallo de Friendly URL. Consulta en paralelo con esta checklist nuestra guía de multitienda en PrestaShop.

Éxito: se puede señalar A, B o C antes de tocar Apache o Nginx.

Paso 2 – Confirmar Friendly URL en el Back Office

Reescritura de URL PrestaShop: interruptor Friendly URL en Parámetros de la tienda, Tráfico y SEO
  1. Ir a Parámetros de la tienda → Tráfico y SEO.
  2. Abrir Configurar URLs.
  3. Poner Friendly URL en Sí y guardar.
  4. Borrar la caché de PrestaShop (Parámetros avanzados → Rendimiento) y volver a probar el mismo producto en una ventana privada.

En Apache, al guardar esta página debería crearse o actualizarse el .htaccess de la raíz con las reglas de reescritura de PrestaShop. Si el archivo falta, está vacío o es más antiguo que el guardado, PHP no puede escribir en la raíz de la tienda – corrige propiedad/permisos antes de buscar fallos en módulos.

En Nginx, el interruptor por sí solo no instala reglas de reescritura. Sigue haciendo falta el Paso 3.

Éxito (caso A): tras borrar la caché, los enlaces HTML nuevos usan slugs (aunque esos slugs sigan devolviendo 404 – eso pasa al caso B). Éxito (caso B/C): Friendly URL está en Sí y permanece en Sí tras recargar.

Paso 3 – Corregir la capa del servidor (Apache o Nginx)

Para seguir con la reescritura de URL PrestaShop, comprueba Parámetros avanzados → Información → Información del servidor (o pregunta al hosting). Sigue solo la rama que corresponda a tu servidor.

Si se usa Apache

  • Activar mod_rewrite (a menudo ya viene activado).
  • Confirmar que el document root de la tienda tiene un .htaccess legible que PrestaShop actualizó en el último guardado de SEO.
  • AllowOverrides debe permitir directivas de reescritura en ese directorio.
  • Las instalaciones en subdirectorio necesitan un RewriteBase acorde.
  • Las reglas personalizadas por encima del bloque de PrestaShop pueden cortocircuitar la reescritura – mueve temporalmente los extras debajo de la sección de PrestaShop para probar.
  • Tras una edición manual, desactiva y vuelve a activar Friendly URL una vez y guarda para que PrestaShop reescriba su propia sección; luego vuelve a añadir solo las líneas personalizadas que sigan haciendo falta.

Éxito: la URL amigable del producto devuelve HTTP 200 con el producto correcto (no la página 404 por defecto del hosting).

Si se usa Nginx

Bloque de servidor Nginx donde deben ir las reglas de reescritura de URL PrestaShop

Nginx ignora .htaccess. Edita el bloque de servidor del sitio (a menudo en /etc/nginx/sites-available/):

  1. Añade el ejemplo actual de reescritura Nginx de PrestaShop desde la documentación Nginx de PrestaShop 9 (mantén tu root real y el socket PHP-FPM).
  2. Ejecuta nginx -t.
  3. Si la prueba pasa, recarga: systemctl reload nginx (o el equivalente del panel de control del hosting).

Si un chatbot pegó un ejemplo antiguo, sustitúyelo por el bloque oficial de tu versión mayor. Las rutas y las líneas try_files cambian; fragmentos de foros de hace años son una causa habitual del caso B.

Éxito: igual que en Apache – URL amigable → 200 → producto correcto. Si un CDN o proxy inverso estaba delante mientras fallaba, purga su caché una vez para que deje de servir 404 en caché.

Paso 4 – Comprobar la reescritura de URL PrestaShop de extremo a extremo

No te detengas en «los enlaces del menú se ven bonitos». Ejecuta esta comprobación rápida en un producto:

  • Ventana privada: abre el producto desde el listado de categoría.
  • La barra de direcciones muestra una ruta con slug, no solo id_product.
  • Copia esa URL amigable y ábrela en una pestaña nueva: HTTP 200, mismo producto.
  • Opcional: solicita un slug incorrecto conocido – deberías ver el tema 404 de la tienda, no una página en blanco del servidor web que nunca llegó a PrestaShop.

Si el Paso 4 falla solo en un segundo dominio mientras el principal pasa, vuelve al caso C (URL multitienda / DNS / document root) antes de editar de nuevo las reglas de reescritura.

Éxito: un producto sobrevive al clic en el listado + recarga directa de la URL amigable.

Paso 5 – Canónicas y 404 residuales

Cuando la reescritura de URL PrestaShop funciona, cierra el lado SEO para que los buscadores dejen de repartir autoridad entre duplicados y rutas muertas.

  1. En Parámetros de la tienda → Tráfico y SEO, pon Redireccionar a la URL canónica en 301 Moved Permanently en una tienda en producción.
  2. Revisa módulos de terceros que añaden URLs de listados o blog – también necesitan canónicas coherentes.
  3. Tras renombrar slugs, mover categorías o cambiar de dominio, añade 301 desde las rutas antiguas (o restaura la entidad). Cambiar el esquema de URL sin redirecciones quema posiciones ya ganadas.
  4. Envía un sitemap actualizado para que los rastreadores recojan las URLs preferidas – consulta nuestra guía de sitemap en PrestaShop.

Usa la cobertura de Search Console (o los logs de acceso) para listar rutas 404 reales que siguen llegando al servidor. Corrígelas con redirecciones o restauración de contenido – la reescritura por sí sola no revive páginas CMS eliminadas.

Éxito: la opción canónica es 301; una ruta alternativa de producto de muestra redirige; los slugs antiguos relevantes están redirigidos o intencionadamente eliminados.

Resumen rápido de los 5 pasos

  1. Nombrar el síntoma (A sin reescribir / B amigable 404 / C solo un dominio).
  2. Confirmar Friendly URL en Sí + borrar caché (+ .htaccess escribible en Apache).
  3. Corregir mod_rewrite/.htaccess en Apache o reglas del bloque de servidor en Nginx.
  4. Comprobar un producto: enlace amigable + recarga directa = 200.
  5. Configurar canónicas 301 y limpiar 404 residuales / sitemap.

Si solo se recuerda un hábito: tras cada cambio, vuelve a probar la misma URL de producto antes de abrir el siguiente ajuste. Así la reescritura de URL PrestaShop deja de ser un bucle de prueba y error.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *