SlideShare una empresa de Scribd logo
SEO EN APLICACIONES AJAX
o cómo hacer su SPA amigable para Google bot
HOLA, SOY SERGIO ACOSTA
...trabajo en
SPA: SINGLE PAGE APPLICATION
¿CUÁL ES EL
PROBLEMA?
1. El usuario abre http://movies.com/index.html#/movie/1
2. index.html vacío cargando con enlaces en JS
3. El usuario carga la aplicación (todo el código
JavaScript)
4. Empieza el enrutador - aca sabemos de /#movie/1
5. Los modelos empiezan y se descargan los JSONs
6. Las vistas empiezan y de se presenta la plantilla
7. ¡LISTO! El usuario ve el contenido
¿QUÉ VE EL USUARIO?
SEO para aplicaciones javascript
¿QUÉ VE EL CRAWLER?
1. El robot ingresa a http://movies.com/index.html#/movie/1
2. index.html vacío cargando con enlaces en JS
SEO para aplicaciones javascript
¿POR QUÉ ESTO ES IMPORTANTE?
LA SOLUCIÓN
¿QUÉ ES UN SNAPSHOT HTML?
HTML SNAPSHOT
HASH FRAGMENT, HASHBANG,
PUSHSTATE? WTF!
HASH: #
HASHBANG: #!
HASH FRAGMENT: Todo después
del signo # en la URL
PUSHSTATE: HTML5 history API
1.1 INDICARLE AL CRAWLER QUE SU SITIO SOPORTA
EL ESQUEMA DE CRAWLING AJAX
Si su aplicación AJAX contiene urls como estas:
www.example.com/ajax.html#key=value
ahora debería ser la siguiente:
www.example.com/ajax.html#!key=value
1.2 MANEJAR PAGINAS SIN HASH FRAGMENTS
<meta name="fragment" content="!">
2. CONFIGURAR SU SERVIDOR PARA MANEJAR
SOLICITUDES A URLS QUE CONTIENEN
_escaped_fragment_
El crawler modificara cada URL AJAX como:
www.example.com/ajax.html#!key=value
para convertirse temporalmente en:
www.example.com/ajax.html?
_escaped_fragment_=key=value
OPCIONES PARA ENTREGAR EL SNAPSHOT
Incluir la versión de sus URLS que prefiere que
se muestren en los resultados de búsqueda:
http://example.com/ajax.html#!key=value
No incluya enlaces como estos:
http://example.com/ajax.html?
_escaped_fragment_=key=value
3. ACTUALIZAR SU SITEMAP PARA LISTAR
SUS NUEVAS URLS AJAX
4. PRUEBE LA RASTREABILIDAD DE SU APP
EN RESUMEN
1. El sitio adopta el esquema de crawling AJAX
2. Por cada URL que tiene contenido producido
dinámicamente el servidor provee el
snapshot HTML
3. El motor de búsqueda indexa el snapshot
HTML y sirve la URL AJAX original en los
resultados de búsqueda
¿CÓMO CREAR SNAPSHOTS HTML?
● Usar un headless browser como:
○ PhantomJS
○ Zombie.js
○ HtmlUnit
○ Ghost
○ Crawljax
○ Watij
● Generar HTML estáticos en el lado del
servidor
PRERENDER.IO
● prerender phantomjs service
● prerender-node middleware
● prerender_rails middleware
SERVICIOS EXTERNOS
¿QUIÉN MAS USA LOS SNAPSHOTS?
¿QUIÉN MAS USA LOS SNAPSHOTS?
¿QUIÉN MAS USA LOS SNAPSHOTS?
@checho_acosta
sergio@simian.co

Más contenido relacionado

PDF
Aplicando excepciones en java web
PDF
Error page
PDF
7 Gemas de Ruby on Rails que podrían salvarte el dia
DOCX
Que es un script
PPSX
Revisiones de puntos claves antes de lanzar un sitio web
PPTX
Ruby on rails
DOCX
Actividad 1 - WordPress
PDF
Tutorial de conexión de php a mysql
Aplicando excepciones en java web
Error page
7 Gemas de Ruby on Rails que podrían salvarte el dia
Que es un script
Revisiones de puntos claves antes de lanzar un sitio web
Ruby on rails
Actividad 1 - WordPress
Tutorial de conexión de php a mysql

La actualidad más candente (19)

PPTX
Introducción a web matrix
PDF
Instalación y Datos Básicos Sobre Dreamweaver
PPT
7. Creacion De Controles De Usuario
ODP
Mudate a ajax sin morir en el intento.
PDF
Mi primera App con GAE
DOCX
15 razones a favor para escribir un blog de empresa
PPTX
Tarea7 programacionweb2020b
PDF
Introducción a AngularJS
PPTX
Sesiones y cookies en php
PDF
Infografia empleados laravel
DOCX
Milton y alejandro 8 A
PPS
Presentación Mambo
PPTX
Cecila seraquive
PDF
Infografia farmacia laravel
PPT
Yuli
PPT
Silvia
PDF
Instalacion de app serv
PPTX
Mileidys muñoz martínez
Introducción a web matrix
Instalación y Datos Básicos Sobre Dreamweaver
7. Creacion De Controles De Usuario
Mudate a ajax sin morir en el intento.
Mi primera App con GAE
15 razones a favor para escribir un blog de empresa
Tarea7 programacionweb2020b
Introducción a AngularJS
Sesiones y cookies en php
Infografia empleados laravel
Milton y alejandro 8 A
Presentación Mambo
Cecila seraquive
Infografia farmacia laravel
Yuli
Silvia
Instalacion de app serv
Mileidys muñoz martínez
Publicidad

Similar a SEO para aplicaciones javascript (20)

PPT
Barcelona Workshop 2008
PPTX
JAVASCRIP
PPT
Jornada / curso sobre posicionamiento web / SEO. Bloque III. Rendimiento técn...
PDF
Web 2.0 ajax con SharePoint
PDF
Instalacion adobe dream weaver
PPT
AJAX EN CURSO PHP
PPTX
Diseño web
PPTX
Diseño web
PPTX
Diseño web
PPTX
Diseño web
PPTX
Bots más humanos con Alexa
DOCX
Java script
PPT
Ajax tsis
PPT
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
PPT
Web20
PPT
PDF
Guia java script
PDF
Jsf Java Server Faces
PDF
PDF
Mi app-asp-net-mvc2
Barcelona Workshop 2008
JAVASCRIP
Jornada / curso sobre posicionamiento web / SEO. Bloque III. Rendimiento técn...
Web 2.0 ajax con SharePoint
Instalacion adobe dream weaver
AJAX EN CURSO PHP
Diseño web
Diseño web
Diseño web
Diseño web
Bots más humanos con Alexa
Java script
Ajax tsis
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Web20
Guia java script
Jsf Java Server Faces
Mi app-asp-net-mvc2
Publicidad

Último (20)

PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
clase auditoria informatica 2025.........
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Diapositiva proyecto de vida, materia catedra
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
TRABAJO DE TECNOLOGIA.pdf...........................
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
introduccion a las_web en el 2025_mejoras.ppt
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
clase auditoria informatica 2025.........
MANUAL de recursos humanos para ODOO.pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
la-historia-de-la-medicina Edna Silva.pptx
Sesion 1 de microsoft power point - Clase 1
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Presentacion de Alba Curso Auditores Internos ISO 19011
SAP Transportation Management para LSP, TM140 Col18
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Diapositiva proyecto de vida, materia catedra
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...

SEO para aplicaciones javascript

  • 1. SEO EN APLICACIONES AJAX o cómo hacer su SPA amigable para Google bot
  • 2. HOLA, SOY SERGIO ACOSTA ...trabajo en
  • 3. SPA: SINGLE PAGE APPLICATION
  • 5. 1. El usuario abre http://movies.com/index.html#/movie/1 2. index.html vacío cargando con enlaces en JS 3. El usuario carga la aplicación (todo el código JavaScript) 4. Empieza el enrutador - aca sabemos de /#movie/1 5. Los modelos empiezan y se descargan los JSONs 6. Las vistas empiezan y de se presenta la plantilla 7. ¡LISTO! El usuario ve el contenido ¿QUÉ VE EL USUARIO?
  • 7. ¿QUÉ VE EL CRAWLER? 1. El robot ingresa a http://movies.com/index.html#/movie/1 2. index.html vacío cargando con enlaces en JS
  • 9. ¿POR QUÉ ESTO ES IMPORTANTE?
  • 11. ¿QUÉ ES UN SNAPSHOT HTML?
  • 14. HASH: # HASHBANG: #! HASH FRAGMENT: Todo después del signo # en la URL PUSHSTATE: HTML5 history API
  • 15. 1.1 INDICARLE AL CRAWLER QUE SU SITIO SOPORTA EL ESQUEMA DE CRAWLING AJAX Si su aplicación AJAX contiene urls como estas: www.example.com/ajax.html#key=value ahora debería ser la siguiente: www.example.com/ajax.html#!key=value
  • 16. 1.2 MANEJAR PAGINAS SIN HASH FRAGMENTS <meta name="fragment" content="!">
  • 17. 2. CONFIGURAR SU SERVIDOR PARA MANEJAR SOLICITUDES A URLS QUE CONTIENEN _escaped_fragment_ El crawler modificara cada URL AJAX como: www.example.com/ajax.html#!key=value para convertirse temporalmente en: www.example.com/ajax.html? _escaped_fragment_=key=value
  • 18. OPCIONES PARA ENTREGAR EL SNAPSHOT
  • 19. Incluir la versión de sus URLS que prefiere que se muestren en los resultados de búsqueda: http://example.com/ajax.html#!key=value No incluya enlaces como estos: http://example.com/ajax.html? _escaped_fragment_=key=value 3. ACTUALIZAR SU SITEMAP PARA LISTAR SUS NUEVAS URLS AJAX
  • 20. 4. PRUEBE LA RASTREABILIDAD DE SU APP
  • 21. EN RESUMEN 1. El sitio adopta el esquema de crawling AJAX 2. Por cada URL que tiene contenido producido dinámicamente el servidor provee el snapshot HTML 3. El motor de búsqueda indexa el snapshot HTML y sirve la URL AJAX original en los resultados de búsqueda
  • 22. ¿CÓMO CREAR SNAPSHOTS HTML? ● Usar un headless browser como: ○ PhantomJS ○ Zombie.js ○ HtmlUnit ○ Ghost ○ Crawljax ○ Watij ● Generar HTML estáticos en el lado del servidor
  • 23. PRERENDER.IO ● prerender phantomjs service ● prerender-node middleware ● prerender_rails middleware
  • 25. ¿QUIÉN MAS USA LOS SNAPSHOTS?
  • 26. ¿QUIÉN MAS USA LOS SNAPSHOTS?
  • 27. ¿QUIÉN MAS USA LOS SNAPSHOTS?