Skip to content

Todo para WordPress, el desarrollo web — y mucho más

⚙️ Cómo eliminar category de la URL de WordPress: todos los métodos que funcionan

⚙️ Cómo eliminar category de la URL de WordPress: todos los métodos que funcionan

Las direcciones URL en WordPress tienen este aspecto por defecto: /category/plugins/ o /category/news/ o /category/wordpress/. La palabra «category» no aporta ningún significado para los usuarios ni para los buscadores. Es un vestigio que solo alarga la dirección y diluye la estructura del sitio.

El problema es que WordPress no ofrece un interruptor simple para eliminar este prefijo mediante los ajustes estándar. La mayoría de los propietarios de sitios o bien toleran el /category/ o instalan el primer plugin que encuentran sin entender las consecuencias. Y puede haber consecuencias: enlaces rotos, errores 404 en direcciones antiguas, duplicados en el índice.

A continuación, un desglose paso a paso de todos los métodos funcionales para eliminar /category/ de las URL de WordPress: desde el enfoque integrado más simple hasta código en functions.php. Cada método ha sido probado en versiones actuales de WordPress, con explicaciones de sus limitaciones y posibles escollos.

💡 Resumen rápido:

  • Mecanismo de enlaces permanentes integrado: un truco simple con un punto desde los ajustes, sin plugins
  • Plugin Remove Category URL: el método más fácil en un clic para quienes no quieren indagar en los ajustes
  • Yoast SEO o Rank Math: si ya tiene instalado un plugin SEO, este puede encargarse de eliminar la base de categoría
  • .htaccess: una opción para quienes prefieren el control manual a nivel de servidor
  • Código en functions.php: un método programático sin plugins, con control total sobre la lógica de reemplazo

1. Ajustes de enlaces permanentes integrados

Este es el método más simple que no requiere instalar ningún plugin. Utiliza el mecanismo estándar de «Enlaces permanentes» del propio WordPress.

Vaya al panel de administración, abra Ajustes → Enlaces permanentes. En el bloque «Ajustes comunes», seleccione la opción «Estructura personalizada».

En el campo de la derecha, introduzca la siguiente estructura:

1/%category%/%postname%/

Ahora viene el momento clave. Desplácese hacia abajo hasta el campo «Base de categoría» e introduzca un punto, el símbolo . (sin comillas). Este es un truco poco convencional pero funcional: WordPress interpreta el punto como una base vacía y deja de insertar /category/ en las URL de categoría.

Ajustes de estructura de enlaces permanentes personalizados

Haga clic en «Guardar cambios». Listo, las URL de sus categorías ahora tienen el aspecto site.com/wordpress/ en lugar de site.com/category/wordpress/.

⚠️ Nota importante: no deje el campo «Base de categoría» vacío. Si no hay nada allí, WordPress vuelve al /category/ estándar. Por eso usamos un punto: una cadena vacía no funciona, pero un punto sí.

Este método funciona para la mayoría de los sitios, pero tiene un inconveniente: el punto en el campo de base es un truco que podría romperse durante actualizaciones de WordPress o al cambiar la estructura de enlaces permanentes y volver atrás. Si desea una solución más fiable, consulte los siguientes métodos.

2. Plugin Remove Category URL

Remove Category URL es un plugin minimalista que hace exactamente una cosa: elimina /category/ de las URL. Sin ajustes, sin elementos de menú adicionales en el panel de administración.

Página del plugin Remove Category URL en el directorio de WordPress

Tras la instalación, el plugin empieza a funcionar de inmediato. Sin pasos adicionales: descargue, active, compruebe la URL de la categoría y /category/ habrá desaparecido.

Plugin Remove Category URL activado en el administrador de WordPress

¿Por qué este plugin y no docenas de alternativas? No pesa prácticamente nada, no añade banners publicitarios al panel de administración y es compatible con WPML y WordPress Multisite. Cuando desactiva el plugin, las URL vuelven automáticamente a la estructura estándar con /category/; el plugin no rompe los enlaces permanentes de forma definitiva.

Para quienes necesitan trabajar con categorías padre además de eliminar el prefijo de categoría, existe una alternativa: FV Top Level Categories. Le permite mostrar categorías de cualquier nivel de anidamiento como si fueran de nivel raíz en la URL, sin /category/ y sin los slugs de las categorías padre.

🔗 Remove Category URL en WordPress.org

3. Plugins SEO: Yoast SEO y Rank Math

Si Yoast SEO o Rank Math ya están instalados en su sitio, no necesita un plugin adicional para eliminar /category/. Ambos gigantes del SEO incluyen una función integrada para eliminar la base de categoría.

En Yoast SEO:

  • En el menú de WordPress, haga clic en Yoast SEO
  • Vaya a la pestaña Avanzado
  • Abra la sección Enlaces permanentes
  • Active la opción «Eliminar el prefijo de categorías»
  • Guarde los cambios

En Rank Math:

  • En el panel de administración, vaya a Rank Math → Ajustes generales
  • Abra la pestaña WooCommerce (sí, está ahí, no en Enlaces permanentes)
  • Busque la opción «Eliminar base de categoría» y actívela

Ambos plugins hacen lo mismo que Remove Category URL, pero mediante su propio mecanismo interno. Ventaja: no necesita plugins adicionales. Desventaja: si cambia a un plugin SEO diferente, la base de categoría puede reaparecer y tendrá que reconfigurarla.

Página de ajustes de Yoast SEO en el administrador de WordPress

Por cierto, si todavía está eligiendo entre Yoast y Rank Math, aquí tiene nuestra comparativa detallada que le ayudará a decidir.

4. Edición manual del.htaccess

Un método para quienes prefieren el control a nivel de servidor. Eliminar /category/ mediante.htaccess funciona a través de una regla mod_rewrite que redirige de forma transparente todas las URL de categorías a direcciones sin el prefijo.

Necesitará acceso al archivo .htaccess en la raíz del sitio, ya sea por FTP, el gestor de archivos del hosting o cPanel. Abra el archivo y añada la siguiente línea antes del bloque # BEGIN WordPress:

1RewriteRule ^category/(.+)$ http://www.site.com/$1 [R=301,L]
Código RewriteRule para .htaccess en un editor de texto

Sustituya www.site.com por su dominio real. La regla crea una redirección 301 desde todas las URL que comiencen por /category/ hacia direcciones sin ese prefijo.

⚠️ Precaución: este método solo funciona en servidores Apache. En Nginx, necesitará una línea análoga en la configuración:

1rewrite ^/category/(.+)$ /$1 permanent;

Antes de hacer cambios, asegúrese de hacer una copia de seguridad del .htaccess. Un error de sintaxis en este archivo tirará abajo todo el sitio con un error 500.

Si su sitio funciona con Nginx, el equivalente directo de la regla anterior es igual de simple, pero se añade en la configuración del bloque del servidor, no en .htaccess. Después de añadir la regla, recargue Nginx con el comando nginx -s reload. A diferencia de Apache, Nginx no lee .htaccess, por lo que un error de sintaxis en la configuración principal también tira el sitio, pero no de forma tan irreversible: Nginx simplemente no se iniciará tras la recarga, dejando el proceso de trabajo anterior en ejecución. Pruebe la configuración con el comando nginx -t antes de aplicarla.

5. Código en functions.php

Un método programático para quienes quieran eliminar /category/ sin plugins y sin editar configuraciones del servidor. El código se añade una vez al functions.php del tema activo y funciona a través de un filtro estándar de WordPress.

Antes de añadir el código, asegúrese de que el campo «Base de categoría» en los ajustes de enlaces permanentes no esté vacío y no contenga un punto; debe ser el estándar (category). El filtro busca la palabra «category» en la URL, y si no la encuentra, el método no funcionará.

Abra Apariencia → Editor de archivos del tema, seleccione functions.php y añada este código antes de la etiqueta de cierre ?> (si no hay etiqueta, simplemente añádalo al final del archivo):

1function remove_category_from_url($string, $type) {
2 if ($type !== 'single' && $type === 'category' && strpos($string, 'category') !== false) {
3 $url_without_category = str_replace('/category/', '/', $string);
4 return trailingslashit($url_without_category);
5 }
6 return $string;
7}
8add_filter('user_trailingslashit', 'remove_category_from_url', 100, 2);

Cómo funciona:

  • El filtro user_trailingslashit se llama cada vez que WordPress genera una URL de categoría
  • La función verifica que efectivamente sea una categoría (no una entrada, no una etiqueta) y que la URL contenga /category/
  • Si se cumplen ambas condiciones, se elimina /category/ y se conserva la barra diagonal final mediante trailingslashit()

Después de añadir el código, vaya a Ajustes → Enlaces permanentes y simplemente haga clic en «Guardar»; esto vaciará la caché de enlaces permanentes y aplicará la nueva regla.

Este método es el más flexible: usted tiene control total sobre la lógica de reemplazo y puede añadir excepciones para categorías específicas o adaptar el código para una estructura de URL no estándar.

Código de programación en pantalla, configuración de URL de WordPress

Si prefiere ver el proceso en acción, aquí tiene un breve videotutorial en inglés: cómo instalar el plugin Remove Category URL y comprobar el resultado en dos minutos.

⁉️🤔 Preguntas frecuentes

¿Desaparecerán las categorías del sitio después de eliminar /category/ de las URL?

No. Las categorías siguen siendo completamente funcionales: los archivos de categoría funcionan, las entradas se muestran en ellas y la taxonomía permanece intacta. Solo cambia la dirección en el navegador. Se trata de un cambio puramente estético en la estructura de enlaces permanentes; WordPress sigue reconociendo las categorías por su ID interno, no por el prefijo de la URL.

¿Necesito configurar redirecciones 301 después de cambiar las URL?

Sí, absolutamente. Después de eliminar /category/, las direcciones antiguas con /category/ se vuelven inaccesibles. Si había enlaces externos apuntando a ellas o ya están indexadas por los motores de búsqueda, obtendrá errores 404. El método del .htaccess (método 4) añade automáticamente una redirección 301. Al usar plugins o código en functions.php, asegúrese de que WordPress redirige correctamente las URL antiguas; esto suele ocurrir automáticamente, pero vale la pena comprobar algunas direcciones antiguas después de hacer los cambios.

¿Qué debo hacer si algunas URL aún contienen /category/ después de los cambios?

Lo más probable es que sea un problema de caché. Vacíe la caché de enlaces permanentes: vaya a Ajustes → Enlaces permanentes y simplemente haga clic en «Guardar» sin cambiar nada. Si utiliza un plugin de caché (WP Rocket, W3 Total Cache), limpie su caché. A nivel de servidor, asegúrese de que las reglas de mod_rewrite en el .htaccess no entren en conflicto con la nueva configuración.

¿Eliminar /category/ afecta al SEO?

Sí, pero solo positivamente si se hace correctamente. Las URL más cortas obtienen más clics en los resultados de búsqueda, son más fáciles de leer y se indexan más rápido. Una investigación de Backlinko muestra que las URL más cortas se correlacionan con mejores posiciones. La clave es no olvidar las redirecciones 301 desde las direcciones antiguas para no perder el PageRank acumulado.

¿Qué método debo elegir para WooCommerce?

Para tiendas en línea con WooCommerce, las mejores opciones son el plugin Remove Category URL (gestiona correctamente las categorías de producto) o la función integrada de Rank Math (Eliminar base de categoría). Ambos métodos no entran en conflicto con los endpoints de WooCommerce como /product-category/. El método del punto en el campo «Base de categoría» también funciona para WooCommerce, pero pruébelo primero en un entorno de pruebas; algunas versiones de WooCommerce son sensibles a valores no estándar en este campo.

¿Funcionan estos métodos en WordPress Multisitio?

Parcialmente. El plugin Remove Category URL afirma ser compatible con Multisitio, pero en la práctica, al activarse para toda la red, solo procesa el sitio principal; para los sitios secundarios, necesita activarlo individualmente. El método del punto en el campo «Base de categoría» funciona en cada sitio de la red por separado; los ajustes no se heredan. El código de functions.php para Multisitio requiere una comprobación adicional is_multisite() e idealmente debería moverse a un MU-plugin para que no esté vinculado al tema. La edición manual del .htaccess en Multisitio es la menos deseable: la estructura de URL de la red es más compleja y un error en RewriteRule rompe todos los sitios a la vez.

¿Qué método para eliminar /category/ es el adecuado para usted?

Cada uno de los cinco métodos tiene su propio caso de uso. Aquí tiene una matriz de selección rápida:

  • No quiere instalar plugins adicionales: método 1 (punto en el campo base). Tarda 30 segundos, no añade código al sitio.
  • Quiere el mínimo esfuerzo: método 2 (Remove Category URL). Instalar y olvidarse.
  • Ya tiene Yoast o Rank Math en su sitio: método 3. Use lo que ya está funcionando.
  • Prefiere el control a nivel de servidor: método 4 (.htaccess). Pero recuerde hacer una copia de seguridad.
  • Es desarrollador y necesita flexibilidad: método 5 (código en functions.php). Añada la lógica que necesite específicamente.

Para la mayoría de los usuarios, el método 2 (Remove Category URL) es el óptimo: es simple, no requiere conocimientos técnicos y no rompe el sitio al desactivarlo. Si ya está usando Yoast SEO, active la opción allí; no instale plugins innecesarios.

Pruebe el método que mejor se adapte a su flujo de trabajo y compruebe el resultado en dos o tres URL de categoría. Si todo funciona, ha tomado la decisión correcta.

Después de hacer los cambios, es útil pasar su sitio por cualquier rastreador SEO (Screaming Frog, Sitebulb o Netpeak Spider): le mostrará si han aparecido errores 404 en las páginas de categoría y si las redirecciones 301 desde las URL antiguas funcionan correctamente. Compruebe también su sitemap XML por separado: después de cambiar la estructura de enlaces permanentes, debería actualizarse automáticamente, pero a veces se genera desde una versión en caché. En Yoast SEO, simplemente haga clic en «Guardar» en los ajustes del sitemap; para Rank Math, el botón «Actualizar Sitemap» está en la sección de Ajustes del Sitemap. Esto lleva un minuto pero le protege de situaciones en las que Google recibe un sitemap con URL antiguas.