La importancia de AMP


¿Qué es AMP?


Accelerated Mobile Pages
Páginas Móviles Aceleradas


En pocas palabras, significa sitios web más rápidos.


Menos consumo de batería

Menos consumo de batería
Menos consumo de datos

Menos consumo de batería
Menos consumo de datos
Monetización

Menos consumo de batería
Menos consumo de datos
Monetización


Usuarios felices

Desarrolladores
Editores
Plataformas




Búsqueda en Google

Sitio Original
Sitio AMP
AMP HTML
El HTML de toda la vida pero con algunas restricciones y añadiendo algunas vitaminas


No cambia la sintaxis, sino que añade nuevas funciones al formato que ya conocemos.
AMP JS
Una biblioteca JS para la garantizar la rapidez del sitio web

Convierte en asíncrono todo lo que viene de forma externa

AMP Cache
Una forma en que se guardan las páginas AMP, se almacenan en caché y se mejora el rendimiento

Todos los archivos JS e imágenes se cargan inmediatamente desde un mismo origen con HTTP 2.0

AMP ⚡️

Código de toda la vida
Velocidad
UX / UI
Publicidad

Código


AMP + Wordpress




Empezando con AMP

<!doctype html>
<html amp lang="es">
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<title>Hola, AMP</title>
<link rel="canonical" href="http://example.ampproject.org/article-metadata.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
</script>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
</head>
<body>
<h1>Bienvenido a la web móvil</h1>
</body>
</html>

<!-- <html amp > -->
<html ⚡️ lang="es">
<html lang="es>
Etiqueta <html>

<script async src="https://cdn.ampproject.org/v0.js"></script>
Incluyendo AMP

Estilos


<style amp-boilerplate> ... </style>
Estilos por default

<style amp-custom>
/* Tus estilos */
body {
background-color: red;
}
h1 {
font-size: 20px;
}
</style>
Estilos personalizados

Estilos prohibidos


Estilos en las etiquetas
<h1 style="color: red;">Título</h1>
Todos los estilos deben definirse en la etiqueta <style amp-custom>
No podemos poner estilos en las etiquetas que definamos en nuestro HTML

Uso de !important
body {
background-color: red !important;
}
El uso de !important en nuestros estilos podría afectar a los estilos que tiene por default AMP

Archivos CSS externos
<link rel=”stylesheet”>
Importar archivos CSS a nuestro sitio web esta prohibido a excepción de las fuentes personalizadas.

Selector universal
* {
color: red;
}
Tiene problemas de rendimiento y podría afectar a otros selectores con sus estilos

Selector :not( )
:not(p) {
color: blue;
}
Al igual que con el selector universal, podría afectar a otros selectores con sus estilos

Pseudo: selectores / clases / elementos
a:hover {
color: orange;
}
Solo están permitidos en elementos que no comiencen con amp (Ej. amp-image)

Clases con la palabra amp
.amp-mi-clase {
font-weight: 700;
}
Dicha palabra esta reservada para el uso de AMP (Ej. -amp- & i-amp). Esto se hace para que no haya conflictos entre tu sitio web y AMP

Filtros
.filtro {
filter: grayscale(20%);
}
Están en la lista negra de AMP por problemas de rendimiento

Multimedia


Imagenes
<img src='img.jpg' height='500' width='500'></img>
<amp-img src='img.jpg' height='500' width='500'></amp-img>
HTML
AMP
<amp-img src="img.jpg" width="527" height="193" layout="responsive">
</amp-img>
AMP (Responsive)

Gifs
<amp-anim width='400' height='300' src='imagen.gif'></amp-anim>
AMP
<script async custom-element='amp-anim'
src='cdn'></script>
Nota: Necesitamos de un script más en el proyecto para poder usar dicho recurso.

Video
<amp-video width='720' height='480' src='video.mp4'
poster='imagen.jpg'></amp-video>
AMP
<video width='720' height='480' src='video.mp4'></video>
HTML

Audio
<amp-audio width='500' height='500' src='audio.mp3'>
<source type='audio/mpeg' src='audio.mp3'>
<source type='audio/ogg' src='audio.ogg'>
</amp-audio>
AMP
<script async custom-element='amp-audio'
src='cdn'></script>
Nota: Necesitamos de un script más en el proyecto para poder usar dicho recurso.

Atributos

Placeholders & Fallbacks
Los atributos placeholder y fallback nos van a ayudar a que el usuario siempre tenga algo que ver, ya sea problemas de conexión o de compatibilidad


Placeholder
Placeholder actúa como un preview de su elemento padre. Este tiene que ser siempre el hijo de alguien
<amp-anim>
<amp-img placeholder>

Placeholder
Placeholder se muestra por defecto, una vez que carga su elemento padre, este desaparece
<amp-anim src='gif.gif' width='466' height='355'>
<amp-img placeholder src='preview.png'></amp-img>
</amp-anim>

Fallback
Fallback se utiliza para indicarle al usuario cuando su navegador no soporta alguna característica en particular
<amp-video>
<div fallback></div>

Fallback
<amp-video width='720' height='480' src='video.mp4'>
<div fallback>
<p>Tu navegador no soporta el elemento video de HTML5.</p>
</div>
</amp-video>

Componentes / Tags


Incorporados
Extendidos
Experimentales
Componentes que están por defecto como amp-img o amp-video
Componentes de la biblioteca pero que deben ser añadidos de manera explicita, como amp-anim o amp-audio
Componentes que son liberados, pero que aún no están listos para su uso

amp-accordion

Un acordeón proporciona una manera para que los usuarios tengan un contenido diferente y dinámico


amp-lightbox


Permite una especie de popup para que el usuario interactúe

amp-facebook

Permite incrustar post o videos de Facebook en nuestro sitio AMP


amp-twitter

Permite incrustar Tweets en nuestro sitio AMP


amp-instagram

Permite incrustar fotos o videos de instagram en nuestro sitio AMP


amp-youtube

Permite incrustar videos de Youtube en nuestro sitio AMP


AMP




















Una serie de bloques que al juntarse son capaces de formar grandes estructuras

Vinculación de páginas



Página no AMP
<link rel="amphtml" href="https://www.pagina.com/amp.html">

Página AMP
<link rel="canonical" href="https://www.pagina.com/documento-completo.html">

Solo una página (AMP)
<link rel="amphtml" href="https://www.pagina.com/amp.html">


Hacer Pruebas
https://validator.ampproject.org/

AMP Plugins



AMP

Este plugin dolo añade páginas AMP a las entradas de un blog y no te permite personalizar mucho

AMP FOR WP
Te permite más configuraciones funcionando previamente con el plugin anterior


AMP FOR WP
Puedes hacer cambios tanto de estructura como de diseño


¡Gracias!

Mi sitio web tarda mucho en cargar
¿Yo te dije que no usaras AMP ?
filisantillan.com/agenda
La importancia de AMP
By Fili Santillán
La importancia de AMP
- 2,594