GetYourGuide y Viator pintan el precio en el resultado. Google también puede, si el HTML trae un Offer completo: número, moneda y disponibilidad. Si solo mandas "price": "150", Search Console marca el error: falta priceCurrency. La ficha queda fuera del rich result. No es un warning cosmético.

En agosto medí cuatro idiomas en una red de turismo. EN e IT mandaban el número sin moneda. PT, en al menos una ficha, ni siquiera mandaba Offer. Se corrige en la plantilla de tours, no recorriendo 150 URLs a mano.

3

campos

price, currency, availability

1

línea

si la plantilla es una

120+

fichas

cuando el CPT está mal

7-14d

GSC

para ver el error bajar

Qué exige Google, no schema.org en abstracto

schema.org es un vocabulario enorme. Google usa un subconjunto y publica requisitos por tipo de resultado enriquecido. Para producto / oferta, el trio mínimo que ves fallar en turismo:

{
  "@type": "Offer",
  "url": "https://www.agencia.com/tour/machu-picchu-full-day/",
  "price": "150.00",
  "priceCurrency": "USD",
  "availability": "https://schema.org/InStock"
}

price es texto de número, no “desde 150”. priceCurrency es ISO 4217: USD, PEN, BRL, EUR. No US$. No soles. availability va con https://schema.org/…. http:// suele funcionar; no es el incendio. La moneda ausente sí.

Dónde se rompe en WordPress de tours

Tourmaster, plugins de booking, Yoast graph, un JSON-LD pegado en el child theme: una plantilla. Por eso se corrige una vez, no ficha por ficha. El error clásico es editar una URL “para ver”, confirmar que el test de resultados enriquecidos pasa, y no tocar el PHP que generan las demás.

El segundo error es un priceValidUntil fijo (2027-01-01) en todo el catálogo. Si la tarifa del Rainbow Mountain cambia en marzo, el dato es falso. Google ha sido claro con datos estructurados engañosos. Mejor un campo de vigencia real o no emitir la fecha.

El tercero: Product sin offers en un idioma. El gráfico de Yoast a veces emite Product porque el CPT se llama tour, y el plugin de reservas no inyecta Offer en ese dominio porque el child theme divergió. Homogeneizar la plantilla del grupo es el trabajo. Un estándar, cuatro instalaciones.

Cómo lo detectas esta tarde

curl -s -A "Mozilla/5.0" "https://www.agencia.com/tour/una-ficha/" | grep -c priceCurrency
curl -s -A "Mozilla/5.0" "https://www.agencia.com/tour/una-ficha/" | grep -o '"price":"[^"]*"'

Cero en el primero y un número en el segundo: hallazgo. Abre el JSON-LD en el código fuente, Ctrl+F Offer. Si no hay Offer en el portugués, el mercado que más te llena es el que menos puede pintar precio.

Rich Results Test (la herramienta de Google) confirma elegibilidad. Search Console, informe de mejoras de producto, te dice cuántas URLs están afectadas. Sin GSC opinas sobre una ficha; con GSC ves las 120.

Qué no hagas

  • No marques como Product un artículo de blog de “qué llevar al Inca Trail”.
  • No pongas el precio más bajo del grupo privado y del shared en el mismo Offer sin UnitPriceSpecification si no sabes el modelo. Un precio, el que se ve en la página.
  • No inventes InStock si el Camino Inca de junio está agotado. SoldOut existe. Mentir disponibilidad es el camino corto a acción manual.
  • No copies el JSON-LD de un competidor. Valencia Travel emite TouristTrip y TravelAgency bien; copiar mal un grafo ajeno te deja @id de otro dominio.

El argumento de negocio, sin vanidad

El rich result de precio no sube posiciones. Sube el clic de quien ya te ve. En turismo, el viajero compara seis agencias en la SERP. La que muestra US$150 y 4.8 estrellas gana la mirada antes que la que muestra un título azul. GetYourGuide ya juega con esas dos palancas dentro del marketplace. El orgánico propio, sin moneda y sin estrellas, sale a boxear sin guantes.

Una línea en la plantilla. Una semana de GSC. Eso es el quick win que un analista reporta y un implementador sube. El siguiente artículo es el de las estrellas, que es el que más gente hace mal.