En las últimas semanas me han preguntado ya varias veces cómo eliminar la base de los permalinks de WooCommerce, es decir, que en las URLs de los productos o de las categorías no aparezca /producto/ o /categoria-producto/.
Así que lo respondo aquí, en extenso, por escrito y con vídeo, y así doy una respuesta más completa y a la vez sirve para todo el que se esté planteando hacer algo así.
Tabla de contenidos
Eliminar la base de las URLs de WooCommerce
En principio tengo que decir que no encuentro un motivo poderoso para poder hacer esto, más allá de crear URLs más cortas, lo cual presenta, eso sí, un beneficio (aunque mínimo) para el SEO.
Por el contrario, le veo varios inconvenientes al asunto, como que tendrás que andar siempre con mucho cuidado de no utilizar para un producto el mismo slug que ya hayas usado en una página, en una entrada, en una categoría o en una etiqueta.
De hecho, WooCommerce no realiza esa comprobación (para eso está la base en los enlaces permanentes), y en caso de que el slug de un producto coincida con el de una entrada o una página de WordPress éstas ya no podrán visitarse, ya que al acceder a esa URL estarás yendo al producto.
Es más, en la propia documentación para desarrolladores de WooCommerce se desaconseja hacerlo.
Cuándo cambiar las URLs de WooCommerce
Otro punto a tener en cuenta es cuándo vas a hacerlo. Siempre hay que andar con pies de plomo a la hora de cambiar las URLs, y más aún cuando se cambia la estructura de permalinks.
Y ya no hablo sólo de la base de las URLs de WooCommerce, sino de cualquier cambio en los enlaces permanentes que se hagan en la web: si puedes evitar hacerlos, mejor.
Lo aconsejable es establecer estas cosas a la hora de construir la web y ya no cambiarlos, ya que si no lo haces bien (en especial hay que ser muy cuidadoso estableciendo redirecciones) puede dar lugar a errores 404, desindexación de contenidos, etcétera, y te puede liar un buen follón con el posicionamiento en buscadores.
Así que, dichas estas consideraciones previas a modo de disclaimer, y si sigues pensando que los potenciales beneficios merecen la pena, vamos a ver cómo hacer el cambio.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Cambiando los permalinks de WooCommerce
Evidentemente, lo primero que piensa uno es ir a Ajustes > Enlaces permanentes a establecerlo allí mediante los ajustes de permalinks de WooCommerce pero, como puedes ver en el vídeo que hay al final de la entrada, el plugin tiene previsto ya cualquier «truco» que pretendas usar:
- Si eliges la opción Base personalizada y la dejas en blanco o pones simplemente /, WooCommerce te cambiará a la opción Por defecto.
- Si usas /%product_cat%/ como estructura personalizada (que hace que a la URL del producto se añada el slug de la categoría) WooCommerce te lo sustituye por /producto/%product_cat%/
- Si intentas engañarlo poniendo ./ o /./ crearás un error de direccionamiento, y no se cargarán los productos.
No, eso no nos vale. Afortunadamente hay una opción mucho más sencilla: usar un plugin.
Plugin para eliminar la base de los enlaces permanentes de WooCommerce
Se trata del plugin gratuito WooCommerce Permalink Manager, que nos permite precisamente eso: eliminar la base de los enlaces permanentes de los productos (/producto/) y de las categorías de los productos (/categoria-producto/), aunque no de las etiquetas de los productos.
Al activarlo lo primero que hace es solicitarnos permiso, mediante un cuadro de diálogo, para enviar datos de uso. Puedes permitirlo o, simplemente, pulsar en Saltar, el plugin va a funcionar igual de bien.
Ahora ya puedes ir al nuevo menú que tendrás en Premmerce > Permalink Manager, donde dispones de tres opciones:
- Eliminar la base de las categorías de productos (por defecto categoria-producto)
- Eliminar el slug de las categorías padre cuando se trata de subcategorías, dejando en la URL sólo el slug de la subcategoría final
- Eliminar la base de los enlaces permanentes de los productos (por defecto Producto)
Personalmente, no veo muy útil la segunda opción, aunque depende mucho de la estructura de categorías que hayas planteado: yo veo más útil para el SEO una URL que sea /pantalones/para-chica/ que una que simplemente sea /para-chica/.
Tampoco te aconsejo en absoluto marcar la primera opción, la que elimina la base en las categorías de WooCommerce. Ahora veremos por qué.
Productos y categorías en dos URLs distintas
A partir de este momento ya tienes los productos en las nuevas URLs, sin base: tutienda.com/nombre-producto/
Sin embargo (¡ay!) el plugin no puede eliminar las URLs creadas por defecto por WooCommerce, así que el producto también se mostrará en la URL original, tutienda.com/producto/nombre-producto/
El plugin soluciona esto de una forma muy práctica: añade a la URL original (la que sí incluye la base) la metaetiqueta rel=canonical apuntando hacia la nueva URL. Eso hace saber a los buscadores que debe ignorar esta versión y les dice cuál es la versión «buena». Así se evitan penalizaciones por contenido duplicado.
Sin embargo, y esto sí es grave, si activas la opción para eliminar la base de los permalinks de las categorías de productos también duplica estas páginas (no es que las duplique, simplemente que se muestran en en ambas URLs) pero a éstas no les añade el rel=canonical, por lo que podrías tener problemas con Google.
La única alternativa sería marcar estas páginas como noindex mediante el plugin de SEO que utilices, pero esto tampoco es aconsejable, ya que estas páginas atraen bastante tráfico orgánico a la tienda (las categorías suelen responder bastante bien a búsquedas de usuario: «zapatos de tacón alto», «televisores LCD», etc).
En pocas palabras: yo no te aconsejaría eliminar la base de las URLs de WooCommerce, pero si te empeñas en hacerlo, hazlo sólo en los productos. Y llevando mucho cuidado.
Vídeo: Cómo eliminar la base de los permalinks en WooCommerce
En este vídeo puedes ver el proceso (pero, si has venido aquí directamente, igualmente te aconsejo leer el artículo para que estés bien informado de los riesgos de lo que quieres hacer):
Javier dice
GRACIAS!!! Este es uno de los talones de Aquiles de Word Press para Tiendas… Probé alguna solución pero generaba enlaces nuevos y echaba por tierra el trabajo. Con este pluging y tú explicación, solucionado!
Repito gracias por el genial vídeo
Enrique J. Ros dice
Me alegra que te haya sido útil, Javier 🙂
Un saludo.
Javier dice
De todos modos me queda la duda, de que pasa con las URLS antiguas miweb.com/productos/producto-uno… porque con el canonical le decimos a google cual de las urls es la «buena» pero las antiguas se desindexan?
Habría que capar con robots por ejemplo al ruta miweb.com/productos
Enrique J. Ros dice
Google iría actualizando el índice (eso sí, a su ritmo) según vaya revisitando URLs. De todos modos lo óptimo sería, por supuesto, establecer redirecciones 301 de las URLs antiguas a las nuevas.
Un saludo.
Kevin Rouget dice
+10
German Vazquez dice
Saludos Enrique:
Ya ese plugin no esta eliminando los permalink en la edición gratuita, solo en la de pago y esta un poco alto el precio de $49.99 por un año.
Alex dice
Exacto! He llegado tarde, ya que me interesa eliminar la base pero no sé como… y evidentemente yo no voy a pagar la versión premium. Alguien sabe cómo se puede hacer a fecha de hoy?
Enrique J. Ros dice
Hola
En el repositorio de WordPress se pueden descargar también las versiones anteriores del plugin.
Un saludo
Alex dice
Solucionado!! Mil gracias!!
(Aunque la raíz del problema persiste…. jaja) Pero por lo menos he podido quitar la base de los productos.
Un saludo!!
María Francisca dice
Hola Enrique, gracias por tu blog. Tengo una duda ¿Hay forma de quitar el Inicio/categoria/producto de la esquina superior izquierda de la ficha producto (donde puedo apretar en categoria y me lleva a la página de esa categoria? esto porque no puedo editar la página de categoría, que no coincide con el resto del sitio porque aparece con la barra lateral de blog que viene por defecto y que he sacado del resto de páginas.
Ejemplo en mi sitio cormo.cl/betasal (ir a sabores en inicip/sabores/betasal esquina superior izquierda), la página de categoria sabores por ejemplo no la puedo editar.
Enrique J. Ros dice
Hola María Francisca
Eso depende de la plantilla, que es la que lo inserta. Busca alguna opción que diga Breadcrumbs o Migas de pan. Si no la tiene, siempre puedes ocultarlas mediante CSS.
Un saludo
Fernando pedraza dice
Excelente aporte pero hoy 2020 ya este plugins esta ventaja es de pago 🙁
Enrique J. Ros dice
Hola Fernando
El plugin sigue teniendo una versión gratuita, que está en el repositorio tal como está enlazado en esta misma entrada, y una versión pro.
Un saludo
luis silva dice
Buen dia, tengo un problema, estoy haciendo una pagina sonde el producto es virtual y son pocos no uso la tienda cree una pagina para agregar un boton de compra directo funcionaba bien cuando cree un producto de prueba pero ahora que creé los productos a vender me da el error de «Parece que esta página no existe. Parece que el enlace hasta aquí no sirve. ¿Quieres intentar una búsqueda?» y no se como solucionarlo, cabe resaltar que lo trabajo como localhost con Xampp, gracias.
Enrique J. Ros dice
Hola Luis
Prueba a ir a Ajustes > Enlaces permanentes y a clicar el botón «Guardar» (no es necesario que hagas ningún cambio). El 90% de problemas de este tipo se resuelven así de fácil.
Un saludo
Vicente dice
Enrique, excelente Explicación!!
Unas preguntas ¿puedo eliminar la base (producto, categoria-producto) de los permalinks en una tienda ya en funcionamiento desde hace años?
¿Si lo hiciese, perdería posicionamiento? ¿tendría que hacer algun tipo de redirección para indicarle a Google que las urls han cambiado?
PD. La tienda tiene cierto posicionamiento y ventas a diario
Muchas gracias de antemano,
Enrique J. Ros dice
Hola Vicente
Tendrías que realizar los redireccionamientos correspondientes, si no Google detectaría las antiguas URLs como errores 404.
Un saludo
Andri dice
Saludos, gracias de antemano por el post enrique, hoy en 2022 se me presentó uno de esos «problemitas» que a veces no entiendo el porque ocurren pero ocurren, el hecho es que para detectar un posible conflicto en un plug me he desactivado todos los plugs de la tienda (algo de lo mas común) y luego de verificar (de hecho no hice cambio alguno) reactivamos los plugs (cosa de 3 días después de su desactivación) hecho todo el cuento para poneros en sintonía.
La cosa es que luego de activar todo (aquí la cosa loca que no comprendo) pues no podemos acceder a los links de la pagina todos nos dan error 404.
ingresé via ssh y me conecté a la BD y desactive los plugs cambiando la variable Wp_options (active_plugins) entre al backend reactive los plugs y me fui a enlaces permanentes y los guarde sin hacer cambios (he leido que a veces esto soluciona el tema) la cosa es que no, todo sigue igual, todos los productos son inaccesibles, no se puede llegar ni siquiera a las paginas físicas (miweb.com/my_account).
probé agregando paginas dentro del directorio root de la web y estas paginas si las puedo acceder.
bueno si conoces alguna manera de poder reenlazar todo el sitio avísame. (PD: las búsquedas funcionan solo que los resultados no se pueden acceder)
Enrique J. Ros dice
Hola Andri
Ve a Ajustes > Enlaces permanentes y, sin necesidad de cambiar nada, pulsa en guardar.
Un saludo
JH dice
Hola! Me encanta tus contenidos y todos lo que compartes.
Tengo una web de blog con bastante contenidos y las urls son: dominio/categoria/nombre-post, si cambio ahora las estructuras de los enlaces creo que sería demasiado 301 y eso puedo perjudicar el seo.
¿Puedo mantener la estructura del url así? Según yo, el enlace si puede ser corto mejor, ayuda al lector como a los motores de búsqueda, pero creo que el beneficio es mínimo.