javascript - Handlebars.js y SEO
templates (6)
¿El bot indexa el contenido generado (según lo previsto) o solo la fuente con las pseudo-variables de javascript feo?
Tampoco, porque los robots de indexador no ejecutan JavaScript y no se presentan plantillas como documentos HTML.
Construye un sitio que funcione sin JavaScript, luego construye sobre él .
He leído muchas discusiones sobre plantillas de JavaScript y optimización de motores de búsqueda. Aún así, no he encontrado una respuesta satisfactoria a la pregunta (ya sea mal documentada o desactualizada).
Actualmente estoy buscando en handlebars.js como una solución de plantilla del lado del cliente, porque me encanta la posibilidad de crear funciones de ayuda. Pero ¿qué pasa con la indexación para los motores de búsqueda? ¿El bot indexa el contenido generado (según lo previsto) o solo la fuente con las pseudo-variables de javascript feo? Sé que hay muchos hilos en este asunto, pero siento que nadie sabe exactamente la respuesta.
Si los motores como Google no indexaran estas plantillas correctamente, ¿por qué molestarse en usar esto para sitios web públicos?
Otra pregunta dentro de este contexto: ¿Es posible representar las plantillas de Handlebar.js en el lado del servidor y luego presentarlas en el lado del cliente? Obviamente para evitar todo este debate SEO.
Consulte Spiderable para una solución temporal que usa el proyecto Meteor (que utiliza Handlebars.js) para fines de SEO.
Los motores de búsqueda no ejecutan JavaScript, por lo que si desea que su contenido sea indexado, también tendrá que representar sus plantillas en el servidor. Puede usar el manillar en Nodo (JS del lado del servidor) para representar su plantilla allí cuando la solicitud de página proviene de una araña. Es más trabajo pero es posible. Github, google plus y twitter hacen algo similar.
No sé sobre Handlebar.js, pero para mi comprensión, el SEO tiene algún problema con el CONTENIDO en JAVASCRIPT. Asegúrese de que su contenido sea visible para el motor de búsqueda (use un simulador de spyder para algunas pruebas). Evitar las trampas spyder en general sería el camino a seguir. Espero que te pueda ayudar.
Para el lado del cliente de la mayoría de los clientes, la mayoría de los robots web (es decir, Google y otros) no interpretan js sobre la marcha y analizan el contenido recién renderizado para la indexación. En su lugar, Google (y ahora Bing) admite el ''Esquema de Rastreo Ajax de Google'' ( https://developers.google.com/webmasters/ajax-crawling/docs/getting-started ) - que básicamente indica que SI QUIERES js contenido de dom renderizado para ser indexado (es decir, representar resultados de llamadas ajax), debe ser capaz de:
- ¡Desencadena la representación async js a través de la url usando hashbangs
#!
(es decir,http://www.mysite.com/#!my-state
), y - Ser capaz de servir una instantánea de dominio prerendida de su sitio DESPUÉS de la modificación js a petición.
Si utiliza un marco MVC del lado del cliente como Backbone.js o Spine, deberá proporcionar este servicio si desea que su aplicación web sea indexada.
En general, esto significa que usted intercepta una solicitud realizada por el bot web (que se explica en el enlace anterior) y raspa su lado del servidor utilizando un navegador sin cabeza (es decir, QT + capybara-webkit , HtmlUnit , etc.) y luego entrega el dominio generado. al bot solicitante.
Empecé una gema para hacer esto en ruby (ahora tomando solicitudes de extracción) en https://github.com/benkitzelman/google-ajax-crawler
Lo hace como middleware de rack utilizando capybara-webkit (y pronto phantomjs )
Podría usar plantillas Distal que colocan las plantillas como parte del HTML para SEO.