Lynx SEO
lynxcms/seo schreibt die Titel-, Beschreibungs-, Kanonikal-, Robots-, Open-Graph-, X-(Twitter)- und Hreflang-Tags und bedient /robots.txt.
Rendering
<head>
<meta charset="utf-8">
<x-lynx-seo :page="$page" />
</head>
Es ersetzt <title> und @hreflang. Für eine gefilterte Liste überschreibe pro Response: <x-lynx-seo :page="$page" robots="noindex, follow" :canonical="$page->url" /> (Schlüssel title, description, canonical, robots; dasselbe Array funktioniert für @seo($page, [...]) und lynx()->seo($page, [...])). @seo($page) ist gleichbedeutend; lynx()->seo($page) gibt ein SeoData-Objekt für einen benutzerdefinierten Head zurück.
Felder
Schalte SEO pro Vorlage ein; Seiten erhalten dann seo_title, seo_description, seo_image, seo_noindex und seo_canonical:
lynx()->run(\LynxCms\Seo\Actions\EnableSeo::class, ['template' => 'article']);
Leere Felder fallen zurück auf den Seitentitel im Titel-Muster der Site, das erste Feld aus lynx-seo.description_fields mit Text, das erste Bild aus lynx-seo.image_fields, dann die Standardwerte der Einstellungsseite (lynx()->settings('seo-settings')).
Außerhalb der Produktion sagt jede Seite noindex und robots.txt verbietet alles (lynx-seo.block_non_production).
Strukturierte Daten
Jede Seite erhält einen JSON-LD-Graphen (WebSite, Organization, WebPage, BreadcrumbList). Ordne eine Vorlage einem Schema.org-Typ auf der SEO-Einstellungsseite zu (seo_schemas Matrix, Elementtyp mapping: seo_schema_template, seo_schema_type, seo_schema_map) oder auf dem Tab „Strukturierte Daten“ im Admin-Bereich. Mapping-Zeilen lesen sich als property: source, wobei eine Quelle ein Feld, @title, @url, @published, @modified, eine Konstante wie =EUR oder @organization (der Eigentümer der Site, für author, publisher, provider oder organizer) sein kann:
name: @title
startDate: starts
location: venue
offers.priceCurrency: =EUR
Füge andere Knoten hinzu mit app(\LynxCms\Seo\JsonLd\JsonLd::class)->extend(fn ($page, $graph) => $graph->add([...])).
Prüfen
Das Lese-Tool seo_inspect liefert die finalen Tags einer Seite in einer Sprache. Die Verwaltung von SEO benötigt die Berechtigung seo.manage.