打法
xiaohui
收录

策思路 SEO 基础建设 · 从零到一搭建技术搜索引擎优化体系

> 你花了好几个月做出来的产品,Google 上搜都搜不到——这不是产品问题,这是搜索引擎根本不知道你存在。本文记录了 c456.com(策思路)从零开始搭建 SEO 基础架构的全过程,包含技术实施细节和避坑经验。 --- 一、引言:一个找不到的网站 事情始于一个再简单不过的反馈:「我在 Google 上搜不到 c456.com。」 这不是因为网站内容不够好——我们发布了信号(Signal)、工具…

正文

你花了好几个月做出来的产品,Google 上搜都搜不到——这不是产品问题,这是搜索引擎根本不知道你存在。本文记录了 c456.com(策思路)从零开始搭建 SEO 基础架构的全过程,包含技术实施细节和避坑经验。


一、引言:一个找不到的网站

事情始于一个再简单不过的反馈:「我在 Google 上搜不到 c456.com。」

这不是因为网站内容不够好——我们发布了信号(Signal)、工具(Tool)、渠道(Channel)、打法(Playbook)等多种类型的内容,涵盖了 AI 工具评测、技术选型对比、开发方法论等高质量信息。但不管怎么搜,c456.com 就像不存在一样。

site:c456.com 在 Google 一查,结果寥寥无几:首页、登录页、几条信号——仅此而已。上百条精心整理的内容,在搜索引擎眼中形同虚设。

这就是我们的起点:一个技术基础尚可、但搜索引擎完全找不到的网站。


二、第一阶段:网站 SEO 审计——先知道哪里有洞

做优化之前,先做诊断。我们用 curl + 搜索引擎 + 在线工具对 c456.com 做了全面体检。

做对了的(好消息)

项目状态说明
SSR 服务端渲染✅ 已启用Rails + Inertia.js SSR 正常,爬虫能拿到完整 HTML
SEO meta 标签✅ 全覆盖SeoHead React 组件为每个页面生成独立的 title/description/OG/Twitter 标签
Canonical URL✅ 已设置每个页面有 <link rel="canonical">,避免重复内容
百度统计✅ 已接入有基础流量监控

c456.com 的技术栈是 Rails 8 + Inertia.js + React(SPA),服务端渲染(SSR)已经启用,这意味着 Google 和百度的爬虫可以看到完整的页面内容,而不只是一个空的 <div id="app">。这对 SPA 站来说是最大的 SEO 门槛——我们提前迈过了。

缺失的(坏消息)

项目状态严重程度
sitemap.xml❌ 不存在(404)🔴 致命
Google Search Console❌ 未注册🔴 致命
百度站长平台❌ 未注册🔴 致命
Google Analytics❌ 未接入🟡 重要
JSON-LD 结构化数据❌ 无 Schema 标记🟡 重要
robots.txt⚠️ 仅 2 行过于简陋⚪ 轻微
og
⚠️ 全部使用同一个 logo🟡 优化项
内容量⚠️ 偏少🔴 长期

关键发现

最致命的问题不是某个单一缺失,而是组合效应

  • 没有 sitemap → 搜索引擎不知道你的网站有哪些页面
  • 没有 Search Console → 无法提交 sitemap,无法监控收录状态
  • 没有结构化数据 → 即使被收录,在搜索结果页也缺乏富媒体展示
  • 没有 Google Analytics → 无法知道流量从哪来、用户怎么找到你

这四个问题环环相扣,让一个技术上做得很好的网站变成了搜索引擎的「隐形人」。


三、中场插曲:给 c456 起个中文名

在动手改代码之前,我们先做了一件更重要的事——给 c456 找中文名。

「c456」这个域名,字母加数字,对搜索引擎来说只是一个标识符。中文用户搜「策略」「思路」之类的中文词时,纯英文域名很难被关联到。更尴尬的是,当你想在文章里自然提及网站名时,「c456」三个字符在中文语境中毫无意义。

经过头脑风暴,最终选定了 「策思路」

元素对应寓意
C (cè)策略、谋策、方法论
思路456 (sīlù)数字谐音,思考的路径
完整策思路策略性思考、方法汇集

读音与 c456 几乎完美对应,品牌一致性极好。更关键的是,「策思路」这三个字天然包含 SEO 价值的关键词——「策略」「思路」都是中文用户搜索工具和方法论时的高频词。

有了中文名,我们的 SEO 策略就有了锚点。文章标题、描述、关键词都可以围绕「策思路」展开。


四、第二阶段:技术实施——代码层面的优化

4.1 sitemap.xml 动态生成

Sitemap(站点地图)是告诉搜索引擎「我的网站有哪些页面」的标准方式。没有它,搜索引擎只能通过外部链接慢慢发现你的内容——对于一个新站来说,这个「慢慢」可能就是几个月。

我们在 Rails 中创建了一个 SitemapController,动态生成 XML 格式的 sitemap:

# app/controllers/sitemap_controller.rb
class SitemapController < ApplicationController
  def index
    @pages = build_sitemap_entries
    render xml: sitemap_xml(@pages)
  end

  private

  def build_sitemap_entries
    entries = []
    # 首页
    entries << sitemap_entry(loc: root_url, changefreq: "daily", priority: "1.0")
    
    # 目录页:信号、工具、渠道、打法、讲解
    %w[signals tools channels playbooks walkthroughs].each do |section|
      entries << sitemap_entry(loc: send(:"#{section}_url"), changefreq: "daily", priority: "0.8")
    end
    
    # 详情页:从数据库读取全部已发布内容
    Intake.where(published: true).find_each do |intake|
      path = case intake.kind
             when "signal" then signal_url(intake)
             when "tool"   then tool_url(intake)
             when "channel" then channel_url(intake)
             end
      entries << sitemap_entry(loc: path, lastmod: intake.updated_at, priority: "0.6")
    end
    
    Playbook.where(published: true).find_each do |playbook|
      entries << sitemap_entry(loc: playbook_url(playbook), lastmod: playbook.updated_at, priority: "0.7")
    end
    
    # 帮助中心页面
    # ...
  end
end

关键设计决策:

  • 动态生成而非静态文件——内容发布后自动出现在 sitemap 中
  • 按内容类型分配优先级 — 打法(0.7)> 信号/工具/渠道(0.6)> 讲解(0.5)
  • lastmod — 让搜索引擎知道哪些页面更新了
  • 路由挂在 GET /sitemap.xml — 标准路径,搜索引擎自动发现

4.2 robots.txt 优化

原来的 robots.txt 只有两行,既没有引用 sitemap,也没有明确告诉爬虫哪些区域不该去:

# 优化前
User-agent: *
Allow: /help
Allow: /help/

# 优化后
User-agent: *
Allow: /
Disallow: /login
Disallow: /auth/
Disallow: /workspace/
Disallow: /admin/
Disallow: /profile
Disallow: /users/

Sitemap: <https://c456.com/sitemap.xml>

关键变更:

  • 明确允许所有公开路径,避免歧义
  • 屏蔽登录、认证、工作间、管理后台等私密区域
  • 最重要的一行:Sitemap: <https://c456.com/sitemap.xml> — 这是搜索引擎发现 sitemap 的标准方式

4.3 JSON-LD 结构化数据注入

结构化数据是让搜索引擎理解页面内容的「说明书」。没有它,Google 只能猜你的页面是什么——猜对了一部分,但展现形式受限。有了它,你的页面可能在搜索结果中获得富媒体展示(富摘要、面包屑导航、站点名称等)。

我们在 React 的 SeoHead 组件中添加了 JSON-LD 输出:

<script type="application/ld+json">
  {JSON.stringify({
    "@context": "<https://schema.org>",
    "@type": ogType === "article" ? "Article" : "WebPage",
    headline: ogType === "article" ? title : undefined,
    name: ogType === "article" ? undefined : fullTitle,
    description: desc,
    url: canonical,
    datePublished: datePublished,
    dateModified: dateModified,
    isPartOf: {
      "@type": "WebSite",
      "name": SITE_NAME,
      "url": baseUrl,
    },
    author: {
      "@type": "Organization",
      "name": SITE_NAME,
    },
  })}
</script>

每个页面自动生成两类 Schema:

Schema 类型页面类型作用
WebSite全部页面告诉 Google 网站名称(含「策思路」)、链接
WebPage列表页/首页描述页面类型和内容
Article详情页包含标题、描述、发布日期、作者,可能触发「文章」富摘要

数据通过 React props 逐页传入,每个内容详情页都携带自己的发布日期和最后修改日期,这对 Google 的「新鲜度」排名信号非常重要。

4.4 Google Analytics 4 接入

没有数据就无法优化。我们添加了 GA4 的通用代码片段,通过环境变量控制启停:

<% ga4_id = ENV.fetch("GA4_MEASUREMENT_ID", "") %>
<% if ga4_id.present? %>
<script async src="<https://www.googletagmanager.com/gtag/js?id=><%= ga4_id %>"></script>
<% end %>

在部署配置中注入 Measurement ID:

# config/deploy.yml
env:
  clear:
    GA4_MEASUREMENT_ID: G-WD31S9B9WF

这样做的优势:

  • 不硬编码 — ID 在部署配置中,切换环境只需改一行
  • 空值自动跳过 — 开发环境不设变量就不加载,不影响本地开发体验
  • 与现有百度统计并存 — 同时监控中文和英文用户行为

4.5 代码汇总

这次 SEO 基础建设涉及 10 个文件、+172 行代码

文件类型作用
app/controllers/sitemap_controller.rb✨ 新增sitemap 动态生成
app/views/shared/_ga4_analytics.html.erb✨ 新增GA4 代码片段
app/javascript/components/seo/SeoHead.tsx✅ 修改增加 JSON-LD 结构化数据
app/javascript/pages/Public/LibraryIntake.tsx✅ 修改传递发布日期
app/javascript/pages/Public/LibraryPlaybook.tsx✅ 修改传递发布日期
app/javascript/pages/Walkthroughs/Show.tsx✅ 修改传递发布日期
app/views/layouts/inertia_application.html.erb✅ 修改引入 GA4 片段
config/routes.rb✅ 修改添加 sitemap 路由
config/deploy.yml✅ 修改GA4 环境变量
public/robots.txt✅ 修改优化 + 引用 sitemap

五、第三阶段:搜索引擎平台注册

代码改完了,但搜索引擎还不知道你改了。手动注册是必要步骤。

Google Search Console

Google Search Console 是 Google 官方提供的站点管理工具。添加站点后,需要验证所有权(推荐 DNS TXT 记录方式,最持久、不依赖文件部署),然后提交 sitemap。

验证方式对比:

方式持久性易用性推荐度
DNS TXT 记录永久有效需要操作 DNS⭐ 首选
HTML 文件上传部署后有效最简单⭐ 次选
Google Analytics间接略麻烦备选
Google Tag Manager间接略麻烦备选

验证通过后,在左侧 Sitemaps 菜单中输入 sitemap.xml 并提交。Google 会在 24-48 小时内开始爬取。

百度站长平台

百度站长平台 是百度搜索的站点管理工具。提交流程类似:添加站点 → 验证所有权 → 提交 sitemap。

注意:百度站长平台要求网站已完成 ICP 备案。如果提交失败,请先确认备案信息在工信部可查,且站点页面底部已正确展示备案号。


六、预期效果与后续计划

短期效果(1-2 周)

指标预期
sitemap 被爬取提交后 24-48 小时
首页索引已有,保持
信号/工具/渠道页被收录1-2 周内逐步出现
GA4 开始记录数据部署即生效

中期计划(1-2 个月)

技术 SEO 只是基础,下一步是「内容 SEO + 主动分发」:

  1. seo_description 字段 — 从机械截取首段改为人工优化的含关键词摘要
  2. 内容互链 — 信号 → 工具 → 打法之间做关联推荐,引导爬虫深入
  3. 多平台分发 — 精选内容同步到知乎、掘金、CSDN等中文平台,带原文链接
  4. 持续内容输出 — 多发工具评测、对比文章、技术分享,累积长尾关键词

长期策略(3-6 个月)

策思路的定位是「AI 时代的方法论平台」——它不是另一个工具导航站,而是帮助用户从「发现信号」走到「形成打法」的完整链路。搜索引擎优化的最终目标是:

  • 当用户搜索「XX 工具 vs YY 工具」时,策思路的对比排在前面
  • 当用户搜索「AI 开发方法论」时,策思路的打法文章提供答案
  • 当用户搜索「Baklib 评测」时,策思路的深度分析成为参考

七、结语:SEO 是一场马拉松

这次基础建设解决了「搜索引擎找不到你」的问题——这是从 0 到 0.1 的一步。但从「被收录」到「排名靠前」,还有很长的路。

技术 SEO 的关键经验:

教训说明
先诊断再动手curl 一把就能发现 robots.txt、sitemap 等基础问题
基础打牢比花哨重要sitemap + GSC + GA 的优先级远高于关键词研究
中文站需要中文名品牌中文名直接影响搜索关联性
SSR 是 SPA 的首道门槛没有 SSR,后续所有 SEO 优化都在空壳上跳舞
代码改完只是开始人工注册和提交 sitemap 是大多数开发者漏掉的一步

如果你也在运营一个技术型产品网站,不妨从这三件事开始:

  1. 检查你的 sitemap.xml 是否存活
  2. 确认你的 robots.txt 没有意外屏蔽爬虫
  3. 注册 Search Console 并提交 sitemap

这三步不需要花一分钱,却能解决 80% 的「搜不到」问题。


延展阅读

与其它条目的关联

信号、工具、渠道、打法可互相引用;点各卡片右上角加号可弹窗录入,未登录时会提示登录。补全后此处会显示可点链接。

信号

暂无关联的信号。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

工具

暂无关联的工具。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

渠道

暂无关联的渠道。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。

打法

暂无关联的打法。请点右上角加号快速录入;未登录时会提示先登录。补全后在此显示可点链接。