Lynx SEO
lynxcms/seo는 제목, 설명, 표준 링크, 로봇, 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)를 가져옵니다. SEO 설정 페이지(seo_schemas 매트릭스, 항목 유형 mapping: seo_schema_template, seo_schema_type, seo_schema_map) 또는 관리자의 구조화 데이터 탭에서 템플릿을 schema.org 유형에 매핑합니다. 매핑 줄은 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 권한이 필요합니다.