构建目录网站
数据模型、模板化渲染、可索引性关卡和程序化内部链接。基于HostList.io和Not Another Sunday在六位数页面规模上的实战经验。
本指南是什么
目录网站和列表平台是我在有意义的规模上实现过的特定类别的程序化SEO项目。HostList.io大约有28,000家网络托管公司被索引,跨越类别、地区和价格等级,全部通过结构化数据模型以程序方式生成。Not Another Sunday有137,000个英国酒吧、酒馆和餐厅。两者都运行在同一种架构模式上:干净的数据模型、模板化页面渲染器、严格的可索引性关卡和程序化内部链接图。
本指南从运营者的角度介绍如何构建一个在2026年能经受住搜索引擎审查的目录或列表平台、要避免的事项,以及传统建议中在实践中错误的部分。基于我个人和Seahawk Media客户参与中运营多个目录平台的经验。
目录网站何时是正确的产品
目录网站在三件事同时成立时获胜:一个市场分散且存在许多竞争或相似的实体、受众使用对比意图进行搜索(最好的、顶级的、对比、最便宜的),以及不存在单一主导聚合器已经拥有搜索结果页面的情况。
成功的例子:网络托管公司(分散化、具有对比性、没有单一的谷歌自有聚合器)、伦敦餐厅(分散化、查询意图强烈、现有聚合器正在衰弱)、按类别划分的小众软件工具(分散化、对比网站的质量不一致)。
失败的例子:谷歌本身是主导聚合器的任何领域(职位、航班、某些市场的抵押贷款)、实体数量太少以至于无法支撑数千个页面的任何领域(例如单个城市的顶级律师事务所)、对比标准过于主观而无法在数据模型中编码的任何领域。
数据模型决策
从一开始就规范化
每个实体(公司、位置、产品)都会获得一个具有稳定ID和永不改变的slug的单一规范行。每个属性(类别、价格等级、区域、功能)都有自己的表或枚举,而不是任意的文本字段。多对多关系使用联接表。在第一天就搞错这个决定的代价是多年的slug不稳定和破坏的重定向。
Slug永远有效
一旦目录页面被谷歌索引,slug就不应该改变。使用slug-of-record模式:从实体名称进行确定性生成、通过数字后缀处理冲突,以及一个映射任何历史slug到其当前slug的查询表以实现永久301重定向。我们在HostList.io上有一个slug稳定性规则,三年来未曾改变。
可扩展的架构设计
在Supabase上:一个实体表包含主记录、一个类别表、一个属性表、多对多关系的联接表,以及一个生成的唯一computed_slug。RLS策略允许对已发布行的公开读取,仅限管理员写入。在你在页面级别查询的每一列上建立索引。HostList.io的架构大约有十二个表,自启动以来就不需要结构性更改。
模板渲染器
一个模板,多张面孔
一个目录网站大约有六种页面原型:实体页面、分类列表、跨分类对比、地域页面、首页和搜索页面。每一种都使用一个模板来呈现数千个页面。其中的纪律是:让模板足够好,以至于没有单个页面会从特殊处理中受益,并抵制特殊处理的诱惑。
首屏独特性
每个实体页面在首屏上都必须有唯一的内容:唯一的开场段落、唯一的关键信息、唯一的定价或功能数据。这些唯一的内容可以通过数据模型以程序方式生成(HostList.io 通过插入公司名称、成立年份、主要市场和一个差异化事实的模板化开场段落来实现这一点),但它必须读起来像是为该实体量身定制的,而不是填空模板。
大规模架构标记
每个实体页面都会输出包含 name、url、address(如果适用)、aggregateRating(如果真正可用)和指向已验证社交资料的 sameAs 链接的 Organization 或 LocalBusiness 架构。每个分类和实体页面上都有 BreadcrumbList。每个分类列表上都有 ItemList。架构层是让目录对谷歌和 AI 表面都可机读的关键。
防止灾难的索引可行性门槛
有用内容更新是目录网站面临的最大威胁,也是程序化网站域范围排名崩溃的最常见原因。对策是一个逐页的索引可行性门槛,决定哪些页面值得索引。
每个页面的质量阈值
低于内容质量阈值的页面在页面本身上获得 noindex,不管网站其余部分的配置如何。我们应用的质量阈值示例:唯一内容的最少字数(HostList.io 为 300 字),填充的结构化数据字段的最少数量(托管公司为 12 个中的 8 个),指向该页面的内部链接的最少数量(来自其他实体或分类页面的 3 个传入链接)。
网站地图遵循门槛规则
网站地图不包含任何受限页面。网站地图是你能发送给Google的最可靠信号,用来表明你希望索引哪些页面;从网站地图中排除但可通过爬虫抓取的页面会被爬取得较少,排名也较弱。网站地图纪律保持索引表面干净。
Robots和noindex分层应用
我们不使用robots.txt来做索引决策;robots.txt完全阻止爬虫,这会削弱Google对noindex头的执行能力。正确的做法是:允许爬虫抓取,在受限页面的元robots头上设置noindex,从网站地图中排除。
内部链接图
编程式链接,以编程方式实现
在目录层级上,内部链接必须由程序生成,而不是手工策划。每个实体页面都链接到它的父类别、相同类别的兄弟实体(属性相似),适用的区域页面,以及首页。每个类别页面链接到它的子实体、父类别和相邻类别。该图在构建时计算,每当添加或删除实体时都会更新。
锚文本多样性
内部锚文本必须多样化。用相同锚文本将8000个页面链接到一个类别页面是强烈的负面信号。我们在一组模板中轮换锚文本:"[category] companies"、"best [category] services"、"[category] at [region]"、"[entity] alternatives"。轮换对于每个源页面是确定的,所以图在重建过程中保持稳定。
每段最多三个内部链接
内部链接数量多没问题;聚集链接会让页面看起来像自动生成的。我们限制每段落三个内部链接、每页三十个,其余分散在页面各处。这是编辑层面的纪律,在模板级别应用。
目录的托管和基础设施
静态渲染,定期重新验证
在 Next.js 上:构建时静态生成,针对实体页面的 ISR,24 小时重新验证窗口,通过管理后台更新实体时按需重新验证。Vercel 轻松处理 28,000 个页面;成本杠杆是 ISR 写入事件,我们通过严格限制重新验证为仅实体变更而非每次内容调整,来保持可控。
数据库连接池
直接从页面模板查询 Supabase 无法扩展;完整重建期间会触发连接限制。我们使用静态生成模式:构建时用几个大查询获取所有页面,从内存数据生成页面。页面渲染从不直接访问数据库。HostList.io 在 28,000 个页面的重建时间保持在十分钟以内。
CDN 和边缘缓存
源站前总是使用 Cloudflare。免费层舒适处理目录流量;付费层在流量需要时添加 Argo 用于全球路由。在典型目录流量档次,CDN 缓存将源站负载降至公共流量的约 5%。
诊断目录健康的指标
我在运营的每个目录网站每周检查的三个指标:
已索引页面与已发布页面
Search Console > Pages > Indexed 与你的网站地图计数对比。健康状态:90% 以上。低于 80%:Google 对信号质量有疑虑;审查你的门槛设置。低于 70%:结构性问题,可能是内容不足或重复意图。
按模板原型分类的平均排名
Search Console 按网址模式筛选,按实体/分类/地区分段。告诉你哪个模板有效,哪个在拖累域名。我们在 HostList.io 上使用这个指标在 7 天内发现了模板回退。
每个已索引页面的点击数
总点击数除以已索引页面,按周统计。健康的目录站点:0.3 到 1.5。低于 0.2:索引范围过广,没有流量的页面在稀释域名。收紧门槛。
摧毁目录站点的错误
五个曾经杀死过我审计的目录站点的错误:
1. 手工策划的内部链接在添加内容时未能保留。图谱从第一天起就需要程序化。
2. 当实体名称被纠正时改变的 Slug。即使一个没有 301 重定向的 Slug 变化也会损失大量排名信号;十个 Slug 变化可能是致命的。
3. 没有独特内容的可索引页面。有用内容更新对那些分类页面读起来都像同样模板的目录毫不留情。
4. 带有虚假或无法验证的评分的 AggregateRating 模式。Google 会检测到这一点并全局降低该模式的价值。仅当评分真实且可验证时才使用 AggregateRating。
5. 将目录视为一个启动项目而非持续运营关注点。目录需要主动维护:删除过时的实体、添加新实体、修剪损坏的外部链接、保持模式同步。没有这样做,目录会在 12 到 24 个月内退化。
总结
2026 年成功的目录网站是一个干净的数据模型、一个有纪律的模板渲染器、一个严格的可索引性门控、一个程序化的内部链接图,以及持续的运营关注。架构是可重复的;变化的是数据质量和关于哪些实体和分类应该获得可索引表面的编辑判断。
你不需要在第一天就做完所有这些。你需要知道你还没有构建哪些,以及在 Google 注意到之前修复下一个。
我们在 Seahawk Media 从 18,000 USD 开始构建目录和列表平台。HostList.io 案例研究说明了大规模的模式;关于你的特定目录应该是什么样子的讨论是免费的。