2009-06-14 16 views
48

He estado usando una etiqueta noscript para mostrar una advertencia cuando los usuarios tienen JavaScript deshabilitado o usan complementos de bloqueo de scripts como Noscript. El sitio web no funcionará correctamente si JavaScript está desactivado y los usuarios pueden no darse cuenta por qué no funciona sin la advertencia.Noscript Tag, JavaScript Disabled Warning y Google Penalty

Después de la última modificación del algoritmo de Google, he visto el tráfico diario caer a aproximadamente 1/3 de lo que era en los meses anteriores. También he visto páginas que estaban clasificando # 1 o # 2 en SERPS abandonar los resultados. Después de investigar un poco sobre las herramientas para webmasters, noté que "JavaScript" aparece como # 16 en la sección de palabras clave. Esto no tiene sentido porque el sitio no tiene nada que ver con JavaScript y el único lugar donde aparece esa palabra está en el texto entre las etiquetas noscript.

Parece que Google ahora incluye e indexa el contenido entre las etiquetas noscript. No creo que esto estuviera sucediendo antes. La advertencia es de tres oraciones. Me imagino que tener las mismas tres oraciones que aparecen en la parte superior de cada página en el sitio podría tener un efecto perjudicial en el SEO.

¿Crees que esto podría estar causando un problema con el SEO? Y, ¿hay algún otro método para proporcionar una advertencia a los usuarios que tienen JavaScript deshabilitado de una manera que no será indexada o leída por los motores de búsqueda?

Respuesta

13

Alguien en otro foro mencionado usando una imagen para la advertencia. La forma en que lo veo, esto tendría tres beneficios:

  1. No habría ningún texto irrelevante para los motores de búsqueda para indexar.
  2. El código para mostrar una sola imagen es menos voluminoso que una advertencia de texto (que se carga en cada página).
  3. Se podría implementar el seguimiento para determinar cuántas veces se llama a la imagen, para dar una idea de cuántos visitantes tienen JavaScript deshabilitado o bloqueado.

Si combina esto con algo así como la técnica no mencionada mencionada por J-P, parece ser la mejor solución posible.

+13

Además, no habrá ningún texto, por lo que las personas con discapacidad con lectores de pantalla no podrán usar su sitio. -1. – user9876

+4

@ user9876, Nothing 'alt' no puede reparar. ('alt' fue diseñado para esto, incluso.) Sin embargo, puede ser indexado por Google, entonces. – strager

23

<noscript> no es para advertencias sin sentido como:

<noscript>
Oh, no! ¡No tiene JavaScript habilitado! Si no habilita JS, está condenado. [Explicación larga acerca de cómo habilitar JS en todos los navegadores jamás se ha hecho]
</noscript>

Está destinado para que pueda proporcionar el contenido tanto como sea posible, junto con una mención educado que permite JS proporcionará acceso a cierta adicional caracteristicas. Descubrirá que básicamente cada sitio popular sigue esta pauta.

20

No creo que usar <noscript> es una buena idea. He oído que no es efectivo cuando el cliente está detrás de un firewall que bloquea JavaScript: si el navegador del cliente tiene habilitado JavaScript, la etiqueta <noscript> no se activará, porque, en lo que respecta al navegador, JavaScript está completamente operativo dentro del documento ...

Un mejor método de IMO, es tener todo el contenido 'nocript' oculto por JavaScript.

Aquí hay un ejemplo muy básico:

... 
<body> 

    <script> 
     document.body.className += ' js-enabled'; 
    </script> 

    <div id="noscript"> 
     Welcome... here's some content... 
    </div> 

Y dentro de su hoja de estilos:

body.js-enabled #noscript { display: none; } 

Más información:

+10

Eso indica una falla de diseño en el sistema "firewall", no es un problema con noscript. –

+0

Tal cortafuegos probablemente bloquearía el script * requerido para ser descargado *. Por lo tanto, si el 'className + = 'js-enabled'' es realmente parte de dicha biblioteca externa, entonces lo anterior podría revelar muchos más problemas que'

41

poner el contenido <noscript> al final del código HTML, y luego usar CSS para colocarlo en la parte superior de la ventana del navegador.Google ya no lo considerará importante.

Stack Overflow usa esta técnica: haga una fuente de visualización en esta página y verá una advertencia "funciona mejor con JavaScript" cerca del final del HTML, que aparece en la parte superior de la página cuando se apaga JavaScript.

+0

I poner '

+0

@Amir: el código de ejemplo está aquí en esta página: StackOverflow usa esta técnica. Vea esta página con JavaScript desactivado y lo verá, luego use las herramientas de desarrollo de su navegador para examinar el HTML y el CSS. Si aún no puede hacer que funcione, debe crear un JSFiddle mínimo que demuestre el problema y haga una nueva pregunta. – RichieHindle

3

Solo quería publicar un bocado interesante relacionado con esto. Para un sitio mío, he terminado haciendo algo similar a lo que usa el desbordamiento de pila, pero con la adición de un enlace "descubrir más" ya que mis usuarios no son tan técnicos como este sitio.

La parte interesante es que siguiendo el consejo de las personas a bordo, mi solución abandonó la etiqueta noscript, en lugar de eso, optó por ocultar los mensajes divs con javascript. Pero descubrí que si firefox está esperando su contraseña maestra, este ocultamiento del mensaje se interrumpe, así que creo que volveré a Noscript.

1

Si elige una solución basada en la sustitución del contenido div (si js está activado, entonces el contenido div se actualiza) en lugar de utilizar una etiqueta noscript, tener cuidado acerca de cómo Google vistas esta práctica:

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=66353

No estoy seguro de que Google lo considere engañoso, pero es algo a considerar e investigar más a fondo. Aquí hay otra publicación de Stack Overflow sobre esto: noscript google snapshot, the safe way