Blog

Mejores prácticas (y 5 de las peores) de la navegación facetada

Miércoles, 12 de febrero de 2014

Selecting filters with faceted navigation can cause many URL combinations
La selección de filtros con navegación facetada puede provocar numerosas combinaciones de URL, como
https://www.example.com/category.php?category=gummy-candies&price=5-10&price=over-10

La navegación facetada, como filtrar por color o rango de precios, puede ser útil para tus visitantes,
pero a menudo no es amigable para los motores de búsqueda, ya que crea muchas combinaciones de URL con
contenido duplicado. Con
las URL duplicadas, es posible que los motores de búsqueda no rastreen contenido único nuevo o actualizado tan rápidamente, y/o
es posible que no indexen una página con precisión porque las señales de indexación se diluyen entre las versiones
duplicadas. Para reducir estos problemas y ayudar a que los sitios de navegación facetada sean lo más amigables posibles para los motores de búsqueda, nos gustaría:

Antecedentes

En un estado ideal, el contenido único —ya sea un producto/artículo individual o una categoría de
productos/artículos— solo tendría una URL accesible. Esta URL tendría una ruta de clics clara, o ruta hacia el contenido desde dentro del sitio, accesible haciendo clic desde la página de inicio o una
página de categoría.

  • Ruta clara que llega a todas las páginas individuales de productos/artículos

    On the left is potential user navigation on the site (or, the click path), on the right are the pages accessed.

  • Una URL representativa para la página de categoría
    https://www.example.com/category.php?category=gummy-candies

    Category page for gummy candies

  • Una URL representativa para la página de producto individual
    https://www.example.com/product.php?item=swedish-fish

    One representative URL for individual product page

Duplicación indeseable causada por la navegación facetada

  • Numerosas URL para el mismo artículo/producto

    • Canónica: example.com/product.php?item=swedish-fish

      Canonical URL for the same product

    • Duplicada:
      example.com/product.php?item=swedish-fish&category=gummy-candies&price=5-10

      Duplicate URL for the same product

    La misma página de producto para “swedish fish” puede estar disponible en varias URL.

  • Numerosas páginas de categoría que aportan poco o ningún valor a los usuarios y motores de búsqueda), tal
    como se demuestra en la siguiente tabla:

    URLexample.com/category.php?category=gummy-candies&taste=sour&price=5-10example.com/category.php?category=gummy-candies&taste=sour&price=over-10
    category page for gummy candies in the price range $5-10category page for gummy candies that are over $10
    Problemas
    • Sin valor añadido para los usuarios de Google dado que los usuarios rara vez buscan “caramelos de goma ácidos
      precio de cinco a diez dólares”.
    • Sin valor añadido para los rastreadores de motores de búsqueda que descubren el mismo elemento (“ensalada de frutas”)
      a partir de páginas de categorías principales (ya sea “caramelos de goma” o “caramelos de goma ácidos”).
    • Valor negativo para el propietario del sitio, cuyas señales de indexación pueden diluirse entre numerosas
      versiones de la misma categoría.
    • Valor negativo para el propietario del sitio con respecto al consumo de ancho de banda y la pérdida de capacidad
      de rastreo en contenido duplicado en lugar de páginas nuevas o actualizadas.

Peores prácticas (no aptas para motores de búsqueda) para la navegación facetada

Peor práctica n.º 1: Codificación de URL no estándar para parámetros, como comas o corchetes, en lugar de
key=value& pares.

Peores prácticas:

  • Pares de clave-valor marcados con : en lugar de =.
  • Múltiples parámetros añadidos con [ ] en lugar de &.
  • Pares de clave-valor marcados con un , en lugar de =.
  • Múltiples parámetros añadidos con ,, en lugar de &.

Mejor práctica:

Si bien los humanos pueden descifrar parámetros de URL extraños, como ,,, los rastreadores tienen dificultades para interpretar los parámetros de URL cuando se implementan de forma no estándar. El ingeniero de software del equipo de rastreo de Google, Mehmet Aktuna, dice: “Usar una codificación no estándar es buscarse problemas”. En su lugar, conecta los pares de clave-valor con un signo igual (=) y añade múltiples parámetros con un ampersand (&).

Peor práctica n.º 2: Usar directorios o rutas de archivos en lugar de parámetros para enumerar valores que no cambian el contenido de la página.

Peor práctica:

Donde /c123/ es una categoría, /s789/ es un
ID de sesión que no
cambia el contenido de la página:

Buena práctica:

El directorio, /gummy-candy/, cambia el contenido de la página de forma significativa:

Mejor práctica:

Los parámetros de URL ofrecen más flexibilidad para que los motores de búsqueda determinen cómo rastrear de manera eficiente.

Es difícil para los programas automatizados, como los rastreadores de motores de búsqueda, diferenciar los valores útiles (por ejemplo, gummy-candy) de los inútiles (por ejemplo,
sessionID) cuando los valores se colocan directamente en la ruta. Por otro lado, los parámetros de URL proporcionan flexibilidad para que los motores de búsqueda prueben rápidamente y determinen cuándo un valor determinado no requiere que el rastreador acceda a todas las variaciones.

Los valores comunes que no cambian el contenido de la página y deben aparecer como parámetros de URL incluyen:

  • ID de sesión
  • ID de seguimiento
  • ID de referente
  • Marca de tiempo

Peor práctica n.º 3: Convertir valores generados por el usuario en parámetros de URL (posiblemente infinitos) que se pueden rastrear e indexar, pero que no son útiles en los resultados de búsqueda.

Peores prácticas:

Por ejemplo, valores generados por el usuario como longitud/latitud o “días atrás” como URLs rastreables e indexables:

Mejores prácticas:

En lugar de permitir que los valores generados por el usuario creen URLs rastreables —lo que genera posibilidades infinitas con muy poco valor para los usuarios que buscan—, quizás publique páginas de categoría para los valores más populares, e incluya información adicional para que la página aporte más valor que una página de resultados de búsqueda normal. Como alternativa, considere colocar los valores generados por el usuario en un directorio separado y luego deshabilitar el rastreo de ese directorio mediante robots.txt.

con robots.txt:

Peor práctica n.º 4: Adjuntar parámetros de URL sin lógica.

Peores prácticas:

Mejor práctica:

Mejor práctica:

Los parámetros de URL extraños solo aumentan la duplicación, lo que provoca un rastreo e indexación menos eficientes. Por lo tanto, considere eliminar los parámetros de URL innecesarios y realizar el “mantenimiento interno” de su sitio antes de generar la URL. Si se requieren muchos parámetros para la sesión del usuario, tal vez oculte la información en una cookie en lugar de adjuntar continuamente valores como:

Peor práctica n.º 5: Ofrecer mayor refinamiento (filtrado) cuando hay cero resultados.

Peor práctica:

Permitir a los usuarios seleccionar filtros cuando no existen elementos para el refinamiento.

category page that lets users select filters when zero items exist

Mejor práctica:

Cree enlaces/URLs solo cuando sea una selección de usuario válida (existen elementos). Cuando haya cero opciones, desactive las opciones de filtrado poniéndolas en gris. Para mejorar aún más la usabilidad, considere agregar recuentos de elementos al lado de cada filtro.

categopry page that greys out filters if there aren't any items

Evite URLs inútiles y minimice el espacio de rastreo creando URLs solo cuando existan productos. Esto ayuda a que los usuarios sigan comprometidos en su sitio (menos clics en el botón de retroceso cuando no hay productos) y ayuda a minimizar las posibles URLs conocidas por los rastreadores. Además, si una página no está solo temporalmente agotada, sino que es poco probable que vuelva a contener contenido útil, considere devolver un
404 código de estado.
Con la 404 respuesta, puede incluir un mensaje útil para los usuarios con más opciones de navegación o un cuadro de búsqueda para encontrar productos relacionados.

Mejores prácticas para nuevas implementaciones o rediseños de navegación facetada

Los nuevos sitios que estén considerando implementar navegación facetada tienen varias opciones para optimizar el “espacio de rastreo” (el conjunto de URLs en su sitio conocidas por Googlebot) para páginas de contenido único, reducir el rastreo de páginas duplicadas y consolidar las señales de indexación.

  • Determine qué parámetros de URL son necesarios para que los motores de búsqueda rastreen cada página de contenido individual (por ejemplo, determine qué parámetros se necesitan para crear al menos una ruta de clics a cada elemento). Los parámetros requeridos pueden incluir item-id, category-id,
    page, y otros.
  • Determine qué parámetros serían valiosos para los usuarios y sus consultas, y cuáles probablemente solo causarían duplicación con rastreo o indexación innecesarios. En el ejemplo de la tienda de golosinas, puedo encontrar el parámetro de URL taste valioso para los usuarios en consultas como “caramelos de goma ácidos”, lo que podría mostrar el resultado
    example.com/category.php?category=gummy-candies&taste=sour. Sin embargo, puedo considerar el parámetro price como causa exclusiva de duplicación, como
    category=gummy-candies&taste=sour&price=over-10. Otros ejemplos comunes:

    • Parámetros valiosos para los usuarios: item-id, category-id,
      name, brand, y otros.
    • Parámetros innecesarios: session-id, price-range, etcétera.
  • Considere implementar una de varias opciones de configuración para URLs que contengan parámetros innecesarios. ¡Solo asegúrese de que los parámetros de URL innecesarios nunca sean necesarios en una ruta de clics del rastreador o del usuario para llegar a cada producto individual!

    • Opción 1: rel="nofollow" enlaces internos

      Hacer que todas las URLs innecesarias sean enlaces con
      rel="nofollow".
      Esta opción minimiza el descubrimiento por parte del rastreador de URLs innecesarias y, por lo tanto, reduce el espacio de rastreo potencialmente explosivo (URLs conocidas por el rastreador) que puede ocurrir con la navegación facetada. rel="nofollow" no evita que las URLs innecesarias sean rastreadas (solo un robots.txt disallow impide el rastreo). Sin embargo, al permitir que sean rastreadas, puede consolidar las señales de indexación de las URLs innecesarias con una URL valiosa para el usuario agregando un rel="canonical" desde la URL innecesaria a una URL de superconjunto (por ejemplo,
      example.com/category.php?category=gummy-candies&taste=sour&price=5-10
      puede especificar un rel="canonical" a la página de vista general de superconjunto “caramelos de goma ácidos” en
      example.com/category.php?category=gummy-candies&taste=sour&page=all).

    • Opción 2: Robots.txt disallow

      Para las URL con parámetros innecesarios, incluya un /filtering/ directorio que estará bloqueado en robots.txt. Esto permite que todos los motores de búsqueda rastreen buen contenido, pero evitará el rastreo de las URL no deseadas. Por ejemplo, si mis parámetros valiosos fueran item, category y taste, y mis parámetros innecesarios fueran session-id y price, podría tener la URL:

      la cual podría enlazar a otro parámetro valioso de URL como taste:

      Pero para los parámetros innecesarios, como price, la URL incluye un directorio predefinido, /filtering/:

      el cual luego se bloquea en robots.txt:

    • Opción 3: Hosts separados

      Si no está utilizando una CDN (los sitios que usan CDN no tienen esta flexibilidad fácilmente disponible en Herramientas para webmasters), considere colocar cualquier URL con parámetros innecesarios en un host separado; por ejemplo, creando el host principal www.example.com y el host secundario, www2.example.com. En el host secundario (www2), establezca la
      Frecuencia de rastreo en Herramientas para webmasters en “baja” mientras mantiene la frecuencia de rastreo del host principal lo más alta posible. Esto permitiría un rastreo más completo de las URL del host principal y reduce el enfoque de Googlebot en sus URL innecesarias.

      • Asegúrese de que permanezca al menos una ruta de clics a todos los elementos del host principal.
      • Si desea consolidar las señales de indexación, considere agregar
        rel="canonical" desde el host secundario a una URL de superconjunto en el host principal (por ejemplo,
        www2.example.com/category.php?category=gummy-candies&taste=sour&price=5-10
        puede especificar un rel="canonical" a la página de vista general de superconjunto “caramelo de goma agrio”,
        www.example.com/category.php?category=gummy-candies&taste=sour&page=all).
  • Evite enlaces en los que se pueda hacer clic cuando no existan productos para la categoría o el filtro.
  • Agregue lógica a la visualización de los parámetros de URL.

    • Elimine los parámetros innecesarios en lugar de agregar valores continuamente. Evite:

    • Mejore la experiencia del buscador manteniendo un orden de parámetros coherente basado en los parámetros valiosos para el buscador enumerados primero (ya que la URL puede ser visible en los resultados de búsqueda) y los parámetros irrelevantes para el buscador al final (por ejemplo, el ID de sesión). Evite:

  • Mejore la indexación de páginas de contenido individuales con
    rel="canonical"
    a la versión preferida de una página. rel="canonical" se puede utilizar en nombres de host o dominios.
  • Mejore la indexación de contenido paginado (como page=1 y page=2 de la categoría “caramelos de goma”) ya sea:

    • Agregando rel="canonical" desde páginas de componentes individuales de la serie a la página de “ver todo” de la categoría (por ejemplo, page=1, page=2, y
      page=3 de “caramelos de goma” con rel="canonical" a
      category=gummy-candies&page=all) asegurándose de que siga ofreciendo una buena experiencia al usuario (por ejemplo, que la página cargue rápidamente).
    • Usando
      marcado de paginación con rel="next" y rel="prev"
      para consolidar las propiedades de indexación, como los enlaces, desde las páginas/URL de los componentes a toda la serie.
  • Asegúrese de que, si utiliza JavaScript para ordenar/filtrar/ocultar contenido dinámicamente sin actualizar la URL, sigan existiendo URL en su sitio que los buscadores consideren valiosas, como categorías principales y páginas de productos que se puedan rastrear e indexar. Por ejemplo, evite usar solo la página de inicio (o una URL) para todo su sitio con JavaScript para cambiar el contenido dinámicamente según la navegación del usuario; desafortunadamente, esto proporcionaría a los usuarios una sola URL para acceder a todo su contenido. Además, verifique que el rendimiento no se vea afectado negativamente por el filtrado dinámico, ya que esto podría socavar la experiencia del usuario.
  • Incluya solo URL canónicas en los sitemaps.

Mejores prácticas para sitios existentes con navegación facetada

Primero, sepa que las mejores prácticas enumeradas anteriormente (por ejemplo, rel="nofollow" para URL innecesarias) aún se aplican si/cuando pueda implementar un rediseño más grande. De lo contrario, con la navegación facetada existente, es probable que los motores de búsqueda ya hayan descubierto un gran espacio de rastreo. Por lo tanto, concéntrese en reducir el crecimiento adicional de páginas innecesarias rastreadas por Googlebot y en consolidar las señales de indexación.

  • Use parámetros (cuando sea posible) con codificación estándar y pares clave-valor.
  • Verifique que los valores que no cambian el contenido de la página, como los ID de sesión, se implementen como pares clave-valor estándar, no como directorios.
  • Evite los anclajes en los que se pueda hacer clic cuando no existan productos para la categoría/filtro. No permita que se creen clics o URL cuando no existan elementos para el filtro.
  • Agregue lógica a la visualización de los parámetros de URL. Elimine los parámetros innecesarios en lugar de agregar valores continuamente. Por ejemplo, evite:

  • Mejore la experiencia del buscador manteniendo un orden de parámetros coherente basado en los parámetros valiosos para el buscador enumerados primero (ya que la URL puede ser visible en los resultados de búsqueda) y los parámetros irrelevantes para el buscador al final. Por ejemplo, evite:

    en favor de:

  • Configure
    Parámetros de URL en Herramientas para webmasters
    si tiene un sólido entendimiento del comportamiento de los parámetros de URL en su sitio (asegúrese de que todavía haya una ruta de clics clara hacia cada elemento/artículo individual). Por ejemplo, con los Parámetros de URL en Herramientas para webmasters, puede enumerar el nombre del parámetro, el efecto del parámetro en el contenido de la página y cómo le gustaría que Googlebot rastree las URL que contienen el parámetro. La siguiente tabla demuestra cómo las diferentes configuraciones afectan los parámetros:

    Nombre del parámetro¿Efecto en el contenido?¿Qué debe rastrear Googlebot?
    trackingIdNoneUna URL representativa
    SortOrderOrdenamientosSolo URLs con valor = ‘LowToHigh’
    SortByOrdenamientosSolo URLs con valor = ‘Price’
    FilterByColorReduceSin URLs
    itemIdEspecificaCada URL
    páginaPaginaCada URL
  • Asegúrate de que si usas JavaScript para ordenar, filtrar y ocultar contenido dinámicamente sin actualizar la URL, sigan existiendo URLs en tu sitio que los usuarios consideren valiosas, como páginas de categorías principales y de productos que puedan ser rastreadas e indexadas. Por ejemplo, evita usar solo la página de inicio (o una URL) para todo tu sitio con JavaScript para cambiar contenido dinámicamente con la navegación del usuario; desafortunadamente, esto proporcionaría a los usuarios una sola URL para alcanzar todo tu contenido. Además, verifica que el rendimiento no se vea afectado negativamente por el filtrado dinámico, ya que esto podría socavar la experiencia del usuario.
  • Mejora la indexación de páginas de contenido individuales con
    rel="canonical"
    a la versión preferida de una página. rel="canonical" se puede utilizar en nombres de host o dominios.
  • Mejora la indexación de contenido paginado (como page=1 y page=2 de la categoría “gummy candies”) mediante:

    • Añadiendo rel="canonical" desde las páginas de componentes individuales de la serie a la página “ver todo” de la categoría (por ejemplo, page=1, page=2, y
      page=3 de “gummy candies” con rel="canonical" a
      category=gummy-candies&page=all) asegurándose al mismo tiempo de que siga siendo una buena experiencia para el usuario (por ejemplo, que la página se cargue rápidamente).
    • Usando marcado de paginación con rel="next" y rel="prev"
      para consolidar las propiedades de indexación, como los enlaces, desde las páginas/URLs de los componentes a la serie en su conjunto.
  • Incluye solo URLs canónicas en sitemaps.

Recuerda que, por lo general, cuanto más simple lo mantengas, mejor. ¿Preguntas? Por favor, pregunta en nuestro
Webmaster discussion forum.

Alien Road

Cómo lo aplicamos

Google announcements age. We keep this post here for the record, and we note for clients whether the behaviour it describes still applies today or has since been superseded.

Servicios relacionados

Compartir