La normalización de URL (URL Normalization / URL Canonicalization) es el proceso de unificar en un formato estándar las distintas representaciones de URL que apuntan a la misma página web. Por ejemplo, "http://Example.COM/page/", "https://example.com/page" y "https://example.com/page/index.html" pueden apuntar a la misma página, pero los motores de búsqueda las tratan como URL diferentes.
Los principales elementos que se unifican en la normalización son: protocolo (http a https), mayúsculas/minúsculas del nombre de host (Example.COM a example.com), barra final (unificación de presencia o ausencia), eliminación de puertos por defecto (:443 o :80), unificación de codificación porcentual (%7E a ~), eliminación de parámetros de consulta innecesarios y normalización de rutas (/a/../b a /b).
Para los servicios de acortamiento de URL, la normalización es una técnica fundamental. Al normalizar la URL introducida por el usuario antes de guardarla en la base de datos, se evita que se generen múltiples URL acortadas para la misma página. Si "https://example.com/page" y "https://example.com/page/" se tratan como URL distintas, se asignarían dos URL acortadas a la misma página y las estadísticas de clics se dispersarían.
Normalizar en exceso provoca el accidente contrario: tratar páginas distintas como una misma URL. El punto más delicado es la eliminación de parámetros de consulta. Quitar parámetros de medición como utm_source lleva igualmente a la misma página, pero quitar los que seleccionan el contenido, como ?id=123 o ?page=2, envía al visitante a otra página por completo. Resulta más seguro enumerar en una lista blanca los parámetros que se pueden eliminar que adivinar cuáles hay que conservar. La barra final merece la misma cautela, porque algunos servidores devuelven contenido distinto para /page y /page/, de modo que conviene comprobar las respuestas reales antes de decidir qué normalizar.
Desde la perspectiva SEO, una normalización deficiente provoca problemas de contenido duplicado. Si el mismo contenido es accesible desde múltiples URL, los motores de búsqueda no saben cuál tratar como versión canónica, y la clasificación se dispersa. Indicar la versión canónica con la etiqueta canonical (<link rel="canonical">) es la medida básica. Aun así, canonical es una señal para los motores de búsqueda y no una garantía: cuando Google ordena los métodos por su influencia en la canonicalización, coloca las redirecciones antes que la etiqueta canonical. Para consolidar de forma fiable en una sola URL conviene unificar el propio camino de acceso con una redirección y acompañarla con la etiqueta canonical.
La RFC 3986, "Uniform Resource Identifier (URI): Generic Syntax", define la sintaxis de URI y recoge también la normalización. Pasar el esquema y el nombre de host a minúsculas, devolver a su forma original los caracteres unreserved codificados en porcentaje (alfanuméricos más - . _ ~, de modo que %7E queda en ~), omitir el puerto por defecto del esquema y resolver los ../ de la ruta son operaciones acordes con esa especificación. En cambio, forzar https, usar www o quedarse con una u otra forma de barra final no lo decide la RFC: esas variantes no apuntan necesariamente al mismo recurso, así que corresponden a la política del sitio y a la configuración del servidor web, unificando una forma en la otra mediante una redirección.