Your SlideShare is downloading. ×
0
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Programación Optimizada - Search Congress Valencia 2009

1,886

Published on

Published in: Technology, Design
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,886
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
37
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 05/10/09
  • Transcript

    • 1. Programación Optimizada Ferran Bonàs 01/10/2009 - Valencia
    • 2. Generación URLs (I) <ul><li>URLs dinámicas (mismo script, varios contenidos) VS estáticas </li></ul><ul><ul><li>dominio.com/index.php?id_pag=8&amp;content… </li></ul></ul><ul><ul><li>dominio.com/cursos/categoria/cursos_java_18j.htm </li></ul></ul><ul><ul><li>dominio.com/cursos_java_18jc </li></ul></ul><ul><li>Comprueba que las URLs de tus páginas contienen las Keywords más relevantes al comienzo  Uso de URL semánticas </li></ul><ul><ul><li>dominio.com/1856_2432_c_1285_prov_9 </li></ul></ul><ul><ul><li>(Prominencia de la KW en la url  KW mas principales a la izquierda) </li></ul></ul>
    • 3. Generación URLs (II) <ul><li>Generación de páginas estáticas: </li></ul><ul><ul><li>Mod_rewrite/.htaccess </li></ul></ul><ul><ul><li>Capturar error 404 </li></ul></ul><ul><li>Archivos vs Carpetas vs Subdominios </li></ul><ul><ul><li>Virtual Host </li></ul></ul><ul><ul><li>Alias </li></ul></ul><ul><li>Cómo optimizar: Módulo generador URL (rewrite) </li></ul><ul><li>Optimización URL (caracteres, espacios, mayúsculas,…) </li></ul><ul><li>Evitar contenido duplicado (sin riesgo de baneo) </li></ul><ul><ul><li>1 contenido  1 URL </li></ul></ul><ul><ul><li>Check URL </li></ul></ul><ul><ul><li>Meta canonical </li></ul></ul>
    • 4. Estrategia linking interno (I) <ul><li>Generación Links </li></ul><ul><ul><li>Uso de Anchor Text </li></ul></ul><ul><ul><li>Nofollow ¿ya no sirve? </li></ul></ul><ul><ul><li>Contextualizar vínculos </li></ul></ul><ul><ul><ul><li>Mediante diccionarios </li></ul></ul></ul><ul><ul><ul><li>Descripciones adicionales </li></ul></ul></ul><ul><ul><li>Vínculos en images. Asignar “contenido textual” a la imagen </li></ul></ul><ul><ul><ul><li>Title </li></ul></ul></ul><ul><ul><ul><li>Alt image </li></ul></ul></ul><ul><li>Estructura interna hypertexto </li></ul><ul><ul><li>No jerárquica, no secuencial: estructura de malla </li></ul></ul><ul><ul><li>URLs mas importantes en menos niveles de profundidad de la home </li></ul></ul><ul><li>Paginados  convertirlos en estáticos, no más de 10 </li></ul><ul><li>Path navegación  caminos de vuelta (usuario y bot) </li></ul><ul><li>Footer  linking interno o intrasite </li></ul>
    • 5. Estrategia linking interno (II) <ul><li>Lo más buscado </li></ul><ul><ul><li>Conceptos más buscados en tu site </li></ul></ul><ul><ul><li>En forma de nube de tags </li></ul></ul><ul><ul><li>Guardar histórico: Concepto, fecha (útil para tendencias) y número de resultados (útil para contenido) ¿Cómo y dónde? </li></ul></ul><ul><ul><ul><li>Como: Petición URL oculta, guardar inline </li></ul></ul></ul><ul><ul><ul><li>Donde: Mysql, Memcache </li></ul></ul></ul><ul><li>Herramientas de crawling </li></ul><ul><ul><li>Proporcionan broken-links </li></ul></ul><ul><ul><li># páginas de nuestro site </li></ul></ul><ul><ul><li>Ejemplos: </li></ul></ul><ul><ul><ul><li>Xenu&apos;s Link Sleuth (http://home.snafu.de/tilman/xenulink.html) </li></ul></ul></ul>
    • 6. Metas <ul><li>Generación meta-tags </li></ul><ul><ul><li>Title: prominencia (cuanto antes mejor), elemento mayor peso. Anchor text hacia tu site en las páginas de resultados de buscadores </li></ul></ul><ul><ul><ul><li>Ej. 1: Emagister-Formaacion-Cursos de Java </li></ul></ul></ul><ul><ul><ul><li>Ej. 2: Curso de Java - Cursos – Emagister </li></ul></ul></ul><ul><ul><li>Description: usar resumen del contenido o snippet </li></ul></ul><ul><ul><li>Content-Language: es-ES VS es-AR (para los non-US English) </li></ul></ul><ul><ul><ul><li>Ej. Buscar solo paginas en español (buscadores) </li></ul></ul></ul><ul><ul><li>Content-Type: text/html (y charset=utf8) </li></ul></ul><ul><ul><li>Keywords: set keywords estáticas + keywords dinámicas </li></ul></ul><ul><ul><li>Robots (más adelante) </li></ul></ul><ul><ul><li>Rating: Determinar el tipo de público (ej. Adult) </li></ul></ul><ul><li>Cómo optimizar: módulo generador metas + información en BBDD </li></ul><ul><ul><li>Frameworks: ej. Wordpress SEO plugin </li></ul></ul><ul><li>http://www.webmarketingnow.com/tips/meta-tags-uncovered.html </li></ul>
    • 7. Contenido y Estilos <ul><li>Optimiza el contenido de tus páginas. </li></ul><ul><ul><ul><li>Uso de keywords en el texto </li></ul></ul></ul><ul><ul><ul><li>Keyword density </li></ul></ul></ul><ul><ul><ul><li>Prominencia contenido </li></ul></ul></ul><ul><li>Estilos: úsalos para promocionar el contenido </li></ul><ul><ul><ul><li>Usar títulos: H1 (Categoría/+-Title), H2, H3,… </li></ul></ul></ul><ul><ul><ul><li>Negrita: Resaltar keywords (mediante un diccionario) </li></ul></ul></ul>
    • 8. Optimización de código <ul><li>HTML </li></ul><ul><ul><li>Div en vez de tablas (tiempo renderización y fallos) </li></ul></ul><ul><ul><li>Minimizar espacios en blanco </li></ul></ul><ul><ul><li>Quitar comentarios </li></ul></ul><ul><ul><li>Tamaño imágenes (uso de thumbnails) </li></ul></ul><ul><ul><li>Usar ajax para multi-opción (evitar listados en HTML). Ej. provincias </li></ul></ul><ul><li>CSS/JS </li></ul><ul><ul><li>Evitar código inline </li></ul></ul><ul><ul><li>Ideal en el bloque HEAD (puede ir al final según tamaño) </li></ul></ul><ul><ul><li>JavaScript: Ojo con errores! Pueden hacer que la página no se cargue en Firefox (aunque en IE sí). No afecta posicionamiento, si en #visitas. </li></ul></ul><ul><ul><li>Unificar todo el CSS en 1 (ídem JS) </li></ul></ul><ul><ul><li>Compresión de CSS/JS </li></ul></ul><ul><ul><li>Cómo activar recarga desde los navegadores: parámetro adicional al CSS/JS (estilos.css?19) </li></ul></ul><ul><ul><li>CSS Sprites </li></ul></ul>
    • 9. Instrucciones de Indexamiento (I) <ul><li>Robots.txt </li></ul><ul><ul><li>URLs dinámicas (*.php, *?) </li></ul></ul><ul><ul><li>Zona de usuarios, paneles internos, zonas privadas </li></ul></ul><ul><ul><li>Páginas de formulario, Reglas de uso, privacidad </li></ul></ul><ul><ul><li>¿¿Imágenes?? </li></ul></ul><ul><ul><li>Cambios de estructura del site </li></ul></ul><ul><li>Metatag robots </li></ul><ul><ul><li>Index, noindex </li></ul></ul><ul><ul><li>Follow, nofollow </li></ul></ul><ul><ul><li>None, all </li></ul></ul><ul><ul><li>Archive (cache) </li></ul></ul>
    • 10. Instrucciones de Indexamiento (II) <ul><li>Sitemap.xml y/o mapa html </li></ul><ul><li>Webmaster Tools de Google: subir sitemap, reincorporación urls </li></ul><ul><li>Obstáculos para que te indexen los bots </li></ul><ul><ul><li>Applets Java </li></ul></ul><ul><ul><li>Contenido textual en las imágenes </li></ul></ul><ul><ul><li>Formularios </li></ul></ul><ul><ul><li>URL con parámetros de sesión (user_id, id_user,…) </li></ul></ul><ul><ul><li>Llamadas javascript: onclick, history(-1) </li></ul></ul><ul><ul><li>Bucles </li></ul></ul><ul><ul><li>Callejón sin salida </li></ul></ul><ul><ul><li>http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=156184 </li></ul></ul>
    • 11. Aspectos de sistemas (configuración) <ul><ul><li>Ubicación de los servidores: Concordancia IP con publico objetivo </li></ul></ul><ul><li>Tiempo de respuesta bajo (frecuencia y velocidad de rastreo de los bots) </li></ul><ul><li>Servidores de contenido distribuidos </li></ul><ul><li>Dominios territoriales VS dominios genéricos </li></ul><ul><li>Herramientas: Firebug, Yslow </li></ul><ul><li>Comandos: wget, curl </li></ul>
    • 12. Aspectos de sistemas (rendimiento) <ul><li>Compresión </li></ul><ul><ul><li>Eliminar White Spaces (saltos de línea, espacios extras) </li></ul></ul><ul><ul><ul><li>Php: Stripwhitespace </li></ul></ul></ul><ul><ul><ul><li>Java: Trimflt.jar </li></ul></ul></ul><ul><ul><li>mod_deflate, mod_gzip en contenido texto (html,xml,css,js) </li></ul></ul><ul><li>Disponibilidad y tiempo de respuesta </li></ul><ul><li>Uso de caches (disco y/o memoria) </li></ul><ul><ul><li>Memcache </li></ul></ul><ul><ul><li>Php APC </li></ul></ul><ul><li>Análisis rendimiento de los sistemas </li></ul><ul><li>Herramientas: Pingdom, mon.itor.us, iplabel </li></ul>
    • 13. Metodo de desarrollo (I) <ul><li>Trabajo en equipo  Uso de repositorios (CVS, SVN, P4) </li></ul><ul><li>Técnico/s especialista/s SEO en el equipo </li></ul><ul><li>Cada programador tiene su entorno </li></ul><ul><li>¿Cómo pasamos a producción? </li></ul><ul><ul><li>Preproducción: replica lo más parecida a producción </li></ul></ul><ul><ul><li>Etiquetar el código </li></ul></ul><ul><ul><ul><li>Rollback rápido </li></ul></ul></ul><ul><ul><ul><li>Timeline con histórico: bajada de tráfico, reducción de páginas indexadas. </li></ul></ul></ul><ul><li>Detección errores </li></ul><ul><ul><li>Cada error se inserta en una base de datos </li></ul></ul><ul><ul><li>Base de datos accesible para todos los desarrolladores </li></ul></ul>
    • 14. Metodo de desarrollo (II) <ul><li>Internacionalización </li></ul><ul><ul><li>Código único </li></ul></ul><ul><ul><ul><li>Menor número de excepciones posibles </li></ul></ul></ul><ul><ul><ul><li>Todos los programadores conocen todo </li></ul></ul></ul><ul><ul><li>Uso de herramientas de traducción </li></ul></ul><ul><ul><ul><li>Se trabaja con labels en el código </li></ul></ul></ul><ul><ul><ul><li>Plantilla de traducción para cada idioma </li></ul></ul></ul><ul><ul><ul><li>Librería gettext (GNU internationalization and localization) </li></ul></ul></ul><ul><ul><ul><li>POEdit  Editor de traducciones </li></ul></ul></ul><ul><ul><ul><li>Fácilmente externalizable </li></ul></ul></ul>
    • 15. <ul><li>¡Gracias! </li></ul><ul><ul><li>[email_address] </li></ul></ul>
    • 16. Ejemplo Mod_rewrite <ul><li>ErrorDocument 404 /error404.htm </li></ul><ul><li>RewriteEngine on </li></ul><ul><li>RewriteRule ^discotecas/(.*)-pr-(.*)_(.*).htm /discos_prov.php?id_provincia=$2&amp;page=$3 </li></ul><ul><li>RewriteRule ^discotecas/(.*)-pr-(.*).htm /discos_prov.php?id_provincia=$2 </li></ul><ul><li>RewriteRule ^discotecas/novedades-(.*).htm /index.php?page=$1 </li></ul><ul><li>RewriteRule ^discotecas/(.*)/(.*)/(.*)-dt-(.*).htm /disco.php?id_disco=$4 </li></ul><ul><li>RewriteRule ^discotecas/(.*)/(.*)-po-(.*)_(.*).htm /discos_pob.php?id_poblacion=$3&amp;page=$4 </li></ul><ul><li>RewriteRule ^discotecas/(.*)/(.*)-po-(.*).htm /discos_pob.php?id_poblacion=$3 </li></ul>
    • 17. Ejemplo Mod_deflate <ul><li>SetOutputFilter DEFLATE </li></ul><ul><li>BrowserMatch ^Mozilla/4 gzip-only-text/html </li></ul><ul><li>BrowserMatch ^Mozilla/4.0[678] no-gzip </li></ul><ul><li>BrowserMatch MSIE !no-gzip !gzip-only-text/html </li></ul><ul><li>SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI .(?:pdf|wav|swf|doc|xls|rtf|ppt)$ no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI ^/centre/index_modules.cfm.* no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI ^/centre/index_modules_sc.cfm.* no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI ^/centre/adjuntos/getfile.cfm.* no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI ^/cursos_gratis/visor_cursos/dspFile.cfm.* no-gzip dont-vary </li></ul><ul><li>SetEnvIfNoCase Request_URI ^/centre/commons/gui/tiny_mce/.* no-gzip dont-vary </li></ul>
    • 18. Ejemplo VirtualHost e Alias <ul><li>&lt;VirtualHost *:80&gt; </li></ul><ul><li>ServerAdmin noc@emagister.com </li></ul><ul><li>DocumentRoot /var/html/www.emagister.com </li></ul><ul><li>DirectoryIndex index.cfm </li></ul><ul><li>ServerName www.emagister.com </li></ul><ul><li>ServerAlias subvencionados.emagister.com master.emagister.com cursosgratis.emagister.com </li></ul><ul><li>Alias /master /var/html/www.emagister.com </li></ul><ul><li>Alias /universidades /var/html/www.emagister.com </li></ul><ul><li>Alias /cursos-gratis /var/html/www.emagister.com </li></ul><ul><li>Alias /oposiciones-convocatorias /var/html/www.emagister.com </li></ul><ul><li>&lt;/VirtualHost *:80&gt; </li></ul>

    ×