Si tengo un enlace roto, se registra con un 404. Si tengo un enlace a un ancla y falta el ancla, no obtengo una entrada en el registro. ¿Cómo puedo encontrar esos enlaces de anclaje rotos, especialmente si el tráfico proviene de un referente? ¿Hay alguna forma de configurar el registro para capturar esta información?
Servidor HTTP: Apache 2
Respuestas:
Es imposible configurar el registro de la parte #fragmento de la URL porque su servidor web nunca lo ve. De RFC3986
Lo que esto significa es que el navegador web básicamente elimina la parte de anclaje del URI antes de enviarlo al servidor web. El protocolo HTTP ni siquiera trata con fragmentos debido a esto; nunca se envían por cable.
Los fragmentos están disponibles para JavaScript (porque es del lado del cliente) como parte de la propiedad location.href. Una vez que obtenga el nombre del fragmento, puede confirmar que es válido buscando en la propiedad de nombre de los elementos de la matriz document.anchors [] para ese valor.
Una vez que haya hecho esto, puede registrarse utilizando AJAX o, como notas de Pelms , pasar a Google Analytics o servicios similares.
fuente
<a name="blah"></a>
, no podrá determinar la existencia con getElementByID; podría funcionar en IE (no estoy seguro de si sigue siendo el caso en 8), pero si desea hacer esto, le sugiero agregar también la identificación.Como han dicho otros, los anclajes de página son algo en lo que opera el navegador en lugar del servidor web.
Puede usar algún código para pasar la información de anclaje a su programa de Analytics. Por ejemplo, podría extraer el
location.hash
valor y pasarlo a Google Analytics como una variable personalizada .De manera más útil, podría ejecutar un código que verifique en la página html un ancla que corresponda al valor de
location.hash
y, si falta, desencadena un evento GA . Eso le daría un informe de GA sobre enlaces de página rotos cuando los usuarios hagan clic en ellos.fuente
No creo que sea posible ver esto en los registros de Apache. Si se solicita y sirve un archivo, eso prácticamente termina la participación de Apache (o cualquier otro servidor). Encontrar y posicionarse en el ancla es algo que hace el navegador. Para cuando su navegador llegue a localizar el ancla, la conexión al servidor ya está cerrada.
Un buen verificador de enlaces debería recogerlo, pero ese es un proceso manual.
fuente
CSE HTML Validator busca anclajes faltantes ... por un precio.
Ver http://www.htmlvalidator.com/htmlval/whycseisbetter.html
fuente