Cómo eliminar slugs viejas en WordPress

En Tutoriales y Guías, Webmasters por

En WordPress cuando editamos el slug de una entrada crea automáticamente una redirección de la vieja URL a la nueva, para así evitar problemas. Crear la redirección es la mejor opción por defecto, pero en ocasiones necesitamos eliminar slugs viejas en WordPress y en este artículo os mostraré como hacerlo.

Cómo eliminar slugs viejas en WordPress

Imaginaros que la vieja URL la compartimos en la red, al editarla las personas ya no encontrarían ese recurso, de ahí que WordPress sea benévolo y siempre crea una redirección. Esta redirección también nos permite mantener el SEO de nuestra página, transmitiendo la autoridad de la antigua URL a la nueva, gracias a la redirección.

Personalmente me he encontrado con situaciones en las que necesitaba eliminar el slug viejo y prescindir de esa redirección permanente 301 y WordPress no nos lo pone fácil a la hora de eliminarla.

Cómo eliminar slugs viejas en WordPress

En el artículo voy a explicar detalladamente la forma de eliminar slugs viejos en WordPress a través de la consola, empleando SSH y también de un modo gráfico empleando PhpMyAdmin. Para esta tarea vamos a modificar la base de datos directamente, así que tened cuidado y como siempre, haced una copia de seguridad de la base de datos antes de continuar.

Eliminar slugs de WordPress con PhpMyAdmin.

Primero tenemos que localizar la tabla wp_postmeta en la base de datos de nuestro blog WordPress. En los contenidos de esta tabla tenemos que fijarnos en las columnas meta_key y meta_value, de forma que en la primera ponga _wp_old_slug y en la segunda el slug que queremos eliminar.

Eliminar slugs en wordpress con phpmyadmin

Cuando tenemos localizado el slug, sólo tenemos que pulsar donde pone borrar y ya queda el slug eliminado de manera permanente, por lo que ya no habrá ninguna redirección.

Eliminar slugs de WordPress a través de la terminal SSH.

Lo primero que tenemos que hacer es acceder a la base de datos, para ello empleamos el siguiente comando:
mysql -u usuario -p basededatos

Tras ejecutar este comando nos solicitará que introduzcamos la contraseña.

Para ver todos los slugs viejos podemos ejecutar la siguiente petición:
SELECT * FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug';

Una vez localizado el slug que queremos eliminar ejecutamos el comando:
DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug' AND `meta_value` = 'slug-que-quiero-borrar';

En caso de que quisiésemos eliminar todos los slugs viejos, la petición sería la siguiente:
DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug';

Una vez que hemos terminado de borrar los slugs, ejecutamos el siguiente comando para salir de la consola mysql:
exit;

Espero que os haya servido de ayuda este tutorial, porque desgraciadamente no he encontrado ningún plugin que permita administrar los slugs viejos. Si tenéis alguna duda o sugerencia para mejorar el tutorial no dudéis en usar los comentarios.