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();
}
}
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:
$seo = new Seo();
$seo->setTitle("Produto nome");
$seo->twitter()->setTitle("Produto nome (Twitter)");
$seo->meta()->setTitle("Produto nome (Meta)");
As funções twitter()
e meta()
permitem definir meta tags específicas, como:
// Twitter
twitter()->setTitle($title);
twitter()->setDescription($description);
twitter()->setCard($card);
twitter()->setSite($site);
twitter()->setImage($image);
twitter()->setUrl($url);
// Meta
meta()->setTitle($title);
meta()->setDescription($description);
meta()->setUrl($url);
meta()->setImage($image);
meta()->setType($type);
Para que o SEO seja renderizado para o Twitter e Meta é necessário ao menos executar a função de inicialização:
$seo->twitter();
$seo->meta();
$seo->setTitle("Produto nome")
// ...
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()
.
Também é possível inicializar a configuração do Twitter e Meta na inicialização da classe Seo
:
$seo = new Seo(['twitter', 'meta']);
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:
$seo->setRobots($index, $follow); // TRUE é o valor padrão para ambos
// Página indexada e com links seguidos:
$seo->setRobots();
// Página não indexada:
$seo->setRobots(false);
// Página com links não seguidos:
$seo->setRobots(true, false);
// Página não indexada e links não seguidos:
$seo->setRobots(false, false);
Inserindo na renderização
O SEO deve ser adicionado na renderização da página (preferencialmente) ou da view:
// Página
$content = parent::getPage("Produto Título", $content, [
'seo' => $seoRender
]);
// View
$content = View::render('pages/product', ['seo' => $seoRender]);
// Página/View: <header>{{seo}}</header>
Last updated