1. Web Design
  2. HTML/CSS
  3. HTML

Cómo Crear un Currículum Potenciado con Microdatos HTML5

En mayo de 2009, Google introdujo los Fragmentos Enriquecidos, más conocidos por su nombre en inglés como "Rich Snippets", son un pequeño bloque de información mostrada en los resultados de los motores de búsqueda de Google para que les resulte más fácil a los usuarios decidir qué páginas son importantes para su búsqueda. En junio de 2011, Google anunció la creación de Schema.org, una nueva iniciativa de Google, Bing y Yahoo! que intenta mejorar la web a través de la creación de estructuras de código.
Scroll to top

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En mayo de 2009, Google introdujo los Fragmentos Enriquecidos, más conocidos por su nombre en inglés como "Rich Snippets", son un pequeño bloque de información mostrada en los resultados de los motores de búsqueda de Google para que les resulte más fácil a los usuarios decidir qué páginas son importantes para su búsqueda. En junio de 2011, Google anunció la creación de Schema.org, una nueva iniciativa de Google, Bing y Yahoo! que intenta mejorar la web a través de la creación de estructuras de código.

Este tutorial muestra cómo crear un currículum online que incorpore los Microdatos de Schema.org. ¡El tutorial también incluye instrucciones sobre cómo usar Código Estructurado para la Autoría!


¡Elementos Extra Incluídos!

La muestra de ejemplo para el tutorial es una web con una sola página que puedes usar para crear tu currículum con toda libertad. Como extra, incluye algunas versiones con diferentes colores en los archivos zip; verde oscuro, verde vivo, azul oscuro y azul claro.

Por favor advierte que no se trata de un tutorial sobre diseño web o CSS, así que sólo veremos el código correspondiente al HTML5 y a los Microdatos de Schema.org.

Ahora, ¡empecemos!


Paso 1: El CSS

Crea una hoja de estilo CSS llamada "style.css" e incluye el siguiente código. No te preocupes; es bastante sencillo y comprenderlo no es realmente necesario para el tutorial.

1
2
3
/* Default Styles

4
--------------------------------------------------- */
5
6
body {
7
  margin: 0px;
8
	padding: 0px;
9
	background: url("../images/bg_dark_green.png");  
10
	background-color: inherit;
11
	font-size: 16px; 
12
	font-family: "Trebuchet MS", Helvetica, sans-serif;
13
	color: #000;
14
}
15
16
a:link { 
17
	text-decoration: underline;
18
	color: #000;
19
	font-weight: bold;
20
}
21
22
a:visited { 
23
	text-decoration: underline;
24
	color: #000;
25
	font-weight: bold;
26
}
27
28
a:hover { 
29
	text-decoration: underline;
30
	color: #669933;
31
	font-weight: bold;
32
}
33
34
a:active { 
35
	text-decoration: underline;
36
	color: #000;
37
	font-weight: bold;
38
}
39
40
#wrapper	{
41
	width: 965px;
42
	margin: 0 auto;	
43
}
44
45
#content {
46
	background-color: #eee;
47
	width: 960px;
48
	text-align: left;
49
	overflow: auto;
50
	position: relative;
51
	margin: 25px 0px 25px 0px;
52
	border: #fff solid 2px;
53
}
54
55
.clear	{
56
	float: none;
57
	clear: both;
58
	margin: 20px 0px 20px 0px;
59
}
60
61
62
/* Header

63
--------------------------------------------------- */
64
65
66
#contact-details .header_1 {
67
	float: left;
68
	width: 350px;
69
	text-align: center;
70
	margin: 40px 0px 0px 20px;
71
}
72
73
#contact-details .header_1 img {
74
	border: #fff solid 4px;
75
	background: url("../images/bg_img_dark_green.png"); 
76
	padding: 16px;
77
	margin: 10px 0px 0px 0px;
78
}
79
80
#contact-details .header_2 {
81
	float: left;
82
	width: 570px;
83
	margin: 40px 0px 0px 10px;
84
}
85
86
#contact-details .header_2 a {
87
	font-weight: normal;
88
}
89
90
#contact-details  h1	{
91
	margin: 0px 0px 0px 20px;
92
	font-size: 52px;
93
	font-weight: bold;
94
}
95
96
#contact-details  h3	{
97
	margin: 0px 0px 32px 20px;
98
	font-size: 30px;
99
	font-weight: bold;
100
	font-style: italic;
101
}
102
103
#contact-details ul.info_1	{
104
	list-style: none;
105
	margin: 0px 0px 0px -12px;
106
	font-size: 18px;
107
}
108
109
#contact-details ul.info_2	{
110
	list-style: none;
111
	margin: 0px 0px 15px -12px;
112
	font-size: 18px;
113
}
114
115
#contact-details li.address	{
116
    background: url("../images/home.png") no-repeat;
117
	background-position: 0px 0px;
118
    padding: 0px 0px 12px 40px;
119
}
120
121
#contact-details li.phone	{
122
    background: url("../images/phone.png") no-repeat;
123
	background-position: 0px 0px;
124
    padding: 0px 0px 12px 40px;
125
}
126
127
#contact-details li.email	{
128
    background: url("../images/mail.png") no-repeat;
129
	background-position: 0px 0px;
130
    padding: 0px 0px 12px 40px;
131
}
132
133
#contact-details li.site_url	{
134
    background: url("../images/computer.png") no-repeat;
135
	background-position: 0px 2px;
136
    padding: 0px 0px 12px 40px;
137
}
138
139
#contact-details li.twitter	{
140
    background: url("../images/twitter_sm.png") no-repeat;
141
	background-position: 0px 0px;
142
    padding: 0px 0px 12px 40px;
143
}
144
145
146
147
/* Main Content

148
--------------------------------------------------- */
149
150
h2.top	{
151
	margin: 0px; 
152
	font-size: 22px;
153
	font-weight: bold;
154
}
155
156
h2	{
157
	margin: 40px 0px 0px 0px; 
158
	font-size: 22px;
159
	font-weight: bold;
160
}
161
162
163
dl	{
164
	margin: 0px 50px 0px 0px;
165
}
166
167
168
dt	{
169
	float: left;
170
	width: 200px;
171
	font-size: 20px;
172
	font-weight: bold;
173
	font-style: italic;
174
	text-align: right;
175
}
176
177
dd	{
178
	width: 620px; 
179
	float: right;
180
	margin-right: 20px;
181
}
182
183
dl#contact 	{
184
	margin: 0px;
185
}
186
187
dt#contact 	{
188
	margin: 0px;
189
}
190
191
dd#contact 	{
192
	margin: 0px;
193
}
194
195
p.bus1	{
196
	margin: 0px;
197
	font-weight: bold;
198
	color: #669933;
199
}
200
201
p.edu-info	{
202
	margin: 10px 0px 0px 0px;
203
	font-weight: bold;
204
	color: #669933;
205
}
206
207
p.edu-info a	{
208
	color: #000;
209
}
210
211
p.edu-info a:hover	{
212
	color: #669933;
213
}
214
215
p.time	{
216
	margin: 0px;
217
}
218
219
p.summary	{
220
	margin: 10px 0px 0px 0px;
221
}
222
223
224
#skills ul.list1	{	
225
	float: left;
226
	list-style: none;
227
	margin: 0px 0px 0px -40px;
228
	width: 220px;
229
}
230
231
#skills ul.list2	{	
232
	float: left;
233
	list-style: none;
234
	margin: 0px 0px 0px 0px;
235
	width: 220px;
236
}
237
238
#skills li {
239
    background: url("../images/bullet_green.png") no-repeat;
240
	background-position: 0px 2px;
241
    padding: 0px 0px 0px 25px;
242
}
243
244
abbr	{
245
	border-width: 0px;
246
}
247
248
249
/* Footer

250
--------------------------------------------------- */
251
252
#footer	{
253
	margin: 60px 40px 0px 40px;
254
}
255
256
#footer	img {
257
	border: 0px;
258
}
259
260
#footer .footer_content	{
261
	width: 700px;
262
	overflow: auto;
263
	margin: auto;
264
	border: #fff solid 2px;
265
	background-color: #dcdcdc;
266
}
267
268
#footer ul.icons_1	{
269
	float: left;
270
	width: 525px;
271
	margin: 15px 10px 10px 15px;
272
	padding: 0px;
273
}
274
275
#footer ul.icons_2	{
276
	float: right;
277
	width: 100px;
278
	margin: 10px 20px 10px 10px;
279
	padding: 0px;
280
}
281
282
#footer .icons_1 li, #footer .icons_2 li { 
283
	margin: 0px 0px 0px 7px; 
284
	padding: 0px; 
285
	list-style-type: none; 
286
	display: inline; 
287
}
288
289
#footer a	{
290
	color: #000;
291
}
292
293
#footer a:hover	{
294
	color: #669933;
295
}
296
297
#footer	.credits {
298
	float: none;
299
	clear: both;
300
	margin: 10px 0px 20px 0px;
301
	font-size: 12px;
302
	text-align: center;
303
}
304
305
#footer	.credits a	{
306
	font-weight: normal;
307
}

Paso 2: La Estructura del Código (Sin los Microdatos de Schema.org Incluídos)

Después, necesitamos un .html. Ésta es una maquetación básica a la que todos estamos acostumbrados. 

1
2
3
<!DOCTYPE html>
4
<html>
5
<head>
6
<meta charset=UTF-8">
7
<meta charset="utf-8">
8
9
<title>Online Resume of Your Name</title>
10
11
<!-- Meta -->
12
<meta name="description" content="A few lines about yourself">
13
<meta name="keywords" content="web,developer,designer,resume" />
14
<meta name="author" content="Your Name">
15
16
<!-- CSS Stylesheet -->
17
<link rel="stylesheet" type="text/css" href="css/style.css" />
18
19
<!--[if lt IE 9]> 

20
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

21
<![endif]-->
22
23
</head>
24
<body>
25
26
<!-- Begin Wrapper -->
27
<div id="wrapper">
28
29
<!-- Begin Content Area -->
30
<div id="content">
31
32
<!-- Begin Header -->
33
<header>
34
35
<!-- Begin Contact Section -->
36
<section id="contact-details">
37
38
<!-- Begin Profile Image Section -->
39
<div class="header_1">
40
<img src="images/profile.jpg" width="250" height="250" alt="Your Name" />
41
</div>
42
<!-- End Profile Image Section -->
43
44
<!-- Begin Profile Information Section -->
45
<div class="header_2">
46
47
<h1><span>Your Name</span></h1>
48
<h3>Web Developer / Designer</h3>
49
50
<ul class="info_1">
51
<li class="address">555 Street Address, Toledo, Ohio, 43606  U.S.A.</li>
52
</ul>
53
54
<ul class="info_2">
55
<li class="phone">(000) 000-0000</li>
56
<li class="email"><a href="mailto:your-email@gmail.com">your-email@gmail.com</a></li>
57
<li class="site_url"><a href="http://www.webcodepro.net/about.php" title="www.your-website.com">www.your-website.com</a></li>
58
<li class="twitter"><a href="http://twitter.com/twitter-screen-name" title="Follow Me on Twitter">@twitter-screen-name</a></li>
59
</ul>
60
61
</div>
62
<!-- End Profile Information Section -->
63
64
</section>
65
<!-- End Contact Section -->
66
67
</header>
68
<!-- End Header -->
69
70
<div class="clear">&nbsp;</div>
71
72
<!-- Begin Profile Section -->
73
<dl>
74
<dt>Profile:</dt>
75
<dd>
76
77
<section class="summary">
78
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 
79
</section>
80
81
</dd>
82
</dl>
83
<!-- End Profile Section -->
84
85
<div class="clear">&nbsp;</div>
86
87
<!-- Begin Skills Section -->
88
89
<dl>
90
<dt>Skills:</dt>
91
<dd>
92
93
<section id="skills">
94
<ul class="list1">
95
<li>XHTML</li>
96
<li>HTML5</li>
97
<li>PHP</li>
98
<li>JavaScript</li>
99
<li>Magento</li>
100
<li>WordPress</li>
101
</ul>
102
<ul class="list2">
103
<li>HTML</li>
104
<li>CSS</li>
105
<li>MySQL</li>
106
<li>jQuery</li>
107
<li>CMS Made Simple</li>
108
<li>Photoshop</li>
109
</ul>
110
</section>
111
112
</dd>
113
</dl>
114
115
<!-- End Skills Section -->
116
117
<div class="clear">&nbsp;</div>
118
119
<!-- Begin Experience Section -->
120
<dl>
121
<dt>Experience:</dt>
122
123
<dd>
124
125
<section id="experience">
126
127
<!-- Position #1 -->
128
129
<h2 class="top">Web Developer / Designer</h2>
130
<p class="bus1">Company Name 1</p>
131
<p class="time">February 2009 &#45; Present</p>
132
133
<p>
134
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. 
135
</p>
136
137
138
<!-- Position #2 -->
139
140
<h2>Web Developer / Programmer</h2>
141
<p class="bus1">Company Name 2</p>
142
<p class="time">November 2007 &#45; February 2009</p>
143
144
<p>
145
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. 
146
</p>
147
148
149
<!-- Position #3 -->
150
151
<h2>Web Developer / Programmer</h2>
152
<p class="bus1">Company Name 3</p>
153
<p class="time">March 2006 &#45; November 2007</p>
154
155
<p>
156
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
157
</p>
158
159
</section>
160
161
</dd>
162
</dl>
163
<!-- End Experience Section -->
164
165
<div class="clear">&nbsp;</div>
166
167
<!-- Begin Publications Section -->
168
<dl>
169
<dt>Publications:</dt>
170
171
<dd>
172
173
<section id="publications">
174
175
<a href="http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/" target="_blank" title="How to Create an Advanced Twitter Widget">"How to Create an Advanced Twitter Widget"</a>, <a href="http://net.tutsplus.com/" target="_blank" title="Nettuts+">Nettuts+</a>, 8/25/11
176
177
</section>
178
179
</dd>
180
</dl>
181
<!-- End Publications Section -->
182
183
<div class="clear">&nbsp;</div>
184
185
<!-- Begin Education Section -->
186
<dl>
187
<dt>Education:</dt>
188
<dd>
189
190
<section id="education">
191
192
<p class="bus1">University of Toledo</p>
193
194
2801 Bancroft Street
195
<br />
196
Toledo, Ohio, 43606  U.S.A.
197
198
<p class="summary">Web Design</p>
199
<p class="time">2003 &#45; 2005</p>
200
201
<p class="edu-info">
202
<a href="http://www.utoledo.edu/" target="_blank" title="University of Toledo">www.utoledo.edu</a>
203
</p>
204
205
</section>
206
207
</dd>
208
</dl>
209
<!-- End Education Section -->
210
211
<div class="clear">&nbsp;</div>
212
213
<!-- Begin Footer -->
214
<footer id="footer">
215
216
<!-- Begin Footer Content -->
217
<div class="footer_content">
218
219
<!-- Begin Schema Person -->
220
221
<ul class="icons_1">
222
<li><a href="https://profiles.google.com/jwagner719" title="Google Profile"><img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32" alt="Google Profile"></a></li>
223
<li><a href="http://dribbble.com/" title="Dribbble"><img src="images/dribbble.png" width="32" height="32" alt="Dribbble" /></a></li>
224
<li><a href="http://www.linkedin.com/" title="LinkedIn"><img src="images/linkedin.png" width="32" height="32" alt="LinkedIn" /></a></li>
225
<li><a href="http://www.facebook.com/" title="Facebook"><img src="images/facebook.png" width="32" height="32" alt="Facebook" /></a></li>
226
<li><a href="http://www.flickr.com/" title="Flickr"><img src="images/flickr.png" width="32" height="32" alt="Flickr" /></a></li>
227
<li><a href="http://twitter.com/" title="Follow Me on Twitter!"><img src="images/twitter.png" width="32" height="32" alt="Follow Me on Twitter!" /></a></li>
228
</ul>
229
230
<ul class="icons_2">
231
<li><a href="resume.pdf" title="Download Resume PDF"><img src="images/download.png" width="48" height="48" alt="Download Resume PDF" /></a></li>
232
</ul>
233
234
<!-- End Schema Person -->
235
236
</div>
237
<!-- End Footer Content -->
238
239
<div class="credits">
240
Social Icons by <a href="http://paulrobertlloyd.com/2009/06/social_media_icons" target="_blank" title="Paul Robert Lloyd">Paul Robert Lloyd</a>, Profile &amp; Download Icons by <a href="http://dryicons.com/" target="_blank" title="DryIcons">DryIcons</a>, Phone Icon by <a href="http://www.comfi.com/telecom-icons/" target="_blank" title="ComFi Telecom">ComFi Telecom</a>, Profile Image User Symbol by <a href="http://thenounproject.com/" target="_blank" title="The Noun Project">The Noun Project</a>.
241
<br />
242
All used under a Creative Commons Attribution-ShareAlike license: <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank" title="Creative Commons Attribution-ShareAlike license">http://creativecommons.org/licenses/by-sa/3.0/</a>
243
</div>
244
245
</footer>
246
<!-- End Footer -->
247
248
</div>
249
<!-- End Content -->
250
251
</div>
252
<!-- End Wrapper -->
253
254
</body>
255
</html>

Algunas Notas Relativas a la Estructura del Código

Adición al HTML5

Debido a que los Microdatos de Schema.org están basados en las especificaciones para los microdatos de HTML5, la estructura del código HTML5 se usa para crear la plantilla de la web de una sola página del currículum. Desafortunadamente, los navegadores antiguos como IE7 e IE8 no reconocen ciertos elementos HTML5. Las páginas escritas usando HTML5 no se visualizarán correctamente en estos navegadores.

Aquí tienes una captura de pantalla del currículum online de ejemplo visto en IE8 (pulsa sobre la imagen para verla al completo):

Para resolver este problema con las versiones antiguas del navegador IE, hemos añadido el código de abajo entre

etiquetas (justo bajo la hoja de estilo CSS):
1
2
<!--[if lt IE 9]>

3
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

4
<![endif]-->

Este código es una adición de JavaScript HTML5 para que IE reconozca y aplique el estilo adecuadamente a los elementos HTML5.

Nota: La adición de JavaScript HTML5 no es necesaria en IE9 y superiores, así como tampoco en otros navegadores modernos que admitan HTML5.

Listas de Definición

Las listas de definición, <dd></dd> se usaban en el código en lugar de listas sin orden. La razón es que tiene mucho más sentido, si consideramos que cada elemento de lista va siempre seguido de una pequeña descripción.

Diferencias entre Secciones y Artículos 

Parece que existe confusión en lo que respecta a los elementos HTML5 para las secciones y los artículos. El elemento section se usó en el código porque ninguna de las secciones del currículum se considera por sí misma un contenido aparte.  
El elemento HTML5 article se usa para apartados que constituyen un contenido por sí solo, y la mayoría de las veces está sindicado como por ejemplo una entrada de un blog o un artículo de noticias. Este artículo explica bastante bien la diferencia entre los elementos article y section en HTML5.


Paso 3: Añade Microdatos de Schema.org - Person y PostalAddress

Los primeros tipos de esquemas que vamos a añadir a la estructura del código son Person y PostalAddress.

El Elemento Itemscope y el Atributo Itemtype

Un elemento itemscope se añade a las etiquetas <div></div> que son colocadas alrededor del contenido relativo a la información de Schema, como en este ejemplo: 

1
2
<div itemscope itemtype="http://schema.org/Person">
3
4
Content that contains information about a Person
5
6
</div>

El elemento itemscope y el atributo itemtype para el Schema Person será colocado tanto en las secciones de los enlaces de Contacto como en los enlaces a Perfiles en Medios Sociales de la web del currículum, de la siguiente forma: 

1
2
<!-- Begin Contact Section -->
3
<section id="contact-details">
4
<div itemscope itemtype="http://schema.org/Person">
5
6
Rest of Code Block Here
7
8
</div>
9
</section>
10
<!-- End Contact Section -->
1
2
<!-- Begin Social Media and Download Links -->
3
<div itemscope itemtype="http://schema.org/Person">
4
5
Rest of Code Block Here
6
7
</div>
8
<!-- End Social Media and Download Links -->

El elemento itemscope y el atributo itemtype para el Schema PostalAddress están anidados dentro del Schema Person y están colocados alrededor de la lista sin orden <ul></ul> conteniendo la información de la dirección de la siguiente forma:

1
2
<!-- Begin PostalAddress Schema -->
3
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
4
<ul class="info_1">
5
<li class="address"><span itemprop="streetAddress">555 Street Address</span>, <span itemprop="addressLocality"<Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode"<43606</span> <span itemprop="addressCountry">U.S.A.</span></li>
6
</ul>
7
</div>
8
<!-- End PostalAddress Schema -->

Atributos Itemprop

Los atributos Itemprop necesitan ser añadidos siempre que sea adecuado usando las etiquetas span de forma que la información adicional  sobre nuestra página web sea proporcionada a los motores de búsqueda.

Esquema Person

  • itemprop = "image"
  • itemprop = "name"
  • itemprop = "jobTitle"
  • itemprop = "telephone"
  • itemprop = "email"
  • itemprop = "url"

Esquema PostalAddress

  • itemprop = "streetAddress"
  • itemprop = "addressLocality"
  • itemprop = "addressRegion"
  • itemprop = "postalCode"
  • itemprop = "addressCountry"

Código Final para los Enlaces de las Secciones Contacto y Medios Sociales

1
2
<!-- Begin Contact Section -->
3
<section id="contact-details">
4
<div itemscope itemtype="http://schema.org/Person">
5
6
<!-- Begin Profile Image Section -->
7
<div class="header_1">
8
<img src="images/profile.jpg" itemprop="image" width="250" height="250" alt="Your Name" />
9
</div>
10
<!-- End Profile Image Section -->
11
12
<!-- Begin Profile Information Section -->
13
<div class="header_2">
14
15
<h1><span itemprop="name">Your Name</span></h1>
16
<h3><span itemprop="jobTitle">Web Developer / Designer</span></h3>
17
18
<!-- Begin PostalAddress Schema -->
19
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
20
<ul class="info_1">
21
<li class="address"><span itemprop="streetAddress">555 Street Address</span>, <span itemprop="addressLocality"<Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode"<43606</span> <span itemprop="addressCountry">U.S.A.</span></li>
22
</ul>
23
</div>
24
<!-- End PostalAddress Schema -->
25
26
<ul class="info_2">
27
<li class="phone"><span itemprop="telephone">(000) 000-0000</span></li>
28
<li class="email"><a href="mailto:your-email@gmail.com" itemprop="email">your-email@gmail.com</a></li>
29
<li class="site_url"><a rel="me" itemprop="url" href="http://www.webcodepro.net/about.php" title="www.your-website.com">www.your-website.com</a></li>
30
<li class="twitter"><a rel="me" itemprop="url" href="http://twitter.com/twitter-screen-name" title="Follow Me on Twitter">@twitter-screen-name</a></li>
31
</ul>
32
33
</div>
34
<!-- End Profile Information Section -->
35
36
</div>
37
</section>
38
<!-- End Contact Section -->
1
2
<!-- Begin Social Media and Download Links -->
3
<div itemscope itemtype="http://schema.org/Person">
4
5
<ul class="icons_1">
6
<li><a rel="author" itemprop="url" href="https://profiles.google.com/jwagner719" title="Google Profile"><img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32" alt="Google Profile"></a></li>
7
<li><a rel="me" itemprop="url" href="http://dribbble.com/" title="Dribbble"><img src="images/dribbble.png" width="32" height="32" alt="Dribbble" /></a></li>
8
<li><a rel="me" itemprop="url" href="http://www.linkedin.com/" title="LinkedIn"><img src="images/linkedin.png" width="32" height="32" alt="LinkedIn" /></a></li>
9
<li><a rel="me" itemprop="url" href="http://www.facebook.com/" title="Facebook"><img src="images/facebook.png" width="32" height="32" alt="Facebook" /></a></li>
10
<li><a rel="me" itemprop="url" href="http://www.flickr.com/" title="Flickr"><img src="images/flickr.png" width="32" height="32" alt="Flickr" /></a></li>
11
<li><a rel="me" itemprop="url" href="http://twitter.com/" title="Follow Me on Twitter!"><img src="images/twitter.png" width="32" height="32" alt="Follow Me on Twitter!" /></a></li>
12
</ul>
13
14
<ul class="icons_2">
15
<li><a href="resume.pdf" title="Download Resume PDF"><img src="images/download.png" width="48" height="48" alt="Download Resume PDF" /></a></li>
16
</ul>
17
18
</div>
19
<!-- End Social Media and Download Links -->

Paso 4: Añade Microdatos de Schema.org - Item List 

El próximo esquema que vamos a añadir a la estructura del código es ItemList.

El elemento Itemscope y el Atributo Itemtype

El elemento itemscope y el atributo itemtype para el Schema ItemList serán colocados en la Sección Habilidades como ves aquí:  

1
2
<!-- Begin Skills Section -->
3
<div itemscope itemtype="http://schema.org/ItemList">
4
5
Rest of Code Block Here
6
7
</div>
8
<!-- End Skills Section -->

Atributos Itemprop

Añade el atributo "itemprop" siempre que sea apropiado mediante las etiquetas <span></span>. Más abajo está los atributos que serán usados para este esquema.

Esquema ItemList

  • itemprop="itemListElement"

Código de la Estructura para la Sección de Habilidades

1
2
<!-- Begin Skills Section -->
3
<div itemscope itemtype="http://schema.org/ItemList">
4
5
<dl>
6
<dt itemprop="name">Skills:</dt>
7
<dd>
8
9
<section id="skills">
10
<ul class="list1">
11
<li itemprop="itemListElement">XHTML</li>
12
<li itemprop="itemListElement">HTML5</li>
13
<li itemprop="itemListElement">PHP</li>
14
<li itemprop="itemListElement">JavaScript</li>
15
<li itemprop="itemListElement">Magento</li>
16
<li itemprop="itemListElement">WordPress</li>
17
</ul>
18
<ul class="list2">
19
<li itemprop="itemListElement">HTML</li>
20
<li itemprop="itemListElement">CSS</li>
21
<li itemprop="itemListElement">MySQL</li>
22
<li itemprop="itemListElement">jQuery</li>
23
<li itemprop="itemListElement">CMS Made Simple</li>
24
<li itemprop="itemListElement">Photoshop</li>
25
</ul>
26
</section>
27
28
</dd>
29
</dl>
30
31
</div>
32
<!-- End Skills Section -->

Paso 5: Añade Microdatos de Schema.org - Organization

Después, vamos a añadir el esquema Organization al código estructurado.

Elemento Itemscope y el Atributo Itemtype

El elemento itemscope y el atributo itemtype para el Schema Organization serán colocados alrededor de cada "Position" enumerada en la sección "Experiencia", de la siguiente forma:

1
2
<!-- Position #1 -->
3
<div itemscope itemtype="http://schema.org/Organization">
4
5
Rest of Code Block Here
6
7
</div>
8
9
<!-- Position #2 -->
10
<div itemscope itemtype="http://schema.org/Organization">
11
12
Rest of Code Block Here
13
14
</div>
15
16
<!-- Position #3 -->
17
<div itemscope itemtype="http://schema.org/Organization">
18
19
Rest of Code Block Here
20
21
</div>

Atributos Itemprop

Añade el atributo "itemprop" siempre que sea indicado mediante las etiquetas <span></span>. Más abajo están los atributos que usaremos para este esquema:

Esquema Organization

  • itemprop = "jobTitle"
  • itemprop = "name"
  • itemprop = "description"

Código Final para la Sección de la Experiencia

1
2
<section id="experience">
3
4
<!-- Position #1 -->
5
<div itemscope itemtype="http://schema.org/Organization">
6
7
<h2 class="top"><span itemprop="jobTitle">Web Developer / Designer</span></h2>
8
<p class="bus1"><span itemprop="name">Company Name 1</span></p>
9
<p class="time">February 2009 &#45; Present</p>
10
11
<p itemprop="description">
12
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. 
13
</p>
14
15
</div>
16
17
<!-- Position #2 -->
18
<div itemscope itemtype="http://schema.org/Organization">
19
20
<h2><span itemprop="jobTitle">Web Developer / Programmer</span></h2>
21
<p class="bus1"><span itemprop="name">Company Name 2</span></p>
22
<p class="time">November 2007 &#45; February 2009</p>
23
24
<p itemprop="description">
25
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. 
26
</p>
27
28
</div>
29
30
<!-- Position #3 -->
31
<div itemscope itemtype="http://schema.org/Organization">
32
33
<h2><span itemprop="jobTitle">Web Developer / Programmer</span></h2>
34
<p class="bus1"><span itemprop="name">Company Name 3</span></p>
35
<p class="time">March 2006 &#45; November 2007</p>
36
37
<p itemprop="description">
38
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
39
</p>
40
41
</div>
42
43
</section>

Paso 6: Añade Microdatos Schema.org - Article

Ahora vamos a añadir al código del esquema Article.

El elemento Itemscope y el Atributo Itemtype para Article

El elemento itemscope y el atributo itemtype para el Schema Article serán colocados en el "Article" incluido en la Sección Publicaciones de la siguiente forma: 

1
2
<section id="publications">
3
<div itemscope itemtype="http://schema.org/Article">
4
5
Rest of Code Block Here
6
7
</div>
8
</section>

Atributos Itemprop

Añade el atributo "itemprop" siempre que esté indicado usando las etiquetas . Más abajo tenemos los atributos de este esquema que vamos a usar:

Esquema Article

  • itemprop = "name"
  • itemprop = "url"

El Código Final para la Sección de las Publicaciones

1
2
<section id="publications">
3
<div itemscope itemtype="http://schema.org/Article"><span itemprop="name">
4
<a itemprop="url" href="http://net.tutsplus.com/tutorials/php/how-to-create-an-advanced-twitter-widget/" target="_blank" title="How to Create an Advanced Twitter Widget">"How to Create an Advanced Twitter Widget"</a></span>, <a href="http://net.tutsplus.com/" target="_blank" title="Nettuts+">Nettuts+</a>, 8/25/11
5
</div>
6
</section>

Paso 7: Añade Microdatos Schema.org - EducationalOrganization y PostalAddress

Después vamos a añadir los esquemas EducationalOrganization y PostalAddress al código.

El Elemento Itemscope y el Atributo Itemtype para EducationalOrganization

El elemento itemscope y el atributo itemtype para el Schema EducationalOrganization se colocan en la Sección dedicada a la Formación de la siguiente forma:

1
2
<section id="education">
3
<div itemscope itemtype="http://schema.org/EducationalOrganization">
4
5
Rest of Code Block Here
6
7
</div>
8
</section>

El elemento Itemscope y el Atributo Itemtype para PostalAddress

El elemento itemscope y el atributo itemtype para el Schema PostalAddress están anidados dentro del Schema EducationalOrganization y están colocados alrededor del código que contiene la información de la dirección dentro de la sección de Formación de la siguiente manera:

1
2
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
3
<span itemprop="streetAddress">2801 Bancroft Street</span>
4
<br />
5
<span itemprop="addressLocality">Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode">43606</span><span itemprop="addressCountry">U.S.A.</span>
6
</div>

Atributos Itemprop

Añade el atributo "itemprop" siempre que sea apropiado usando las etiquetas <span></span>. Abajo tienes los atributos que usaremos para estos esquemas:

Esquema EducationalOrganization

  • itemprop = "name"
  • itemprop = "url"

Esquema PostalAddress

  • itemprop = "streetAddress"
  • itemprop = "addressLocality"
  • itemprop = "addressRegion"
  • itemprop = "postalCode"
  • itemprop = "addressCountry"

Código Final para la Sección Formación

1
2
<section id="education">
3
<div itemscope itemtype="http://schema.org/EducationalOrganization">
4
5
<p class="bus1"><span itemprop="name">University of Toledo</span></p>
6
7
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
8
<span itemprop="streetAddress">2801 Bancroft Street</span>
9
<br />
10
<span itemprop="addressLocality">Toledo</span>, <span itemprop="addressRegion">Ohio</span>, <span itemprop="postalCode">43606</span><span itemprop="addressCountry">U.S.A.</span>
11
</div>
12
13
<p class="summary"><span itemprop="name">Web Design</span></p>
14
<p class="time">2003 &#45; 2005</p>
15
16
<p class="edu-info">
17
<a itemprop="url" href="http://www.utoledo.edu/" target="_blank" title="University of Toledo">www.utoledo.edu</a>
18
</p>
19
20
</div>
21
</section>

Sobre el Código para Authorship

La imagen muestra el esquema del código para Authorship (John Resig) mostrado en los resultados de Google.

En junio de 2011, Google empezó a admitir "Authorship Markup". A través del uso de código, como rel="author" y rel="me", con el los motores de búsqueda podrán identificar contenido creado por un mismo autor en todo Internet. Al usar el esquema de código para Authorship, una web con múltiples autores podría enlazar todos los artículos y entradas escritos por cada autor a una página específica para cada autor. 

Los artículos y las entradas de una web de varios autores necesitan ser enlazados a la página de autor adecuada usando la etiqueta rel="author". Si la página del autor también incluye un enlace al perfil del autor en Google usando la etiqueta rel="me", la información sobre el autor podría aparecer también en los resultados de búsqueda de Google.

Para ayudar a los usuarios a descubrir contenido de calidad, Google está experimentando con la forma de mostrar la información de los autores en los resultados de los motores de búsqueda. Esta característica está siendo lanzada gradualmente y podría llegar a ser una parte muy importante en los resultados de del motor de búsqueda y en el posicionamiento. 


Etiquetas Rel

Tanto los Enlaces de la sección de Contacto como los de la sección de Medios Sociales del currículum en la plantilla del sitio de una página contienen URLs que enlazan a un sitio web principal externo y a páginas en medios sociales. El atributo "rel" necesita añadirse a los enlaces de estas secciones de forma que el Código Authorship pueda ser implementado. El Markup Authorship permite a los motores de búsqueda identificar contenido creado por el mismo autor en todo Internet.  

Existen dos etiquetas específicas para rel usadas dentro del código Authorship:

  • rel = "me"
  • rel = "autor"

La mayoría de los enlaces incluidos en la página web del currículum apuntan a sitios relativos a la misma persona. Así que la etiqueta rel="me" ha sido añadida. Para el enlace del Perfil de Google, se ha añadido la etiqueta rel="author". Dependiendo de en dónde publiques tu currículum, podrías necesitar usar en cambio la etiqueta rel="me" para tu enlace al Perfil de Google. 


Paso 8: Crea un Perfil de Google

Si quieres empezar identificando tu contenido original a través de Internet usando Código Estructurado para Authorship, primero necesitas crear un Perfil de Google.

Si ya dispones de una página de Perfil de Google, entonces deberías actualizar la información de tu perfil para que esté en consonancia (añade una foto de perfil, información sobre ti, ocupación, etc.).

También necesitas asegurarte de que se muestra una pestaña +1 en la página.

Si tu perfil de Google incluye una buena, directa y clara visión sobre ti, optará a aparecer como miniatura en los resultados de búsqueda.


Paso 9: Crea Enlaces en Página(s) Web Hacia Tu Perfil

Según Google, para establecer la autoría de una página web, necesitas hacer dos cosas:

  • Coloca un enlace en esa página web hacia tu Perfil de Google
  • Actualiza tu Perfil de Google con un enlace de vuelta hacia la página de inicio de la web. 

Puedes enlazar tu contenido a tu Perfil de Google usando un enlace de texto:

1
2
<a href="[https://plus.google.com/your_profile]?rel=me">Google+</a>

o hacerlo a través del código que te proporciona Google Profile Button:

1
2
<a rel="me" href="https://profiles.google.com/your_profile">
3
  <img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32">
4
</a>

Google recientemente realizó cambios en las instrucciones de la estructura del código para la autoría que afectan al uso de las etiquetas rel="author" y rel="me".  Las nuevas instrucciones indican que debemos usar rel="author" tanto para los enlaces en forma de texto como los de botón. En cualquier caso, la etiqueta rel="me" necesita usarse en lugar de rel="author". Observa la captura de pantalla de abajo.

Captura de pantalla de "Error: La página de perfil del autor no dispone de un enlace rel=me hacia un Perfil de Google".

Usando Jonh Resig como ejemplo:


Paso 10: Completa el Formulario Google Authorship (¡Importante!)

Una vez hayas añadido los microdatos de Schema.org y hayas completado los pasos 8 y 9, completa y envía el Formulario de Solicitud de Autoría de Google

Tu Código Estructurado para la Autoría no funcionará correctamente hasta que el Formulario de Autoría de Google haya sido completado y enviado.


Paso 11: Comprueba el Código de los Microdatos Empleando la Herramienta de Comprobación para los Fragmentos Enriquecidos 

Pulsa sobre la imagen para ver los resultados completos de la prueba

Puedes cerciorarte de que Google es capaz de procesar y mostrar el código de tus microdatos en los resultados de búsqueda comprobando tu página con la Herramienta para Comprobar los Fragmentos Enriquecidos. Esta herramienta puede revisar varios tipos de código de datos estructurados, entre los que se incluyen los Microdatos, los Micro Formatos y RDFa

Nota: La Herramienta de Comprobación para los Fragmentos Enriquecidos de Google está en modo Beta y podría dar resultados inesperados. Los resultados mostrados en la captura de pantalla al completo incluyen un error "Advertencia: Falta rellenar el campo fn." Schema.org no usa la etiqueta "fn", sin embargo la etiqueta se usa con los Microformatos. Esto es probablemente un error.


¡Hecho!

Ahora ya has creado un buen currículum online usando HTML5 y Microdatos de Schema.org, lo que proporciona información sobre ti que podría mostrarse en los resultados de los motores de búsqueda. Adicionalmente, al usar Código Estructurado para la Autoría, ¡ayudas a los motores de búsqueda a identificar todo tu contenido original que esté distribuido por Internet!

¿Te queda alguna duda? Cuéntanoslo en los comentarios, ¡y muchas gracias por leer este artículo!