Lynx SEO
lynxcms/seo は、タイトル、説明、正規URL、ロボット、Open Graph、X (Twitter)、hreflang タグを書き込み、/robots.txt を提供します。
レンダリング
<head>
<meta charset="utf-8">
<x-lynx-seo :page="$page" />
</head>
これは <title> と @hreflang を置き換えます。フィルタリングされたリストの場合は、レスポンスごとにオーバーライドします: <x-lynx-seo :page="$page" robots="noindex, follow" :canonical="$page->url" /> (キーは title、description、canonical、robots。同じ配列が @seo($page, [...]) と lynx()->seo($page, [...]) でも機能します)。@seo($page) も同じです。lynx()->seo($page) はカスタム head 用の SeoData オブジェクトを返します。
フィールド
テンプレートごとに SEO を有効にします。ページには seo_title、seo_description、seo_image、seo_noindex、seo_canonical が追加されます:
lynx()->run(\LynxCms\Seo\Actions\EnableSeo::class, ['template' => 'article']);
空のフィールドは、サイトのタイトルパターンにおけるページタイトル、テキストがある最初の lynx-seo.description_fields、最初の lynx-seo.image_fields の画像、そして設定ページのデフォルト (lynx()->settings('seo-settings')) にフォールバックします。
本番環境以外では、すべてのページが noindex となり、robots.txt はすべてを拒否します (lynx-seo.block_non_production)。
構造化データ
各ページは JSON-LD グラフ (WebSite、Organization、WebPage、BreadcrumbList) を取得します。テンプレートを schema.org タイプにマッピングするには、SEO 設定ページ (seo_schemas マトリックス、アイテムタイプ mapping: seo_schema_template、seo_schema_type、seo_schema_map) または管理画面の「構造化データ」タブで行います。マッピング行は property: source の形式で読み取ります。source はフィールド、@title、@url、@published、@modified、=EUR などの定数、または @organization (サイトの所有者、author、publisher、provider、organizer に使用) です:
name: @title
startDate: starts
location: venue
offers.priceCurrency: =EUR
他のノードは app(\LynxCms\Seo\JsonLd\JsonLd::class)->extend(fn ($page, $graph) => $graph->add([...])) で追加します。
確認
seo_inspect 読み取りツールは、特定の言語におけるページの最終タグを提供します。SEO の管理には seo.manage 権限が必要です。