Nombres de dominio internacionalizados (IDNs), WordPress, SEO y navegadores

Dominios en el mundo

Dominios en el mundo. Fuente: Wikipedia

¿Por qué aparecen símbolos “raros” en la barra de direcciones del navegador cuando visitamos sitios web con caracteres internacionales? Por ejemplo, al visitar http://www.radiopollença.net puede aparecer como “http://www.xn--radiopollena-udb.net/”.

Explicación simple

Es normal. Es una medida de seguridad. El navegador te está avisando de que el dominio que acabas de teclear contiene caracteres multilingües.

Cada navegador (Firefox, Chrome, Internet Explorer, Safari, Opera) tiene sus propias reglas al respecto para protegernos de posibles ataques. Algunos permiten configurar esto y otros no. Para saber cómo hacerlo, averigua qué navegador estás utilizando y sigue leyendo.

Explicación completa

Al principio, los nombres de dominio únicamente podían contener caracteres ASCII: letras de la A a la Z, números y algún que otro símbolo, como por ejemplo guiones. Pero a medida que Internet se fue haciendo más popular e internacionalizando, fue necesario incorporar un sistema que permitiera utilizar caracteres de otros idiomas (por ejemplo, “ñ”, “ç”, tildes, diéresis, etc.)

Así, a partir de 2005 y con el fin de dar cabida a estos diferentes caracteres no ASCII propios de algunos idiomas (como el español, el francés o el catalán), los registradores empezaron a permitir lo que se llaman IDNs o Internationalized Domain Names (nombres de dominio internazionalizados).

De todas formas, a pesar del tiempo que hace que se permite el registro de este tipo de dominios, si alguna vez has visitado una web con un IDN de este tipo, es posible que tu navegador lo haya transformado en algo así: “http://www.xn--nombre-xyz.com/”

Lo que hacen los agentes de usuario (los navegadores, por ejemplo) para que esto funcione es transformar los caracteres Unicode (ñ, ç, ü…) del dominio a una cadena que encaje con la forma tradicional, para después enviarla al servidor de nombres de dominio (DNS). Por ejemplo, un dominio con la cedilla (“ç”), muy común en francés y en catalán, como “http://www.pollença.com” se convierte en “http://www.xn--pollena-zxa.com/”. Igualmente, el dominio “http://www.españa.com” se convierte en “http://www.xn--espaa-rta.com/”.

A este formato convertido o codificado se le llama Código púny o Punycode, que no es más que una representación en formato ASCII del nombre original.

En resumen:

  • Dominio Unicode: españa.com
  • Dominio Punycode: http://www.xn--espaa-rta.com/

Sería perfecto si los navegadores y otros agentes de usuario pudieran mostrar tranquilamente el formato Unicode de todos los dominios. Pero el problema viene cuando, dada la inmensa variedad de idiomas y caracteres, algunos son demasiado parecidos. El caso más popular es la “а” en cirílico, que a simple vista no se diferencia de la “a” latina, o la “O” griega de la “O” latina y la “O” en cirílico.

Aprovechando esto, alguien podría registrar un dominio que a simple vista pareciera otro (es decir, hacer Phishing o Spoofing, engañar a alguien haciéndose pasar por otra persona, entidad o servicio, por ejemplo, un banco). A este tipo de engaños concretamente se los conoce como ataques homógrafos de IDN (IDN homograph attack).

Como no es posible que, para evitar este tipo de prácticas, los agentes registradores puedan controlar todos los dominios que se dan de alta, lo que hacen los navegadores para evitar confusiones y tratar de protegernos de estos ataques homógrafos es, en muchas ocasiones, mostrar al usuario los IDNs en formato Punycode en lugar del original.

Pero no es tan simple. Cada navegador lo hace de manera diferente. Según el caso, podremos configurarlo para que nos muestre un dominio sin codificar, aunque hay navegadores que no lo permiten. Vamos a ver las diferencias.

Gestión de IDNs en los diferentes navegadores

IDNs en Google Chrome

Chrome determina si mostrar IDNs en Punycode o Unicode según el/los idioma/s que el usuario “entiende” (o sea, tiene configurados en su sistema). Es decir, Chrome detecta el idioma del sistema o navegador y, si el dominio contiene caracteres de un idioma que no está en la lista de los configurados por el usuario, muestra el dominio en formato Punycode.

Por ejemplo, si en mi ordenador tengo configurado el español como único idioma del navegador o del sistema (depende de si la plataforma es Windows, Mac Os X o Linux) y escribo en la barra de direcciones de Chrome el dominio “www.españa.com” (que contiene una “ñ”), el navegador me mostrará el dominio en formato Unicode (es decir, tal como se escribe, con la “ñ”). En cambio, si mi idioma es el inglés, por ejemplo, como la letra “ñ” no pertenece a la lista de caracteres permitidos, me mostrará el dominio en formato Punycode, así: “http://www.xn--espaa-rta.com/”

En Windows y Linux los idiomas se configuran desde las opciones del navegador: Opciones > Avanzada > Configuración de idiomas y del corrector ortográfico.

En Mac OS X el idioma del navegador viene determinado por el idioma del sistema. Se puede configurar accediendo a: Aplicaciones > Preferencias del sistema > Idioma y texto > Idioma.

De esta manera, Google Chrome consigue que podamos ver dominios internacionalizados sin codificar, incluso aunque sean .net o .com, que son dominios de primer nivel generales, no específicos de un país.

IDNs en Internet Explorer

Internet Explorer (IE) actúa de manera muy similar a como lo hace Chrome: muestra las URLs sin codificar siempre y cuando todos los caracteres del dominio pertenezcan al idioma configurado por el usuario en las opciones del navegador: Opciones de Internet > General > Idiomas.

IDNs en Firefox

En el caso de Firefox, lo que hace este navegador para decidir si mostrar Unicode o Punycode es analizar la extensión de cada dominio (.com, .net, .es, .cat, etc.) y compararlos con unas listas de caracteres permitidos. De esta manera, un dominio con caracteres internacionales puede verse codificado según el nivel al que pertenezca.

Por ejemplo, un dominio con la cedilla (“ç”), muy frecuente en catalán y en francés, como “htttp://www.pollença.com” se mostrará en Punycode, porque los dominios “.com” no permiten “ç”. En cambio, el dominio “http://www.pollença.cat” se mostrará en Unicode porque los “.cat” sí que permiten la cedilla.

Lo mismo pasaría con el dominio “españa.com”. En Firefox aparecería en formato Punycode, en cambio “españa.es”, en formato Unicode.

Firefox incorpora una lista blanca de TLDs. Si al menos uno de los caracteres del dominio no está en esa lista, el dominio no se mostrará en Unicode. Dicho de otra forma, Firefox siempre mostrará un dominio en formato Punycode para “.com”, porque este TLD no está en la lista blanca. Es decir, ni “españa.com”, ni “pollença.com” se verán “correctamente”.

IDNs en Safari

Safari ofrece una lista de idiomas editable por el usuario en la que aparecen los que están permitidos para mostrarse de manera nativa en la barra del navegador.

Los nombres de dominio que contengan caracteres que no estén en esa lista de idiomas se mostrarán por tanto en el formato ASCII (Punycode)

Podemos editar esta lista muy fácilmente con cualquier editor de texto (siempre y cuando se tengan permisos de administración). Esta lista se llama “Lista blanca de IDNs permitidos por defecto en WebKit” (Default Web Kit International Domain Name Script White List) y la podemos encontrar en esta ruta: Sistema > Libreria > Frameworks > WebKit.framework > Versions > A > Resources > IDNScriptWhiteList.txt

Si borramos todos los idiomas que aparecen en esta lista, Safari mostrará todos los dominios codificados con su equivalente en Punycode.

IDNs en Opera

Opera analiza, al igual que Firefox, en una lista blanca de dominios de primer nivel (TLDs) con las que compara los dominios. Únicamente muestra IDNs en formato Unicode siempre y cuando todos los caracteres del dominio estén permitidos para ese TLD en particular.

En resumen

Si queremos que nuestro dominio del primer ejemplo “radiopollença.net” se muestre tal como lo escribimos, tendremos que cambiar la configuración de idioma del sistema o del navegador al catalán, en todos los casos menos si utilizamos Firefox u Opera, que no se basan en configuraciones locales y por tanto no podremos hacer nada (en realidad, existen extensiones que permiten cambiar esta configuración, pero no son nada recomendables porque nos abren la puerta a posibles ataques).

Dominios IDN, SEO y accesibilidad

¿Afecta negativamente a nivel de posicionamiento en buscadores (SEO) tener un dominio internacionalizado?

Por una parte, los IDNs nos dan más flexibilidad, es decir, nos permiten posicionar palabras exactas, tal como se escriben. En el caso de “Pollença”, puede haber mucha diferencia entre registrar un dominio como “Pollenca” (con “c” en lugar de “ç”) o como la versión castellanizada “Pollensa” (con “s”). Además, disponer de un dominio con caracteres multilingües nos permite acceder a un posicionamiento más local y por tanto más preciso, ya que, desde hace tiempo los buscadores no ofrecen ningún problema para indexar estos dominios.

Partiendo de la premisa de hacer sitios web claros y accesibles para todo el mundo, el hecho de añadir complejidad a nuestra dirección web puede ser un punto importante en contra de adquirir un dominio multilingüe.

Pero, como hemos visto, los navegadores no nos lo ponen fácil. Es muy probable que el usuario que visita una página web con un dominio internacionalizado, se extrañe como mínimo al ver el cambio a Punycode, es decir, provoque una primera reacción de rechazo hacia algo raro, que no conoce.

Por otro lado, registrar un dominio con caracteres multilingües puede no ser una buena idea (ni a nivel SEO ni a nivel de accesibilidad) ya que algunos usuarios podrían tener dificultades para acceder a la “ñ” o la “ç” en teclados ingleses, por ejemplo. Todo dependerá de nuestro “target”, a qué público nos estamos dirigiendo.

A nivel de compatibilidad de navegadores, aunque afortunadamente cada vez se utilice menos, Internet Explorer 6 (IE6) da errores al acceder a dominios IDN.

Por tanto, partiendo de la premisa de hacer sitios web claros y accesibles para todo el mundo, el hecho de añadir complejidad a nuestra dirección web puede ser un punto importante en contra de adquirir uno de estos dominios.

En cualquier caso, lo ideal podría ser registrar otro dominio similar que solamente contenga caracteres ASCII (“normales”) y redireccionarlo a su versión en IDN.

También hay que tener en cuenta que estos dominios pueden ser difíciles de integrar en programas como gestores de correo, de FTP, sistemas de gestión de contenido como WordPress, Joomla o Drupal, extensiones, Twitter, Facebook y otras redes sociales, etc.

Por todo esto, la adquisición de un dominio multilingüe puede ser una muy mala idea, al menos por ahora, debido a la cantidad de problemas, costes y tiempo necesario para solventarlos, pero más que por dificultades a nivel SEO e indexación en buscadores, por accesibilidad y por compatibilidad del software.

WordPress y los IDNs

WordPress no es una aplicación IDNA (aplicaciones capaces de gestionar dominios IDN), por lo tanto al configurarlo deberemos utilizar la versión en Punycode. Si no lo hacemos así, el sistema eliminará todos los caracteres no-ASCII de nuestro dominio.

Pero esto no quiere decir que WordPress tenga problemas con los dominios multilingües. Lo único que hay que hacer al configurar el sistema es introducir el dominio en formato Punycode (aquí encontrarás un conversor), tanto en el campo “Dirección de WordPress (URL)” como en “Dirección del sitio (URL)”. A partir de ahí ya depende del navegador.

Conviene ir con mucho cuidado cuando hacemos este tipo de cambios, especialmente si no sabemos bien lo que hacemos, ya que fácilmente podemos perder el acceso al area de administración de WordPress. En ese caso, podemos acceder directamente a la base de datos a través de phpMyAdmin o tener a mano la información del Codex de WordPress sobre cómo cambiar la URL de la web (en inglés).

Donde sí podemos encontrar limitaciones importantes de WordPress con respecto a los IDNs es en los comentarios, los plugins que utilicemos, integración con redes sociales o la gestión de emails, por ejemplo.

Aunque no lo he probado, existe un plugin que se llama IDNA que permite utilizar dominios IDN en WordPress (aunque según su autor, no se trata de una versión estable, sinó de una Beta, “como mucho”). Para ello utiliza una librería llamada PHP Net_IDNA que convierte de Punycode a Unicode y viceversa.

Conclusión

Registrar dominios con caracteres multilingües no es ni buena ni mala opción. Dependerá de cada caso, por lo que habrá que analizar si puede afectar de alguna manera a nuestros usuarios o al proceso de configuración del software que vayamos a utilizar.

Lo más probable es que con el tiempo todo el software, tanto online como off-line, esté perfectamente adaptado a las configuraciones multilingües, pero por ahora (noviembre de 2011), sigue siendo algo un poco complicado. Prueba de ello es la longitud de este artículo.

Bibliografía

A continuación encontrarás una lista de recursos para poder acceder a información de primera mano sobre los IDNs y los diferentes navegadores:

Comentarios

  1. Asesor seo

    Sin duda alguna, WordPress es uno de los mejores sistemas de gestión de datos que mejor posicionamiento tiene. Aunque yo siempre recomiendo trabajar el SEO y optimizar nuestra web en wordpress, para ello debemos optimizar los archivos php, css y js que se encuentran en wp-content>>theme>>”carpeta de nuestra plantilla”.
    Saludos

  2. Teo Alancay

    Relacionado al post: http://www.danielnabil.com/blog/nombres-dominio-internacionalizados-idn-wordpress-seo-navegadores/

    En mi caso me pasa que al final de las url de mi sitio web, se agregan los siguientes símbolos: #!/tcmbck
    No tengo instalado el plugin ADDTHIS, como les pasa a lgunos.
    Si saben algo al respecto, agradecido
    Teo

Y tú qué opinas?

Las URLs se convertirán en enlaces automáticamente. Tu dirección de email no se publicará ni se utilizará para enviar ningún tipo de información. Los mensajes que no aporten nada al tema que se trata en esta entrada se borrarán. Las imágenes que aparecen al lado de cada autor utilizan el servicio de Gravatar. Recuerda que puedes usar etiquetas HTML como <a href>, <code>, <em> o <strong> en los comentarios.

(necesario)

(opcional)