Asiste al evento de SEO más avanzado del año

Cómo agregar datos estructurados en Magento

Inserta datos estructurados en un Magento de una forma automatizada y efectiva con programación.

Autor:
Carlos Sánchez
Fecha de publicación:
2024-01-19

Última revisión:
2024-01-19

Una pregunta más de mi Discord.

Aguseze99:

Hola gente, feliz viernes. Como estan? Alguien sabe como agregar datos estructurados en magento, tiene que ser para todos los productos, no se si magento tiene algun apartado.

Carlos Sánchez:

Hola @aguseze99 yo en magento lo haría creando un módulo.

Este lo añades en el layout.xml correspondiente (suele ser catalog_product_view.xml)

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Tu\Modulo\Block\DatosEstructuradosProducto" name="datos_estructurados_producto" template="Tu_Modulo::datos_estructurados_producto.phtml" after="-"/>
</referenceContainer>
</body>
</page>

Creas el bloque de php en el módulo correspondiente, te pongo un ejemplo:

namespace Tu\Modulo\Block;
class DatosEstructuradosProducto extends \Magento\Framework\View\Element\Template
{
protected $_product = null;
protected $_productRepository;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ProductRepository $productRepository,
array $data = []
) {
$this->_productRepository = $productRepository;
parent::__construct($context, $data);
}
public function getProduct()
{
if ($this->_product === null) {
$id = $this->getRequest()->getParam('id');
$this->_product = $this->_productRepository->getById($id);
}
return $this->_product;
}
public function getJsonLdData()
{
$product = $this->getProduct();
// Aquí, construye tus datos estructurados basados en el producto
$datosEstructurados = [
"@context" => "https://schema.org/",
"@type" => "Product",
"name" => $product->getName(),
"description" => $product->getDescription(),
// Añade aquí más datos como reviews y ratings si están disponibles
];
return $datosEstructurados;
}
}

Luego lo añades en la plantilla .phtml y listo.

<script type="application/ld+json">
<?php echo json_encode($block->getJsonLdData()); ?>
</script>

Yo luego al final siempre lo acabo complicando un poco más añadiendo una maraña de condicionales pues por URL, por tipo de producto y por distintos factores (eso se ve en mi máster) dependiendo de cada caso, pero suele quedar limpio.

Si te gusta este artículo, me ayudarías un montón compartiendo mi contenido:
No se te da mal el SEO Técnico

Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB

¡Accede al Máster de SEO Técnico!
Tal vez te interesen otros artículos:
Artículos de SEO
Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Aquí tienes nuestra política de privacidad.