SEO Suite

Visión general

El posicionamiento en buscadores, optimización en motores de búsqueda o SEO (del inglés “search engine optimization”), es un conjunto de acciones orientadas a mejorar el posicionamiento de un sitio web en la lista de resultados de Google, Bing u otros buscadores de Internet. El SEO se ocupa de los aspectos técnicos, como la optimización de la estructura y los metadatos de un sitio web, pero también se aplica al nivel de contenidos, con el objetivo de que estos sean más útiles y relevantes para los usuarios.

El sistema en su conjunto es headless, es decir, no necesita interfaz gráfica a priori, pero la realidad es que la mayoría de los Commerce tienen una interfaz gráfica. Por eso, para responder a las expectativas antes mencionadas se dispone de una serie de herramientas y estrategias que facilitan y simplifican la gestión de SEO.

Metadatos

De forma general, el concepto de “metadatos” se refiere a aquellos datos que dan información sobre datos: qué son, para qué sirven, etc. En la Web, existen las etiquetas HTML meta para indicar a los buscadores algunos de esos metadatos que aportan información sobre los contenidos que se están visualizando.

En los principales elementos de contenido del Commerce (áreas, categorías, productos, páginas, blog...) se pueden configurar las siguientes metaetiquetas para cada uno de los idiomas habilitados (consulta el apartado Idiomas):

  • Title: texto que se mostrará como título en la ventana que incluye el contenido del elemento que se está visualizando.

  • Description: descripción breve del elemento que se está visualizando.

  • Keywords: conjunto de palabras separadas por coma que describen el contenido que se está visualizando a modo de etiquetas.

  • Robots: indica a los robots de indexación de los buscadores si se debe indexar o no el contenido que se está visualizando (index o noindex) y si se deben rastrear o no los enlaces que incluya el contenido (follow o nofollow).

La etiqueta HTML que se usa para las imágenes puede llevar un atributo llamado “ALT”(alternate text o texto alternativo), el cual contiene una pequeña descripción de la imagen. Los robots de indexación utilizan mucho este atributo y, por tanto, también se puede configurar en cada una de las imágenes.

El sistema dispone de herramientas de introducción masiva de estos metadatos para facilitar el trabajo, además del correspondiente bloque de información de metadatos dentro del apartado de cada elemento de contenido que existe en el BackOffice.

Idiomas

Un Commerce puede ser, en general, multidioma. Esto significa que el mismo contenido se puede visualizar en diferentes idiomas (existen distintos idiomas de navegación). El número de idiomas disponibles dependerá del tipo de Commerce y de su configuración.

El idioma de navegación es una de las características que el sistema almacena de manera interna y lo asocia al usuario para evitar tener que informar en cada petición en qué idioma deben devolverse los contenidos. Mientras no haya un cambio, el sistema devuelve los contenidos en el idioma almacenado. El cambio de idioma está implícito en la estructura de la URL, es decir, la URL ya indica el idioma en que debe devolverse el contenido, ya sea porque incluye la especificación de idioma (consulta Idioma en URL) o porque está creada originalmente para un determinado idioma (consulta URL amigables). Cuando se produce un cambio del idioma de navegación porque hay una URL definida en otro idioma, el sistema almacena el nuevo idioma y, en las posteriores peticiones, sirve los contenidos en ese idioma.

En general, cuando se solicita un recurso al sistema, este devuelve los contenidos en un idioma determinado y, además, proporciona automáticamente las URL a ese mismo recurso en el resto de los idiomas habilitados. Esto se hace para que la capa de presentación sepa cómo llamar al recurso en cualquiera de esos idiomas. Con esta información, por ejemplo, una capa de presentación web puede crear un selector de idiomas que permita al usuario ver una página en otro idioma.

Configuración

La lista de idiomas disponibles es muy extensa. De entre todos ellos, el Commerce debe tener vinculado uno como mínimo. La lista es cerrada (aunque ampliable si se solicita), por lo que solo es posible vincular los idiomas que esta incluya. Los idiomas vinculados pueden tener uno de estos dos estados:

  • Deshabilitado: el idioma está vinculado al Commerce y se pueden proporcionar contenidos en ese idioma desde el BackOffice, pero no estará disponible en la capa de presentación (el sistema no devolverá contenidos en ese idioma).

  • Habilitado: se pueden proporcionar contenidos en ese idioma desde el BackOffice y el sistema los devolverá de la forma esperada.

Si se solicita un contenido en un idioma que no está vinculado o está deshabilitado, se devolverá un error de recurso no encontrado.

De la lista de idiomas se debe seleccionar uno como predeterminado, que será el que use el sistema para devolver los contenidos mientras no se indique un cambio de idioma.

Contenidos

Para que el Commerce sea multidioma de manera efectiva, se deben introducir los textos de los contenidos en cada uno de los idiomas vinculados. Cada elemento de contenido debe tener una versión por idioma. El sistema ofrece herramientas de introducción masiva de contenidos para poder hacerlo de manera cómoda y simple. Sin embargo, la forma más habitual es hacerlo desde el BackOffice, donde cada elemento de contenido tiene su apartado, en el que se pueden editar todas sus características, incluidas las relacionadas con el idioma.

Es importante que los textos de los contenidos tengan su réplica en todos los idiomas habilitados. De lo contrario, el contenido se devuelve incompleto, lo que provocará una mala experiencia de usuario. El sistema dispone de herramientas de introducción masiva de estos metadatos para facilitar el trabajo, además del correspondiente bloque de información de metadatos dentro del apartado de cada elemento de contenido que existe en el BackOffice.

Además de los textos de los contenidos, la capa de presentación de un Commerce suele incluir otros textos, como mensajes, nombres de los elementos que se muestran, etiquetas de texto, etc. Este tipo de textos relacionados con la capa de presentación (sea del tipo que sea), no los devolverá el sistema, sino que se deben gestionar desde la capa de presentación que se haya implementado para el Commerce.

La capa de presentación también debe trasladar los códigos de error, informativos o de alerta, que el sistema devuelva. Por ejemplo, si el sistema devuelve el código de error que indica que no ha podido añadir un producto a la cesta, la capa de presentación debe mostrar un texto del tipo “No se ha podido añadir el producto” en todos los idiomas vinculados habilitados del Commerce.

Dominios

Un Commerce es, en general, multidominio. Esto significa que su sitio web (colección de contenido que ofrece el Commerce) puede tener distintas versiones, identificadas mediante los diferentes dominios.

Configuración

Un Commerce puede tener configurado un dominio en 4 niveles, de más general a más restrictivo. El sistema siempre asignará el dominio que considere más restrictivo y, cuanto mayor sea el número de nivel, más restrictivo será. Se establecen, por tanto, estos niveles:

  • Nivel 1: nivel general. El dominio que se configura en este nivel es global para todas las versiones e idiomas del Commerce. A este nivel, el dominio no depende de ninguna otra característica.

  • Nivel 2: dominio por idioma. Se vincula un dominio al idioma de manera bidireccional, de tal manera que cualquiera de estas dos características impone a la otra; el dominio impone un idioma y al revés, el idioma impone un dominio.

  • Nivel 3: dominio por país. Se vincula un dominio a un país de tal manera que el dominio impone un país, pero al revés no tiene por qué (depende de una configuración adicional; consulta Dominio por país).

  • Nivel 4: dominio por idioma-país (nivel más restrictivo). Se vincula un dominio a una combinación de idioma y país concretos. También es bidireccional, de tal manera que el dominio impone un idioma y un país, y al revés, una combinación concreta de idioma y país impone un dominio.

Un mismo dominio puede estar vinculado a más de un elemento del mismo nivel. Por ejemplo, un Commerce podría tener www.domain.com vinculado a los idiomas inglés y alemán, y fr.domain.com vinculado al idioma francés.

Un dominio solo puede actuar en un nivel. Por ejemplo, si se tiene fr.domain.com en el nivel 2 (vinculado a idioma) no se puede usar fr.domain.com como dominio de nivel 3. De lo contrario, provocaría ambigüedades a la hora de crear URLs y, como consecuencia, podría derivar en una duplicidad de contenidos. Puede haber recursos del Commerce que tengan el mismo dominio para todos los idiomas. Un ejemplo típico es la página inicial de la capa de presentación del Commerce. Esta página no puede tener una URL amigable (consulta URL amigables) porque se llega a ella simplemente tecleando un dominio del Commerce en el navegador. En casos como este, donde la falta de información sobre el idioma puede generar comportamientos ambiguos, el sistema añade automáticamente la especificación de idioma en las URL que devuelve del recurso para el resto de los idiomas habilitados. Por ejemplo, si el dominio del Commerce está definido como www.domain.com y tiene vinculados el inglés y el alemán, cuando se le haga la petición al sistema este devolverá el contenido de la página de inicio en el idioma predeterminado y, además, proporcionará para esa página de inicio las siguientes URL:

www.domain.com/en

www.domain.com/de

La capa de presentación podrá usar estas dos URL para desambiguar la página de inicio a la hora de montar un selector de cambio de idioma.

Ejemplo: Supongamos que el Commerce tiene un dominio de nivel 1 definido como www.domain.com, y 2 idiomas habilitados, el inglés (predeterminado) y el alemán. Se podrían dar las siguientes situaciones:

  • Un usuario sin idioma de navegación (es decir, un usuario nuevo) accede a www.domain.com: el sistema devuelve el contenido en inglés porque es el idioma predeterminado y establece este último como idioma de navegación.

  • Un usuario cuyo idioma de navegación es el inglés accede a www.domain.com y selecciona el alemán: como la URL es www.domain.com/de, el sistema establece el alemán como idioma de navegación y redirige al usuario a www.domain.com.

  • Un usuario cuyo idioma de navegación es el alemán accede a www.domain.com: el sistema devuelve el contenido en alemán.

Dominio por idioma

Si un dominio está vinculado a un idioma significa que las URL que se creen bajo ese idioma usarán el dominio en cuestión.

Ejemplo : Supongamos que el Commerce tiene un dominio de nivel 1 definido como www.domain.com y 2 idiomas habilitados, el inglés (predeterminado) y el alemán. Al alemán se le vincula un dominio de nivel 2 definido como de.domain.com . Se podrían dar las siguientes situaciones:

  1. Un usuario sin idioma de navegación accede a www.domain.com: el sistema devuelve el contenido en inglés porque es el idioma predeterminado y establece este último como el idioma de navegación.

  2. Un usuario cuyo idioma de navegación es el inglés accede a www.domain.com y selecciona el alemán: como el idioma tiene un dominio propio vinculado, el sistema habrá devuelto para el alemán una URL con de.domain.com y redirigirá al usuario a ese dominio (caso 4).

  3. Un usuario cuyo idioma de navegación es el alemán accede a www.domain.com: el dominio no está asociado a ningún idioma, pero no puede mostrarse en alemán (porque el alemán tiene un dominio propio). El sistema devuelve el contenido en inglés porque es el idioma predeterminado y establece este último como el idioma de navegación.

  4. Un usuario cuyo idioma de navegación es el alemán accede a de.domain.com: como el dominio tiene vinculado el alemán, se devuelve el contenido en alemán.

  5. Un usuario cuyo idioma de navegación es el inglés accede a de.domain.com: como el dominio tiene vinculado el alemán, el sistema lo establece como idioma de navegación y devuelve el contenido en dicho idioma.

  6. Un usuario cuyo idioma de navegación es el alemán accede a de.domain.com y selecciona el inglés: la URL de este idioma es www.domain.com (no existe ambigüedad porque no hay otros idiomas que compartan el dominio). El sistema establece el inglés como idioma de navegación, aunque el dominio no esté vinculado al inglés, y redirige al usuario a www.domain.com (caso 1).

Dominio por país

Cuando un dominio está vinculado a un país actúa como un dominio de nivel 1, pero dentro de un determinado país. Dicho en otras palabras, es como fijar el ámbito del Commerce a un área geográfica concreta en lugar de que el ámbito sea mundial.

A diferencia de lo que ocurre con el dominio por idioma, no existe un país de navegación predeterminado propiamente declarado, sino que se toma siempre el país del usuario. El sistema lo deduce mediante la IP del usuario a través de una herramienta de geolocalización. Si el usuario pertenece a un país dentro de las áreas de venta, ese será el país de navegación. Este país puede cambiar, ya sea porque se selecciona otro de manera explícita, porque el usuario inicia sesión en el Commerce y la dirección tiene un país diferente al de navegación o porque el usuario se registra y la dirección tiene un país diferente. Este nuevo país se establecerá como país de navegación. Si el usuario no pertenece a un país dentro de las áreas de venta se podrían dar comportamientos específicos debidos a alguna configuración de GeoIP que pueda tener el Commerce. Si no tenemos en cuenta esta condición, en general, el sistema asignará como país de navegación el país que tenga definido de manera predeterminada el Commerce. Cuando existe un dominio por país, se asigna como país de navegación el país que tiene vinculado el dominio, y no el país predeterminado. Si varios países comparten el dominio, se asigna como país de navegación el primer país que se haya vinculado al dominio.

El país de navegación sirve para aplicar filtros, tanto de visualización de contenidos como de precios. Por tanto, un determinado país puede hacer cambiar contenidos (mostrar más o menos) y los precios de producto. También puede tener, entre otras, una especificación de los idiomas habilitados en esa área (cambiar el idioma predeterminado y cambiar la lista de idiomas habilitados). Como el dominio impone el país (con sus particularidades) puede parecer que escapa del control y la voluntad del usuario. Para evitar esa sensación, existe el parámetro Redirección por dominio de país que permite advertir al usuario de que el dominio en el que quiere entrar es para usuarios de otro país. El parámetro tiene tres valores:

  • Informativo: el sistema devuelve que se debe mostrar un mensaje advirtiendo al usuario que se encuentra en el país A y que está intentando acceder a la versión del país B. Esta opción, además, devuelve una URL a la versión del país A para que la capa de presentación pueda ofrecer al usuario la posibilidad de que seleccione entre seguir en la versión del país B o ir a la versión del país A.

  • Estricto: si se escoge esta opción significa que se debe hacer una redirección automática hacia la versión del país A, es decir, se conduce de manera automática al usuario a la versión que le corresponde por ubicación geográfica.

  • Desactivado: no se hace ninguna acción, ni de advertencia ni de redirección.

Ejemplo : Supongamos que el Commerce tiene un dominio de nivel 1 definido como www.domain.com y 2 idiomas habilitados, el inglés (predeterminado) y el alemán. Al alemán se le vincula un dominio de nivel 2 definido como de.domain.com . A Alemania se le vincula un dominio de nivel 3 definido como www.domain.de . Además, a Alemania como país se especifica el alemán como idioma predeterminado y se deshabilita el inglés (en Alemania, solo alemán). Se pueden dar las siguientes situaciones de la 1 a la 9, teniendo en cuenta que:

  • Se ha activado el parámetro Redirección por dominio de país con el valor Estricto.

  • Si el parámetro se definiera en Informativo, los casos serían igual, pero sin redirección explícita. Se mostraría un mensaje y sería el usuario quien decidiera.

  • Si el parámetro se ajustara en Desactivado, se trataría de una navegación sin redirecciones ni avisos.

  • “País-A” hace referencia a cualquier país excepto Alemania.

  1. Un usuario que navega dentro del País-A accede a www.domain.com: el sistema devuelve el contenido en inglés porque es el idioma predeterminado y establece este último como idioma de navegación.

  2. Un usuario que navega dentro de Alemania accede a www.domain.com: como el país tiene un dominio propio vinculado, el sistema redirige al usuario a www.domain.de (caso 8).

  3. Un usuario que navega dentro del País-A accede a www.domain.com y selecciona el alemán: como el idioma tiene un dominio propio vinculado, el sistema habrá devuelto para el alemán una URL con de.domain.com y redirigirá al usuario a ese dominio (situación 4).

  4. Un usuario que navega dentro del País-A accede a de.domain.com: como es un dominio que tiene vinculado el alemán, el sistema lo establece como idioma de navegación y devuelve el contenido en dicho idioma.

  5. Un usuario que navega dentro del País-A accede a de.domain.com y selecciona el inglés: la URL de ese idioma es www.domain.com (no existe ambigüedad porque no hay otros idiomas que compartan el dominio). El sistema establece el inglés como idioma de navegación, aunque el dominio no esté vinculado al inglés, y redirige al usuario a www.domain.com (caso 1).

  6. Un usuario que navega dentro de Alemania accede a de.domain.com: como el país tiene un dominio más específico (nivel 3, con más prioridad que el nivel 2), el sistema hará una redirección hacia www.domain.de (caso 8).

  7. Un usuario que navega dentro del País-A accede a www.domain.de: como es un dominio propio de Alemania, el sistema redirigirá al usuario a alguno de los otros dos dominios. Si el usuario tiene como idioma de navegación el alemán, se le redireccionará a de.domain.com (caso 4). Si tiene como idioma de navegación el inglés o todavía no tiene idioma (con lo que se le asignará el inglés de forma predeterminada), se le redireccionará a www.domain.com (caso 1).
    Importante: Si, en este caso, el parámetro estuviera definido en Informativo y el usuario decide no cambiar de dominio, o el parámetro estuviera definido en Desactivado, como el dominio tiene un país vinculado, el sistema fuerza que el país de navegación sea Alemania. Esto significa que el sistema aplicará todas las particularidades del país y, por tanto, devolverá el contenido en alemán porque es el idioma predeterminado para Alemania. El usuario no podría cambiar de idioma porque no hay ningún otro idioma habilitado para Alemania.

  8. Un usuario que navega dentro de Alemania accede a www.domain.de: el sistema aplica las particularidades del país y, por tanto, devuelve el contenido en alemán porque es el país predeterminado para Alemania.

  9. Un usuario que navega dentro de Alemania accede a www.domain.de e intenta cambiar al inglés: no puede porque Alemania tiene restringido el idioma al alemán.

Configuración de las áreas de venta en los países

La posibilidad de vincular un dominio a un país, junto al resto de las características asociadas a un país, hace que el dominio pueda considerarse una subtienda dentro del Commerce. Puede que esa subtienda necesite vender solo a un subconjunto de los países que forman las áreas de venta del Commerce. Por eso, a nivel de configuración de país, es posible redefinir la lista de países para que solo afecte al país en cuestión. Por ejemplo, las áreas de venta del Commerce están compuestas por 10 países, entre ellos, China, que tiene vinculado el dominio www.domain.cn. Pero China tiene su propio mercado y solo puede vender a sus usuarios. Específicamente para China se puede redefinir la lista de áreas de venta y hacer que esté compuesta solo por China. De esa manera, en el proceso de compra, los usuarios del dominio www.domain.cn solo tendrán disponible China, es decir, su propio mercado. Como el resto de los países mantienen las áreas de venta normales, puede considerarse que el Commerce tiene dos tiendas: una global y una específica para China.

Dominio por idioma-país

Un dominio por idioma-país es el más restrictivo de todos. El dominio impone el idioma y país asociados y viceversa, a una combinación concreta de idioma y país de navegación se impondrá el dominio asociado a estos. Es una mezcla de los dominios por idioma y de los dominios por país. El parámetro Redirección por dominio de país también afecta a los dominios por idioma-país porque el país está involucrado.

Ejemplo : Supongamos que el Commerce tiene un dominio de nivel 1 definido como www.domain.com y 2 idiomas habilitados, el inglés (predeterminado) y el alemán. Al alemán se le vincula un dominio de nivel 2 definido como de.domain.com . A Alemania se le vincula un dominio de nivel 3 definido como www.domain.de . Además, a Alemania como país se especifica el alemán como idioma predeterminado en lugar del inglés, que también está habilitado. A la combinación inglés-Alemania se le vincula un dominio de nivel 4 definido como en.domain.de . Se pueden dar las siguientes situaciones de la 1 a la 11, teniendo en cuenta que:

  • Se ha activado el parámetro Redirección por dominio de país y se le ha asignado el valor Estricto.

  • Si el parámetro se definiera en Informativo, los casos serían igual, pero sin redirección explícita. Se mostraría un mensaje y sería el usuario quien decidiera.

  • Si el parámetro se ajustara en Desactivado, se trataría de una navegación sin redirecciones ni avisos.

  • “País-A” hace referencia a cualquier país excepto Alemania.

  1. Un usuario que navega dentro del País-A accede a www.domain.com: el sistema devuelve el contenido en inglés porque es el idioma predeterminado.

  2. Un usuario que navega dentro de Alemania accede a www.domain.com: como el país tiene un dominio propio vinculado, el sistema redirecciona al usuario a www.domain.de (situación 8).

  3. Un usuario que navega dentro del País-A accede a www.domain.com y selecciona el alemán: como el idioma tiene un dominio propio vinculado, el sistema habrá devuelto para el alemán una URL con de.domain.com y redirigirá al usuario a ese dominio (situación 4).

  4. Un usuario que navega dentro del País-A accede a de.domain.com: como el dominio tiene el alemán vinculado, el sistema lo establece como idioma de navegación y devuelve el contenido en dicho idioma.

  5. Un usuario que navega dentro del País-A accede a de.domain.com y selecciona el inglés: la URL de ese idioma es www.domain.com (no existe ambigüedad porque no hay otros idiomas que compartan el dominio). El sistema establece el inglés como idioma de navegación, aunque el dominio no esté vinculado al inglés, y redirige al usuario a www.domain.com (caso 1).

  6. Un usuario que navega dentro de Alemania accede a de.domain.com: como el país tiene un dominio más específico (nivel 3, con más prioridad que el nivel 2), el sistema redirigirá al usuario a www.domain.de (caso 8).

  7. Un usuario que navega dentro del País-A accede a www.domain.de: como es un dominio propio de Alemania, el sistema redirigirá al usuario a alguno de los otros dos dominios. Si el usuario tiene como idioma de navegación el alemán, se le redireccionará a de.domain.com (caso 4). Si tiene como idioma de navegación el inglés o todavía no tiene idioma (con lo que se le asignará el inglés de forma predeterminada), se le redireccionará a www.domain.com (caso 1).
    Importante: Si, en este caso, el parámetro estuviera definido en Informativo y el usuario decide no cambiar de dominio, o el parámetro estuviera definido en Desactivado, como el dominio tiene un país vinculado, el sistema fuerza que el país de navegación sea Alemania. Esto significa que el sistema aplicará todas las particularidades del país y, por tanto, devolverá el contenido en alemán porque es el idioma predeterminado para Alemania.

  8. Un usuario que navega dentro de Alemania accede a www.domain.de: el sistema aplica las particularidades del país y, por tanto, devuelve el contenido en alemán porque es el idioma predeterminado para Alemania.

  9. Un usuario que navega dentro de Alemania accede a www.domain.de y selecciona el inglés: existe un dominio de nivel 4 inglés-Alemania que se impone a todos los demás. Por tanto, el sistema redireccionará al usuario a en.domain.de (situación 10).

  10. Un usuario que navega dentro de Alemania accede a en.domain.de: al ser un dominio de tipo idioma-país, el sistema fuerza que el país de navegación sea Alemania y que el idioma de navegación sea el inglés. Por tanto, se devuelve el contenido en inglés y se imponen el resto de las particularidades del país.

  11. Un usuario que navega dentro del País-A accede a en.domain.de: como es un dominio propio de Alemania (además del idioma inglés), el sistema redirigirá al usuario a alguno de los otros dos dominios. Si el usuario tiene como idioma de navegación el alemán, se redireccionará a de.domain.com (caso 4). Si tiene como idioma de navegación el inglés o todavía no tiene idioma, se le redireccionará a www.domain.com (caso 1).

Importante: Si, en este caso, el parámetro estuviera definido en Informativo y el usuario decide no cambiar de dominio, o el parámetro estuviera definido en Desactivado, como el dominio tiene un país y un idioma vinculados, el sistema fuerza que el país de navegación sea Alemania y que el idioma de navegación sea el inglés. Esto significa que el sistema aplicará todas las particularidades del país, pero el contenido se devolverá en inglés.

URLs

Aunque el sistema sea en su conjunto headless, lo más habitual es que un Commerce tenga algún tipo de capa de presentación web para poder mostrar los contenidos. Para poder acceder a cualquier contenido o recurso de un Commerce (y, en general, de cualquier sitio web) es necesario proporcionar una URL al navegador. Esta URL está formada por un protocolo (http o https), un dominio (www.domain.com) y un tercer elemento que sirve para identificar el contenido, además de algunos parámetros adicionales que se pueden incluir para filtrar o buscar elementos, por ejemplo. Para acceder a un producto se podría usar la siguiente URL de ejemplo:

https://www.domain.com/product1

URL amigables

Ese tercer elemento que compone la sintaxis de la URL puede ser un identificador convencional, como por ejemplo, /product/123 , que puede ser complicado de recordar o incluso ininteligible por parte del usuario. Para evitarlo, se usan las URL semánticas o amigables, que son identificadores creados mediante palabras relacionadas con el contenido que se mostrará. Este tipo de URLs permiten identificar mejor el tipo de contenido, son entendibles por el usuario y son más fáciles de recordar. Además, los buscadores suelen posicionar mejor los contenidos con URL amigables.

Todos los recursos a los que se pueda acceder mediante URL del Commerce pueden usar URL amigables en cada uno de los idiomas .

Para definir URL amigables en el sistema no es necesario introducir información del dominio. Simplemente hay que definir el tercer elemento, es decir, el identificador semántico.

Los recursos que no tengan URL amigable se identificarán con una URL convencional que tiene una estructura específica para cada elemento de contenido. Por ejemplo, las URL de producto son del tipo: /product/[id], las de categoría son del tipo: /category/[id], las de banners son del tipo: /banners/[id], etc., donde [id] es el identificador interno del elemento en cuestión.

El sistema dispone de herramientas de introducción masiva de estas URL para facilitar el trabajo, además del correspondiente campo de URL amigable, dentro del apartado de cada elemento de contenido que existe en el BackOffice.

Las URL amigables no pueden repetirse para ningún tipo de recurso, es decir, no puede haber dos recursos (de producto, categoría, área o del tipo que sea) que usen la misma URL amigable, ya que esto podría provocar ambigüedades y comportamientos inesperados. Por ejemplo, si una categoría usa la URL t-shirt y un producto usa esa misma URL, cuando se solicitara el recurso t-shirt el sistema no sabría si servir una categoría o un producto.

Como, además, al principio el sistema no tiene ninguna información sobre el idioma, si un contenido usa la misma URL para todos los idiomas, el sistema no sabrá en qué idioma se debe servir. Por ejemplo, si un producto usa t-shirt en inglés y alemán, al hacer la petición el sistema no sabría en qué idioma se debe devolver. Para evitarlo, no se permite repetir URL amigables en ningún caso.

Como las URL amigables son diferentes para cada idioma, cuando se solicita un contenido usando una URL amigable, el sistema sabe el idioma en que hay que devolverlo. Por ejemplo, si el idioma de navegación actual es el inglés y se solicita un contenido usando su URL amigable en alemán, el sistema devuelve el contenido en alemán y, además, fuerza el cambio del idioma de navegación al alemán.

Idioma en las URL

Aunque el idioma es una característica que queda a priori oculta, puede ser necesario (por estrategias de SEO o por otros motivos) mostrar de alguna manera en qué idioma se está sirviendo la información.

Uno de los motivos de más peso para activar esta característica, y que entra en las estrategias de SEO, son las buenas prácticas que explican los principales buscadores (incluido Google), donde piden que sean informados de las diferentes versiones por idioma de un determinado contenido. Una manera muy recomendada de hacer esto es diferenciar las URL para cada uno de los idiomas.

Se puede activar el ajuste Ver idioma como subdirectorio en la URL para añadir a la estructura de la URL información del idioma. Al activarlo, las URL quedan así:

protocolo://[dominio]/[idioma]/[URL amigable/URL convencional]

donde [idioma] indica el idioma en formato ISO 639‑1.

Idioma en las URL y URL amigables

Es compatible tener activado el idioma en la URL y que los diferentes elementos de contenido tengan URL amigables. Como cada URL amigable está asociada a un idioma, el idioma que se mostrará en la URL será el vinculado. Por ejemplo, si tenemos la URL amigable / product1 vinculada al inglés, la especificación de idioma que se incluirá será “/ en” :

https://www.domain.com/en/product1

Es importante no mezclar URL amigables con idiomas que no le corresponden —esto solo es posible generando manualmente la URL— para evitar comportamientos no deseados. Si un usuario cambia manualmente la URL del ejemplo y, en lugar de /en (inglés), escribe / de (alemán), es decir, https://www.domain.com/de/product1, cuando el sistema recibe la petición entenderá que hay que devolver el contenido en alemán, pero también que la URL amigable está en inglés. El sistema prioriza el idioma asociado a la URL amigable y, por tanto, en este caso, devolverá el recurso en inglés.

Idioma en las URL y dominios por idioma

Cuando un dominio está vinculado a un idioma y se ha activado el ajuste para mostrar la especificación de idioma en la URL, si ningún otro idioma tiene ese mismo dominio, no se muestra el código de idioma en la URL porque se asume que el idioma ya está representado en la URL por medio del dominio. Por ejemplo, un Commerce dispone de dos dominios: www.domain.com y fr.domain.com. El primero se vincula a los idiomas inglés y alemán, y el segundo, solo al francés. En este caso, los recursos en inglés y alemán contendrán /en/ y /de/ respectivamente en sus URL. Sin embargo, como el francés tiene dominio propio, la URL ya queda diferenciada del resto de los idiomas y no hace falta incluir el código de idioma en la URL: fr.domain.com.

Si tenemos activado el ajuste Ver idioma como subdirectorio en la URL , se puede activar la característica complementaria Forzar idioma . Al hacerlo, el sistema siempre mostrará el idioma, aunque no sea necesario. Siguiendo el ejemplo anterior, si tenemos esta característica activada, los recursos en francés también contendrán /fr/ en sus URL: fr.domain.com/fr/.

País en las URL

Aunque el país es una característica que queda a priori oculta, puede ser necesario (por estrategias de SEO o por otros motivos) mostrar de alguna manera este elemento en la URL.

Un posible motivo sería que la estrategia de URLs que se está implementando debe centrarse en los países en lugar de en los idiomas. En ese caso, será necesario informar a los buscadores de las diferentes versiones por país de un determinado contenido, y una manera muy recomendada de hacerlo es diferenciar las URL para cada uno de los países.

Se puede activar el ajuste Ver país como subdirectorio en la URL para añadir a la estructura de la URL información del país. Al activarlo, las URL quedan así:

protocolo://[dominio]/[país]/[URL amigable/URL convencional]

donde [país] indica el idioma en formato ISO 3166-1 alfa 2.

Esta característica solo está disponible a nivel de configuración de país (de manera similar a la característica Redirección por dominio de país ). Esto significa que solo los países con esta característica activada podrán funcionar bajo esta modalidad. Activar este parámetro sería equivalente a tener dominios por país para cada uno de los países que lo tengan activado. De esta manera, se garantiza el control sobre los países en los que se pone el foco de la estrategia de SEO regional (esto es especialmente relevante para la generación de atributos hreflang, como veremos más adelante).

La característica Ver país como subdirectorio en la URL es compatible con las URL amigables.

País en las URL y dominios por país

Cuando un dominio está vinculado a un país y se ha activado el ajuste para mostrar la especificación de país en la URL, si ningún otro país tiene ese mismo dominio, no se muestra el código de país en la URL porque se asume que el país ya está representado en la URL por medio del dominio. Por ejemplo, un Commerce dispone de dos dominios: www.domain.com y www.domain.com.uk. El primero no se vincula a ningún país, pero el segundo se vincula al Reino Unido y tiene activada la característica para mostrar el país en la URL. En este caso, como el país tiene dominio propio, la URL ya queda diferenciada y no hace falta incluir el código de país en la URL: www.domain.com.uk.

Si tenemos activado el ajuste Ver país como subdirectorio en la URL para un cierto país, se puede activar la característica complementaria Forzar país . Al hacerlo, el sistema siempre mostrará el país, aunque no sea necesario. Siguiendo el ejemplo anterior, si tenemos esta característica activada para el Reino Unido, los recursos también contendrán /gb/ en sus URL: www.domain.com.uk/gb/.

Relacionado con el idioma en la URL, un cierto país puede tener habilitado un idioma únicamente. En este caso, tanto si el país tiene dominio propio como si tiene activado el parámetro Ver país como subdirectorio en la URL, sus URL se diferenciarán del resto. Por tanto, aunque se active el parámetro de mostrar el idioma en la URL, no se mostrará porque no hace falta (la URL con el dominio o con el código de país ya hace que sea única para esa región al no haber más idiomas que mostrar). La especificación de idioma se mostrará en la URL solo si se activa la característica Forzar idioma.

Supongamos que tenemos el dominio general domain.com. En la India, por ejemplo, solo hay un idioma habilitado, el inglés. Si para la India se activa el parámetro que incluye la identificación de país en la URL, las URL quedarán así:

domain.com/in

Esta URL es única para la India porque tiene asociado un único idioma. Por tanto, no habrá que mostrar el idioma en la URL, aunque se active el parámetro para ello. Si se fuerza, la URL quedará de la siguiente manera:

domain.com/in/en

Hreflang

Se conoce como “etiquetas hreflang” o simplemente “hreflang” a unas etiquetas que se usan para informar a los buscadores como Google sobre las diferentes versiones de idioma de una página web. Si la etiqueta hreflang se implementa correctamente, se mejorará la usabilidad y la estrategia de SEO.

Para crear los hreflang de un determinado recurso, es necesario saber todas las versiones que existen de este teniendo en cuenta todos los idiomas habilitados, es decir, todas las versiones de idioma de ese recurso. Como, además, se pueden crear dominios por idioma-país, también habrá que saber las versiones de idioma por país.

Las etiquetas hreflang tienen dos atributos principales: un atributo de enlace en el que se define la URL del recurso y el atributo hreflang propiamente dicho, que consta de un código que puede estar formado por el idioma (en formato ISO 639‑1) y, en ocasiones, el país (en formato ISO 3166‑1 alfa 2) de la URL alternativa. Supongamos que un Commerce dispone de dos idiomas, el inglés y el alemán; y tiene dos dominios: uno general, www.domain.com y, a la combinación inglés-Alemania, se le vincula un dominio de nivel 4 definido como en.domain.de. Esto significa que cada uno de los contenidos accesibles tienen una versión con contenido en inglés para todos los usuarios, una versión con contenido en alemán para todos los usuarios y una versión con contenido en inglés para usuarios de Alemania:

URL

Código para hreflang

www.domain.com/en

en

www.domain.com/de

de

en.domain.de

en-DE

Cuando el sistema recibe una petición devuelve sus contenidos en un idioma determinado y, además, proporciona automáticamente la estructura de URLs y sus correspondientes códigos hreflang para hacer posible que la capa de presentación pueda informar a los buscadores de todas las versiones alternativas que existen de un determinado recurso.

Como se ha visto, el número de dominios que tiene el Commerce y los elementos a los que están vinculados resultan fundamentales a la hora de generar los hreflang por el papel que tienen dentro de la estructura de una URL. Pero como la activación de los parámetros Ver idioma como subdirectorio en la URL y Ver país como subdirectorio en la URL afectan a la estructura de la URL, también resultarán fundamentales a la hora de generar los hreflang.

Sobre los dominios, sus vinculaciones y los mencionados parámetros es necesario destacar algunos puntos:

  • Un dominio de nivel 1, a priori, solo puede generar códigos hreflang de idioma (a menos que esté activo el parámetro Ver país como subdirectorio en la URL ).

  • Un dominio de nivel 2, a priori, solo puede generar códigos hreflang de idioma (a menos que esté activo el parámetro Ver país como subdirectorio en la URL ).

  • Un dominio de nivel 3 implica poner el foco en un país, por tanto, genera siempre códigos hreflang de idioma-país.

  • Un dominio de nivel 4 también implica poner el foco en un país (y un idioma dentro de un país), por tanto, genera siempre códigos hreflang de idioma-país.

  • Activar el parámetro Ver idioma como subdirectorio en la URL , a priori solo puede generar códigos hreflang de idioma (a menos que esté activo el parámetro Ver país como subdirectorio en la URL en algún país).

  • Activar el parámetro Ver país como subdirectorio en la URL implica que se quiere poner el foco en el país, por tanto, genera siempre códigos hreflang de idioma-país.

  • El hreflang tiene un registro denominado x-default que se utiliza cuando la configuración del navegador de los usuarios no coincide con ningún idioma ni región indicados. En estos casos, el sistema usa el dominio genérico.

Activar el parámetro Ver país como subdirectorio en la URL pone el foco en los países en los que se haya activado. Por tanto, como el código hreflang que debe generarse es del tipo idioma-país, implica que se generará una URL para cada uno de los países en que se ha activado y para cada uno de los idiomas habilitados de dichos países. Si el Commerce tiene muchos países con esta característica activada y también tiene activos muchos idiomas, literalmente pueden generarse cientos de URL. Esto puede tener consecuencias imprevistas muy negativas, por lo que es importante tener cuidado con este tipo de configuraciones.

Ejemplos de creación de hreflang

Supongamos que el Commerce tiene una estrategia de SEO internacional con algunos focos regionales, y estos dominios:

  • domain.com: dominio principal del Commerce (nivel 1)

  • domain.fr: dominio asociado a un país, en este caso, a Francia (nivel 3)

  • domain.es: dominio asociado a un país, en este caso, a España (nivel 3)

El Commerce tiene habilitados los siguientes idiomas:

  • Inglés (idioma predeterminado)

  • Francés

  • Español

Como se ve por los dominios, el Commerce quiere centrarse sobre todo en dos países, aunque también le interesan algunos de América y de Asia, en concreto, los siguientes:

  • Europa:

    • Francia

      • Idiomas disponibles:

        • Francés (predeterminado)

        • Inglés

    • España

      • Idiomas disponibles:

        • Español (predeterminado)

  • América:

    • México

      • Idiomas disponibles:

        • Inglés

        • Español (predeterminado)

    • Canadá

      • Idiomas disponibles:

        • Inglés

        • Francés

    • Colombia

      • Idiomas disponibles:

        • Inglés

        • Español (predeterminado)

    • Argentina

      • Idiomas disponibles:

        • Inglés

        • Español (predeterminado)

    • Chile

      • Idiomas disponibles:

        • Inglés

        • Español (predeterminado)

  • Asia:

    • India

      • Idiomas disponibles:

        • Inglés

  • Resto del mundo

    • Idiomas disponibles:

      • Inglés

      • Francés

      • Español

La configuración por país quedaría de esta manera:

País

Dominio

Idiomas

Ver país como subdirectorio en la URL

[Configuración general]

domain.com

  • Inglés (idioma predeterminado)

  • Francés

  • Español

No corresponde

Francia

domain.fr

  • Francés (predeterminado)

  • Inglés

No

España

domain.es

  • Español (predeterminado)

No

México

-

  • Inglés

  • Español (predeterminado)

Canadá

-

  • Inglés

  • Francés

Colombia

-

  • Inglés

  • Español (predeterminado)

Argentina

-

  • Inglés

  • Español (predeterminado)

Chile

-

  • Inglés

  • Español (predeterminado)

India

-

  • Inglés

Supongamos que el Commerce tiene una URL de un recurso en los diferentes idiomas:

  • /product1 (inglés)

  • /produit1 (francés)

  • /producto1 (español)

El sistema genera para ese recurso los siguientes hreflang:

URL

Código

Significado

domain.com/product1

en

Recurso principal en inglés

domain.com/produit1

fr

Recurso principal en francés

domain.com/producto1

es

Recurso principal en español

domain.fr/produit1

fr-FR

Recurso para usuarios de Francia en francés

domain.fr/product1

en-FR

Recurso para usuarios de Francia en inglés

domain.es/producto1

es-ES

Recurso para usuarios de España en español

domain.com/mx/producto1

es-MX

Recurso para usuarios de México en español

domain.com/mx/product1

en-MX

Recurso para usuarios de México en inglés

domain.com/ca/product1

en-CA

Recurso para usuarios de Canadá en inglés

domain.com/ca/produit1

fr-CA

Recurso para usuarios de Canadá en francés

domain.com/co/producto1

es-CO

Recurso para usuarios de Colombia en español

domain.com/co/product1

en-CO

Recurso para usuarios de Colombia en inglés

domain.com/ar/producto1

es-AR

Recurso para usuarios de Argentina en español

domain.com/ar/product1

en-AR

Recurso para usuarios de Argentina en inglés

domain.com/cl/producto1

es-CL

Recurso para usuarios de Chile en español

domain.com/cl/product1

en-CL

Recurso para usuarios de Chile en inglés

domain.com/in/product1

en-IN

Recurso para usuarios de la India en inglés

domain.com

x-default

Dominio predeterminado

Si se activa el parámetro para mostrar el idioma como subdirectorio en la URL, el sistema genera los siguientes hreflang:

URL

Código

Significado

domain.com/en/product1

en

Recurso principal en inglés

domain.com/fr/produit1

fr

Recurso principal en francés

domain.com/es/producto1

es

Recurso principal en español

domain.fr/fr/produit1

fr-FR

Recurso para usuarios de Francia en francés

domain.fr/en/product1

en-FR

Recurso para usuarios de Francia en inglés

domain.es/producto1

es-ES

Recurso para usuarios de España en español

No muestra idioma porque la ruta domain.es/ es única, porque el país al que está vinculado el dominio tiene un solo idioma

domain.com/mx/es/producto1

es-MX

Recurso para usuarios de México en español

domain.com/mx/en/product1

en-MX

Recurso para usuarios de México en inglés

domain.com/ca/en/product1

en-CA

Recurso para usuarios de Canadá en inglés

domain.com/ca/fr/produit1

fr-CA

Recurso para usuarios de Canadá en francés

domain.com/co/es/producto1

es-CO

Recurso para usuarios de Colombia en español

domain.com/co/en/product1

en-CO

Recurso para usuarios de Colombia en inglés

domain.com/ar/es/producto1

es-AR

Recurso para usuarios de Argentina en español

domain.com/ar/en/product1

en-AR

Recurso para usuarios de Argentina en inglés

domain.com/cl/es/producto1

es-CL

Recurso para usuarios de Chile en español

domain.com/cl/en/product1

en-CL

Recurso para usuarios de Chile en inglés

domain.com/in/product1

en-IN

Recurso para usuarios de la India en inglés

No muestra idioma porque la ruta domain.com/in es única

domain.com

x-default

Dominio predeterminado

Si se activa el parámetro Forzar idioma, el sistema genera los siguientes hreflang:

URL

Código

Significado

domain.com/en/product1

en

Recurso principal en inglés

domain.com/fr/produit1

fr

Recurso principal en francés

domain.com/es/producto1

es

Recurso principal en español

domain.fr/fr/produit1

fr-FR

Recurso para usuarios de Francia en francés

domain.fr/en/product1

en-FR

Recurso para usuarios de Francia en inglés

domain.es/es/producto1

es-ES

Recurso para usuarios de España en español

domain.com/mx/es/producto1

es-MX

Recurso para usuarios de México en español

domain.com/mx/en/product1

en-MX

Recurso para usuarios de México en inglés

domain.com/ca/en/product1

en-CA

Recurso para usuarios de Canadá en inglés

domain.com/ca/fr/produit1

fr-CA

Recurso para usuarios de Canadá en francés

domain.com/co/es/producto1

es-CO

Recurso para usuarios de Colombia en español

domain.com/co/en/product1

en-CO

Recurso para usuarios de Colombia en inglés

domain.com/ar/es/producto1

es-AR

Recurso para usuarios de Argentina en español

domain.com/ar/en/product1

en-AR

Recurso para usuarios de Argentina en inglés

domain.com/cl/es/producto1

es-CL

Recurso para usuarios de Chile en español

domain.com/cl/en/product1

en-CL

Recurso para usuarios de Chile en inglés

domain.com/in/en/product1

en-IN

Recurso para usuarios de la India en inglés

domain.com

x-default

Dominio predeterminado

Si, además, se activa el parámetro Forzar país, el sistema genera los siguientes hreflang:

URL

Código

Significado

domain.com/en/product1

en

Recurso principal en inglés

domain.com/fr/produit1

fr

Recurso principal en francés

domain.com/es/producto1

es

Recurso principal en español

domain.fr/fr/fr/produit1

fr-FR

Recurso para usuarios de Francia en francés

domain.fr/fr/en/product1

en-FR

Recurso para usuarios de Francia en inglés

domain.es/es/es/producto1

es-ES

Recurso para usuarios de España en español

domain.com/mx/es/producto1

es-MX

Recurso para usuarios de México en español

domain.com/mx/en/product1

en-MX

Recurso para usuarios de México en inglés

domain.com/ca/en/product1

en-CA

Recurso para usuarios de Canadá en inglés

domain.com/ca/fr/produit1

fr-CA

Recurso para usuarios de Canadá en francés

domain.com/co/es/producto1

es-CO

Recurso para usuarios de Colombia en español

domain.com/co/en/product1

en-CO

Recurso para usuarios de Colombia en inglés

domain.com/ar/es/producto1

es-AR

Recurso para usuarios de Argentina en español

domain.com/ar/en/product1

en-AR

Recurso para usuarios de Argentina en inglés

domain.com/cl/es/producto1

es-CL

Recurso para usuarios de Chile en español

domain.com/cl/en/product1

en-CL

Recurso para usuarios de Chile en inglés

domain.com/in/en/product1

en-IN

Recurso para usuarios de la India en inglés

domain.com

x-default

Dominio predeterminado

Sitemaps

Un mapa del sitio o sitemap es un archivo con una estructura especial (https://www.sitemaps.org/es/protocol.html) que contiene la lista, a modo de URLs, de los contenidos accesibles del Commerce. Lo suelen usar los robots de indexación de los buscadores como guía de los contenidos que hay disponibles para indexar.

Configuración

Existe un archivo índice de sitemaps ( sitemap.xml ) que contiene la colección de los diferentes sitemaps del Commerce. El número de sitemaps que contendrá este índice dependerá de su configuración. Se puede hacer lo siguiente:

  • Dividir en diferentes idiomas: esto provocará que haya un sitemap para cada idioma habilitado del Commerce.
    Si no se divide por idiomas, la estructura contendrá entradas secundarias de tipo <xhtml:link> con todas las variantes de idioma y/o idioma-país de cada una de las URL (estructura hreflang).

  • Dividir en diferentes tipos: esto provocará que haya un sitemap por cada elemento de contenido que se haya decidido incluir, que pueden ser:

    • Categorías

    • Productos

    • Páginas

    • Noticias

    • Posts del blog

Si se divide por idiomas y por tipos implica que se multiplicará el número de elementos por el número de idiomas habilitados en el Commerce. Por ejemplo, si se incluyen categorías, productos y páginas, y hay 2 idiomas habilitados, significa que se generarán 6 (3 x 2) sitemaps distintos: 2 de categorías (uno por idioma), 2 de productos (uno por idioma) y 2 de páginas (uno por idioma).

Como los contenidos suelen cambiarse con más o menos regularidad, los sitemaps se pueden actualizar cada ciertas horas, días o semanas, dependiendo de la configuración. Esta actualización la hace un proceso automatizado en segundo plano. Además, como en general pueden contener muchos registros y, como resultado, tener un peso (expresado en bytes) bastante grande, el sistema puede comprimir los archivos de sitemaps para que resulten más manejables y rápidos de descargar.