SEO(Search Engine Optimization,搜索引擎优化) 简单来说,就是通过一系列技术和内容手段,让你的网站在搜索引擎(如 Google、百度、必应)的搜索结果中排名更高,从而获得更多的免费(自然)流量
为了确保搜索引擎爬虫能顺畅地抓取和理解你的网站。
关键词策略: 调研用户会搜什么(使用 Google Keyword Planner 等工具),将关键词自然地分布在:标题 (Title Tag):最重要的位置。元描述 (Meta Description):吸引用户点击的广告词。正文前 100 字:让爬虫快速确认主题。
内容深度与质量: 搜索引擎喜欢能一次性解决用户问题的长难内容,而不是简单的几句套话。
图片优化:必须添加 Alt 属性(描述图片内容),因为爬虫看不见图片,只能读文字。使用 WebP 等现代格式减小体积。
高质量外链 (Backlinks): 如果有权威网站链接到你,搜索引擎会认为你的网站也是权威的。
社交媒体信号: 内容在社交平台上的转发和讨论虽然不直接计入排名,但能显著增加曝光度和引流。
SPA 的困境(两阶段抓取):
Google 等爬虫抓取 SPA 时会经历两个阶段:
1. 抓取初始 HTML(此时是空的);
2. 进入队列等待渲染(爬虫有空时才会执行 JS 生成内容)。这个等待期可能是几小时,也可能是几周,甚至可能因为 JS 报错导致爬虫直接放弃渲染,导致内容无法被搜索到
Nuxt 的优势(一步到位):
Nuxt 采用 SSR(服务端渲染)。当爬虫请求页面时,服务器已经把内容填进了 HTML 里。爬虫在第一阶段就能直接读到完整的文本、链接和结构,无需等待 JS 执行
搜索引擎给每个网站的抓取资源(时间、算力)是有限的,这被称为“爬虫预算”。
搜索引擎(尤其是 Google)会将网站的性能作为排名权重。Nuxt 在这两个指标上具有压倒性优势:
在博客中经过测试,Lighthouse测试,SEO 由 83分 提升到了 100 🏅🏅🏅
例如:(更多的配置没有添加)
meta: [
{ name: 'description', content: '布莱克的技术博客:前端、算法、工程化与生活记录。' },
{ name: 'robots', content: 'index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1' },
]作用:
⚠️此处配置会被页面级覆盖,在动态页面中通过 useHead 进行覆盖
Nitro 是 Nuxt 3 的服务端引擎,负责将你的 Nuxt 应用编译、部署、运行在任何支持 JavaScript 的环境中
站点地图(sitemap.xml)告诉搜索引擎你的网站有哪些页面、上次更新时间以及更新频率,是爬虫抓取的路线图。没有它,搜索引擎可能漏掉你新发布的文章
nitro: {
routeRules: {
// 静态资源缓存控制
'/robots.txt': {
headers: { 'cache-control': 'public, max-age=3600' }
},
'/sitemap.xml': {
headers: { 'cache-control': 'public, max-age=600' }
}
}
}在server/routes/下面创建robots.txt以及sitemap.xml文件
作用: 告诉搜索引擎爬虫哪些页面可以抓取,哪些不可以。
# robots.txt 内容示例
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /login/
Disallow: /api/
Sitemap: https://你的域名/sitemap.xml作用: 告诉搜索引擎你的网站有哪些重要的 URL,以及它们的优先级和更新频率。
<!-- ✅ Sitemap 里有这些 -->
<url>
<loc>https://blog.com/articles/123</loc> <!-- 地址 -->
<lastmod>2025-01-15</lastmod> <!-- 更新时间 -->
<changefreq>monthly</changefreq> <!-- 更新频率 -->
</url>
<!-- ❌ Sitemap 里没有这些 -->
<!-- 文章标题 -->
<!-- 文章内容 -->
<!-- 文章图片 -->
<!-- 文章作者 -->
<!-- 任何实际的内容 -->
| sitemap 的作用 | 告诉搜索引擎"有哪些页面",而不是"页面里有什么" |
| 搜索引擎如何知道内容 | 根据 sitemap 的 URL,去真实访问页面,抓取 HTML 内容 |
| sitemap 的必要性 | 确保所有重要页面都能被搜索引擎发现 |
| sitemap 能提升排名吗 | 不能直接提升,但能让页面有机会被索引 |
| 没有 sitemap 会怎样 | 部分页面可能永远不被搜索引擎发现 |
useSeoMeta (页面级精准控制)useSeoMeta是 Nuxt 推荐的 SEO 元标签注入方式,它最大的优势是将 Open Graph(社交分享)、Twitter Card 和标准元标签平铺在一个对象里,避免了你手动处理property和name混用的麻烦
在composable中封装seo相关函数,在页面中引用
| 对比项 | useSeoMeta | useHead |
|---|---|---|
| 推荐程度 | ✅ Nuxt 官方推荐 | 可用,但更底层 |
| 写法 | 平铺对象,直观 | 需手动区分 meta 数组 |
| XSS 防护 | 自动转义 | 需手动处理 |
| TypeScript | 100+ 类型完整 | 类型支持较弱 |
| OG/Twitter 处理 | 自动合并 | 需手动添加 property |
