怎么让AI建站自动生成网站地图和robots.txt?

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-08 14:36 ·1 浏览 ·0 回复

学完这篇,你能让 AI 建站项目自动生成并提交 sitemap.xml 和 robots.txt,不用每次加文章都手动改文件。下面以 AI 建站最常产出的 Next.js 14 App Router 项目为例,从文件创建到线上验证一次讲完。

第一步:确认项目是 Next.js 14+ App Router

这一步要确认 AI 生成的网站支持 app/ 目录,做完后你才知道文件该放哪里。打开项目根目录,看有没有 app 文件夹和 package.json。在终端执行:

npm run dev

浏览器打开 http://localhost:3000,能显示首页即可。package.json 里 "next" 版本建议是 14.2.x 或更高。

第二步:让 AI 生成 app/sitemap.ts

这一步让 AI 写出网站地图路由,做完后访问 /sitemap.xml 会返回 XML。在 Cursor 里按 Ctrl+L(Mac 按 Cmd+L)打开 Chat,输入:

在 app/sitemap.ts 生成 MetadataRoute.Sitemap,读取 content/posts 下的 .md 文件名作为文章 slug,包含首页、/about、/blog 和每篇文章,baseUrl 从 NEXT_PUBLIC_SITE_URL 读取,首页 priority 1,文章 priority 0.8,changeFrequency 分别 daily 和 weekly。

AI 生成的核心代码类似:

import { MetadataRoute } from 'next'
import fs from 'fs'
import path from 'path'

export default function sitemap(): MetadataRoute.Sitemap {
  const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://example.com'
  const postsDir = path.join(process.cwd(), 'content/posts')
  const slugs = fs.existsSync(postsDir)
    ? fs.readdirSync(postsDir).filter(f => f.endsWith('.md')).map(f => f.replace(/\.md$/, ''))
    : []

  return [
    { url: baseUrl, lastModified: new Date(), changeFrequency: 'daily', priority: 1 },
    { url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.5 },
    ...slugs.map(slug => ({
      url: `${baseUrl}/blog/${slug}`,
      lastModified: new Date(),
      changeFrequency: 'weekly',
      priority: 0.8,
    })),
  ]
}

注意:/blog/[slug] 页面必须真实存在,否则 sitemap 会提交 404 链接。baseUrl 不要写死 localhost:3000。

第三步:让 AI 生成 app/robots.ts

这一步让 AI 写 robots 规则,做完后 /robots.txt 会告诉搜索引擎哪些能抓、sitemap 在哪。继续在 Chat 输入:

在 app/robots.ts 生成 MetadataRoute.Robots,允许所有爬虫抓取,禁止 /admin 和 /api/,sitemap 指向 ${baseUrl}/sitemap.xml。

生成代码:

import { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://example.com'
  return {
    rules: [{ userAgent: '*', allow: '/', disallow: ['/admin', '/api/'] }],
    sitemap: `${baseUrl}/sitemap.xml`,
    host: baseUrl,
  }
}

注意:测试环境才用 disallow: '/' 屏蔽全站,线上这样写会导致整站不被收录。

第四步:配置正式域名环境变量

这一步让 sitemap 和 robots 输出你的真实域名。本地在项目根目录新建 .env.local,写入:

NEXT_PUBLIC_SITE_URL=https://你的域名.com

线上如果部署在 Vercel,进入 Vercel 项目页,点顶部 Settings,左侧选 Environment Variables,Name 填 NEXT_PUBLIC_SITE_URL,Value 填 https://你的域名.com,Environment 勾选 Production、Preview、Development,点 Save,再点 Deployments 里最新一条右侧 ... 选 Redeploy。

第五步:本地和线上验证

这一步确认文件真的能访问。终端执行:

npm run build && npm start

然后:

curl -I http://localhost:3000/sitemap.xml
curl -I http://localhost:3000/robots.txt

都返回 200 后,部署上线,再访问 https://你的域名.com/sitemap.xml 和 /robots.txt。最后打开 Google Search Console,添加资源,左侧点“站点地图”,输入 sitemap.xml,点“提交”。

第六步:让内容更新后自动刷新

Next.js 默认在构建时生成 sitemap,新文章不重新部署就不会进 sitemap。在 Vercel 项目 Settings > Git > Deploy Hooks,Name 填 cms-update,Branch 填 main,点 Create Hook,把生成的 URL 填到你的 CMS 或 AI 写作工具的 Webhook 里。之后每次发布文章,自动触发重新部署,sitemap 和 robots 一起更新。

如果你用的是 WordPress AI 建站,安装 Rank Math SEO 后,进入 Rank Math SEO > Sitemap Settings 开启 Sitemap,再到 Rank Math SEO > General Settings > Edit robots.txt 编辑规则即可。

小结

  • Next.js 14 App Router 用 app/sitemap.ts 和 app/robots.ts 自动生成两个文件。
  • 域名必须用 NEXT_PUBLIC_SITE_URL 环境变量,不能写死 localhost。
  • 提交前用 curl -I 确认返回 200,再去 Google Search Console 提交 sitemap.xml。
  • 新文章要进 sitemap,需接 Vercel Deploy Hook 或 CMS Webhook 触发重建。
  • robots.txt 别误写 Disallow: /,否则整站不被收录。
版权声明:本文来自 GJ站长论坛《怎么让AI建站自动生成网站地图和robots.txt?》
原文链接:https://www.gj0.com/thread-1005.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~