SEO

Todo bom site web tenta se destacar e o Search Engine Optimization (otimização de mecanismos de busca) ou SEO para os íntimos é uma ferramenta muito útil nessa missão!

Com o Luna, fica fácil definir as tags de SEO e melhorar a indexação do site para os buscadores e também realizar personalização de informações nas redes sociais Twitter ou todas da empresa Meta (Facebook, Instagram e outras que utilizam o mesmo padrão):

namespace App\Controllers\Product;

use \App\Utils\Seo;

class Product {
    public static function getProduct($request, $response) {
        // ...
        $seo = new Seo();
        $seo->setTitle("Produto nome");
        $seo->setDescription("Produto descrição");
        $seo->setKeywords(["produto-chave-1", "produto-chave-2"]);
        $seo->setImage("produto.png");
        $seo->setAuthor("Autor nome");
        $seoRender = $seo->render();
    }
}

A função $seo->setKeywords() pode receber as chaves em array ou em string, como por exemplo: $seo->setKeywords("chave-1, chave-2");

Caso não utilize um título definido separadamente na renderização da view em parent::getPage utilize $seo->render(true) para que a tag <title> seja renderizada pelo SEO.

Seo para Twitter e Meta OpenGraph

O exemplo acima define o SEO para as meta tags de título, descrição, chaves, imagem e autor, contudo é possível também definir SEOs para as redes sociais, como dito anteriormente:

As funções twitter() e meta() permitem definir meta tags específicas, como:

Para que o SEO seja renderizado para o Twitter e Meta é necessário ao menos executar a função de inicialização:

Com o exemplo assim, o título será automáticamente definido também para o Twitter e Meta, não exigindo que seja necessário utilizar $seo->meta()->setTitle() ou $seo->twitter()->setTitle().

Caso utilize $seo->twitter() ou $seo->meta() após o uso de $seo->setTitle() e outros, as definições de título, descrição e imagem serão compartilhadas, para desativar essa função utilize $seo->twitter(false) ou $seo->meta(false) no primeiro uso de cada.

Também é possível inicializar a configuração do Twitter e Meta na inicialização da classe Seo:

O exemplo acima é a melhor opção para ativar o SEO para o Twitte e Meta, diminuindo código e mantendo a funcionalidade.

Além de definir as redes sociais que serão utilizadas no SEO, é possível configura-las no arquivo .env em DEFAULT_SEO e carrega-las automaticamente com um simples $seo = new Seo().

Configurando Robots

Caso deseje que uma página não seja indexada ou que seus links não sejam seguidos utilize a função $seo->setRobots() definindo true ou false para cada um dos itens:

Por padrão a indexação utiliza links seguidos, então se for utilizar a função $seo->setRobots() sem passar nenhum parâmetro, ela se torna dispensável.

Inserindo na renderização

O SEO deve ser adicionado na renderização da página (preferencialmente) ou da view:

Last updated