Saltar al contenido

SEO en PrestaShop: URL amigables, canonical, robots.txt, schema y velocidad

Publicado el 07-10-20269 min de lecturaPor la redacción de SmoothSeen

El SEO técnico en PrestaShop se decide en cuatro pantallas: SEO y URLs (URL amigables, redirección canónica y robots.txt), Configuración de Productos (qué pasa con los desactivados), el módulo Google sitemap y Rendimiento (caché y CCC). Esta guía recorre cada ajuste en PrestaShop 9.2, la versión actual, con un módulo probado para los rastreadores de IA.

Lo esencial

  • PrestaShop 9.2.0 salió el 30-09-2026 y, desde la 9.1, las instalaciones nuevas usan el tema Hummingbird en lugar de Classic.
  • La redirección a la URL canónica viene de serie con un 302; PrestaShop recomienda cambiarla a 301 cuando la tienda está en marcha.
  • El botón «Generar el archivo robots.txt» sobrescribe el fichero entero, así que las reglas que añadas a mano desaparecen en la siguiente generación; un módulo con el hook actionAdminMetaAfterWriteRobotsFile las conserva.
  • El robots.txt generado bloquea los filtros (?q=) y la ordenación (?order=), pero deja rastrear la paginación (?page=2), que se declara canónica de sí misma.
  • Un producto desactivado devuelve 404 por defecto; se puede cambiar por un 301 a otro producto o categoría, o por un 410.

Para comprobarlo en tu web: Tiendas online

En esta página

PrestaShop es una plataforma de comercio electrónico de código abierto en PHP. Controla las URL, el canonical, el robots.txt, el sitemap (con un módulo) y el marcado de producto del tema; no controla la compresión, las cabeceras ni la versión de PHP de tu servidor. La versión 9.2.0 se publicó el 30-09-20261 y funciona con PHP 8.1 a 8.52. Desde la 9.1, las instalaciones nuevas traen el tema Hummingbird en lugar de Classic3. Los menús se citan como aparecen en el panel en español. Lo común a cualquier tienda está en la guía de SEO para tiendas online.

¿Dónde está cada ajuste de SEO en PrestaShop 9?

Ajuste
URL amigables y canonical
Ruta en el panel
Parámetros de la tienda > Tráfico & SEO > SEO y URLs > Configuración de URLs
Qué decide
URL legibles y respuesta a URL no canónicas
Ajuste
Forma de las URL
Ruta en el panel
SEO y URLs > Formato de los enlaces
Qué decide
Ruta de productos, categorías y páginas
Ajuste
robots.txt
Ruta en el panel
SEO y URLs > Generación de archivos robots
Qué decide
Regenera el fichero
Ajuste
Productos desactivados
Ruta en el panel
Parámetros de la tienda > Configuración de Productos
Qué decide
404, 410 o producto como descatalogado
Ajuste
Título, meta descripción, URL y redirección de cada producto
Ruta en el panel
Catálogo > Productos > pestaña SEO
Qué decide
Lo que ve el buscador de esa ficha
Ajuste
HTTPS
Ruta en el panel
Parámetros de la tienda > Configuración > Activar SSL
Qué decide
Tienda por https
Ajuste
Caché y CCC
Ruta en el panel
Parámetros Avanzados > Rendimiento
Qué decide
Smarty, CSS y JavaScript

¿Cómo se activan las URL amigables y el canonical?

En SEO y URLs, sección Configuración de URLs4:

  1. URL amigable: actívala si tu servidor admite reescritura de URL (en Apache, mod_rewrite). PrestaShop avisa de que, si el servidor no la admite, la tienda puede quedar inaccesible.
  2. URL acentuada: permite caracteres no ASCII en las URL. Desactivada, las URL van sin tildes ni eñes, que es lo más fácil de copiar y enlazar.
  3. Redirigir a la URL canónica: decide qué responde la tienda cuando alguien pide una página por una URL que no es la suya. Hay tres opciones: sin redirección, 302 y 301.

En PrestaShop 9.2 la instalación deja esta última opción en 302, y el propio panel recomienda «301 Movido permanentemente» cuando la tienda está en marcha56. Cámbiala. Un 302 le dice a Google que la URL buena puede cambiar.

En Formato de los enlaces defines las rutas. La de producto, en el código de la 9.2, es {id}{-:id_product_attribute}-{rewrite}.html, que produce /12-camiseta.html o, con combinación, /12-45-camiseta.html7. El número no se puede quitar con las rutas de serie4. El canonical de la ficha apunta a la URL del producto sin combinación8, así que las combinaciones no compiten entre sí. Si cambias el formato con la tienda indexada, todas las URL cambian: decide antes de lanzar.

¿Qué hace PrestaShop con los filtros y la paginación?

El módulo de búsqueda por facetas añade los filtros a la URL de la categoría con el parámetro q (por ejemplo, ?q=Talla-M), y la ordenación usa order9. El canonical de una categoría conserva solo el número de página y descarta los filtros10, que es lo que Google pide: cada página de una serie rastreable y canónica de sí misma11, y los filtros fuera del índice12.

El robots.txt que genera PrestaShop encaja con eso. Bloquea ?q=, ?order=, ?tag=, ?id_currency=, ?search_query=, ?back= y ?n= (también tras &), los controladores del carrito, la cuenta, la búsqueda y el pedido, y carpetas internas como classes/, config/ o vendor/; y permite los CSS, JS e imágenes de los módulos13. No bloquea ?page=. Lo comprobamos con un comparador que aplica las reglas de Google: /3-ropa y /3-ropa?page=2 quedan permitidas; ?q=Talla-M, ?order=product.price.asc y ?page=2&q=Color-Azul, bloqueadas.

Si una combinación de filtros tiene búsquedas propias, no abras el filtro: crea una categoría con su texto y su URL.

¿Cómo se añaden reglas para los rastreadores de IA sin perderlas?

El botón Generar el archivo robots.txt sustituye el fichero entero, y la documentación avisa de que las reglas propias hay que añadirlas después de generarlo4. El problema es la siguiente generación: borra lo que añadiste. La generación lanza dos hooks, actionAdminMetaBeforeWriteRobotsFile y actionAdminMetaAfterWriteRobotsFile13, así que un módulo pequeño puede escribir tu bloque cada vez. Guárdalo en modules/robotsia/robotsia.php, instálalo y vuelve a generar el robots.txt:

<?php
if (!defined('_PS_VERSION_')) {
    exit;
}

class RobotsIa extends Module
{
    public function __construct()
    {
        $this->name = 'robotsia';
        $this->tab = 'seo';
        $this->version = '1.0.0';
        $this->author = 'Tu tienda';
        $this->ps_versions_compliancy = ['min' => '8.0.0', 'max' => _PS_VERSION_];
        parent::__construct();
        $this->displayName = 'robots.txt: rastreadores de IA';
        $this->description = 'Añade un grupo para los rastreadores de entrenamiento cada vez que se genera robots.txt.';
    }

    public function install()
    {
        return parent::install() && $this->registerHook('actionAdminMetaAfterWriteRobotsFile');
    }

    public function hookActionAdminMetaAfterWriteRobotsFile(array $params)
    {
        $fd = $params['write_fd'];
        fwrite($fd, "\n# Entrenamiento de modelos: vetarlos no te saca de las respuestas de IA\n");
        foreach (['GPTBot', 'ClaudeBot', 'Google-Extended', 'CCBot'] as $bot) {
            fwrite($fd, 'User-agent: ' . $bot . PHP_EOL);
        }
        fwrite($fd, 'Disallow: /' . PHP_EOL);
    }
}

Lo comprobamos con php -l en la imagen oficial php:8.3-cli y ejecutando el hook con el mismo orden de escritura que Tools::generateRobotsFile en la 9.2: el grupo aparece al final, después de las reglas de PrestaShop. No toca el grupo User-agent: *, así que OAI-SearchBot, Claude-SearchBot y PerplexityBot (los que deciden si ChatGPT, Claude o Perplexity pueden citarte) siguen las reglas generales. GPTBot, ClaudeBot y CCBot recogen contenido para entrenar modelos, y Google-Extended no afecta a Google Search1415. La lista completa está en la guía de bots de IA en robots.txt.

¿Cómo se genera el sitemap?

PrestaShop lo genera con el módulo Google sitemap (gsitemap), que crea un sitemap por idioma y se mantiene al día con una URL de cron que muestra su configuración16. El orden importa: el robots.txt solo incluye la línea Sitemap: si el fichero índice del sitemap (1_index_sitemap.xml en la tienda 1) ya existe al generarlo13. Genera primero el sitemap y después el robots.txt.

El módulo trae prioridades por tipo de página, pero no pierdas tiempo con ellas: Google ignora <priority> y <changefreq>17.

¿Qué pasa cuando desactivas un producto?

En Parámetros de la tienda > Configuración de Productos, el comportamiento predeterminado para productos desactivados viene en página de error con respuesta 404; las otras opciones son 410 o mostrar el producto como descatalogado con respuesta 200, 404 o 41018. En cada ficha, la pestaña SEO tiene la Redirección cuando el producto está desactivado, que permite una redirección permanente (301) o temporal (302) a otro producto o a una categoría19.

La regla práctica: si el producto no vuelve y tiene un sustituto claro, 301 al sustituto o a su categoría; si no vuelve y no hay sustituto, 410; si vuelve pronto, muéstralo como descatalogado con 200 para no perder la URL.

¿Qué datos estructurados trae el tema?

Classic y Hummingbird generan un bloque JSON-LD de producto en templates/_partials/microdata/product-jsonld.tpl2021. Esto es lo que pinta Hummingbird 2.1.2, frente a lo que pide Google para las fichas de comerciante22:

Propiedad
name, image, offers.price, priceCurrency
Hummingbird 2.1.2
Sí
Google
Obligatorias
Propiedad
availability, url, priceValidUntil
Hummingbird 2.1.2
Sí
Google
Recomendadas
Propiedad
sku, mpn, gtin (EAN-13), gtin12 (UPC)
Hummingbird 2.1.2
Sí
Google
Recomendadas
Propiedad
brand
Hummingbird 2.1.2
El fabricante; si no hay, la tienda
Google
Recomendada
Propiedad
aggregateRating
Hummingbird 2.1.2
Sí, con el módulo de comentarios
Google
Recomendada
Propiedad
itemCondition
Hummingbird 2.1.2
Solo si muestras el estado
Google
Recomendada
Propiedad
shippingDetails, hasMerchantReturnPolicy
Hummingbird 2.1.2
No
Google
Recomendadas

Dos detalles. La description del marcado sale de la meta descripción de la página, no de la descripción del producto: rellénala en cada ficha. Y si no asignas fabricante, la marca será el nombre de tu tienda; en productos de terceros, asigna el fabricante real. Las políticas de envío y devolución, Google recomienda declararlas una vez en el marcado de Organization22. Más detalle en la guía de schema Product para fichas de producto.

¿Cómo se fuerza HTTPS y se acelera la tienda?

En Parámetros de la tienda > Configuración, activa SSL. En el código de la 9.2, con SSL activo, la tienda sirve todas las páginas por https y redirige con un 301 las peticiones que llegan por http23. HSTS y el resto de cabeceras van en el servidor: la guía de HTTPS, HSTS y cabeceras en Apache tiene los fragmentos.

En Parámetros Avanzados > Rendimiento24:

  1. Smarty: en producción, deja la caché activada y elige no recompilar las plantillas; «Forzar compilación» es solo para desarrollo.
  2. CCC: el «Smart cache» para CSS y para JavaScript viene activado en una instalación nueva25. PrestaShop pide probar la tienda con el de JavaScript, porque combinar scripts a veces falla.
  3. Modo de depuración: apagado en producción.

Mide el resultado con los umbrales de Google al percentil 75: LCP de 2,5 s o menos, INP de 200 ms o menos y CLS de 0,1 o menos26.

Cómo comprobarlo

  • Redirección canónica: curl -I https://www.example.com/12-nombre-equivocado.html debe responder 301, no 302.
  • robots.txt: abre /robots.txt, busca tu bloque al final y la línea Sitemap:, y revisa el informe de robots.txt de Search Console.
  • Canonical: la inspección de URL de Search Console en una ficha con combinación y en una categoría filtrada.
  • Marcado: pasa una ficha por la Prueba de resultados enriquecidos.

Qué hace SmoothSeen con esto

SmoothSeen analiza una ficha o una categoría y revisa lo que configura esta guía: robots.txt, sitemap, canonical y noindex, datos estructurados de producto, velocidad con las Core Web Vitals de usuarios reales (o con Lighthouse si no hay datos de campo), compresión, HTTPS y cabeceras. En la parte de IA mira qué rastreadores permite tu robots.txt, separando búsqueda de entrenamiento, y si el servidor responde 403 a alguno.

Qué hacer esta semana

Abre SEO y URLs y comprueba que Redirigir a la URL canónica está en 301. Después genera el sitemap, regenera el robots.txt y confirma que lleva la línea Sitemap:. Si quieres ver el resto de la lista medido, analiza tu tienda online con SmoothSeen.

Preguntas frecuentes

¿Se puede quitar el número de las URL de PrestaShop?

Con las rutas de serie, no: el identificador numérico forma parte de la ruta de productos y categorías, y PrestaShop lo usa para encontrar la página. Existen módulos de terceros que lo eliminan, pero cambian todas las URL de la tienda. Solo compensa en una tienda nueva o en una migración planificada con redirecciones 301 de cada URL antigua.

¿Hay que regenerar el robots.txt después de actualizar PrestaShop?

Conviene revisarlo. El fichero no se actualiza solo: refleja las reglas de la versión con la que lo generaste y los idiomas activos en ese momento. Tras una actualización mayor, o al añadir un idioma, vuelve a generarlo desde SEO y URLs. Si añadiste reglas a mano, pásalas antes a un módulo para no perderlas.

¿PrestaShop bloquea a ChatGPT o a Perplexity?

No. El robots.txt generado solo tiene el grupo User-agent: *, con vetos a parámetros, controladores privados y carpetas internas. OAI-SearchBot y PerplexityBot pueden leer fichas y categorías. Si no te citan, revisa antes si tu servidor o tu cortafuegos les responde con un 403 mientras sirve la página a un navegador.

¿Sirven las meta keywords de PrestaShop?

No para Google. PrestaShop conserva un campo de palabras clave en algunas páginas, pero Google documenta que la etiqueta meta keywords no tiene ningún efecto en la indexación ni en el posicionamiento de Google Search. Dedica ese tiempo al meta título, a la meta descripción y a la descripción del producto, que sí se ven en los resultados.

Fuentes

  1. 1PrestaShop 9.2.0, repositorio oficial de PrestaShop en GitHub, 30-09-2026.
  2. 2install-dev/install_version.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  3. 3PrestaShop 9.1 is available, PrestaShop Project, 23-03-2026.
  4. 4SEO and URLs, documentación de PrestaShop 9, consultada el 07-10-2026.
  5. 5install-dev/data/xml/configuration.xml (PS_CANONICAL_REDIRECT) y classes/controller/FrontController.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  6. 6PrestaShop/TranslationFiles, carpeta 9 (paquete es-ES), repositorio oficial de traducciones de PrestaShop, consultado el 09-10-2026.
  7. 7classes/Dispatcher.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  8. 8src/Adapter/Presenter/Product/ProductLazyArray.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  9. 9ps_facetedsearch: src/Product/SearchProvider.php, repositorio oficial de PrestaShop, consultado el 09-10-2026.
  10. 10controllers/front/listing/CategoryController.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  11. 11Pagination, incremental page loading, and their impact on Google Search, Google Search Central, actualizada el 10-12-2025.
  12. 12Managing crawling of faceted navigation URLs, Google Search Central, actualizada el 18-12-2025.
  13. 13classes/Tools.php, funciones generateRobotsFile y getRobotsContent, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  14. 14Overview of OpenAI Crawlers, OpenAI, consultada el 07-10-2026.
  15. 15Google's common crawlers, Google Crawling Infrastructure, actualizada el 14-07-2026.
  16. 16PrestaShop/gsitemap, repositorio oficial del módulo Google sitemap, consultado el 09-10-2026.
  17. 17Build and submit a sitemap, Google Search Central, actualizada el 08-07-2026.
  18. 18ProductPreferences/GeneralType.php, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  19. 19Managing products, documentación de PrestaShop 9, consultada el 09-10-2026.
  20. 20PrestaShop/classic-theme: product-jsonld.tpl, repositorio oficial de PrestaShop, consultado el 09-10-2026.
  21. 21PrestaShop/hummingbird v2.1.2: product-jsonld.tpl, repositorio oficial de PrestaShop, consultado el 09-10-2026.
  22. 22Merchant listing (Product, Offer) structured data, Google Search Central, actualizada el 08-09-2026.
  23. 23classes/controller/FrontController.php, función sslRedirection, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  24. 24Performance, documentación de PrestaShop 9, consultada el 07-10-2026.
  25. 25install-dev/data/xml/configuration.xml, repositorio oficial de PrestaShop, versión 9.2.0, consultado el 09-10-2026.
  26. 26Web Vitals, web.dev (Google), actualizada el 31-10-2024.

Cómo citar este artículo

SmoothSeen. (2026, 7 de octubre). SEO en PrestaShop: URL amigables, canonical, robots.txt, schema y velocidad. https://smoothseen.com/es/blog/prestashop-seo/

Quién lo escribe

SmoothSeen es una herramienta de auditoría web que mide el posicionamiento en buscadores y en asistentes de IA y entrega informes con la marca de la agencia.

Este blog es de SmoothSeen: cuando un artículo habla del producto, lo hace sabiendo que es el nuestro. Las cifras de terceros enlazan a su fuente original.

Historial de cambios

  • Primera versión.

Sigue leyendo

SEO en PrestaShop 9: guía técnica de la tienda