Expresiones regulares y redirecciones
06 / 08 / 2025

Redirecciones y expresiones regulares (RegEx)

experto SEO Barcelona
Gerard Osan
Experto SEO

Olvídate de redirecciones manuales gracias a las expresiones regulares

En el mundo del SEO una de las acciones que más veces aplicamos en un proyecto son las redirecciones. Desde eliminaciones de productos de una tienda online hasta cambios de web, este mecanismo es esencial para evitar perder el posicionamiento acumulado de una o múltiples URLs.

En webs grandes, el proceso de preparar estas redirecciones puede eternizarse si se han modificado muchas URLs y no se ha planificado con cuidado. Imaginaos, por ejemplo, el rediseño de un directorio web con miles de referencias en el que se han cambiado todas las URLs de listados y fichas. Sería prácticamente imposible crear todas las redirecciones manualmente.

En este tipo de escenarios es cuando entran en juego las expresiones regulares: a través de ellas podemos agilizar enormemente la tarea de generar redirecciones en proyectos grandes. Vamos a definir qué son y a ver ejemplos reales del uso de expresiones regulares para redirecciones.

¿Qué son las redirecciones?

Estrictamente hablando, las redirecciones en el entorno web son un grupo de códigos de respuesta HTTP (en concreto, los 300). Sirven para indicar a nuestro navegador que la URL que estamos solicitando ya no está disponible, a la vez que se nos proporciona una nueva URL a la que acceder. Este proceso suele ser transparente para el usuario final, ya que es el navegador quién se encarga de (re)dirigirnos a la nueva URL.

Los códigos de respuesta de tipo 300 son los siguientes:

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy Deprecated
  • 306 unused
  • 307 Temporary Redirect
  • 308 Permanent Redirect

En la práctica, cuando en el ámbito del SEO hablamos de una redirección, solemos referirnos a las redirecciones de tipo 301. ¿Por qué? Son las que habitualmente necesitamos utilizar para trasladar el valor SEO de una página a otra, y las que recomienda Google utilizar en el caso de redirecciones permanentes.

Las redirecciones 301 están compuestas de dos partes:

  • Cabecera de respuesta, en la que se indica el código de la redirección “301 Moved Permanently”.
  • La ubicación a la que queremos redirigir al usuario, a través del campo “Location”.

¿Qué son las expresiones regulares?

Las expresiones regulares o RegEx son patrones de diferentes caracteres (letras, números, símbolos) que utilizamos para analizar una cadena de texto. Por ejemplo, en un formulario en el que uno de los campos es el DNI, podemos utilizar una expresión regular para determinar si tiene el formato correcto. O cuando un usuario introduce una fecha, podemos extraer el año de la misma.

Las combinaciones de patrones en expresiones regulares son infinitas y es difícil perderse a la hora de intentar configurar una que nos sea útil. A la práctica, cuanto más simples mejor, siempre y cuando el proyecto que estemos trabajando nos lo permita. Algunos ejemplos de patrones habituales que podemos utilizar en RegEx son:

  • .* (equivale a cualquier carácter, con 0 o múltiples ocurrencias)
  • a|b (para identificar que tanto a como b pueden aparecer)
  • ^ (para indicar el principio de la cadena de texto)
  • $ (para indicar el final de la cadena de texto)
  • Texto literal: en algunos casos nos puede interesar indicar un patrón idéntico al texto que introducimos, como una palabra concreta.

¿Cómo aplicar expresiones regulares en redirecciones?

Hemos visto ya la definición tanto de las expresiones regulares como de las redirecciones. Pero a la práctica, ¿Cómo podemos utilizar RegEx para nuestras redirecciones? Dependiendo del tipo de web que tengamos deberemos optar por una solución u otra:

  • Archivo htaccess: este fichero se encarga de gestionar las rutas de una web, y podemos aplicar redirecciones con expresiones regulares en el mismo.
  • Plugin o módulo de redirecciones: si utilizamos un CMS web como WordPress o Prestashop.
  • Código nativo: algunos lenguajes de programación permiten aplicar redirecciones con RegEx directamente en el código.

Para este artículo vamos a centrarnos en las redirecciones aplicadas con el archivo htaccess. Pero la lógica detrás de ellas sería la misma si utilizamos otro método.

Ejemplos reales de expresiones regulares en redirecciones

Redirección completa de dominio

En el caso que nuestra web haya cambiado sólo de dominio, podemos apuntar todas las URLs del dominio antiguo hacia el nuevo mediante esta regla en nuestro htaccess:

RewriteRule ^(.*)$ https://www.midominio.com/$1 [R=301,L]

La primera parte de la redirección contiene la expresión regular ^(.*)$
  • .* indica que debemos capturar cualquier carácter.
  • Los paréntesis () son para guardar el contenido identificado (ahora veremos para qué)
  • Los caracteres ^ y $ indican principio y final de la cadena de texto
La segunda parte de la redirección es https://www.midominio.com/$1
  • Con https://www.midominio.com/ definimos el nuevo dominio
  • $1 es el contenido que estaba entre paréntesis en la primera parte de la redirección

Redirección de subdominios

Cuando tenemos varios subdominios (por ejemplo, www), podemos querer unificarlo todo bajo un mismo subdominio o bajo nuestro dominio principal. Aquí tenemos que añadir una condición sólo aplicar la redirección en los subdominios que nos interese:

RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ [NC]

RewriteRule ^(.*)$ https://midominio.com/$1 [R=301,L]

  • La primera línea es la condición, que restringe que sólo se aplique la redirección cuando el subdominio sea www.dominio.com 
  • La segunda parte es la propia redirección, tal como hemos visto en el ejemplo anterior.

Redirección con patrón en origen

Pongamos por ejemplo que queremos redirigir todas las URLs de nuestra web que contengan una palabra determinada:

RewriteRule ^.*palabra.*$ /destino [R=301,L]

  • En la primera parte de la redirección utilizamos la expresión regular ^.*palabra.*$ para indicar que queremos seleccionar URLs que empiezan por cualquier carácter (^.*), seguido del literal palabra, y que termine por cualquier carácter (.*$).
  • En la segunda parte indicamos literalmente la URL a la que queremos redirigir.

Redirección con cambio de carpeta

Imaginemos ahora que, mientras trabajamos en una tienda online de zapatos, ha cambiado la URL de la categoría Zapatos deportivos, pasando de /zapatos/deportivo/ a /zapatos/deportivos/. Y esto afecta a todas las URLs de producto de esa categoría, como /zapatos/deportivo/adidas-low-forum/. Para gestionar estas redirecciones con expresiones regulares podemos utilizar el siguiente código:

RewriteRule ^/zapatos/deportivo/(.*)$ /zapatos/deportivos/$1 [R=301,L]

  • En la primera parte de la redirección ^/zapatos/deportivo/(.*)$ indicamos que queremos afectar a todas las URLs que empiecen por ^/zapatos/deportivo/ , y seguidamente capturamos mediante paréntesis la parte final de la URL con (.*)$
  • En la segunda parte utilizamos /zapatos/deportivos/ para añadir la nueva ruta de la categoría, y $1 para recuperar la ruta final del producto.

Estos son sólo algunos casos reales de redirecciones mediante expresiones regulares. Como decíamos más arriba, la flexibilidad que aportan las expresiones regulares es prácticamente infinita. Pero si no lo véis claro y preferís que un equipo profesional os ayude con vuestro proyecto, en nuestra agencia SEO estaremos encantados de ayudaros.

experto SEO Barcelona
Sobre el autor/a
Gerard Osan — Experto SEO
Dentro del marketing online he enfocado mi carrera profesional hacia el SEO técnico y la analítica web. También dedico algo de tiempo a la programación, buscando que el desarrollo web aporte recursos optimizados al marketing.

Noticias relacionadas

¿Tienes un proyecto en mente? Cuéntanoslo