Community寫作與編輯github.com

Doc-Scripter/rankmath-skill

用於撰寫或審核必須在 RankMath 中達到 70 分以上的 WordPress/WooCommerce 產品列表 - 產品列表、焦點關鍵字選擇、摘要欄位、擴展描述、內部連結、樞紐與集合短語(如「溫室建設資源」)、孤兒頁面、入站連結,或診斷 RankMath 分數過低的情況。適用於任何以基本 URL 給定的網站,例如 https://shop.example.com。觸發條件:RankMath 分數、產品列表 SEO、WooCommerce SEO、焦點關鍵字、Meta 描述、內部連結、樞紐頁面、叢集連結。

rankmath-skill 是什麼?

這個技能旨在幫助開發者或內容創作者撰寫或審核 WordPress/WooCommerce 產品列表,以達到 RankMath SEO 外掛的 70 分以上標準。它提供了詳細的逐步指南,從分析網站平台開始(基於基本 URL),到處理關鍵字選擇(確保關鍵字在系統中的唯一性、正確的拼寫與格式),再到填寫所有關鍵欄位(如 H1 標題、SEO 標題、Meta 描述、簡短描述和特色圖片 Alt 文字)。該技能特別強調了 RankMath 評分系統的細微差別,包括焦點關鍵字必須以固定字串形式精確匹配(連字符或空格會破壞匹配)、SEO 標題長度的計算(包含網站名稱後綴)、以及標題中必須包含數字、權威詞和情感詞才能通過可讀性檢查。**它可以在任何 WordPress 網站上運作**,只需提供基本 URL 即可推導出所有配置,並且完全依賴於實際的現場審核(如透過 API 檢查 WooCommerce 是否存在、測量實際的網站名稱後綴長度),而不是猜測或假設。**主要用例**包括診斷低 RankMath 分數、優化產品列表 SEO、選擇焦點關鍵字、建立樞紐頁面和叢集連結。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add Doc-Scripter/rankmath-skill

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

RankMath WooCommerce 產品列表

概述

有兩項工作,但只有一項會被評分。

  1. 讓 RankMath 滿意。 它實際讀取的六個輸入,加上讓一個真實頁面從 41/100 提升到 84/100 的正文規格。RankMath 評分的是欄位,而不是文章:一個有 1,000 字但摘要欄位為空的頁面,比分數低於一個有 700 字但欄位已填滿的頁面。
  2. 讓頁面可被找到。 文章中提到的每個集合都必須對應到真實連結,並且頁面本身必須能夠從平台內部被連結。RankMath 不會計算入站連結或樞紐的存在。 步驟 3b 和 4 改變的是 Google 對頁面的看法,而不是 RankMath 的數字。不要期待分數會提升。

這裡沒有任何內容是固定寫死於某個網站的。只要提供一個基本 URL;主機、URL 清單、網站名稱預算以及是否存在 WooCommerce,都會從中推導出來(步驟 0)。結尾的一個實際範例是匿名化的——這僅是一個說明,絕非輸入。

步驟 0 - 從基本 URL 推導平台

每個任務都從一個基本 URL 開始,例如 https://shop.example.com 或 https://blog.example.com。推導出這些內容;永遠不要假設它們。

事實如何推導
是否是 WooCommerce?curl -sL "$BASE/wp-json/wc/store/products?per_page=1" - 返回 200 表示是,rest_no_route 表示僅有文章和頁面。不要假設存在 /product/ URL 結構
存在哪些內容類型curl -sL "$BASE/wp-json/wp/v2" 然後列出路由名稱。自定義類型(farm, produce)會在這裡顯示,並且必須被包含
完整的 URL 清單scripts/build_link_inventory.sh <base> - 它會透過 x-wp-total 分頁遍歷每個集合,並將結果寫入 _audit/inventory/<host>/{nodes,edges,nav,meta}.tsv
網站名稱附加長度擷取 3 個與您正在撰寫的頁面相同內容類型的真實頁面,取得 <title> 值中最長的共同後綴,計算其字元數。這就是要減去的預算。一個 0 字元的後綴並不表示「沒有附加」——它意味著模板不同,因此需要在同一類型內重新測量
哪些 href 算作內部連結主機等於推導出的主機,或者 href 是相對的 / 協定相關的。其他任何東西都是外部連結
哪些節點是編輯性質的從 nodes.tsv 中讀取節點類型。如果網站暴露了類似 navigation/menu 的類型,它們的「正文」就是選單,因此它們是頁面框架,而非寫作內容——將它們排除在入站和叢集計數之外(請參閱 H5)

curl 到處都需要 -L。一旦 Rank Math 接管,WordPress 的 Sitemap 和 REST 路由會進行一次 301 重新導向,而沒有 -L 的 curl -s 會回傳一個空的主體,這就是虛構 URL 的產生方式:一個空列表看起來像「沒有此頁面」,而不是「擷取失敗」。

步驟 1 - 焦點關鍵字

  • 每個頁面一個關鍵詞組,在整個商店中必須是唯一的。免費版 RankMath 只評分一個關鍵詞組;第二個使用相同詞組的頁面無法排名。
  • 檢查工具使用 grep -oiF(固定字串)來計算關鍵詞組,因此文章中的連字符會破壞匹配。 10-hectare greenhouse 並不計入關鍵詞組 10 hectare greenhouse。2026-10-14 見證的案例:一篇關於 10-hectare 專案的文章,由於採用房屋風格的連字符,它的密度分數是基於一個它從未實際包含過的詞組來計算的。在步驟 1 決定文章將在何處統一使用的拼寫,當關鍵詞組無連字符時,文章中也使用無連字符的寫法,並在資訊包中說明,以免後續的編輯將其「修正」回去。
  • 關鍵詞組必須連續出現。HDPE Female Tees 並不匹配關鍵詞組 HDPE tee。這個單一錯誤比任何其他檢查扣分都多。
  • 優先選擇已經存在於實際網址別名 (slug) 中的詞組。永遠不要為了匹配關鍵字而更改已發布的 slug;這會失去現有的排名和連結。
  • RankMath 的「URL 過長」檢查計算的是整個永久連結,而不是 slug。 在一個 slug 為 41 個字元(6 個單詞)的頁面上見證:https:// + 主機 = 37 個字元,+ / + slug + 結尾的 / = 80 個字元,面板顯示「URL is 80 characters long」——這個數字與完整 URL 相符而非 41 個字元的 slug,這證明了它所測量的對象。目標:75 個字元或更少(2026-10-09 業主從面板提供)。所以 可用 slug 上限 = 75 - 主機開銷,在那個 29 字元的主機上,上限是 36 個字元。為每個網站計算一次主機開銷,並在資訊包中說明。
  • 在長品牌網域上,此檢查會與關鍵字在 URL 中的規則衝突,就像標題長度規則與長關鍵詞組衝突一樣。 一個與關鍵字完全相符的詞組如果長於上限,就無法既在 slug 中保持連續又通過長度檢查。對於已發布的頁面,預設行為是:將長度記錄為紅色 (RED) 並接受,絕不重新命名。 與關鍵字完全相符的 slug 是少數能得分的永久連結項目之一;縮短一個已建立的線路會喪失排名、入站連結,並且通常會產生一個帶有衝突後綴的重複頁面。如果業主偏好較短的 URL,請說明他們選擇了哪項檢查而放棄了哪項,並將其作為全站性的永久連結政策來處理——從清單中統計受影響的節點(在那個主機上,83 個 URL 中有 22 個超過 75 字元,全部都是與關鍵字完全相符或以縣命名的),而不是編輯單個頁面。
  • 在寫入任何內容之前,請先讀取頁面上已儲存的焦點關鍵字,並保持其確切形式,包括單數或複數。 將 HDPE elbows 改寫為 HDPE elbow 曾導致一個真實頁面的分數從 73 降到 37。
  • 當無法存取管理後台時,面板的密度行可以恢復已儲存的詞組——不要從 slug 猜測它。 一個面板行 "Keyword Density is 0.15 which is low, the Focus Keyword and combination appears 2 times",有兩個未知數和一個方程式:分母是 使用次數 / (密度/100),所以 2 / 0.0015 = 約 1,333 個單詞。計算每個候選詞組在真實頁面主體中連續出現的次數,並保留那個能重現面板數字的詞組。2026-10-13 在 /installation-of-pop-up-sprinklers/ 上見證:從 slug 推測的 pop up sprinklers(17 字元)測得使用 10 次 / 密度 0.74%,而 installation of pop up sprinklers(33 字元)測得使用 2 次 / 密度 0.15%——與面板數字完全一致,包括小數點。 儲存的詞組是較長的那個,而這個推測已經讓資訊包損失了標題預算、密度目標和 H2 規則。
  • 一個長的已儲存詞組會改變哪些檢查是可滿足的,因此在推薦之前,請重新評估每個下游欄位。 一個 33 字元的關鍵詞組加上一個 30 字元的網站名稱附加,根本無法產生一個符合規定的標題;而從 slug 推測的 17 字元詞組則可以。千萬不要將根據短詞組建立的標題貼到儲存長詞組的頁面上——RankMath 會顯示 "Focus keyword not found in your title"。
  • 複數文字可以滿足單數關鍵詞組,因為 HDPE elbows 包含 HDPE elbow。反之則不然。如果不確定,請在標題、H1 和第一個句子中使用複數形式。
  • 當自然的長關鍵詞組無法放入標題視窗時,請儲存其較短的連續尾段。 2026-10-14 在 high volume low pressure irrigation(35 字元)搭配 30 字元的網站名稱附加時見證,這留下了 15-30 個字元的輸入視窗:長詞組使得「標題中有關鍵字」和「標題長度」在寫下一個字之前就變得互相無法滿足。儲存 low pressure irrigation(23 字元)對文章本身沒有任何損失,因為包含關係是單向的——每個長形式的提及仍然包含儲存的詞組,因此它算作一次使用。證明這個選擇,而不是爭論它: 使用同一個完成的檔案分別以每個詞組評分兩次。在一個草稿上測量:短詞組 = 密度 0.8%/15 次使用,且 14 個 H2 中有 5 個符合(兩項皆 PASS),長詞組 = 密度 0.2%/4 次使用,且 14 個 H2 中有 2 個符合(兩項皆 RED)。密度差距是算術問題,而不是風格問題——一個 6 個單詞的詞組需要重複約 10 次才能超過 0.5%,讀起來就像 spam。在資訊包中同時列出兩者的數字,讓業主了解原因。
  • 在指派之前,請檢查網站的焦點關鍵字映射表(預設為 ./rankmath-focus-keywords.md,可使用 RANKMATH_KEYWORDS= 覆蓋)。如果該頁面位於一個重複的叢集中,請先解決該問題;新的內容不會有幫助。
  • 當請求的關鍵字已被另一個頁面佔用時,不要使用該詞組來撰寫列表,也不要悄悄換成一個近義詞。報告這個衝突——詞組、兩個 URL,以及業主的實際選項(301 重新導向較弱的頁面、區分其中一個頁面的角度、或移動該詞組)——並且只在做出決定後才開始寫作。為了規避衝突而將 HDPE elbows 換成 HDPE elbow,與第 4 點提到的回歸是同一回事,只是選擇的理由錯誤。

步驟 2 - 欄位資訊包

填寫以下每一個欄位。這是 40 分與 80 分之間的差距。

欄位規則位置
產品名稱 (H1)關鍵詞組連續,靠近開頭WooCommerce 產品標題。之後請重新檢查 slug,重新命名可能會改寫它
SEO 標題總渲染長度在 45-60 字元之間在加上網站名稱附加之後,關鍵詞組在前 5 個單詞內,加上由 check_title.cjs 定價的數字 / 權威詞 / 情感詞組合RankMath,編輯摘要,標題。請參閱下面的網站名稱陷阱
Meta 描述120-160 字元,關鍵詞組在前 5 個單詞內,以一個點擊理由結尾RankMath,描述。如果為空,RankMath 會默默地回退到簡短描述。這是最常見的隱藏失敗
簡短描述2-3 個句子,關鍵詞組在第一個句子中,不得重複長描述的開頭WooCommerce「產品簡短描述」。提供自動 Meta、摘要檢查和標籤頁上方文字的內容
特色圖片 Alt 文字焦點關鍵字 + 一個市場限定詞,例如「在肯亞販售」媒體庫
正文請參閱下面的規格說明WooCommerce 描述,文字 (HTML) 標籤頁

在承諾提供 Alt 文字之前,請先檢查圖片是否存在。 curl -sL "$BASE/wp-json/wp/v2/media?search=<主題>&per_page=20" 在大多數 WordPress 安裝上是公開的,並會為每個匹配項回傳 source_url 和 alt_text。2026-10-13 在 /installation-of-pop-up-sprinklers/ 上見證:搜尋 pop up、popup 和 lawn 回傳了 0 個項目,sprinkler 回傳了兩張雨槍照片——這是一個與埋地草坪噴頭不同的產品。因此,正確的資訊包列應該是「不存在符合條件的特色圖片;請上傳真實的網站照片」,而不是為一個沒有人擁有的圖片撰寫 Alt 字串。永遠不要發明一個圖片,也永遠不要為了讓某個檢查變綠而回收一張相同類別但不同產品的照片。

網站名稱陷阱

RankMath 會將一個網站名稱模板附加到您在標題欄位中輸入的任何內容之後,因此欄位長度與渲染長度是不同的。在預算標題之前,先測量目標網站上的附加長度:擷取三個相同內容類型的真實頁面,並取其 <title> 字串中最長的共同後綴。其字元數就是模板將花費您的成本;輸入預算 = 60 減去該數字。

兩個已測量的失敗模式,因此請將此數字視為特定於類型的,而不是網站常數:

  • 混合模板會將後綴壓縮為 0 字元。 在一個真實商店中,產品渲染成 … - Example Online Shop 而文章則呈現另一種格式(下一個要點),因此跨類型的樣本找不到任何共同後綴。這會被解讀為「免費預算」,但這是錯誤的。請在您正在撰寫的內容類型內進行採樣。

  • 模板可能損壞並直接渲染文字。 該商店的文章 /greenhouse-construction/ 將其自身標題為 Greenhouse Construction: Framing & Netting Installation - %s——一個未經取代的 printf 佔位符。當後綴看起來不對時,在信任任何預算之前,請先讀取確切頁面的原始 <title>。

  • 三個相同類型的頁面可能顯示三個不同的附加。 模板僅控制那些 RankMath 標題欄位為空的頁面;在任何有人輸入了標題的頁面上,該字串會原樣渲染——包括錯誤的品牌。該商店的四個產品測量到 23、29、11 和 0 字元的後綴,其中一個帶有公司的網站名稱。因此,按類型採樣只能得到模板,而不是頁面。針對您正在撰寫的頁面來做預算:擷取它自己的 <title> 並將其與欄位內容進行比對。

範例:在那個商店中,產品模板附加了 23 個字元,因此一個 48 字元的輸入標題會渲染成 71 個字元並導致長度檢查失敗——但僅限於仍在使用該模板的頁面。請參閱工作範例。如果附加長度長到足以使每個標題都匱乏,那麼結構性修復比繞過它更好:在 Rank Math 的「標題與 Meta」、「產品」下縮短模板。

標題可讀性需要三件獨立的事項

RankMath 會根據三個獨立的檢查來評分標題,而它們是不可互換的。這三項現在都可以在本機測試:scripts/check_title.cjs 是 assets/admin/js/analyzer.js 的逐行移植,而 check_listing.sh 會將它們列印為三個更多的計分關卡。

  1. 一個數字——外掛的規則實際上是 /\d+/.test(title)。任何數字都算數:90 Degree、4 Pumps、一個單純的 10。永遠不要發明一個。
  2. 一個權威詞——將轉為小寫的標題按空格分割,每個單詞與 rankMath.assessor.powerWords(PHP 列表 assets/vendor/powerwords/en.php,共 1,103 個條目)進行比對,比對方式為 word === entry 或 startsWith(word, entry),且最多允許 4 個額外字元。已驗證的成員:best, easy, proven, affordable, amazing, excellent, essential, ultimate, free, price, quality, expert。top 不在列表中——它只承載情感,因此無論這個技能過去怎麼說,Top 永遠不會通過權威詞檢查。
  3. 一個情感詞——捆綁的 sentiment 詞典(一旦 RankMath 的附加元件和 extra

…

[已截斷以供翻譯]

相關技能