7 de Junio, 2010

Cambiar el blog, sin desaparecer del todo

Uno de los problemas que tenía que resolver al cambiar el gestor de contenidos del blog es qué hacer con los enlaces entrantes.

Acostumbro a poner muchos enlaces, lo que incluye enlaces a mis propias anotaciones. Me parece que es una forma interesante de relacionar información, para que el lector pueda completar lo que cuento con algo relacionado que conté hace tiempo.

Los enlaces salientes pueden romperse con el paso del tiempo, pero los entrantes que ponemos nosotros mismos no se romperán (el concepto del permalink es poderoso :P).

Además está la larga duración de esta bitáctora, publicando desde finales del año 2003, siempre con un esquema consistente: BASE/archivo/ID.php.

Indexado en Google
Así es como me recuerdan los buscadores

Con el nuevo gestor pensé pasar a un esquema de URL más neutro (quitando ese PHP), sin entrar en URLs semánticas que no me gustan, y de paso compactando algunos unos huecos consecuencia de pruebas (por ejemplo, el ID de la primera anotación era el 2 en lugar del 1).

Lo primero fue cambiar todos los enlaces internos, algo relativamente sencillo con una bucle y una expresión regular ;). Este sería un ejemplo del caso general:

import re

"""
 por si se nos ha colado alguna URL completa, opcionalmente buscamos también
 comenzando por http://blackshell.usebox.net; aunque en general pongo las rutas
 sin el hostname...
 
 en translate tenemos un vector en el que v[ID_viejo] -> ID_nuevo
"""
r = re.compile(r'(<a href="(http://blackshell\.usebox\.net)?/archivo/([0-9]+)\.php".*?>)')

# cambiamos cada ocurrencia del equema viejo por el esquema nuevo
mo = r.search(post['body'])
while mo:
    post['body'] = post['body'].replace(mo.group(1), '<a href="/archive/' \
        + str(translate[mo.group(3)]) + '.html">')
    mo = r.search(post['body'])

De esta forma tenemos coherencia interna, pero nos queda saber qué hacer con los enlaces entrantes que apunten a un contenido que ya no existe:

  • En el caso de las anotaciones, pasamos por una pequeña página que haga la traducción contestando con un 301 Moved Permanently hacia la nueva URL, confiando en que tarde o temprano los buscadores se den por aludidos ;).
  • Para los contenidos que se han ido para siempre (o temporalmente, como la versión PDA o la versión para imprimir, ¡espero!), mostramos una página 404 lo más útil posible.

Por ahora veo que los buscadores siguen teniendo las URLs viejas, aunque ya van indexando las nuevas. Quizás quite el traductor más adelante, pero viendo lo persistente que puede ser el indexado, me temo que seguirá ahí durante mucho tiempo.

Mucho del tráfico que entra por aquí, viene del mismo sitio: los buscadores. No es una sorpresa, así que espero no haberlo hecho muy mal... ¡y no desaparecer del todo!

Actualización: ya se pueden ver los resultados: se ha sustituido el esquema viejo por el nuevo :).

Nuevo indexado en Google
El esquema de URL ha cambiado

Aún así he visto que he perdido muchas visitas desde Google, principalmente por haber desaparecido la versión PDA. Quizás debería haber redirigido esas visitas a la anotación en su vista normal, pero en general estoy contento con el resultado.

Anotación por Juan J. Martínez, clasificada en: blog, python, hacks.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: