Come gestire il cambiamento di URL di un feed

Qualche giorno fa mi è capitato di trovarmi di fronte all'ennesima segnalazione di un cambio feed, questa volta da parte di IMlog.
Cambiare l'URL di un feed è sempre un'operazione pericolosa, forse più che cambiare l'URl di una pagina in un sito.

Non sempre, infatti, gli utenti si accorgono in tempo della modifica con il rischio di continuare a fornire loro un feed "datato".
Cambiare l'URL di un feed potrebbe essere per altri un'esigenza, come nel caso di IMlog che decidendo di passare a FeedBurner ha dovuto necessariamente spostare l'URL del feed verso un indirizzo "gestito dalla piattaforma".

Questo ennesimo post di avviso in stile "mi sono spostato ecco il nuovo indirizzo" mi ha dato l'idea per scrivere un paio di righe su come comunicare il cambiamento di URL di un feed.

Redirect vs Messaggio

Per ottenere il nostro scopo, ovvero comunicare il cambiamento di indirizzo di un feed, ci sono due correnti di pensiero.

Indirizzare il visitatore

La prima consiste nel reindirizzare più o meno automaticamente il client dal vecchio al nuovo URL.
Impostando un redirect l'utente verrà informato in modo diretto del nuovo indirizzo e, nella maggior parte dei casi, potrebbe essere trasferito al nuovo feed senza bisogno di alcun intervento manuale.

Inoltre, a seconda del redirect, potremmo anche ottenere benefici dal punto di vista del Search Marketing mantenendo risultati di indicizzazione sui motori di ricerca conseguiti fino ad oggi per quel feed.

Viceversa, lo svantaggio potrebbe essere la necessità di continuare a portarsi dietro URL "morte" senza svincolarsi realmente dalla loro configurazione. In aggiunta, alcuni utenti meno esperti potrebbero non accorgersi del redirect e continuare a mantenere nel proprio aggregatore o tra i propri preferiti il vecchio indirizzo che, in automatico, continuerà a trasferirli sul nuovo fino a che non decideremo di disattivarlo definitivamente.

Le tecniche per eseguire un redirect saranno trattate (presto) nel dettaglio nell'articolo come reindirizzare un feed.

Informare il visitatore

La seconda possibilità consiste nell'informare l'utente del cambio indirizzo, normalmente scrivendo un post dedicato così come per IMlog.
In questo caso nulla avverrà automaticamente ma sarà l'utente a scegliere se cambiare l'URL e continuare a seguire il feed o non fare nulla e quindi trovarsi con un relitto nel proprio aggregatore.

Questa soluzione lascia maggior controllo all'utente ma proprio per questo offre come principale svantaggio la certezza che un numero minore di utenti cambierà verso il nuovo feed.
Molti utenti, infatti, potrebbero non leggere con attenzione la news, non leggerla proprio o più semplicemente non accorgersi in tempo dell'avviso.

Come è possibile, direte voi, non accorgersi dell'avviso!
Beh, considerate ad esempio un sito come www.repubblica.it che pubblica decine di news al giorno.
Il feed contiene normalmente un numero tra 10 e 15 item all'interno. Ipotizzando che io mi prenda un giorno di ferie e che in quel giorno repubblica pubblichi l'avviso come 5 news di 35, quando io scaricherò il feed il giorno dopo la news non verrà neppure individuata dal mio aggregatore poiché leggerà soltando le ultime 15 pubblicate.
Questo è uno dei problemi principali dei desktop aggregatore che, se non si imposta una frequenza di aggiornamento sufficiente, potrebbero non essere in grado di tenere traccia di tutti gli item pubblicati.

La soluzione migliore? Quella mista!

Ma qual'è allora la soluzione migliore per comunicare il cambiamento di un feed, direte voi?
Probabilmente una mista che raccolga le caratteristiche migliori di entrambi i metodi.

  1. Avvisate l'utente

    Innanzi tutto avvisate l'utente con almeno un paio di messaggi dedicati. L'ultimo messaggio dovrebbe essere pubblicato in un tempo ragionevolmente prossimo al cambiamento del feed, in proporzione alla frequenza di aggiornamento del vostro feed.

  2. Inserite l'avviso in modo permanente nel vostro feed

    Per evitare il problema prima descritto, l'ideale sarebbe quello di mantenere il più a lungo possibile l'avviso nel feed per far sì che ogni lettore possa, se non leggerlo, scaricarlo.
    Valutate quindi di modificare il template del vostro feed inserendo manualmente la news affinché possa essere sempre presente nel feed per il tempo desiderato. Non vi preoccupate, gli aggregatori riconosceranno che si tratta della stessa news ogni volta che accederanno al feed e la mostreranno una volta sola.

    Ecco come si presenta ora un estratto del feed di IMLog

            <?xml version="1.0" encoding="iso-8859-1"?>
            <feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
              <title>IMlog</title>
              <link rel="alternate" type="text/html" href="http://www.imli.com/imlog/" />
              <modified>2007-07-05T12:40:58Z</modified>
              <tagline>L&apos;Internet Marketing log (IMlog) è un blog collaborativo curato da manager e professionisti. Qui troverai informazioni, commenti, link, articoli e interviste che riguardano il marketing a 360 gradi.</tagline>
              <id>tag:www.imli.com,2007:/imlog//3</id>
              <generator url="http://www.movabletype.org/" version="2.65">Movable Type</generator>
              <copyright>Copyright (c) 2007, IMlog</copyright>
              <entry>
                <!-- contenuto XML dell'ultimo -->
              </entry>
              <entry>
                <!-- contenuto XML del penultimo post -->
              </entry>
            </feed>
        

    ed ecco come potremmo modificarlo inserendo in ultima posizione l'avviso in modo permanente agendo sul template del feed.

            <?xml version="1.0" encoding="iso-8859-1"?>
            <feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
              <title>IMlog</title>
              <link rel="alternate" type="text/html" href="http://www.imli.com/imlog/" />
              <modified>2007-07-05T12:40:58Z</modified>
              <tagline>L&apos;Internet Marketing log (IMlog) è un blog collaborativo curato da manager e professionisti. Qui troverai informazioni, commenti, link, articoli e interviste che riguardano il marketing a 360 gradi.</tagline>
              <id>tag:www.imli.com,2007:/imlog//3</id>
              <generator url="http://www.movabletype.org/" version="2.65">Movable Type</generator>
              <copyright>Copyright (c) 2007, IMlog</copyright>
              <entry>
                <!-- contenuto XML dell'ultimo -->
              </entry>
              <entry>
                <!-- contenuto XML del penultimo post -->
              </entry>
              <entry>
                  <title>Il feed di IMLog cambia indirizzo</title>
                  <link rel="alternate" type="text/html" href="http://www.imli.com/imlog/archivi/001204.html" />
                  <modified>2007-06-20T09:17:58Z</modified>
                  <issued>2007-06-20T11:17:58+01:00</issued>
                  <id>tag:www.imli.com,2007:/imlog//3.1204</id>
                  <created>2007-06-20T09:17:58Z</created>
                  <summary type="text/plain">Non vorremmo rompere troppo le scatole, ma mai ci perdoneremmo il grave danno che potrebbe subire un lettore di IMlog vedendosi privato della lettura quotidina del feed RSS :) Tra pochi giorni il vecchio feed RSS verrà disattivato e rimarrà...</summary>
                  <author>
                    <name>Redazione</name>
                    <email>info@imli.com</email>
                  </author>
                  <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.imli.com/imlog/">
                    <![CDATA[<p>Il feed ha cambiato indirizzo.</p><p>Inserisci il nuovo URL <a href="http://feeds.feedburner.com/Imlog">http://feeds.feedburner.com/Imlog</a> nel tuo aggregatore per non perdere neanche una news!</p>]]>
                  </content>
              </entry>             
            </feed>
        

    Come detto prima, sebbene il post continuerà a comparire nel feed gli aggregatori non presenteranno item duplicati all'utente a patto che voi abbiate inserito un valore al tag che identifica univocamente l'item nel feed.
    Per i feed Atom il tag è <id> mentre per i feed RSS 2.0 si tratta del tag <guid>.

  3. Reindirizzate il vostro feed

    Allo scadere del tempo, impostare un redirect che indirizzi automaticamente gli utenti che ancora hanno mantenuto il vecchio URL verso il nuovo feed.
    Nel caso il cambio di URL sia definitivo, per esempio il feed ha cambiato indirizzo o il sito ha cambiato dominio, allora abbiate cura di inviare anche uno status code HTTP 301 per comunicare che il cambiamento è finale.
    Nel caso il cambio di URL sia temporaneo, come ad esempio per un passaggio a FeedBurner, abbiate cura di inviare un header HTTP 302.

  4. Disattivate il redirect, se definitivo

    Se il cambio URL è definitivo, abbiate cura di disattivare il redirect dopo un periodo di tempo sufficiente.
    A questo punto, chiunque non abbia aggiornato l'URL del feed è quasi probabilmente un client già perso in partenza.