惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
S
Schneier on Security
L
LangChain Blog
Jina AI
Jina AI
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
T
Tenable Blog
B
Blog RSS Feed
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
W
WeLiveSecurity
I
InfoQ
The Hacker News
The Hacker News
雷峰网
雷峰网
月光博客
月光博客
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
Hacker News: Ask HN
Hacker News: Ask HN
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
P
Privacy International News Feed
Cyberwarzone
Cyberwarzone
S
SegmentFault 最新的问题
L
Lohrmann on Cybersecurity
人人都是产品经理
人人都是产品经理
V
V2EX
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Cybersecurity and Infrastructure Security Agency CISA
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
Nuxt的SEO实践 - 少数派
2025-05-21 · via 少数派

1.引言

Nuxt框架在SEO方面的优势主要体现在以下几个方面:

  • 服务器端渲染(SSR): Nuxt默认支持SSR,这意味着搜索引擎爬虫可以直接看到完整的页面内容,而不需要执行JavaScript。
  • 内置的元标签管理: Nuxt提供了比Next更简单的API来管理标签,包括title, meta描述等关键SEO元素。
  • 静态站点生成(SSG): 通过nuxt generate命令,可以生成完全静态的网站,进一步提高了性能和SEO友好度。

2.Nuxt内置的SEO功能

Nuxt框架内置了多个强大的SEO工具,让开发者可以轻松地优化他们的应用程序。让我们详细了解这些功能:

useHead 和 useSeoMeta 组合式函数

Nuxt有2个组合式函数,使得管理头部元标签变得更加简单和灵活:

  • useHead: 这个函数允许你动态设置<head>标签的内容。
useHead({
  title: 'My Amazing Site',
  meta: [{ name: 'description', content: 'This is my amazing site built with Nuxt 3' }],
  link: [{ rel: 'canonical', href: 'https://example.com' }]
})
  • useSeoMeta: 这个函数专门用于设置SEO相关的元标签。
useSeoMeta({
  title: 'My Amazing Site',
  ogTitle: 'My Amazing Site - The Best Site Ever',
  description: 'This is my amazing site built with Nuxt 3',
  ogDescription: 'Experience the best site ever built with Nuxt 3',
  ogImage: 'https://example.com/image.jpg'
})

动态元标签管理

Nuxt允许你根据页面内容或路由动态地更新元标签。这对于创建独特的、针对每个页面优化的元描述和标题非常有用。

const route = useRoute()

useHead(() => ({
  title: `${route.params.productName} - Our Store`,
  meta: [
    { name: 'description', content: `Learn more about ${route.params.productName} and purchase it from our store.` }
  ]
}))

自动生成规范链接(canonical URLs)

Nuxt可以自动为你的页面生成规范链接,这有助于防止重复内容问题。你可以在nuxt.config.js中配置这个功能:

export default defineNuxtConfig({
  app: {
    head: {
      link: [{ rel: 'canonical', href: 'https://example.com' }]
    }
  }
})

这些内置功能为Nuxt应用提供了坚实的SEO基础。在下一节中,我们将探讨如何使用@nuxtjs/seo模块来进一步增强你的SEO策略。

3.@nuxtjs/seo 模块

@nuxtjs/seo 是一个功能强大的 Nuxt.js 模块,专门用于优化网站的搜索引擎表现。它提供了一套全面的 SEO 工具,使开发者能够轻松实现各种 SEO 最佳实践。

功能介绍和使用方法

@nuxtjs/seo 模块主要提供以下功能:

  • 自动生成和管理元标签
  • 创建结构化数据(Schema.org)
  • 生成站点地图(Sitemap)
  • 配置 robots.txt
  • 提供动态 SEO 规则生成

要使用 @nuxtjs/seo 模块,首先需要安装:

npm install @nuxtjs/seo

然后在 nuxt.config.ts 文件中添加模块:

export default defineNuxtConfig({
  modules: ['@nuxtjs/seo']
})

在 nuxt.config 中配置 SEO

@nuxtjs/seo 模块允许你在 nuxt.config.ts 中直接配置 SEO 设置。

site 配置

site 配置定义了网站的基本信息,这是在使用nuxtjs/seo必须的:

export default defineNuxtConfig({
  site: {
    url: 'https://example.com',
    name: 'My Awesome Site',
    description: 'This is my awesome website',
    defaultLocale: 'en',
    enabled: true,
    debug: false,
    indexable: true,
    trailingSlash: false
  }
})

主要参数说明:

  • url: 网站的规范 URL
  • name: 网站名称
  • description: 网站描述
  • defaultLocale: 默认语言
  • enabled: 是否启用 site 配置(默认为 true)
  • debug: 是否启用调试模式(默认为 false)
  • indexable: 控制网站是否可以被搜索引擎索引(默认在生产环境为 true)
  • trailingSlash: 控制 URL 是否应该包含尾部斜杠(默认为 false)

schemaOrg 配置

schemaOrg 配置用于生成结构化数据也就是ld-json:

export default defineNuxtConfig({
  schemaOrg: {
    identity: {
      type: 'Organization',
      name: 'Example Company',
      url: 'https://example.com',
      logo: 'https://example.com/logo.png'
    },
    defaults: true,
    minify: true,
    reactive: false,
    enabled: true,
    debug: false
  }
})

主要参数说明:

  • identity: 定义网站或组织的身份信息
  • defaults: 是否启用默认的 Schema.org 设置(默认为 true)
  • minify: 是否压缩 Schema.org 输出(默认在生产环境为 true)
  • reactive: 是否启用客户端反应性(默认在开发环境或非 SSR 模式下为 true)
  • enabled: 是否启用 Schema.org(默认为 true)
  • debug: 是否启用调试模式(默认为 false)

robots.txt 配置

@nuxtjs/seo 模块允许你配置 robots.txt 文件:

export default defineNuxtConfig({
  robots: {
    UserAgent: '*',
    Disallow: '/private',
    Allow: '/',
    Sitemap: 'https://example.com/sitemap.xml'
  }
})

这将生成一个 robots.txt 文件,允许所有搜索引擎爬虫访问除 /private 目录外的所有页面,并指向你的站点地图。

sitemap 配置

站点地图配置对于帮助搜索引擎发现和索引你的网站内容至关重要,这个配置会自动帮你生成文件路由的页面,如果你需要额外的内容,就使用sources配置
添加一个Nuxt的SeverApi返回额外的结果。

export default defineNuxtConfig({
  sitemap: {
    enabled: true,
    sortEntries: true,
    sources: ['/api/sitemap-urls'],
    excludeAppSources: false,
    autoLastmod: true,
    sitemaps: false,
    defaultSitemapsChunkSize: 1000,
    include: ['/**'],
    exclude: ['/admin/**'],
    xsl: '/__sitemap__/style.xsl',
    discoverImages: true,
    discoverVideos: true,
    sitemapName: 'sitemap.xml',
    cacheMaxAgeSeconds: 600,
    sitemapsPathPrefix: '/__sitemap__/',
    debug: false
  }
})

主要参数说明:

  • enabled: 是否生成站点地图(默认为 true)
  • sortEntries: 是否对站点地图条目进行排序(默认为 true)
  • sources: 用于站点地图的数据源
 // server/api/__sitemap__/urls.ts 通常在这个位置定义
  import { defineSitemapEventHandler } from '#imports'
  import { characterUrls } from '~/characterUrls'

  export default defineSitemapEventHandler(async () => {
    const internalLinks = await $fetch('/api/internal-links')
    if (internalLinks) {
      const internalLinksNodes = internalLinks.map((link) =>
        asSitemapUrl({ loc: link, lastmod: new Date().toISOString(), priority: 0.8 })
      )
      return [...internalLinksNodes, ...characterUrls]
    }
    return []
  })
  • autoLastmod: 是否自动检测每个 URL 的最后修改日期(默认为 false)
  • sitemaps: 是否生成多个站点地图(默认为 false)
  • includeexclude: 用于过滤要包含或排除的路由
  • discoverImagesdiscoverVideos: 是否在预渲染时发现路由中的图片和视频(默认为 true)
  • cacheMaxAgeSeconds: 站点地图的缓存时间(默认为 600 秒)
  • debug: 是否启用调试模式(默认为 false)

4.Nuxt Content


内容是SEO的核心,Nuxt提供了强大的工具来帮助你创建和管理SEO友好的内容。

使用Nuxt Content模块管理SEO友好的内容

Nuxt Content模块是一个强大的文档驱动模块,它可以帮助你轻松管理和呈现Markdown、JSON、YAML、XML和CSV文件。

1.安装Nuxt Content:

npm install @nuxt/content

2.在nuxt.config.ts中配置:

export default defineNuxtConfig({
  modules: ['@nuxt/content']
})

3.创建SEO友好的内容:

sitemap:
loc: /agreement/community-guidelines
title: 'My Amazing Blog Post'
description: 'This is a blog post about amazing things'
date: '2023-05-20'


// 内容

这个sitemap的配置项,会自动把这个链接添加到Sitemap中。

4.在组件中使用内容:

<script setup>
const { data } = await useAsyncData('home', () => queryContent('/').find())
</script>

<template>
  <ContentList v-slot="{ list }">
    <div v-for="article in list" :key="article._path">
      <h2>{{ article.title }}</h2>
      <p>{{ article.description }}</p>
    </div>
  </ContentList>
</template>

5.常见SEO问题及解决方案

处理重复内容

1.使用规范链接(canonical URLs):

useHead({
link: [{ rel: 'canonical', href: 'https://example.com/original-page' }]
})

2.实现适当的分页策略:

<template>
  <div>
    <ArticleList :page="currentPage" />
    <Pagination :total-pages="totalPages" :current-page="currentPage" />
  </div>
</template>
>

管理404和301重定向

1.创建自定义404页面:

创建pages/404.vue文件:

<template>
  <div>
    <h1>404 - Page Not Found</h1>
    <p>Sorry, the page you are looking for does not exist.</p>
    <NuxtLink to="/">Go back to homepage</NuxtLink>
  </div>
</template>

<script setup>
useHead({
  title: '404 - Page Not Found',
  meta: [{ name: 'robots', content: 'noindex' }]
})
</script>

2.实现301重定向:

nuxt.config.ts中配置重定向:

export default defineNuxtConfig({
  nitro: {
    handlers: [
      {
        route: '/old-page',
        handler: (event) => {
          event.node.res.writeHead(301, { Location: '/new-page' })
          event.node.res.end()
        }
      }
    ]
  }
})

解决JavaScript渲染内容的SEO挑战

1.使用服务器端渲染(SSR):
Nuxt默认支持SSR,确保搜索引擎可以看到完整的页面内容。

2.对于动态内容,使用useFetchuseAsyncData:

<script setup>
const { data } = await useFetch('/api/products')
</script>

<template>
  <div v-for="product in data" :key="product.id">
    <h2>{{ product.name }}</h2>
    <p>{{ product.description }}</p>
  </div>
</template>

3. 使用<ClientOnly>组件包裹仅客户端渲染的内容:

<ClientOnly>
  <ComplexChart :data="chartData" />
</ClientOnly>

 6. 结论

Nuxt的Seo其实非常的方便,相对Next都是配置形的,开发体验非常的好。
欢迎加入群聊,我们一起讨论一些更有趣的技术、商业、闲聊。