Back to Tutorials
SEO & Growth18 min2026-04-23

From 0 to Indexed in 24 Hours: The Solo SEO Playbook That Actually Works

你花了一个月用 Cursor 做了个产品,部署到 Vercel,域名配好了,朋友们说"真不错"。然后呢?你在 Google 搜自己的域名,一片空白。这是每个独立开发者的噩梦:产品上线了,但搜索引擎不知道你存在。不被收录 = 没有自然流量 = 没有客户 = 没有收入。

这篇教程记录我如何在 2026 年 4 月 20-23 日这 72 小时内,把 onepersoncompany.one 从"完全搜不到"推到"Google 已收录、Bing 已验证、百度已推送"的完整实战流程。全程代码可抄,命令可粘贴。

为什么 SEO 对一人公司特别重要?

买广告需要预算。社交媒体需要持续产出。SEO 是唯一的"一次投入、长期被动收益"的获客渠道。Pieter Levels 的 Nomad List 每月 30 万自然搜索访客,90% 来自 Google;ShipFast 的 Marc Lou 做了 SEO 之后收入从 $5K MRR 翻到 $50K MRR。这不是魔法,是基础建设。

🚨 第 0 步:先诊断,不要盲目优化

大多数独立开发者做 SEO 的第一个错是:听说"加 meta tag"就加,听说"提交 sitemap"就提交。实际上你得先知道为什么搜不到。用 3 个命令一次性扫清:

诊断命令

# 1. 检查 robots.txt

curl -s https://你的域名.com/robots.txt

# 2. 检查 sitemap

curl -s https://你的域名.com/sitemap.xml

# 3. 看首页 HTML 是否有 noindex 陷阱

curl -s https://你的域名.com | grep -oE "(noindex|robots)"

我第一次跑这三条命令,结果震惊:

这就是为什么 一个月都没被收录。Next.js 默认在某些 fallback 路径会注入 noindex,必须显式覆盖。很多独立开发者的网站都有这个隐藏陷阱。

🏗 第 1 步:SEO 基础设施的 3 个文件

Next.js 13+ 的 App Router 下,搜索引擎识别一个站点需要三个关键文件,缺一不可:

文件作用放哪
layout.tsx metadata声明 title/description/robots/canonical/OGsrc/app/layout.tsx
robots.ts告诉爬虫哪些能爬哪些不能src/app/robots.ts(Next.js 自动生成 /robots.txt)
sitemap.ts给爬虫一份 URL 清单src/app/sitemap.ts(自动生成 /sitemap.xml)

关键修复:显式声明 robots

src/app/layout.tsx 的 metadata 里,必须手动写 robots,否则 Next.js 可能给你默认 noindex:

export const metadata: Metadata = {

metadataBase: new URL('https://onepersoncompany.one'),

title: { default: '一人公司 AI工具导航', template: '%s | One Person Company' },

description: '...',

robots: {

index: true,

follow: true,

googleBot: { index: true, follow: true, 'max-image-preview': 'large' },

},

}

robots.ts — 允许 AI 爬虫很关键

2026 年的 SEO 不能只考虑 Google/Bing/百度。被 ChatGPT / Claude / Perplexity 引用 = 新的流量来源。显式允许这些 AI 爬虫:

// src/app/robots.ts

import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {

return {

rules: [

{ userAgent: '*', allow: '/', disallow: ['/admin', '/api/'] },

{ userAgent: 'GPTBot', allow: '/' }, // OpenAI/ChatGPT

{ userAgent: 'ClaudeBot', allow: '/' }, // Anthropic/Claude

{ userAgent: 'PerplexityBot', allow: '/' }, // Perplexity

{ userAgent: 'Google-Extended', allow: '/' }, // Gemini

],

sitemap: 'https://onepersoncompany.one/sitemap.xml',

}

}

sitemap.ts — 带权重的页面清单

// src/app/sitemap.ts

export default function sitemap(): MetadataRoute.Sitemap {

const now = new Date()

return [

{ url: 'https://site.com/', lastModified: now, changeFrequency: 'weekly', priority: 1.0 },

{ url: 'https://site.com/nav', lastModified: now, changeFrequency: 'weekly', priority: 0.9 },

{ url: 'https://site.com/tutorials', lastModified: now, changeFrequency: 'weekly', priority: 0.8 },

]

}

🌐 第 2 步:Google Search Console(免费最强武器)

基础设施就绪后,去 search.google.com/search-console 添加站点。如果你用 Vercel 部署 + 登录 GSC 用的是同一个 Google 账号,GSC 会自动验证所有权,跳过 meta tag 这一步。这是 Vercel 和 Google 的深度集成,绝大多数独立开发者不知道。

验证通过后必做 3 件事:

我的真实时间线:4月23日上午在 GSC 提交 sitemap + 请求索引,当天下午 Google 就显示"网址已收录到 Google"。从"完全搜不到"到"已索引"总计 6 小时。

🅿️ 第 3 步:百度收录(中文流量必做)

百度完全独立于 Google。如果你的用户有 30% 以上是中文用户,必须单独搞百度。流程比 Google 繁琐:

百度三步走

重要坑:www vs 裸域

百度把 https://你的域名.comhttps://www.你的域名.com 当作两个不同的站。如果你两个都能访问(没做 301 跳转),两边都要添加,否则只收录一边。

Next.js metadata 支持同一个 name 的多个 meta tag,用数组:

verification: {

other: {

'baidu-site-verification': ['codeva-code1', 'codeva-code2'], // www + apex

'msvalidate.01': 'your-bing-code',

},

}

百度推送 API 的致命坑

百度的 URL 推送接口长这样:

http://data.zz.baidu.com/urls?site=YOUR_SITE&token=YOUR_TOKEN

几乎所有教程都会告诉你 encodeURIComponent 一下 URL 参数。对百度这是错的。百度 API 不接受 URL 编码过的 site 参数,会返回 site init fail。正确写法:

// ❌ 错:百度 API 会返回 site init fail

fetch(`http://data.zz.baidu.com/urls?site=${encodeURIComponent(SITE)}&token=${TOKEN}`)

// ✅ 对:原样传

fetch(`http://data.zz.baidu.com/urls?site=${SITE}&token=${TOKEN}`, {

method: 'POST',

headers: { 'Content-Type': 'text/plain' },

body: urls.join('\n'), // 每行一个 URL

})

我在这个 bug 上浪费了 20 分钟。成功后返回:{ success: 8, remain: 0 } — 8 个 URL 全部接收,今日配额用完。

🚀 第 4 步:IndexNow(一次搞定 Bing/Yandex/Seznam)

IndexNow 是 Microsoft + Yandex 主推的协议:一次 POST 推送,同时通知 Bing、Yandex、Seznam、Naver 等所有参与搜索引擎。Google 没加入(Google 不会),但这对非 Google 流量来源是王牌。

4.1 生成密钥文件

# 生成 32 位 key(去掉连字符)

KEY=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')

echo $KEY

# 把 key 自己作为内容放到 public/

echo -n "$KEY" > public/$KEY.txt

部署后验证:curl https://你的域名.com/$KEY.txt 必须返回 200 并显示 key 本身。

4.2 推送 URL

await fetch('https://api.indexnow.org/IndexNow', {

method: 'POST',

headers: { 'Content-Type': 'application/json; charset=utf-8' },

body: JSON.stringify({

host: 'onepersoncompany.one',

key: KEY,

keyLocation: `https://onepersoncompany.one/${KEY}.txt`,

urlList: ['https://...', 'https://...']

})

}) // 预期 202 Accepted

📋 第 5 步:一键推送脚本(最爽的部分)

把上面所有 API 整合成一个 npm 脚本,以后每次更新内容跑 npm run push-seo,自动通知所有引擎。完整脚本放 scripts/push-search-engines.ts

const SITE_URL = 'https://onepersoncompany.one'

const INDEXNOW_KEY = '你的32位key'

async function main() {

const urls = [

`${SITE_URL}/`,

`${SITE_URL}/nav`,

`${SITE_URL}/tutorials`,

// ... 其他页面

]

await Promise.all([

pushIndexNow(urls), // Bing + Yandex + Seznam

pushBaidu(urls), // 百度

])

}

package.json 加:"push-seo": "tsx scripts/push-search-engines.ts"

🏷 第 6 步:JSON-LD 结构化数据

结构化数据告诉 Google "这个页面是什么",让搜索结果变得更漂亮(品牌名、搜索框、评分等富片段)。2 个必做:

Organization Schema

<script type="application/ld+json">

{

"@context": "https://schema.org",

"@type": "Organization",

"name": "One Person Company",

"url": "https://onepersoncompany.one",

"logo": "https://onepersoncompany.one/favicon.svg"

}

</script>

WebSite Schema(含站内搜索框)

给 Google 加 SearchAction,让它在搜索结果里直接显示你的站内搜索框(暴涨点击率):

{

"@type": "WebSite",

"potentialAction": {

"@type": "SearchAction",

"target": "https://你.com/nav?q={search_term_string}",

"query-input": "required name=search_term_string"

}

}

📊 第 7 步:24 小时后的验证

部署并提交后,如何知道到底成不成?用这套自检命令:

# 1. 基础设施自检

curl -s https://你.com/robots.txt | head -5 # 应看到 User-Agent: *

curl -s https://你.com/sitemap.xml | head -5 # 应看到 <?xml

curl -s https://你.com/ | grep -oE 'noindex|content="index' # 只应有 "index"

# 2. Google 收录自检

# 浏览器搜: site:你.com # 应有结果

# 3. 结构化数据自检

# https://search.google.com/test/rich-results # 贴你的 URL

⏰ 预期时间线(亲测)

平台搜 site: 收录时间搜关键词可搜到
Google当天或次日(GSC 手动请求后)1-2 周
Bing3-5 天(IndexNow 加速)1-2 周
百度3-7 天(推送过 token)2-4 周
DuckDuckGo3-5 天(用 Bing 数据)1-2 周
Yandex3-7 天(IndexNow 推过)2-3 周
Perplexity AI1-2 周2-3 周
ChatGPT 联网2-3 周(跟 Bing)3-4 周
Claude 联网2-4 周1 个月+

💰 为什么这对一人公司直接等于钱

SEO 不是技术炫技,它是独立开发者唯一能规模化的免费流量渠道。算个账:

Pieter Levels 的 Nomad List 每月 30 万自然访客,90% 来自 Google 搜索 "digital nomad cities"、"best cities to work remotely"。这些流量 $0 成本,年收入 $3M+。秘诀不是什么黑帽,就是这篇教程里的基础建设 + 持续内容更新。

独立开发者最大的 SEO 误区:以为 SEO 是内容营销的后期优化。真相是:SEO 是第一天部署就要做的基础建设。你搭建 robots / sitemap / schema 的那一天,决定了你 6 个月后有没有流量。

🎯 你现在应该做的 3 件事(按优先级)

📚 延伸阅读

💬 有问题找我

这套流程跑完如果还搜不到你,或者卡在某一步,加我微信 LIR--3point14 直接聊。我自己用这套流程做的这个站,从部署到被 Google 收录 72 小时,亲测有效。