Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Framework SEO para migraciones web exitosas #EnsaladaSEO 2018

1.128 visualizaciones

Publicado el

Framework SEO para lograr que cualquier tipo de migración web tenga un impacto positivo en la página web por muy complicado que sea.

Publicado en: Marketing

Framework SEO para migraciones web exitosas #EnsaladaSEO 2018

  1. 1. Framework SEO para migraciones web exitosas
  2. 2. ¡Hola! Soy Nacho Mascort SEO Manager @ Grupo Planeta Podéis encontrarme en: @NachoMascort https://seohacks.es https://github.com/NachoSEO 2
  3. 3. ¿Qué vamos a ver? 1. El peor escenario 2. Tipo de migraciones 3. Equipos involucrados 1. Gestión de expectativas con cada equipo 4. Timming 1. Pre-migración 2. Migración 3. Post-migración 5. Casos de éxito 3 @NachoMascort #EnsaladaSEO
  4. 4. 1. El peor escenario Dónde otros han fallado, nosotros no @NachoMascort #EnsaladaSEO
  5. 5. “ Es uno de los procesos más críticos por los cuáles puede pasar un site, se puede perder un proyecto o un negocio entero. 5 @NachoMascort #EnsaladaSEO
  6. 6. 6 Mi primera web propia… @NachoMascort #EnsaladaSEO
  7. 7. 7 Mi primera web propia… ...de 95k/semana a cero. @NachoMascort #EnsaladaSEO
  8. 8. 8 Cierto es que también… - Hubo una penalización por redirects móvil - Dos ataques DDoS → https://seohacks.es/ddos/ @NachoMascort #EnsaladaSEO
  9. 9. 9 Pero lo que se pudo convertir en la clave para arreglar esas cosas… se convirtió en la sentencia de muerte. @NachoMascort #EnsaladaSEO
  10. 10. 2. Tipos de migraciones En la variedad está el gusto… pero en esto no @NachoMascort #EnsaladaSEO
  11. 11. 11 Back-end Consiste en: Modificación de los procesos que emplea el servidor para servir el site o para capturar datos. Impacto: Bajo-Medio @NachoMascort #EnsaladaSEO
  12. 12. 12 Front-end Consiste en: Redistribución de los elementos visuales de un site y de la jerarquía de la información. Impacto: Medio-Alto @NachoMascort #EnsaladaSEO
  13. 13. 13 Cambio de protocolo Consiste en: http > https Impacto: Medio - Alto @NachoMascort #EnsaladaSEO
  14. 14. 14 Tecnología Consiste en: Los cambios de tecnología modifican todas las lógicas internas y comportan el uso de otros lenguajes de programación. Impacto: Alto-Muy Alto @NachoMascort #EnsaladaSEO
  15. 15. 15 Cambio de dominio - URLs Consiste en: El contenido, el diseño y la tecnología es exactamente igual pero se deben mandar todas las señales a un nuevo dominio o a un nuevo conjunto de URLs. Impacto: Muy Alto @NachoMascort #EnsaladaSEO
  16. 16. 16 Unión de dominios Consiste en: Unir varios sites en uno solo empleando uno de los dominios actuales o en uno totalmente nuevo. Impacto: Muy Alto @NachoMascort #EnsaladaSEO
  17. 17. 17 Todo lo anterior Consiste en: Todo lo anterior Impacto: Extremo @NachoMascort #EnsaladaSEO
  18. 18. 3. Equipos involucrados Stakeholders… por doquier @NachoMascort #EnsaladaSEO
  19. 19. 19 Negocio Diseño UI/UX Contenido ITSEO Analítica @NachoMascort #EnsaladaSEO
  20. 20. 3.1 Gestión de expectativas Cuando dije digo digo diego @NachoMascort #EnsaladaSEO
  21. 21. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) Gestión de expectativas 21 #EnsaladaSEO
  22. 22. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) - No existe el “Mínimos de SEO” Gestión de expectativas 22 #EnsaladaSEO
  23. 23. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) - No existe el “Mínimos de SEO” - Gantt flexible: Las expectativas de tiempo evitan la frustración a muchos de los equipos involucrados, sobretodo a negocio. Gestión de expectativas 23 #EnsaladaSEO
  24. 24. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) - No existe el “Mínimos de SEO” - Gantt flexible: Las expectativas de tiempo evitan la frustración a muchos de los equipos involucrados, sobretodo a negocio. - La validación y la corrección son una fase que ocupa casi tanto o más que la ejecución inicial de la tarea. (se suele olvidar). Gestión de expectativas 24 #EnsaladaSEO
  25. 25. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) - No existe el “Mínimos de SEO” - Gantt flexible: Las expectativas de tiempo evitan la frustración a muchos de los equipos involucrados, sobretodo a negocio. - La validación y la corrección son una fase que ocupa casi tanto o más que la ejecución inicial de la tarea. (se suele olvidar). - Cálculo de riesgo y oportunidades que impactan al negocio. Gestión de expectativas 25 #EnsaladaSEO
  26. 26. - Explicar el porqué de cada acción evita confrontaciones con otros equipos (Diseño, Contenido, IT…) - No existe el “Mínimos de SEO” - Gantt flexible: Las expectativas de tiempo evitan la frustración a muchos de los equipos involucrados, sobretodo a negocio. - La validación y la corrección son una fase que ocupa casi tanto o más que la ejecución inicial de la tarea. (se suele olvidar). - Cálculo de riesgo y oportunidades que impactan al negocio. - Dejar TODO totalmente documentado, si no queda escrito no ha sucedido. Gestión de expectativas 26 #EnsaladaSEO
  27. 27. 4. Timmings ¡Oh, siempre llegarás a alguna parte si caminas lo suficiente! @NachoMascort #EnsaladaSEO
  28. 28. Fases 28 Briefing Histórico Propuestas de valor Requerimientos Tecnología Objetivos … @NachoMascort #EnsaladaSEO
  29. 29. Fases 29 Briefing Protos Reunión de soluciones, whiteboard Definición de arquitectura y modelo de navegación Prototipado en papel @NachoMascort #EnsaladaSEO
  30. 30. Fases 30 WireframeBriefing Protos Prototipado a bajo y/o alto nivel de todos los flujos de navegación para los principales breakpoints Test de usuarios Revisiones y feedback iterativo Definición del funcional de interacción @NachoMascort #EnsaladaSEO
  31. 31. Fases 31 WireframeBriefing Protos Diseño Definición de línea gráfica Diseño visual de todos los flujos de navegación para los principales breakpoints Test de usuarios Revisiones y feedback iterativo Definición de guía de estilos para maquetación @NachoMascort #EnsaladaSEO
  32. 32. Fases 32 WireframeBriefing Protos Diseño Maquetación / Desarrollo Creación de lo que se ha plasmado en todos los procesos anteriores: ▪ Estructura ▪ Visual ▪ Lógicas internas ▪ Requerimientos especiales ▪ ... @NachoMascort #EnsaladaSEO
  33. 33. Fases 33 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT QA (Quality Assurance): Validaciones de la maquetación UAT (User acceptance test): comprobación de las lógicas internas. @NachoMascort #EnsaladaSEO
  34. 34. Fases 34 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento El gran día. @NachoMascort #EnsaladaSEO
  35. 35. Fases 35 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento ¿Y SEO cuando interviene? @NachoMascort #EnsaladaSEO
  36. 36. Fases 36 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Briefing de SEO para los equipos de Diseño, IT & Contenido. @NachoMascort #EnsaladaSEO
  37. 37. Fases 37 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Feedback SEO sobre los Wireframe @NachoMascort #EnsaladaSEO
  38. 38. Fases 38 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Feedback SEO sobre diseño final @NachoMascort #EnsaladaSEO
  39. 39. Fases 39 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Especificaciones para evitar indexación Funcional de maquetación semántica Verificación SC Directrices de contenido @NachoMascort #EnsaladaSEO
  40. 40. Fases 40 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Validación SEO Validación Redirects @NachoMascort #EnsaladaSEO
  41. 41. Fases 41 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Controles del día de lanzamiento Validación Redirects @NachoMascort #EnsaladaSEO
  42. 42. Fases 42 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Validación final @NachoMascort #EnsaladaSEO
  43. 43. Fases 43 WireframeBriefing Protos Diseño Maquetación / Desarrollo QA / UAT Lanzamiento Pre-migración Migración Post-Migración @NachoMascort #EnsaladaSEO
  44. 44. 4.1 Pre-migración ¡Cuenta con mi hacha! @NachoMascort #EnsaladaSEO
  45. 45. 4.1.1 Briefing El diablo está en los detalles @NachoMascort #EnsaladaSEO
  46. 46. 4.1.1 Briefing SEO Documento que se divide en: - Buenas prácticas - Configuraciones específicas del cliente - Funcional de maquetación tipo 46 Briefing @NachoMascort #EnsaladaSEO
  47. 47. 4.1.1 Índice del Briefing SEO ● Tipo de migración ● Comprobaciones SEO en la pre-migración ● Comprobaciones en el lanzamiento ● Comprobaciones post-lanzamiento ● Arquitectura del site ○ Qué páginas debe contener el site ○ Cambios de páginas ● Configuración mobile (Elegir entre) ○ Responsive Design ○ Dynamic Serving ○ URL independientes ● Etiquetas en el <head> ○ Title ○ Meta Description ○ Meta http equiv ○ Meta robots ○ Link rel canonical ○ Paginaciones ■ Tipo de paginación 47 Briefing #EnsaladaSEO
  48. 48. 4.1.1 Índice del Briefing SEO ● Etiquetas en el <body> ○ HTML5 ■ <header> ■ <nav> ■ <main> ■ <article> ■ <section> ■ <aside> ■ <footer> ○ Headings (h1...h6) ○ Imágenes ○ Enlaces internos ○ Breadcrumbs ● Robots.txt ● Módulo de redirects ● Sitemaps ○ Estructura de sitemaps ○ Índice de sitemaps ○ Sitemap.xml & sitemap de imágenes 48 Briefing #EnsaladaSEO
  49. 49. 4.1.1 Índice del Briefing SEO ● Marcado de datos (Schema) ● WPO ○ KPIs de medición ○ Buenas prácticas ○ Herramientas de validación y medición ● Google News (si aplica) ○ Directrices generales ○ Directrices técnicas ○ Inclusión de noticias ○ Etiquetas ○ Sitemap ● AMP (si aplica) ○ Directrices ○ Marcado obligatorio ■ Detección de la página en AMP 49 Briefing @NachoMascort #EnsaladaSEO
  50. 50. 4.1.1 Índice del Briefing SEO ● Internacionalización ○ Especificaciones (idiomas & países) ○ Tipología ■ Subdirectorios ■ Subdominios ■ Dominios distintos ○ Configuración básica ■ Especificaciones sobre el hreflang ● Otros 50 Briefing @NachoMascort #EnsaladaSEO
  51. 51. 4.1.2 Wireframe Todas las piezas importan @NachoMascort #EnsaladaSEO
  52. 52. 4.1.2 Feedback Wireframe Documentación que se genera tras los entregables del equipo de diseño - UX/UI Priorización de la jerarquía de la información y de la conceptualización de cada elemento del briefing según los criterios establecidos. 52 Wireframe @NachoMascort #EnsaladaSEO
  53. 53. 4.1.3 Diseño Diseñar con un plan @NachoMascort #EnsaladaSEO
  54. 54. 4.1.3 Feedback Diseño Control de arquitectura de la información. Distribución del contenido y adaptación de estilos según el maquetado semántico. Herramientas como invision son la clave para trabajar en cloud. 54 Diseño @NachoMascort #EnsaladaSEO
  55. 55. 4.1.3 Feedback Diseño 55 Diseño #EnsaladaSEO
  56. 56. 4.1.4 MaquetaciónDiseñar con un plan @NachoMascort #EnsaladaSEO
  57. 57. 4.1.4.1 Funcional de maquetación 57 Maquetación / Desarrollo Aplicar los requerimientos del briefing inicial sobre los diseños finales aprobados. @NachoMascort #EnsaladaSEO
  58. 58. 4.1.4.2 Bloquear la indexación 58 Maquetación / Desarrollo Bloquear por: ● Contraseña ● Noindex ● IP ● Robots.txt https://plus.google.com/+JohnMueller/posts/PTxp uYPXMj5 @NachoMascort #EnsaladaSEO
  59. 59. 4.1.4.2 Bloquear la indexación 59 Maquetación / Desarrollo Bloquear por: ● Contraseña ● Noindex ● IP ● Robots.txt https://plus.google.com/+JohnMueller/posts/PTxp uYPXMj5 @NachoMascort #EnsaladaSEO
  60. 60. 4.1.4.3 Verificar SC 60 Maquetación / Desarrollo @NachoMascort #EnsaladaSEO
  61. 61. 4.1.4.4 Directrices de contenido 61 Maquetación / Desarrollo - Keyword research de nuevos contenidos - Modificación de contenido que no consigue tráfico - NLP - TF-IDF - Entidades - ... @NachoMascort #EnsaladaSEO
  62. 62. 4.1.4.4 Directrices de contenido 62 Maquetación / Desarrollo @NachoMascort #EnsaladaSEO https://cloud.google.com/natural-language/
  63. 63. 4.1.4.4 Directrices de contenido 63 Maquetación / Desarrollo #EnsaladaSEO
  64. 64. 4.1.4.4 Directrices de contenido 64 Maquetación / Desarrollo #EnsaladaSEO
  65. 65. 4.1.5 ValidacionesSin el 100% no se sale @NachoMascort #EnsaladaSEO
  66. 66. 4.1.5 Validaciones 66 Antes de poder dar el OK al lanzamiento hemos de validar que se cumplen todos los requerimientos en todas las URLs. *Es recomendable segmentar el site en tipologías/categorías/niveles y hacer comprobaciones por ese segmento. QA / UAT @NachoMascort #EnsaladaSEO
  67. 67. 4.1.5.1 Localizar URLs 67 1º Localizar todas las URLs del site y segmentar por: - URLs con tráfico - URLs con tráfico orgánico - URLs con tráfico referral - URLs enlazadas - URLs con hits de Googlebot (Logs) QA / UAT @NachoMascort #EnsaladaSEO
  68. 68. 4.1.5.1 Localizar URLs 68 QA / UAT - URLs con tráfico @NachoMascort #EnsaladaSEO
  69. 69. 4.1.5.1 Localizar URLs 69 QA / UAT - URLs con tráfico orgánico @NachoMascort #EnsaladaSEO
  70. 70. 4.1.5.1 Localizar URLs 70 QA / UAT - URLs con tráfico referral @NachoMascort #EnsaladaSEO
  71. 71. 4.1.5.1 Localizar URLs 71 QA / UAT - URLs enlazadas @NachoMascort #EnsaladaSEO
  72. 72. 4.1.5.1 Localizar URLs 72 QA / UAT - URLs enlazadas @NachoMascort #EnsaladaSEO
  73. 73. 4.1.5.1 Localizar URLs 73 QA / UAT - URLs con hits de Googlebot (Logs) @NachoMascort #EnsaladaSEO
  74. 74. 4.1.5.1 Localizar URLs 74 QA / UAT - URLs con hits de Googlebot (Logs) @NachoMascort #EnsaladaSEO
  75. 75. 4.1.5.1 Localizar URLs 75 QA / UAT @NachoMascort #EnsaladaSEO
  76. 76. 4.1.5.1 Localizar URLs 76 QA / UAT Tipo de URL =arrayformula(iferror(if(A2:A27=VLOOKUP(A2:A27;'URL orgánicas'!A:A;1;FALSE);"URL con tráfico orgánico";"");iferror(if(A2:A27=VLOOKUP(A2:A27;'URL Referral'!A:A;1;FALSE);"URL Referral";"");iferror(if(A2:A27=VLOOKUP(A2:A27;'URL todas'!A:A;1;FALSE);"URL sin tráfico orgánico ni referral";"");"Sin catalogar")))) @NachoMascort #EnsaladaSEO
  77. 77. 4.1.5.1 Localizar URLs 77 QA / UAT Tipo de URL =arrayformula(iferror(IF(A2:A27=VLOOKUP(A2:A27;'URL con enlaces'!A:A;1;FALSE);"Sí";"");"No")) @NachoMascort #EnsaladaSEO
  78. 78. 4.1.5.1 Localizar URLs 78 QA / UAT TIP Si tienes filas sin contenido, las puedes filtrar en la fórmula con: if(isblank()) @NachoMascort #EnsaladaSEO
  79. 79. 4.1.5.2 Sitemap 79 QA / UAT Es recomendable separar URLs antiguas vs URLs nuevas para comprobar la indexación. Con dos sitemap.xml distintos es suficiente para hacer el control: /old-sitemap.xml /new-sitemap.xml @NachoMascort #EnsaladaSEO
  80. 80. 4.1.5.3 Robots.txt 80 QA / UAT Cuando se trata de un cambio de dominio, se debe dejar el robots.txt del dominio antiguo en blanco para liberar el crawling de todas las rutas. @NachoMascort #EnsaladaSEO
  81. 81. 4.1.5.3 Robots.txt 81 QA / UAT ¡Nunca bloquear todo el crawling desde el robots.txt! 301 @NachoMascort #EnsaladaSEO
  82. 82. 4.1.5.3 Robots.txt 82 QA / UAT Disallow: / 301 @NachoMascort #EnsaladaSEO
  83. 83. 4.1.5.4 Scraping de valores 83 QA / UAT http://bit.ly/Seoplus2018 @NachoMascort #EnsaladaSEO
  84. 84. 4.1.5.4 Scraping de valores 84 QA / UAT @NachoMascort #EnsaladaSEO
  85. 85. 4.1.5.4 Scraping de valores 85 QA / UAT ¿Coincide? =arrayformula(if(isblank(C$2:$C);"";if(C2:C=D2:D ;"Coincide";"No coincide"))) @NachoMascort #EnsaladaSEO
  86. 86. 4.1.5.4 Scraping de valores 86 QA / UAT @NachoMascort #EnsaladaSEO
  87. 87. 4.1.5.5 Interlinking 87 QA / UAT @NachoMascort #EnsaladaSEO
  88. 88. 4.1.5.6 Fetch&Render 88 QA / UAT Un fetch&render por plantilla/tipología es suficiente @NachoMascort #EnsaladaSEO
  89. 89. 4.1.5.7 Control de posiciones 89 QA / UAT @NachoMascort #EnsaladaSEO
  90. 90. 4.1.5.8 Redirects 90 QA / UAT Documento donde mapear urls antiguas y nuevas. Dividido en: - Reglas - URL a URL Ordenador por: - Más transversal - Menos transversal @NachoMascort #EnsaladaSEO
  91. 91. 4.1.5.8 Redirects 91 QA / UAT @NachoMascort #EnsaladaSEO
  92. 92. 4.1.5.8 Redirects 92 QA / UAT Una vez ya están todos los cambios de la documentación aplicados y los redirects en pre. ¡Toca hacer la validación final! Validar redirects con el hostname. @NachoMascort #EnsaladaSEO
  93. 93. 4.1.5.8 Hostname 93 QA / UAT @NachoMascort #EnsaladaSEO
  94. 94. 4.1.5.8 Validación final 94 QA / UAT @NachoMascort #EnsaladaSEO
  95. 95. 4.1.5.8 Validación final 95 QA / UAT @NachoMascort #EnsaladaSEO
  96. 96. 4.1.5.8 Validación final 96 QA / UAT ¿Es correcto? =arrayformula(if(isblank(B2:$B);"";IFERROR(IF(B2: $B=C2:$C;"Sí";"No");"No existe redirección"))) @NachoMascort #EnsaladaSEO
  97. 97. 4.1.5.8 Validación final 97 QA / UAT @NachoMascort #EnsaladaSEO
  98. 98. 4.1.5.8 Validación final 98 QA / UAT CUANDO ESTÉ AL 100% PODEMOS DAR EL OK @NachoMascort #EnsaladaSEO
  99. 99. 4.2 Migración ¡Ignición! @NachoMascort #EnsaladaSEO
  100. 100. 4.2.1 Imprescindible 10 0 Tener preparado dos códigos de estado: - 503 para cualquier URL en el caso de que suceda algún imprevisto - 404 para el robots.txt Ambas tienen la capacidad de provocar un delay en el crawling. Ganamos tiempo para arreglar problemas o mientras validamos. Lanzamiento #EnsaladaSEO
  101. 101. 4.2.2 Repetir validaciones 101 Hay que repetir las validaciones realizadas en PRE. Ya tenemos todo montado, es solo repetir el crawling/scrapeo. Debería ser todo mucho más ágil. Lanzamiento @NachoMascort #EnsaladaSEO
  102. 102. 4.2.3 Foco 102 Foco total en seguimiento de redirects, cualquier redirect roto (o temporal 302/307) debe ser nuestra prioridad. Después vamos a por las etiquetas que han sido modificadas y no cumplen el funcional. Lanzamiento @NachoMascort #EnsaladaSEO
  103. 103. 4.2.4 Cadenas de redirects 103 Lanzamiento @NachoMascort #EnsaladaSEO
  104. 104. 4.2.5 Sitemaps 104 Subimos los sitemaps a Search Console para ir haciendo el control de indexación de las URLs. Podemos mezclar cualquier KPI que nos interese. Lanzamiento @NachoMascort #EnsaladaSEO
  105. 105. 4.2.6 Traspaso de dominio 105 Lanzamiento @NachoMascort #EnsaladaSEO
  106. 106. 4.2.6 Traspaso de dominio 106 Lanzamiento @NachoMascort #EnsaladaSEO
  107. 107. 4.3 Post - migración Major Tom to ground control @NachoMascort #EnsaladaSEO
  108. 108. 4.3 Control de KPIs 108 Imprescindible monitorizar el tráfico diariamente durante un periodo de tiempo razonable. Cuanto mayor sea el site, mayor el período de tiempo. @NachoMascort #EnsaladaSEO
  109. 109. 4.3 Control de KPIs 109 @NachoMascort #EnsaladaSEO
  110. 110. 4.3 Crawling 110 @NachoMascort #EnsaladaSEO
  111. 111. 4.3 Y por último 111 Repetir, repetir y repetir @NachoMascort #EnsaladaSEO
  112. 112. 5. Casos de éxito ¡Qué no lo digo yo! @NachoMascort #EnsaladaSEO
  113. 113. 113 universidadviu.es ● Cambio de CMS ● Unificación de dos dominios ● Internacionalización de por medio ● Cambio de estructura de URLs ● Cambio de protocolo ● Cambio de diseño y de contenido ...o sea todo lo que se podía cambiar, se cambió. @NachoMascort #EnsaladaSEO
  114. 114. 114 viu.es @NachoMascort #EnsaladaSEO
  115. 115. 115 universidadviu.es @NachoMascort #EnsaladaSEO
  116. 116. 116 lonelyplanet.es ● Cambio de CMS ● Cambio de estructura de URLs ● Cambio de diseño y de contenido @NachoMascort #EnsaladaSEO
  117. 117. 117 lonelyplanet.es @NachoMascort #EnsaladaSEO
  118. 118. 118 ¡Muchas gracias! Podéis encontrarme en: ▫ @NachoMascort ▫ https://seohacks.es ▫ https://github.com/NachoSEO
  119. 119. CREDITOS ▪ Plantilla de presentación por SlidesCarnival ▪ Fotografías de Unsplash ▪ Agradecimientos a: ▫ Mònica Olivé ▫ Adrià Gonzalez 119 @NachoMascort #EnsaladaSEO

×