Gestire la scansione degli URL di navigazione per facet

La navigazione per facet è una funzionalità comune dei siti web che consente ai visitatori di modificare il modo in cui gli elementi (ad esempio prodotti, articoli o eventi) vengono visualizzati in una pagina. Si tratta di una funzionalità molto apprezzata e utile, ma la sua implementazione più comune, basata sui parametri URL, può generare URL infiniti che danneggiano un sito web in due modi:

  • Scansione eccessiva: poiché gli URL creati per la navigazione per facet sembrano essere nuovi e i crawler non possono determinare se saranno utili senza eseguire prima la scansione, in genere accedono a un numero molto elevato di URL di navigazione per facet prima che i processi dei crawler determinino che gli URL sono in realtà inutili.
  • Scansioni di rilevamento più lente: in base al punto precedente, se la scansione viene eseguita su URL inutili, i crawler hanno meno tempo da dedicare a nuovi URL utili.

Un tipico URL di navigazione per facet potrebbe contenere vari parametri nella stringa di query relativi alle proprietà degli elementi per i quali vengono applicati i filtri. Ad esempio:

https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny

La modifica di uno dei parametri URL products, color e size mostrerà un insieme diverso di elementi nella pagina sottostante. Spesso si tratta di un numero molto elevato di possibili combinazioni di filtri, che si traduce in un gran numero di possibili URL. Per risparmiare risorse, ti consigliamo di gestire questi URL in uno dei seguenti modi:

  • Se non hai bisogno che gli URL di navigazione per facet vengano potenzialmente indicizzati, impedisci la scansione di questi URL.
  • Se vuoi che gli URL di navigazione per facet vengano potenzialmente indicizzati, assicurati che rispettino le nostre best practice descritte nella sezione seguente. Tieni presente che la scansione degli URL con facet tende a comportare un costo elevato in termini di risorse di calcolo per i siti a causa della grande quantità di URL e operazioni necessarie per il rendering di queste pagine.

Impedire la scansione degli URL di navigazione per facet

Se vuoi risparmiare risorse del server e non hai bisogno che gli URL di navigazione per facet vengano visualizzati nella Ricerca Google, puoi impedire la scansione di questi URL in uno dei seguenti modi.

  • Utilizza il file robots.txt per impedire la scansione degli URL di navigazione per facet. Spesso non c'è un motivo valido per consentire la scansione degli articoli filtrati, in quanto consuma risorse del server senza alcun beneficio o con un beneficio trascurabile; invece, consenti la scansione solo delle pagine dei singoli articoli e di una pagina di elenco dedicata che mostri tutti i prodotti senza filtri applicati.
    user-agent: Googlebot
    disallow: /*?*products=
    disallow: /*?*color=
    disallow: /*?*size=
    allow: /*?products=all$
    
  • Utilizza i frammenti di URL per specificare i filtri. In genere, la Ricerca Google non supporta i frammenti di URL nella scansione e nell'indicizzazione. Se il meccanismo di filtro si basa su frammenti di URL, non avrà alcun impatto sulla scansione (positivo o negativo). Ad esempio, anziché i parametri URL, utilizza i frammenti di URL:
    https://example.com/items.shtm#products=fish&color=radioactive_green&size=tiny

Altri modi per indicare una preferenza su quali URL di navigazione per facet (non) sottoporre a scansione sono l'utilizzo dell'elemento rel="canonical" link e dell'attributo anchor rel="nofollow". Tuttavia, questi metodi in genere sono meno efficaci a lungo termine rispetto ai metodi sopra menzionati.

  • L'utilizzo di rel="canonical" per specificare quale URL è la versione canonica di un URL di navigazione per facet potrebbe, nel tempo, ridurre il volume di scansione delle versioni non canoniche di questi URL. Ad esempio, se hai tre tipi di pagine filtrate, valuta la possibilità di indirizzare rel="canonical" alla versione non filtrata: https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny specifica <link rel="canonical" href="https://example.com/items.shtm?products=fish" >.
  • L'utilizzo degli attributi rel="nofollow" sugli anchor che rimandano a pagine di risultati filtrati può essere utile, ma tieni presente che ogni anchor che rimanda a un URL specifico deve avere l'attributo rel="nofollow" per essere efficace.

Assicurati che gli URL di navigazione per facet siano ottimali per il web

Se vuoi che gli URL di navigazione per facet siano potenzialmente sottoposti a scansione e indicizzati, assicurati di seguire queste best practice per ridurre al minimo gli effetti negativi della scansione del numero elevato di potenziali URL sul tuo sito:

  1. Utilizza il separatore dei parametri URL standard di settore "&". I caratteri come la virgola (,), i due punti (;) e le parentesi ([ e ]) sono difficili da rilevare dai crawler come separatori di parametri (perché molto spesso non lo sono).
  2. Se codifichi i filtri nel percorso dell'URL, ad esempio /products/fish/green/tiny, assicurati che l'ordine logico dei filtri rimanga sempre invariato e che non esistano filtri duplicati.
  3. Restituisci un codice di stato HTTP 404 quando una combinazione di filtri non restituisce risultati. Se non sono presenti pesci verdi nell'inventario del sito, gli utenti e i crawler dovrebbero ricevere un errore "non trovato" con il codice di stato HTTP corretto (404). Lo stesso dovrebbe accadere anche se l'URL contiene filtri duplicati o combinazioni di filtri non sensate e URL di paginazione inesistenti. Analogamente, se una combinazione di filtri non genera risultati, non reindirizzare a una pagina di errore "non trovato" comune. Pubblica invece un errore "non trovato" con il codice di stato HTTP 404 nell'URL in cui è stato rilevato.