Community影像github.com

LynxCMS/seo

為 Lynx 版面添加 SEO 標籤並管理 SEO 設定。適用於撰寫版面 head、為模板啟用 SEO 欄位,或檢查頁面的標題、描述、分享圖片、標準鏈結及機器人規則時使用。

seo 是什麼?

這是一個專為 Lynx CMS 設計的 SEO 技能,能自動生成完整的 SEO 標籤,包括 title、description、canonical、robots、Open Graph、X (Twitter) 及 hreflang 標籤,並提供 /robots.txt 服務。開發者只需在 Blade 模板中使用 `<x-lynx-seo :page="$page" />` 即可輕鬆整合,亦可透過覆蓋參數(如 robots 或 canonical)進行細部調整。此外,它能為每個頁面自動產生 JSON-LD 結構化資料(包含 WebSite、Organization、WebPage、BreadcrumbList),並支援將模板對應到特定的 schema.org 類型,以提升搜尋引擎理解度。非正式環境下,所有頁面會自動設為 noindex 且 robots.txt 封鎖全部爬取,避免開發內容被誤索引。管理員可透過 seo_inspect 工具檢查頁面最終標籤,並需具備 seo.manage 權限才能修改 SEO 設定。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LynxCMS/seo/tree/HEAD/resources/boost/skills/lynx-seo

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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) 則會回傳一個 SeoData 物件,供自訂 head 使用。

欄位

為每個模板啟用 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 權限。

相關技能