18 de Octubre
PLAZAS LIMITADAS

Que implicará PHP 8.4 en SEO

Llega PHP 8.4 y con el muchos cambios que podrán afectar a tu web

Que implicará PHP 8.4 en SEO
Autor:
Carlos Sánchez
Fecha de publicación:
2024-09-30

Última revisión:
2024-09-30

PHP 8.4 está ya disponible a modo de testeo y será lanzado el 21 de Noviembre de 2024. Para un SEO es necesario estar adaptado a las nuevas tecnologías, y esto es algo muy a tener en cuenta.

Por favor no utilizar esta versión en un entorno en producción.

La característica principal de PHP 8.4 es la compatibilidad de la clase DOM|HTMLDocment con HTML5. Pero viene cargado de novedades.

Esto quiere decir que se podrán emplear muchas características generandolas desde 0 o a partir de una cadena con la seguridad de que utilizas HTML5 y sus ventajas para SEO y usabilidad de una forma correcta.

Esto quiere decir que de esta forma podremos hacer manipulaciones de una forma similar a la que hacemos con JavaScript sin que Google tenga que hacer el esfuerzo del renderizado para poder ejecutarlo.

¿No lo estás entendiendo?
Si no tienes los conocimientos del Máster de SEO Técnico que dará comienzo el próximo octubre, puedes preguntar tus dudas de forma gratuita en mi Discord. ¡Accede a la comunidad!

Como podría mejorar el SEO

Aunque haya muchos cambios en esta nueva versión, nos vamos a quedar con los dos que posiblemente sean más relevantes para SEO

DOM\HTMLDocument

Permitiría mucha más versatilidad en cualquier web o CMS (sea Magento, WordPress o Prestashop) una vez sean compatibles con PHP 8.4.

La clave es que se cambiaría DOMDocument por DOM\HTMLDocument.

Una gran cantidad de líneas de código en el core y plugin de WordPress y otros tantos CMS utilizan la clase DOMDocument, por lo cual esto podría suponer una mejora

Ejemplo:

Puedes crear un nuevo documento HTML5 desde cero o a partir de una cadena que contenga el contenido HTML5:

use DOM\HTMLDocument;
// Crear un documento HTML5 vacío
$htmlDocument = HTMLDocument::createEmpty();
// Crear un documento HTML5 desde una cadena
$htmlString = "<!DOCTYPE html><html lang='es'><head><title>Ejemplo</title></head><body><h1>Hola Mundo</h1></body></html>";
$htmlDocument = HTMLDocument::createFromString($htmlString);
echo $htmlDocument->saveHTML();

Una vez que tienes un documento HTML5, puedes manipular elementos dentro del documento de manera similar a cómo lo harías con DOMDocument, pero con la seguridad de que estás manejando HTML5 correctamente:

// Añadir un nuevo elemento al documento
$paragraph = $htmlDocument->createElement('p', 'Este es un nuevo párrafo.');
$htmlDocument->body->appendChild($paragraph);
// Cambiar el título del documento
$title = $htmlDocument->getElementsByTagName('title')[0];
$title->textContent = 'Nuevo Título';
echo $htmlDocument->saveHTML();

Anteriormente algunas etiquetas y atributos como section o article no eran completamente soportadas y podían comportarse de una forma inesperada.

Esto va a permitir muchos más cambios y mejoras a la hora de poder editar metaetiquetas, datos estructurados y headings en masa aunque el código inicial o el tema lo tenga un poco complejo.

Property Hooks

Va a permitir establecer de forma más sencilla un "setter" que añada de una forma más limpia sustituciones y cambios a nuestras configuraciones.

class Article {
private string $title;
private string $description;
// Property Hook para el título
public string $structuredTitle {
get => $this->title;
set => $this->title = $this->cleanInput($value);
}
// Property Hook para la descripción
public string $structuredDescription {
get => $this->description;
set => $this->description = $this->cleanInput($value);
}
public function __construct(string $title, string $description) {
$this->structuredTitle = $title;
$this->structuredDescription = $description;
}
// Función para limpiar el input para JSON
private function cleanInput(string $input): string {
$input = strip_tags($input); // Eliminar etiquetas HTML
$input = str_replace(["\n", "\r", "\""], [" ", " ", ""], $input); // Eliminar saltos de línea y comillas
return trim($input);
}
// Sacamos el JSON a funcionar
public function toJSON(): string {
$data = [
"@context" => "http://schema.org",
"@type" => "Article",
"headline" => $this->structuredTitle,
"description" => $this->structuredDescription
];
return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
}
}

Si bien actualmente hay formas limpias de hacerlo, esta es una más que puede permitir bastantes avances.

Mejora del tiempo de carga de la página

Gracias a la nueva propiedad de Lazy Objects se va a hacer una menor carga en el servidor. Y por tanto una considerable mejora del rendimiento.

Debido a que permite un uso eficiente de recursos, ya que permite crear objetos que se instancian solo cuando estos son necesarios, esto además de una mejor escalabilidad y facilidad para el mantenimiento y desarrollo puede hacer que mejore el tiempo de carga de la página.

Depreciaciones

Habrá que tener cuidado especialmente con los tipos anulables implícitos:

Tipos Anulables Implícitos:

Antes de PHP 8.4, era posible declarar tipos anulables de manera implícita simplemente asignando un valor predeterminado de null a un parámetro. A partir de PHP 8.4, esta práctica estará desaprobada. Ahora es necesario declarar explícitamente los tipos anulables utilizando la notación ? o mediante un tipo de unión que incluya null. Esto requiere una revisión cuidadosa del código existente para asegurar que todas las firmas de funciones estén actualizadas para evitar advertencias de deprecación.

Es decir, el cambio no será muy grande, pero varios sistemas que lo hiciesen podría tener problemas.

Pasaremos de esto:

function save(Book $book = null) {}

a esto:

function save(?Book $book = null) {}

DEPRECIACIÓN DE SESIONES GET/POST:

Antes de PHP 8.4, era posible manejar el estado de la sesión a través de parámetros GET y POST, una técnica menos segura y recomendada en comparación con el uso exclusivo de cookies. A partir de PHP 8.4, esta práctica está desaprobada y se eliminará en PHP 9. De momento solo lanzará un mensaje de advertencia.

Otros cambios

Habrán otros cambios menos relevantes para SEO como:

 

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

Si te ha gustado esta publicación, siempre me lo puedes agradecer dándome like en esta publicación de LinkedIn sobre este mismo artículo.

Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Aquí tienes nuestra política de privacidad.