Lynx SEO
lynxcms/seo escreve as tags de título, descrição, canônica, robôs, Open Graph, X (Twitter) e hreflang, e serve /robots.txt.
Renderizando
<head>
<meta charset="utf-8">
<x-lynx-seo :page="$page" />
</head>
Ele substitui <title> e @hreflang. Para uma lista filtrada, substitua por resposta: <x-lynx-seo :page="$page" robots="noindex, follow" :canonical="$page->url" /> (chaves title, description, canonical, robots; o mesmo array funciona para @seo($page, [...]) e lynx()->seo($page, [...])). @seo($page) é o mesmo; lynx()->seo($page) retorna um objeto SeoData para um head personalizado.
Campos
Ative SEO por template; as páginas então recebem seo_title, seo_description, seo_image, seo_noindex e seo_canonical:
lynx()->run(\LynxCms\Seo\Actions\EnableSeo::class, ['template' => 'article']);
Campos vazios recorrem ao título da página no padrão de título do site, ao primeiro de lynx-seo.description_fields com texto, à primeira imagem de lynx-seo.image_fields, e então aos padrões na página de configurações (lynx()->settings('seo-settings')).
Fora do ambiente de produção, toda página diz noindex e o robots.txt desautoriza tudo (lynx-seo.block_non_production).
Dados estruturados
Cada página recebe um grafo JSON-LD (WebSite, Organization, WebPage, BreadcrumbList). Mapeie um template para um tipo schema.org na página de configurações de SEO (matriz seo_schemas, tipo de item mapping: seo_schema_template, seo_schema_type, seo_schema_map), ou na aba de Dados estruturados do admin. As linhas de mapeamento seguem o formato propriedade: fonte, onde uma fonte é um campo, @title, @url, @published, @modified, uma constante como =EUR, ou @organization (o proprietário do site, para author, publisher, provider ou organizer):
name: @title
startDate: starts
location: venue
offers.priceCurrency: =EUR
Adicione outros nós com app(\LynxCms\Seo\JsonLd\JsonLd::class)->extend(fn ($page, $graph) => $graph->add([...])).
Verificando
A ferramenta de leitura seo_inspect fornece as tags finais de uma página em um idioma. Gerenciar SEO requer a permissão seo.manage.