頁面內 SEO
需求:Python 3.10+。page_audit.py 需要網路存取即時頁面;text_stats.py 為離線版本,僅讀取一個檔案。
以下是我會優先修改的部分:標題、說明、然後是 H1。這些成本低、是使用者在搜尋結果中看到的內容,且很容易出錯,腳本可以偵測出來。
輸入
- 頁面網址,以及一個主要查詢詞與最多兩個次要查詢詞。如果使用者未提供,則從
text_stats.py取得熱門詞彙,提議一個並請使用者確認。 - 當前內容,以便新內容保留頁面的原始語氣。
執行腳本
將每個腳本(shared/scripts/page_audit.py、shared/scripts/text_stats.py)保持原樣寫入暫存檔,執行後刪除。page_audit.py 僅使用網路讀取您指定的頁面,不讀取任何本機檔案。text_stats.py 不進行網路呼叫;它讀取一個文字檔或標準輸入。
A="$(mktemp "${TMPDIR:-/tmp}/page_audit.XXXXXX")" # 將 shared/scripts/page_audit.py 原樣貼入
T="$(mktemp "${TMPDIR:-/tmp}/text_stats.XXXXXX")" # 將 shared/scripts/text_stats.py 原樣貼入
python3 "$A" https://example.com/page --json # 證據:片段、內容、連結-圖片、基本資訊
python3 "$T" copy.md --keyword "主要詞組" --top 15 # 語氣、可讀性、關鍵字置入
rm -f "$A" "$T"
退出碼 0 和 1 遵循審查結果(1 表示高或嚴重差距)。退出碼 2 表示輸入錯誤。text_stats.py 在檔案遺失、輸入為空或二進位、或選項超出範圍時會退出 2。
步驟
- 執行審查。引用
snippet、content和basics證據:標題與說明的長度、H1 數量、字數。 - 使用
text_stats.py測量現有內容。記錄閱讀難度、每句字數,以及「你」與「我們」的使用次數。比對這些數據。 - 撰寫標題:30 至 60 個字元,主要詞組靠近開頭,提供點擊理由,品牌放在最後。在網站內必須是唯一的。
- 撰寫描述:70 至 160 個字元,包含答案或承諾、一個佐證點,不可使用引號。請參閱模式範例。
- 撰寫一個 H1,用訪客的語言陳述主題。將 H2 建構成頁面所回答的問題,按順序排列,不可跳階。
- 新增或修正分享標籤(
og:title、og:description、og:image、twitter:card),並視需要補上lang與 viewport。 - 使用
--keyword檢查置入情況:詞組應出現在標題、H1 以及前 100 個字元內,且讀起來自然。 - 重新執行兩個腳本。比較改寫前後遺失的部分。
輸出
一個前後對照表,包含標題、描述、H1 及 H2 大綱(附字元數);可直接貼上的 head 標記;任何需要修改的段落(以替代句表示);text_stats.py 前後讀數;以及審查中恢復的部分。
退出條件
- 標題長度 30 至 60 字元;描述長度 70 至 160 字元;剛好一個 H1;兩個或以上的 H2;無跳階的標題層級。
-
--keyword回報主要詞組存在於一個標題中及前 100 個字元內。 - 沒有任何詞組重複到影響閱讀。經驗法則:每 100 字超過 3 次即視為關鍵字堆砌。
- 除非使用者要求不同語域,否則閱讀難度不得比原始內容更差。
- 重新審查時,顯示
snippet與content部分已恢復,且其他部分無退步。
邊緣情況與錯誤
- 頁面為價格頁、聯絡頁或登入頁:300 字規則可能不適用。說明字數部分僅為經驗法則,不做修改。
- 標題已有排名且使用者感到不安:一次只改一個元素,並記錄日期。
- 兩個頁面競爭同一個詞組:停止並使用
keyword-clusters。不要同時改寫兩個頁面。 - 非英文頁面:腳本的疑問詞與動詞清單為英文。回報這些部分為不適用。
- 搜尋引擎會改寫標題與摘要。說明新的內容僅為建議,引擎可能覆蓋。
規則
- 配對頁面的語氣。如果頁面說「你」,你就說「你」。
- 不要為描述發明事實、價格或佐證。僅使用頁面上已有的內容或使用者提供的資訊。
- 關鍵字計數用於偵測堆砌,而非目標。絕不要追求關鍵字密度。
- 絕不承諾排名。說明你修改了什麼以及應該讓什麼更清楚。