• Nenhum resultado encontrado

Estratégias de SEO para Desenvolvedores

N/A
N/A
Protected

Academic year: 2022

Share "Estratégias de SEO para Desenvolvedores"

Copied!
86
0
0

Texto

(1)

Estratégias de SEO para

Desenvolvedores Front-end

@hmschreiner

(2)

O que é SEO?

(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)

Crawling

(11)
(12)

Indexing

(13)

Ranking

(14)
(15)

Henrique Schreiner

Full Stack Severino Developer

@hmschreiner

(16)

/SouDev

(17)
(18)
(19)
(20)

Títulos

Atributo mais importante para um bom rankeamento

(21)

<!DOCTYPE html>

<html lang="pt_BR">

<head>

...

<title>Nome do Site - Página Atual</title>

...

</head>

<body>

...

</body>

</html>

(22)

Tempo de Carregamento

Otimização no carregamento da página e elementos

(23)

75%

Dos usuários nunca mais visitam um site se tiverem uma experiência pobre de

performance em um site ou loja

(24)
(25)

Lighthouse

(26)
(27)

Rich Snippets

Microdados que enriquecem os resultados de busca

(28)
(29)
(30)
(31)
(32)

<script type="application/ld+json">

{

"@context": "https://schema.org", "@type": "NewsArticle",

"mainEntityOfPage": { "@type": "WebPage",

"@id": "https://google.com/article"

},

"headline": "Article headline", "image": [

"https://example.com/photos/1x1/photo.jpg" , ...

],

"datePublished": "2015-02-05T08:00:00+08:00" , "dateModified": "2015-02-05T09:20:00+08:00" , "author": {

"@type": "Person", "name": "John Doe"

},

"publisher": {

"@type": "Organization", "name": "Google",

"logo": {

"@type": "ImageObject",

"url": "https://google.com/logo.jpg"

} },

"description": "A most wonderful article"

}

</script>

(33)

<script type="application/ld+json">

{

"@context": "https://schema.org/", "@type": "Recipe",

"name": "Party Coffee Cake", "image": [

"https://example.com/photos/1x1/photo.jpg", ...

],

"author": {

"@type": "Person", "name": "Mary Stone"

},

"datePublished": "2018-03-10",

"description": "This coffee cake is awesome and perfect for parties.", "prepTime": "PT20M",

"cookTime": "PT30M", "totalTime": "PT50M",

"keywords": "cake for a party, coffee", "recipeYield": "10 servings",

"recipeCategory": "Dessert", "recipeCuisine": "American",

...

(34)

...

"nutrition": {

"@type": "NutritionInformation", "calories": "270 calories"

},

"recipeIngredient": [ "2 cups of flour"

...

],

"recipeInstructions": [ {

"@type": "HowToStep",

"text": "Preheat the oven to 350 degrees F. Grease and flour a 9x9 inch pan."

} ...

],

"aggregateRating": {

"@type": "AggregateRating", "ratingValue": "5",

"ratingCount": "18"

} ...

(35)

...

"video": [ {

"@type": "VideoObject",

"name": "How to make a Party Coffee Cake",

"description": "This is how you make a Party Coffee Cake.", "thumbnailUrl": [

"https://example.com/photos/1x1/photo.jpg", ...

],

"contentUrl": "http://www.example.com/video123.mp4",

"embedUrl": "http://www.example.com/videoplayer?video=123", "uploadDate": "2018-02-05T08:00:00+08:00",

"duration": "PT1M33S", "interactionCount": "2347",

"expires": "2019-02-05T08:00:00+08:00"

} ] }

</script>

(36)

Artigo Empresa

Receita

Avaliação de Crítica Vídeo

...

developers.google.com/search/docs/guides/mark-up-content

(37)

Otimização de URLs

Uma URL óbvia é uma ótima URL.

(38)

www.meusite.com.br/contato www.meusite.com.br?p=1234

(39)

URLs Amigáveis

Antes palavras do que números!

(40)

Quando o usuário olhar para a barra de endereços do navegador e saber qual o conteúdo da página antes mesmo de carregá-lo,

temos uma URL perfeita!

(41)

Canonização de URL’s

Oi?

(42)
(43)
(44)

Canonização de URL’s

Prevenção de duplicidade de conteúdo.

(45)

meusite.com.br www.meusite.com.br meusite.com.br/index.html www.meusite.com.br/index.php

www.meusite.net

(46)

<head>

<link rel="canonical" href="https://www.meusite.com.br" />

</head>

(47)

Sitemap.xml

Listagem de todas, ou ao menos das principais, URLs do site.

(48)

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>

<loc>http://www.meusite.com/</loc>

<lastmod>2019-09-27</lastmod>

<changefreq>monthly</changefreq>

<priority>1.0</priority>

</url>

...

</urlset>

(49)

Acessibilidade

“If content is king, accessibility is the key!”

(50)

Acessibilidade Digital?

A capacidade de um site de ser flexível o suficiente para atender o maior número de pessoas possível, independente das necessidades delas e das

tecnologias assistivas que usam para navegar.

(51)

23,9%

dos adultos no Brasil possuem algum tipo de deficiência.

(52)

Sites que tratam a acessibilidade digital com

seriedade ranqueiam melhor que a concorrência.

(53)

Sites com acessibilidade abrem portas para um público de mais de 45 milhões de brasileiros que

possuem algum tipo de deficiência.

(54)

Imagens

Assim como nós humanos, o Google adora imagens!

(55)

<img src="/images/1.jpg" />

(56)
(57)

<div class="carousel slide">

<img src="/images/image1.jpg" alt="">

<img src="/images/image2.jpg" alt="">

<img src="/images/image3.jpg" alt="">

</div>

(58)
(59)

<div class="carousel slide">

<img src="/images/image1.jpg" alt="image1">

<img src="/images/image2.jpg" alt="image2">

<img src="/images/image3.jpg" alt="image3">

</div>

(60)
(61)
(62)

<img

alt="Foto do perfil de Mark Zuckerberg, A imagem pode conter: 1 pessoa, sorrindo, close-up e texto"

src="..."

/>

(63)

Estrutura Semântica

(64)

Cabeçalhos (Headings)

Use os cabeçalhos para estruturar o conteúdo.

(65)

...

<body>

<h1></h1> <!-- Primeiro nível e o mais importante (título da página ou do conteúdo) -->

<h2></h2> <!-- Cabeçalhos de seções -->

<h3></h3> <!-- Cabeçalhos de sub-seções -->

<h4></h4>

...

</body>

...

(66)

Listas HTML

Sugere uma progressão ou sequência.

(67)

...

<body>

<!-- Lista desordenada: sem ordem de sequência ou importância -->

<ul>

<li></li>

...

</ul>

</body>

...

(68)

...

<body>

<!-- Lista ordenada: sugere uma progressão ou sequência -->

<ol>

<li></li>

...

</ol>

</body>

...

(69)

...

<body>

<!-- Lista de Definição: apresenta uma estrutura de definições -->

<dl>

<dt>Coffee</dt>

<dd>Black hot drink</dd>

<dt>Milk</dt>

<dd>White cold drink</dd>

</dl>

</body>

...

(70)
(71)

HTML5 e Acessibilidade

Semântica aperfeiçoada que melhora a acessibilidade e a precisão dos mecanismos de busca.

(72)

Problemas de Acessibilidade

● Incapacidade de fornecer a estrutura semântica das áreas e funcionalidades da página (navegação, conteúdo principal, pesquisa, etc.)

● Inacessibilidade de conteúdo dinâmico e que pode ser alterado dentro da página (AJAX)

● Incapacidade de alterar o foco do teclado para os elementos da página (definir o foco para uma mensagem de erro na página)

● Dificuldade com a acessibilidade do teclado e do leitor de tela com widgets complexos e elementos de navegação (controles deslizantes, árvores de menu, etc.)

(73)

...

<body>

<!-- Associação de imagens e texto descritivo -->

<figure>

<img src="..." alt="...">

<figcaption>Legenda da Imagem</figcaption>

</figure>

</body>

...

(74)

...

<body>

<!-- Identificação de áreas importantes na página -->

<nav>...</nav>

<header>...</header>

<article>...</article>

<aside>...</aside>

<footer>...</footer>

</body>

...

(75)
(76)

ARIA (Accessibility of Rich Internet Applications)

Técnicas e abordagens para acessibilidade em aplicações de internet ricas.

(77)

Os três componentes principais são roles, properties e states.

(78)

<!-- Roles: define o que um elemento é ou faz -->

<form role="search">

</form>

(79)

<!-- Properties: propriedade ou significado do elemento -->

<input aria-required="true">

(80)

<!-- States: define a condição atual de um elemento -->

<input aria-disabled="true">

(81)

Landmarks (Pontos ou Marcas de Referência)

Marcações que ajudam a navegar em blocos importantes da página

(82)
(83)

<!-- Menu de navegação -->

<ul role=”navigation”></ul>

<!-- Conteúdo principal -->

<div role=”main”></div>

<!-- Pesquisa de conteúdo -->

<form role=”search”></form>

<!-- Conteúdo informativo -->

<div role=”contentinfo”></div>

<!-- Informações complementares -->

<div role=”complementary”></div>

(84)

w3.org/WAI/standards-guidelines/aria

(85)

O trabalho em equipe e a empatia podem tornar

a web acessível e aberta para todos.

(86)

Obrigado!

@hmschreiner

Referências

Documentos relacionados

amida do ácido lisérgico obtido a partir do extracto de cravagem ou sementes não precisa de ser convertido para o ácido antes da sua utilização na síntese do LSD, desde que a

Idealmente, a melhor comparação para as UC tratadas viria do grupo de UC tratadas, ou seja, o grupo que receberam as ações de EE, mas na situação em que eles não tivessem

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

The DCF model using the Free Cash Flow to the Firm (FCFF) method, estimates in the first place the Enterprise Value of the company, that represents the value of all future cash

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for