指南

如何打造論壇:分類、主題串、搜尋與垃圾內容管控

論壇是由分類、分類內的主題串、主題串內的回覆,再加上帳號、搜尋與版主管理所組成的。它和聊天群組不同,因為對話是依主題整理的,並且能長期保持價值:有人可以透過搜尋找到三年前的主題串,並且仍然得到答案。要打造論壇,首先要把主題串頁面與搜尋做好;如果論壇是公開的,還要讓搜尋引擎能讀懂主題串;並且在第一位真正的會員註冊前,就要備妥垃圾內容與版主管理工具。

論壇需要什麼

頁面

  • 分類列表:多數論壇的首頁,顯示每個分類的說明與最新活動。
  • 主題串列表:分類內的主題串,依最新回覆排序,附回覆數量,以及已解決或置頂的標記。
  • 主題串頁面:首篇文章與所有回覆依序排列,支援引用、表情反應與回覆框。
  • 新增主題串表單:標題、分類、內文、選填標籤。
  • 搜尋:涵蓋標題與貼文內容,可依分類篩選。
  • 使用者個人頁:名稱、大頭照、加入日期、發文數與最近的貼文。
  • 版主審核佇列:被檢舉的貼文與等待核准的貼文。

資料

資料表關鍵欄位
使用者名稱、大頭照、角色、信任等級、加入日期、狀態
分類名稱、slug、說明、排序、誰可以發文
主題串標題、slug、所屬分類、作者、是否置頂、是否鎖定、是否已解決、最後回覆時間
貼文所屬主題串、作者、內文、建立時間、編輯時間、是否隱藏
表情反應貼文、使用者、類型
檢舉貼文、檢舉人、原因、狀態、版主的處理結果
訂閱使用者、主題串(有新回覆時通知)

把「最後回覆時間」與「回覆數」直接存在主題串上,主題串列表就能保持快速,而不必每次載入頁面都重新計算貼文數。

權限

  • 訪客可以閱讀公開分類。
  • 會員可以發文與回覆,並在限定時間內編輯自己的貼文。
  • 版主可以隱藏、移動、鎖定、置頂與合併主題串,並停權使用者。
  • 管理員管理分類與角色。

私人分類必須在伺服器端、每一次請求都進行檢查。主題串頁面、搜尋結果、RSS 與通知都需要同樣的檢查,否則私人貼文會從旁門洩漏。參見如何加入角色型存取控制。

決策與取捨

平面式或巢狀回覆。 平面式主題串(依時間順序排列回覆,並以引用標示)比較好讀,也是多數論壇的標準做法。巢狀回覆(Reddit 式的樹狀結構)適合辯論,但在手機上很難追蹤。除非有特殊理由,否則建議採用平面式。

問答模式。 對於支援與求助類論壇,讓發問者可以把其中一則回覆標示為採納答案,並顯示在問題正下方。這項單一功能就能讓舊主題串更有價值。

為了 SEO 而公開,還是私密。 公開的主題串頁面能帶來穩定的搜尋流量,但前提是搜尋引擎能讀取它們。這表示每個主題串都要有獨立乾淨的網址、真正的 <title>,而且貼文必須直接在 HTML 中,而不是之後由 JavaScript 載入。如果搜尋流量很重要,就要求伺服器端渲染或預渲染的主題串頁面。更多內容參見AI 打造網站的 SEO。

富文本或 Markdown。 附預覽的 Markdown 容易安全地儲存。視覺化編輯器對非技術會員比較友善。無論採用哪種,顯示前都要清理 HTML,確保沒有人能在貼文中注入腳本。

搜尋。 對論壇的前幾年來說,Postgres 全文搜尋已經足夠。只有在規模很大時,專用的搜尋服務才值得導入。參見如何為應用程式加入搜尋。

上線前就要處理垃圾內容與管理

論壇吸引自動化垃圾內容的速度,幾乎比任何其他網站都快,因為每篇貼文都是可能帶有連結的公開頁面。從一開始就要規劃:

  1. 信任等級。 新帳號不能張貼連結或圖片,前兩三篇貼文需等待審核。之後才能自由發文。
  2. 頻率限制。 替新帳號設定每分鐘與每天的發文上限。
  3. 發文前需完成 Email 驗證。
  4. 每篇貼文都有檢舉按鈕,並送入審核佇列。
  5. 對使用者連結加上 nofollow,讓垃圾發文者無法從搜尋引擎獲得好處。
  6. 管理紀錄,讓版主能看出誰做了什麼、為什麼。
  7. 清楚的版規,釘在每個分類中。

範例第一個提示

為家用義式咖啡愛好者打造一個公開的問答論壇。分類:機器、磨豆機、沖煮技巧、咖啡豆、買賣。任何人都可以閱讀;會員以 Email 與密碼註冊,並在發文前完成 Email 驗證。主題串頁面位於 /t/[slug],必須伺服器端渲染,並有獨特的標題與 meta 描述,讓搜尋引擎能讀取。回覆採平面式,依時間排列,支援引用與拇指向上的表情反應。發起主題串的人可以把其中一則回覆標示為採納答案,並顯示在問題下方。新會員的前三篇貼文需等待版主核准,核准前不能張貼連結。版主可以隱藏、鎖定、置頂與移動主題串,查看被檢舉貼文的佇列,而且每個操作都會記錄下來。加入可搜尋標題與貼文、並可依分類篩選的搜尋功能,以及我追蹤的主題串有新回覆時的應用程式內通知。所有資料存入資料庫。

建置步驟

  1. 先做主題串頁面。 建立幾個分類與五十個貼近真實的主題串。在手機上把閱讀、引用與回覆都做好。
  2. 分類與主題串列表。 依最新活動排序、置頂主題串在最上方、已解決標記。
  3. 帳號與驗證。 參見如何為應用程式加入登入。
  4. 版主管理與信任等級。 審核佇列、檢舉、隱藏、鎖定、移動、紀錄。以全新帳號試著張貼連結來測試。
  5. 搜尋。 試試會員真的會輸入的關鍵字。
  6. SEO。 發布後打開一個主題串,檢視原始碼,確認貼文都在 HTML 中。加入主題串的網站地圖。
  7. 放入真實內容。 自己寫下前二十個有用的主題串,或邀請幾位專家加入。空白的論壇沒有人會發第一篇文章。

常見錯誤

  • 空著就上線。 沒有人願意率先發文。請先放入真實的問題與答案。
  • 分類太多。 五個熱門分類勝過二十個冷清的分類。等之後再拆分。
  • 新帳號不需審核。 垃圾機器人很快就會找到新論壇。
  • 未經過濾的貼文 HTML。 貼文中的腳本可能接管其他使用者的工作階段。一定要清理使用者內容。
  • 私人分類外洩。 要檢查搜尋結果與通知,而不只是主題串頁面。
  • 每次載入頁面都計算回覆數。 把數量存在主題串上,並在貼文變動時更新。
  • 沒有刪除帳號的方式。 請先決定離開的會員其貼文要如何處理。

什麼時候論壇軟體是較好的選擇

開源與代管的論壇軟體(例如 Discourse)已經花了多年改進信任等級、防垃圾、Email 整合、版主管理與行動版排版。如果你想要通用型論壇,而且不需要它成為其他應用程式的一部分,安裝或訂閱其中一套通常比自己打造更快、更穩妥。聊天工具適合快速交談,但不利於讓答案被找到。

當論壇是你產品的一部分(例如 SaaS 內的支援論壇、市集中的問答區)、當你需要把自訂資料附加在主題串上(機器型號、訂單、課程單元),或是希望論壇的設計與網址完全屬於你時,就適合自己打造。如果你需要更完整的會員空間,包括個人檔案與活動,請參見如何打造社群平台。

用 Mythex 打造

在 Mythex 中,你用對話描述論壇,在即時預覽中試用,然後發布到公開網址;使用 Pro 方案則可以設定自訂網域。當應用程式需要時,Mythex 會為使用者、主題串與貼文加入專用的 Postgres 資料庫,並為頭像與圖片提供檔案儲存。預設的技術架構是瀏覽器端渲染的 Vite 與 React 應用程式,因此若是公開論壇,建議要求伺服器端渲染的主題串頁面(Next.js 是一個選項),並遵循 SEO 食譜。會員登入與 Email 需要自行帶入:選擇做法與服務商,把金鑰存為專案祕密,代理程式就會幫你接好。在開放註冊前,使用 /test 讓代理程式模擬發文與版主操作,並閱讀我們的AI 打造應用程式安全檢查清單。

常見問題

論壇網站需要哪些功能?

分類、附回覆的主題串、使用者帳號、搜尋,以及版主管理工具。大多數論壇還需要回覆通知、在問答主題中標示最佳答案的方式,以及針對新帳號的垃圾內容防護。

論壇應該公開還是不公開?

公開的論壇可以帶來搜尋流量,因為每個主題串都是人們能在 Google 上找到的頁面。不公開的論壇較適合敏感議題或付費會員。許多論壇會讓人免登入閱讀,只在發文時才要求帳號。

怎麼防止論壇出現垃圾內容?

限制新帳號能做的事:新帳號的前幾篇文章需要審核、在帳號活躍一段時間前禁止張貼連結、限制發文頻率,並讓會員可以檢舉。註冊時驗證 Email,並記錄版主的操作。

是否應該直接使用 Discourse 這類論壇軟體?

如果你想快速擁有功能齊全的論壇,成熟的論壇軟體是比較穩妥的選擇,因為它已經累積多年的版主管理與防垃圾功能。自己打造則適合論壇是更大應用程式的一部分,或需要通用論壇軟體沒有的資料與工作流程的情況。

Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港)