Wordpress

WordPress 早就內建 Akismet,為什麼多數人的留言防護還沒生效?

多數人以為 WordPress 的留言防護要另外找一款外掛才夠用,其實這件事 Akismet 早就跟著每一套 WordPress 安裝包一起裝好了,外掛清單裡點得到它,只是多數人裝好網站後從沒點開過。留言區照樣被廣告連結、賭博字眼、色情引流的假留言灌爆,網站管理者只能一則一則手動刪,刪到最後乾脆把留言功能整個關掉。

問題出在 Akismet 預設是已安裝、未啟用的狀態,要自己申請 API 金鑰、把金鑰貼回後台,它才真正開始運作;漏掉這一步,外觀看起來裝好了,實際上完全沒有在防護。Akismet 是由 Automattic(WordPress.com 母公司)開發與維運的留言與表單防垃圾服務,核心做法不是在自家主機跑一套本地過濾規則,而是把每一則留言、每一筆表單送出的內容送到雲端,拿去比對它維護的全球垃圾留言資料庫,再用機器學習模型即時判定這則內容像不像垃圾。

這篇把 Akismet 從啟用門檻到每一項功能整理成一份完整地圖:雲端比對怎麼運作、金鑰怎麼申請才免費、留言與表單各自怎麼被檢查、免費與付費方案的界線劃在哪裡,以及它跟圖形驗證碼、蜜罐這類防護手法該怎麼搭配。先從它怎麼判斷一則留言是不是垃圾講起。

Akismet 是什麼?依全球資料庫比對留言的運作邏輯

Akismet 的核心比對邏輯是一次雲端 API 呼叫,而不是站方自己設定的關鍵字黑名單。每當有人送出留言或填寫聯絡表單,網站就會把這筆內容連同幾項背景資訊一起送到 Akismet 的服務端,由對方的機器學習模型評分後回傳判定結果。這個動作官方稱為一次 spam check,也就是一次 API 呼叫。

Akismet 官方對自身的定位是提供 AI 驅動的垃圾防護,用機器學習即時掃描與過濾送出的內容,而且不只是留言,聯絡表單、使用者註冊等多種輸入管道都在它涵蓋的範圍裡。這句描述是官方自己的宣稱,實際涵蓋範圍要看安裝的其他外掛是否有跟它整合。

系統把留言即時送往雲端資料庫比對

留言送出的那一刻,Akismet 做的第一件事是收集判斷所需的線索:留言內容本身、留言者填寫的名稱、電子郵件、網址,還有連線的 IP 位址、瀏覽器的 User-Agent、referrer 來源與這篇文章的網址。這些資訊一起打包送往 Akismet 的服務端,由對方拿去跟資料庫比對,回傳一個是不是垃圾的判定,整個過程通常在留言送出的當下就完成,讀者不會察覺任何延遲。

Akismet 判斷垃圾留言的流程:留言送出後打包送往雲端,以機器學習比對全球資料庫,回傳正常或垃圾兩種判定
Akismet 在留言送出的當下就完成一次雲端比對,判定為垃圾的會被攔下、分流進垃圾留言區。

因為判斷發生在雲端,站方完全不用手動維護一份規則或關鍵字清單,資料庫的規模與比對邏輯的更新都由 Akismet 自己處理。這也是為什麼即使主機上什麼設定都沒動,擋垃圾留言的能力還是會隨著 Akismet 資料庫的成長持續變好,只需要確保外掛保持啟用狀態。

最新版本開放 AI 代理程式透過 Abilities API 呼叫檢測

Akismet 比較新的版本開始支援 WordPress 自己的 Abilities API,這套框架的核心(PHP 端)是 WordPress 6.9 引入的,7.0 再補上前端支援,讓 AI 代理程式可以發現並呼叫網站上已經註冊好的功能。Akismet 把留言是否為垃圾的檢查、還有查看統計數據這兩件事都註冊成可以被 AI 代理程式呼叫的能力,呼叫的路徑走的是 MCP(模型情境協定)。

對一般站長來說,這代表未來接上 AI 站務助理之後,理論上可以直接問它某則留言是不是垃圾,不用切換到後台自己判斷。這不算什麼核心的防護能力升級,但它是 Akismet 跟上 WordPress 平台整體 AI 化腳步的具體例子,值得在功能盤點裡帶一筆。

安裝完成後,還要申請 API 金鑰才算真正啟用

多數 WordPress 安裝包會預先放好 Akismet 的外掛檔案,外掛清單裡看得到它,但狀態通常是未啟用,或啟用了卻還沒接上金鑰。這跟裝了就會動的外掛不一樣,Akismet 要跑完啟用外掛、申請或取得 API 金鑰、把金鑰貼回後台這三個步驟才會真正開始比對留言,漏掉最後一步,外觀正常,實際上完全沒在防護。

WordPress 外掛清單裡的 Akismet Anti-spam 只顯示『啟用』連結,代表已安裝但還沒啟用
多數 WordPress 都預先裝好 Akismet,外掛清單看得到它,但狀態常常停在還沒啟用。

WordPress 7.0(代號 Armstrong)在 2026 年 5 月 20 日發布,這一版把外掛的 API 金鑰設定統一收進新增的 Connectors 頁面,跨外掛共用同一套介面管理第三方服務的金鑰,Akismet 是最早跟進支援的外掛之一。還沒升級到 7.0 的網站,則要走舊版本各自的設定頁。

新版後台把金鑰設定整合進單一連結頁面

WordPress 版本是 7.0 以上的話,設定路徑走的是後台設定(Settings)裡的 Connectors 頁面。在這份清單裡找到 Akismet Anti-spam 這一項,點選 Set up,接著把申請到的 API 金鑰貼進欄位,按下 Save,這個網站就完成啟用。

WordPress 7.0 的 Connectors 頁面把各服務金鑰集中管理,Akismet Anti-spam 這一列可點 Set up 設定
WordPress 7.0 起把第三方金鑰統一收進 Connectors 頁面,在清單找到 Akismet 點 Set up 就能貼金鑰。

整個過程只有找到 Connectors 頁面、貼金鑰、按儲存三個動作,比早期版本的設定路徑短了不少,也符合 WordPress 把第三方服務金鑰統一管理的整體方向。啟用完成後,頁面上會顯示這個服務目前是已啟用的狀態,不用再另外確認。

舊版介面需要自行完成手動輸入與連結

還沒升級到 WordPress 7.0 的網站,設定路徑要自己找。先到外掛(Plugins)的新增(Add New)頁面搜尋並安裝啟用 Akismet,接著到設定(Settings)底下的 Akismet Anti-spam 頁面,如果同時裝了 Jetpack,這個選項會出現在 Jetpack 的選單底下。還沒有金鑰的人點選 Set up your Akismet Account 走註冊流程,已經有金鑰的人直接點 Manually enter an API key 手動貼上。

Akismet 設定頁還沒接上金鑰,提供『開始使用』註冊與『手動輸入 API 金鑰』兩個入口
還沒金鑰就點『開始使用』走註冊,已有金鑰就點『手動輸入 API 金鑰』直接貼上,設定頁把兩條路都擺好了。

這個舊版設定頁除了輸入金鑰,還能調整三個選項:是否在每位留言者名稱旁邊顯示他過去被核准的留言數、垃圾留言要悄悄捨棄還是全部送進垃圾留言區讓人工複核、以及是否在留言表單下方顯示隱私聲明。這裡先知道它們的設定入口在同一頁就好。

個人帳號把費用拉到零元就能拿到免費金鑰

很多人在申請金鑰這一步容易誤判,網站會先跳出一個看起來像付費方案的頁面,讓人以為 Akismet 一定要刷卡才能用。實際上選 Personal(個人)方案時,頁面問的是覺得這項防護值多少錢,金額欄位可以自己往下拉到 0 元,Akismet 官方把這種定價方式稱為想付多少就付多少,最低可以完全免費。

頁面會依造訪者所在地顯示一個參考金額,例如以台灣造訪者的角度查看,頁面上顯示多數人平均一年支付新台幣 1,080 元,但這只是給讀者參考的平均數字,不是最低門檻,欄位本身可以調到 0 元完全免費使用。

Akismet 同時檢查留言與聯絡表單的送出內容

功能盤點的第一件事,是搞清楚 Akismet 檢查什麼。核心涵蓋的是網站的留言區,以及讀者填寫的聯絡表單這兩種輸入內容,判定為垃圾的會被攔下,不會直接顯示在前台。但聯絡表單不是每一款外掛都原生相容,裝了 Akismet 不等於所有表單外掛都自動生效,要看用的是哪一款。

原生的 WordPress 留言系統本身就會走 Akismet 的比對,這是最基本、也最不用額外設定的一種。表單外掛的整合程度則各不相同。

判定為垃圾的留言,會被分流進垃圾留言資料夾

留言一旦被判定為垃圾,不是直接消失,而是分流進後台留言畫面裡的垃圾留言分類,站長可以隨時回頭複查。這個分類會保留 Akismet 攔下的所有留言,萬一其中有誤判的真實留言,也還救得回來。

WordPress 留言後台的垃圾留言分頁,被判定為垃圾的留言集中收在這裡等待複查
被判定為垃圾的留言不會直接消失,而是分流進留言後台的垃圾留言分類,站長隨時能回頭複查。

對站長來說,這代表平常不需要天天盯著留言區,只要偶爾回頭掃一眼垃圾留言分類,確認沒有真實留言被誤判卡在裡面就夠了。留言列表本身也會標示每一則是被 Akismet 自動攔下,還是版主後來手動改判的,方便追蹤來龍去脈。

聯絡表單外掛各自搭配不同的相容整合方式

Jetpack 的表單功能跟 WordPress 留言走的是同一套結構,後台看到的介面幾乎一樣,直接把訊息標成垃圾或非垃圾即可,不需要額外設定。Gravity Forms 從 1.6 版起就已經支援 Akismet 整合,新安裝預設就是開啟的,所有表單送出的內容都會自動經過 Akismet 檢查。

Contact Form 7 則不太一樣,它本身不會儲存送出的訊息,如果想要有介面可以標記垃圾或非垃圾,需要另外安裝 Flamingo 外掛來提供這個管理畫面。三款外掛的相容程度不同,對照自己網站用的是哪一款,才知道垃圾表單訊息實際上是被攔在哪個環節。

確信的垃圾直接捨棄,可疑的才送進複核

Akismet 除了把垃圾留言分流進垃圾留言區等人工複核,還有一個容易被忽略的進階功能,叫做捨棄(discard)。這個選項是針對判定信心非常高的垃圾留言,直接擋下、不占資料庫空間,連進垃圾留言區都不會出現,官方形容這個功能能省下硬碟空間,也讓網站跑得更快。

兩種模式各有取捨。悄悄捨棄能減少後台雜訊,但萬一極少數判定出錯,連救回的機會都沒有;送進垃圾留言區複核則保留全部紀錄,站長可以逐一檢查,只是要花時間翻看。要選哪一種,看網站留言量大不大,以及願不願意花時間複查。

每則留言都留下版主標記的完整歷程

每一則留言都有一份狀態歷程,清楚記錄它是被 Akismet 自動攔下、還是曾經被版主手動改判為垃圾或非垃圾。這份紀錄讓站長回頭追查某一則留言時,能立刻看出它經過哪些判定步驟,而不是只看到最終的一個狀態。

這個功能對經營多人協作留言板的網站特別實用,幾位版主都能看到彼此的判定紀錄,避免同一則留言被重複標記,或是搞不清楚是誰改判的。這份歷程也會回饋進 Akismet 的訓練機制,是它持續學習的依據之一。

留言內文會顯示提交者藏在裡面的網址

垃圾留言常見的手法是把推廣連結藏在看起來正常的文字裡,讓版主一時看不出這則留言其實是廣告。Akismet 會額外把留言內文裡出現的網址標示出來,讓版主一眼就看到留言者實際上想推廣什麼,不用自己去點連結冒著中招的風險。

這個小功能雖然不影響判定本身的準確度,卻直接省下版主人工複查的時間,尤其是複核模式下留言量比較大的網站,一眼看到藏在文字裡的網址,判斷要不要留下這則留言就快得多。

每位留言者過去核准次數,版主一眼看到

留言列表旁邊會顯示每一位留言者過去被核准過幾次留言,這個數字可以在前面提到的舊版設定頁裡開關。核准次數越高,代表這個人是真實常客的機率越大,版主看到這個數字,就能快速判斷眼前這則留言要不要多留意。

這個功能本身不會改變 Akismet 的判定結果,單純是給版主做人工複核時的輔助參考,尤其對留言互動熱絡的網站,能省下不少逐一查證留言者身份的時間。

個人免費和商業付費方案的界線

Akismet 對個人、非商業性質的網站完全免費,金額可以像前面提到的一樣自己調到 0 元。但只要網站有任何商業行為,就不符合免費金鑰的使用條件,必須升級到付費方案,而官方對商業行為的認定範圍,其實比多數人想像中寬得多。

很多人以為公司網站只要沒有直接在線上賣東西,就算是個人用途,實際上不是這樣。

免費金鑰認定的商業行為範圍比想像中寬

官方列出的商業行為清單相當具體:網站上放了 Google AdSense、Taboola、Infolinks、ExoClick 這類廣告服務的程式碼算商業行為,含有聯盟行銷連結算,使用線上客服外掛或服務算,推廣自己的業務或服務算,網域本身被認定為商業性質也算,接受捐款或使用捐款外掛算,架在電商外掛或平台上運作當然也算。

這幾項裡最容易被忽略的是聯盟行銷連結、線上客服工具,以及單純用來推廣自己工作室或服務的網站,這些都不符合免費金鑰的資格,不是只有真的在線上刷卡買東西才算商業。不符合規定被抓到,官方會直接停權,不會另行通知,真的有商業行為就該直接申請付費方案,別心存僥倖。

Pro、Business、Enterprise 依用量分級收費

付費方案分成三級,差別主要不在偵測能力,三個層級用的是同一套判定邏輯,差別在每月能檢查幾次、能不能多站共用、以及支援管道的等級。Pro 方案依垃圾檢查次數分四個級距,每月可以在 500 次、1,000 次、1,500 次、2,000 次之間選,對應可用的網站數也從 1 站增加到最多 4 站,搭配電子郵件支援;Business 方案不限網站數量,多個網站共用同一組每月 5,000 次的額度,支援優先處理,適合經營多個網站或大型網路的人;Enterprise 方案每月額度來到 15,000 次或 25,000 次,也能談客製化的額度,配有專屬支援。

這裡的每月次數指的就是前面提過的 spam check,也就是一次 API 呼叫,對一則留言或表單送出內容做一次判定。方案之間可以疊加購買來提高每月額度上限,但同一組 API 金鑰底下的多個網站是共用同一個額度池,不能把額度指定分配給某一個特定網站。換算成新台幣參考,年繳方案的月費大約落在 322.92 元(Pro)與 1,617.92 元(Business)左右,實際金額以官網當下顯示的匯率為準。

官方公布的準確率與誤判修正做法

Akismet 官方宣稱它的垃圾偵測準確率達到 99.99%,這個數字要清楚標明是官方自己公布的,不是第三方獨立驗證過的結果,讀者參考時心裡要有這層認知。比起單看一個準確率數字,更值得了解的是它怎麼處理誤判,以及站長平常的操作怎麼幫它變得更準。

沒有任何自動判定系統能做到零失誤,真留言被誤判成垃圾、或垃圾留言漏放進來都可能發生。Akismet 的做法是把每一次人工修正都當成訓練資料,讓判定模型持續進步。

把留言標成非垃圾,就是在訓練判定模型

Akismet 官方的說明是,它會從留言複核介面裡標記垃圾或非垃圾的動作學習,每一次手動標記,都是在教它、也在幫全體使用者一起提升準確率。這代表版主平常做的複核工作,不只是處理自己網站的留言,也在貢獻資料給整個判定模型。

這個學習機制有個容易被忽略的前提,外掛必須保持啟用狀態才能持續學習,一旦關掉,不管是垃圾判定還是誤判修正的回饋都會停止累積。誤判修正的操作也很簡單,在留言列表勾選誤判的項目,從批次動作選單選 Not Spam,或是把游標移到該則留言上直接點 Not Spam 連結就能救回。

聯絡表單的誤判得回到外掛端自己處理

留言的誤判可以直接在 WordPress 留言畫面救回來,但聯絡表單不是這樣。Akismet 本身沒有提供能從垃圾清單移除聯絡表單訊息的工具,要處理誤判,得看用的是哪一款表單外掛。

Jetpack 的表單可以直接在後台改標記;Gravity Forms 要在 Entries 頁面把訊息標成垃圾或非垃圾,這個動作會回頭通知 Akismet 訓練它的過濾器;Contact Form 7 則要透過另外安裝的 Flamingo 外掛提供的介面來修正誤判。三款外掛各走各的路,跟留言統一在同一個畫面處理不一樣,是很容易搞混的地方。

Akismet 與圖形驗證碼、蜜罐機制的分工邏輯

裝了 Akismet 是不是就不用再裝驗證碼了,是很多人會有的疑問。答案不是哪個比較好的評測題,而是兩者運作方式本質不同,Akismet 是在背景比對留言內容本身,讀者完全無感;圖形驗證碼與 reCAPTCHA 則是在讀者送出前插入一道人機驗證關卡,讀者要多做一個動作才能繼續。

Akismet 官方對這兩種做法的定位是,它完全在背景運作,用 AI 與機器學習偵測惡意的垃圾機器人並即時攔下,不會干擾真實訪客的使用體驗;相對地,圖形驗證碼會明顯打斷使用者,填表單的人得先完成一道測試才能繼續。這句評價出自 Akismet 自家對外發布的說法,比較時難免偏向自家產品,這裡只取運作方式的客觀差異來看,不照抄它評價式的結論。

背景比對不打斷讀者,是它與驗證碼的最大差別

對讀者來說,Akismet 的無感是實際感受得到的差異。填表單、送留言的整個過程完全不會被要求多做一個動作,跟需要輸入驗證碼或勾選方塊的做法比起來,對轉換率與使用體驗更友善。行動裝置上填表單本來就容易因為多一道關卡而放棄,少一道驗證就是少一個讓讀者離開的理由。

reCAPTCHA 本身也分成兩個版本,v2 多數情況以「我不是機器人」的核取方塊呈現,部分情境會再跳出圖片辨識題;v3 則改成在背景依訪客行為評分,不一定要讀者互動。但 reCAPTCHA 只能套用在個別表單或動作上,不像 Akismet 能一次涵蓋全站留言與多種表單,這是兩者在涵蓋範圍上的差異。

多層防護時,蜜罐和驗證碼仍能並行搭配使用

蜜罐(honeypot)是另一種同樣不需要讀者互動的防護手法,做法是在表單裡藏一個一般使用者看不到、但機器人程式會自動填寫的欄位,只要這個欄位被填了就判定是機器人送出的。Akismet 的開發文件本身也支援接收蜜罐欄位的比對結果,顯示兩者在技術上可以互相搭配、不互斥。

實務上不必把三種手法當成互斥的選項。一般網站裝 Akismet 處理留言與表單內容本身,前端再加一個蜜罐欄位擋掉最陽春的機器人,流量特別大或曾被鎖定攻擊時才考慮再加驗證碼,這樣分層搭配比單押一種更穩。也呼應這篇一開始提到的角度,先把免費就有的 Akismet 真的啟用,遠比急著另外加裝驗證碼更划算。

回到最開頭的問題,Akismet 真正的門檻不是功能夠不夠用,而是它一直靜靜躺在外掛清單裡,等著被啟用。把 API 金鑰貼進去,確認留言與表單都有納入檢查範圍,幾乎是每個 WordPress 網站都能立刻拿到的免費防護,不需要額外裝別的工具就先把這一層做好。至於要不要再疊加蜜罐或驗證碼,等真的遇到流量異常或被鎖定攻擊時再加也不遲,把心力放在先把手上這個原本就有的工具用滿,通常比急著找下一個解法更值得。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

Akismet 裝好後為什麼還是擋不住垃圾留言?

因為多數 WordPress 安裝包預先放好 Akismet 檔案,但狀態通常停在未啟用,或啟用了卻沒接上金鑰;要完成啟用外掛、申請 API 金鑰、把金鑰貼回後台這三個步驟,它才會真正開始比對留言,漏掉最後一步,外觀正常卻完全沒在防護。

Akismet 的 API 金鑰一定要花錢申請嗎?

不一定,選 Personal 個人方案時,頁面問的是覺得這項防護值多少錢,金額欄位可以自己往下拉到 0 元,官方稱為想付多少就付多少,最低可以完全免費使用,頁面顯示的參考金額只是平均數字,不是最低門檻。

公司網站用 Akismet 免費方案會不會違規?

很可能會,官方認定的商業行為範圍比想像中寬,放廣告服務程式碼、含聯盟行銷連結、使用線上客服外掛、推廣自己的業務或服務都算商業行為;不符合規定被抓到會直接停權且不會另行通知,真的有商業行為就該直接申請付費方案。

被 Akismet 誤判成垃圾的留言還救得回來嗎?

留言可以,在留言列表把游標移到該則留言點 Not Spam 連結,或用批次動作標記,就能救回並回饋訓練判定模型;聯絡表單的誤判要回到各自外掛端處理,Akismet 本身沒提供移除表單垃圾清單的工具。

網站裝了 Akismet 還需要另外加驗證碼嗎?

不一定要,兩者運作方式不同,Akismet 在背景比對留言內容、讀者完全無感,驗證碼則會在送出前多插入一道人機驗證關卡;一般網站裝 Akismet 處理留言表單內容,再加蜜罐擋陽春機器人就夠,流量特別大時才考慮再疊加驗證碼。

資料來源
  1. Akismet Anti-spam: Spam Protection – WordPress plugin — WordPress
  2. How do I activate the Akismet plugin? — Akismet
  3. Should I choose a free or paid subscription? — Akismet
  4. Akismet API usage limits — Akismet
  5. CAPTCHA vs reCAPTCHA vs Akismet: Which is Best? — Akismet
  6. How do I train Akismet to catch more spam? — Akismet
  7. Akismet: Unblocking a spam — Akismet
  8. WordPress 7.0 — WordPress
  9. Submit ham (false positives) — Akismet
  10. Pricing — Akismet
  11. Akismet Personal — Akismet