w3schools knockoutjs knockout example book knockout.js seo web-crawler single-page-application pushstate

knockout.js - knockoutjs - ko javascript



Cómo mejorar SEO para la aplicación de una sola página (1)

Para abordar el problema necesitas algunas cosas:

  1. URL reales Etiquetas <a> reales con hrefs apuntando a estos.
  2. Es necesario que el servidor genere las páginas previamente rellenas con el JSON en solicitud explícita
    • esto se logra más fácilmente usando PhantomJS o similar.
    • si supone que el contenido se cambia con menos frecuencia que su lectura (es decir, los sitios más exitosos), puede usar una cola para compilar estas páginas en archivos estáticos.
    • luego dile a tu servidor web que envíe index.html si el archivo solicitado no existe

Para "solicitudes blandas" (hacen clic en un enlace, que usa JSON / AJAX para cubrir), funcionará como lo hace actualmente.

En el caso de solicitudes difíciles (hacen clic en un enlace de otro sitio, presionan F5 o Googlebot rastrea sus URL), les envía la versión precompilada que:

  1. mejora SEO
  2. aumenta el rendimiento de carga de la página (que también es una bonificación de SEO)
  3. no requiere ningún procesamiento de servidor difícil porque la página ya está construida

Hemos creado un buscador para vacantes. Por razones de velocidad y una buena experiencia de usuario, utilizamos la arquitectura de una "Aplicación de una sola página" (SPA). Sabemos que para una arquitectura de SPA es un desafío habilitar el SEO, por lo que hicimos una gran cantidad de optimización para habilitar el SEO. Aunque Google indexa nuestras páginas, nuestro ranking en Google es muy pobre y estamos solicitando sugerencias para mejorarlo. Seguimos las recomendaciones de Google , pero sin satisfacción.

Un SPA no puede ser indexado por Google-bot directamente, ya que el bot de Google no ejecutará javascript en el lado del cliente. Sin Javascript nuestro sitio apenas contiene contenido porque los datos se leen de forma asincrónica en formato json y la mayor parte del HTML se representa en el cliente. La renderización se realiza mediante un marco llamado " knockout " que permite el enlace de datos de plantillas HTML a objetos JavaScript. Se pueden direccionar diferentes páginas en el SPA usando url del lado del cliente. Para que Google pueda leer esas páginas, las URL de nuestro cliente contienen un ''#'' seguido de un ''!''. Esta sintaxis ''hash-bang'' activa el bot de Google para reescribir la url en una url especial ''del lado del servidor''. Cuando se visita esta url especial en nuestro servidor, activamos un "explorador sin cabeza" para representar la página en el servidor. La sintaxis HTML completa (después de la ejecución de javascript) se envía al cliente. Esta llamada instantánea HTML puede ser utilizada por el bot de Google para indexar las páginas. Para decirle a Google qué páginas están presentes en nuestro SPA, proporcionamos un sitemap.xml con las diferentes URL que pueden visitarse. Cuando le pedimos a Google que muestre las páginas indexadas desde nuestro sitio, vemos que el bot de Google visitó e indexó nuestras páginas. Así que nuestra conclusión es que técnicamente hicimos nuestro trabajo bien, pero ninguna de esas páginas parece tener una clasificación lo suficientemente alta como para aparecer en las búsquedas normales de Google. No estamos seguros de si esto tiene relación con el hecho de que utilizamos una arquitectura SPA, pero el resultado es que nuestras páginas no se pueden encontrar.

Nos preguntamos si alguien tiene la misma experiencia con esta técnica en relación con el ranking de Google y si alguien tiene sugerencias adicionales que pueden ayudarnos a mejorar la clasificación SEO de nuestro SPA (sin cambiar completamente el sitio a un renderizado convencional del lado del servidor). técnica).