914 34 75 81

somos@mjcachon.es

Expresiones Xpath para SEO

En el post de hoy voy a recopilar una serie de expresiones Xpath que podríamos usar en Screaming Frog, pero también podrían utilizarse en Google Spreadsheets (con la función ImportXml).

Antes de empezar con usos concretos, vamos a adentrarnos en entender los elementos que podemos usar para construir las expresiones.

Empezando con Xpath

El tutorial y la sintaxis de Xpath, son de gran utilidad para empezar a practicar. A modo de resumen introductorio:

¿Qué extrae? Expresión XPath
Nodo actual

.

Padre del nodo actual

..

Atributo

@

Comodín: cualquier elemento

*

Comodín: cualquier atributo

@*

Nodo que contiene un valor específico

[ ]

Funciona como “O”, usando varias rutas

|

Otras funciones a tener en cuenta para construir expresiones más robustas:

¿Qué hace? Nombre de la función
Para contar elementos con el criterio que queramos

Count()

Para localizar elementos que contengan lo que queramos

Contains()

Para localizar elementos que empiezan por lo que queramos

Start-with()

Xpath específicas para SEO on page

Las cosas más habituales que podemos extraer, usando expresiones sencillas y combinando algunas de las mencionadas:

¿Qué extrae? Expresión XPath
Title //title
Meta Description //meta[@name='description']/@content
URL AMP //link[@rel='amphtml']/@href
Keywords News //meta[@name='news_keywords']/@content
Canonical URL //link[@rel='canonical']/@href
Meta Robots //meta[@name='robots']/@content
H1 //h1
H2 //h2
H3 //h3
Alt text //img/@alt
Imágenes sin alt text //img[not(@alt)]/@src
Localización de la imagen //img[@alt]/@src
Anchor text //a/text()
Anchor text (incluyendo alt text) (//a/text() | //a/img/@alt)
Todos los links del documento //@href

Xpath específicas para Hreflang

Combinando lo aprendido hasta ahora, podríamos tener distintos objetivos de extracción y querer valores, htmls completos o contar las repeticiones que existen de un elemento concreto.

¿Qué extrae? Expresión XPath
Todos los elementos hreflang //*[@hreflang]
Valores de hreflang //*[@hreflang]/@hreflang
Contar todos los hreflang count(//link/@hreflang)

Xpath específicas para Schema

Si nos centramos en los datos estructurados con Schema, podemos también extraer el status de marcado de nuestra web o de competidores usando estas expresiones.

¿Qué extrae? Expresión XPath
Tipo de schema //*[@itemtype]/@itemtype
Contenido del json-ld //script[@type="application/ld+json"]
Schema Price //meta[@itemprop='price']/@content
Schema Image //meta[@itemprop='image']/@content
Schema Name //h1[@itemprop='name']
Schema Product ID //header[@itemprop='productId']/@content
Schema Stock Status //meta[@itemprop='availability']/@content
Dirección //span[@itemprop='streetAddress']
Localidad //span[@itemprop='addressLocality']
Región //span[@itemprop='addressRegion']
Valor de los ratings //span[@itemprop='ratingValue']
Recuento de ratings //span[@itemprop='reviewCount']

Xpath específicas para Open Graph y Twitter Cards

Si nos queremos centrar en profundizar el marcado de etiquetado social, también podemos hacerlo usando expresiones centradas en etiquetas Open Graph o Twitter Cards.

¿Qué extrae? Expresión XPath
Title OG //meta[starts-with(@property, 'og:title')]/@content
Description OG //meta[starts-with(@property, 'og:description')]/@content
Type OG //meta[starts-with(@property, 'og:type')]/@content
Imagen OG //meta[starts-with(@property, 'og:image')]/@content
URL OG //meta[starts-with(@property, 'og:url')]/@content
Url Twitter Card //meta[starts-with(@property, 'twitter:title')]/@content
Description Twitter Card //meta[starts-with(@property, 'twitter:description')]/@content
Imagen Twitter Card //meta[starts-with(@property, 'twitter:image:src')]/@content

Xpath específicas para otros usos variados

 

Y para cerrar el post, algunas otras expresiones que podríamos usar para otros cometidos más variados

¿Qué extrae? Expresión XPath
Cualquier elemento cuya clase se llame "ejemplo" //*[@class='ejemplo']
Span que estén dentro de un div //div/span
Primer elemento de una lista no ordenada //ul/li[1]
Último elemento de una lista no ordenada //ul/li[last()]
Elementos de una lista no ordenada llamada "ejemplo" //ul[@class='ejemplo']/li
Enlaces con el texto ancla "ver más" //a[contains(.,'ver más')]/@href
Extraer emails //a[starts-with(@href, 'mailto')]
Contar todos los elementos h3 count(//h3)
Contar todos los canonical count(//link[@rel=’canonical’])
Extraer la etiqueta de verificación de Google Search Console //meta[@name='google-site-verification']/@content
Iframe //iframe/@src
Los iframes de youtube //iframe[contains(@src ,'www.youtube.com/embed/')]
Anotación Mobile //link[contains(@media, '640') and @href]/@href

Deja tu comentario si se te ocurre algún otro que pueda ser útil

 

MJ Cachón
Sobre MJ Cachón

The boss. La madre de la criatura. La Daenerys del SEO. MJ Cachón lleva más de ocho años dedicándose a esto del marketing online y el posicionamiento, (y eso que venía de la banca...)

Otros contenidos que te pueden interesar

Entrevista SEO a Marta Maldonado

Una todoterreno del SEO y la Analítica Web, ha pasado por aquí a responder y dar su opinión ...

Programar crawleos en Screaming Frog paso a paso

Que ganas tenía de volver a escribir de "la rana", vamos allá con una de las funcionalidades ...

Comentarios

  1. Útil, muy útil, super útil.

    Gracias.

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *