Hace poco me vi con la necesidad de testear los enlaces de mis proyectos en el servidor de LMSGI. Esto es muy útil para verificar que has escrito bien un sitio. También es útil después de mover archivos de lugar, por si los enlaces en ellos siguen una ruta que ya no existe, o por si pasan a estar mal referenciados en otras páginas.
Lo primero que hice fue buscar un chequeador de enlaces, dando con el validador de W3C. Qué mejor que usar el de los «pensadores» del funcionamiento de la web.
Pues no, como el servidor tiene configurado un robots.txt, el validador se queda frente al cartel de «robots no» que hay en la puerta.
¿Qué son robots.txt y «noindex, nofollow»?
El archivo robots.txt es un indicador escrito por el desarrollador de una web, con instrucciones dirigidas a los bots que quieran entrar en un sitio, que siguen la siguiente forma:
User-Agent: * Disallow: /
Las páginas pueden tener, además, la etiqueta meta robots con los valores «noindex, nofollow», que señalan si un bot puede indexar la página o seguir los enlaces que contiene. La etiqueta acepta los siguientes valores:
index / noindex follow / nofollow
Y se añadiría así:
<meta name=”robots” content=”noindex,nofollow”>
La etiqueta meta robots da algo más de flexibilidad ya que permite evitar la indexación de algunas páginas del sitio dejando a los buscadores que descubran las demás.
¿Cómo validé mis enlaces?
Acudí a Antonio, quien descubrió otro validador (drlinkcheck.com) que sí se mete a ver si los enlaces funcionan. Entonces vi mi error: cuando se trata de una tecnología que aún no entiendo, supongo que al no funcionar en un sitio, entonces no funcionará en ningún otro.
Y así fue, que usando la misma dirección en otro lugar pude ver el estado de los enlaces de mis páginas.
Tiene una pega, y es que observa los mismos enlaces varias veces, de formas distintas. En el ejemplo de arriba, los enlaces a los ejercicios 1 y 3 aparecen rotos, mientras que en la página funcionan bien. Esto sucede porque son enlaces relativos a una base, que el checkeador no ha tenido en cuenta.
Aún así me vino bien para ver si todo estaba correcto.
Estos son validadores que siguen las reglas:
Estos son validadores que no las siguen:
Y estos son alternativas a páginas web:
- Wummel LinkChecker
- Drupal Link checker
- LinkChecker (en forma de complemento de Firefox, aunque no funciona en Quantum)
- Broken Link Checker (Para WordPress)
- HTML Link Checker (Para NetBeans, por desgracia obsoleto)
¿Por qué el validador no queda parado ante robots.txt?
Porque no quiere.
Cuando se programa un bot que se dedique a entrar en páginas, se le hace ignorar robots.txt y la etiqueta meta robots. Nada más.
Robots es un estándar, un modelo a seguir. El uso de estas herramientas por parte de todos dan lugar a una web con más sentido. Los motores de búsqueda, como Google, reconocen que si un desarrollador indica que su página no debe ser indexada es por una buena razón.
Sin embargo, no todos siguen las mismas normas. Un spammer puede acceder a direcciones de email, un malware buscar puntos vulnerables en un sitio… Y un validador puede decirte si tienes algo que no funciona.
Me puse en contacto con el servicio de soporte de Dr. Link Check, preguntando sobre por qué su página no respeta el archivo, y esto es lo que muy amablemente me contestaron:
Al contrario de W3C, decidimos ignorar robots.txt siempre, y chequear todas las páginas que encontremos. En mi opinión, respetar las reglas de exclusión de robots.txt sólo tiene sentido para bots de motores de búsqueda, pero no para chequear enlaces rotos.
Una forma de admitir ciertos bots en un sitio es añadir agentes admitidos a robots.txt:
User-Agent: * Disallow: / User-Agent: W3C-checklink Disallow:
Sin embargo, si un desarrollador quiere proteger su servidor ante bots que ignoren el archivo robots debe usar herramientas más potentes como bloqueadores activos de IP.
Fuentes
http://www.robotstxt.org/
https://dev.w3.org/perl/modules/W3C/LinkChecker/docs/checklink#bot
http://deteresa.com/meta-robots/
https://es.wikipedia.org/wiki/Est%C3%A1ndar_de_exclusi%C3%B3n_de_robots
https://support.archive-it.org/hc/en-us/articles/208001096-Avoid-robots-exclusions
https://tipstrickshack.blogspot.com.es/2012/11/how-to-exploit-robotstxt.html