html - verificador - Cómo encontrar enlaces rotos en un sitio web
verificador de enlaces (11)
La mejor manera es crear un bot pequeño que se ejecute en todo el sitio y registre el resultado. Hice esto para probar mis sitios antes de la implementación y funciona muy bien.
¿Qué técnicas o herramientas se recomiendan para encontrar enlaces rotos en un sitio web?
Tengo acceso a los archivos de registro, por lo que podría analizar estos buscando errores 404, pero me gustaría algo automatizado que siga (o intente seguir) todos los enlaces en un sitio.
Me gusta el W3C Link Checker .
Su mejor opción es unir a su propia araña en su lenguaje de scripting de elección, podría hacerse recursivamente de la siguiente manera:
// Pseudo-code to recursively check for broken links
// logging all errors centrally
function check_links($page)
{
$html = fetch_page($page);
if(!$html)
{
// Log page to failures log
...
}
else
{
// Find all html, img, etc links on page
$links = find_links_on_page($html);
foreach($links as $link)
{
check_links($link);
}
}
}
Una vez que su sitio recibe cierto nivel de atención por parte de Google, sus herramientas de webmaster son invaluables para mostrar enlaces rotos que los usuarios pueden encontrar, pero esto es bastante reaccionario: los enlaces muertos pueden estar disponibles varias semanas antes de que Google los indexe y registre el 404 en su panel de webmaster.
Escribir su propia secuencia de comandos como la anterior le mostrará todos los enlaces rotos posibles, sin tener que esperar a que google (herramienta de webmaster) o sus usuarios (404 en los registros de acceso) tropiecen con ellos.
Utilice una herramienta que analice sus archivos de registro y le proporcione un informe de "enlaces rotos" (por ejemplo, Herramientas para webmasters de Google o Analógicas ) o ejecute una herramienta que rastree su sitio web e informe enlaces rotos (por ejemplo, W3C Link Checker ).
Hay una aplicación de Windows llamada CheckWeb. Ya no está desarrollado, pero funciona bien, y el código está abierto (C ++ creo).
Solo debe darle una URL y rastreará su sitio (y enlaces externos si lo desea), informando cualquier error, "peso" de la imagen / página, etc.
En una aplicación .NET, puede configurar IIS para pasar todas las solicitudes a ASP.NET y luego, en su controlador global de errores, puede detectar y registrar errores 404. Esto es algo que haría además de filtrar su sitio para verificar si hay enlaces internos faltantes. Hacer esto puede ayudar a encontrar enlaces rotos de OTROS sitios y luego puede solucionarlos con 301 redireccionamientos a la página correcta.
Para ayudar a probar su sitio internamente, también está el kit de herramientas de Microsoft SEO.
¡Por supuesto, la mejor técnica es evitar el problema en tiempo de compilación! En ASP.NET puede acercarse a esto requiriendo que todos los enlaces se generen a partir de métodos estáticos en cada página, por lo que solo hay una ubicación donde se genera una URL determinada. por ejemplo, http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx
Si quieres un rastreador de C # completo, aquí hay uno: - http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/
LinkTiger parece un servicio muy refinado (aunque no gratuito) para hacer esto. No lo estoy usando, solo quería agregar porque todavía no se mencionó.
Ver LinkChecker para Firefox.
Para Mac OS, hay una herramienta Integrity que puede verificar las URL de enlaces rotos.
Para Windows está Link Sleuth de Xenu .
Nuestro producto comercial DeepTrawl hace esto y se puede usar en Windows / Mac.
Divulgación: soy el desarrollador principal detrás de DeepTrawl.
Acabo de encontrar un script de wget que hace lo que está pidiendo.
wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com
El crédito para esto va a esta página .
Ver la herramienta linkchecker :
LinkChecker es un validador de sitios web con licencia GPL. LinkChecker comprueba los enlaces en documentos web o sitios web completos.