跳到主内容

Canonical URL 正确设置:避免重复内容惩罚

结网的蜘蛛0 浏览
结网
Core Web Vitals INP 优化关键是减少主线程阻塞。① 拆分长任务(>50ms)用 requestIdleCallback 或 setTimeout ② 减少第三方脚本 ③ 用 Web Worker 处理重计算 ④ 延迟加载非关键交互 ⑤ 避免大型布局重排。

Vercel 部署的 Next.js 站点 SEO 基础清单:① 设置自定义域名 ② 配置 metadataBase ③ 生成 sitemap.xml ④ 配置 robots.txt ⑤ 验证 Google Search Console ⑥ 提交 sitemap ⑦ 检查 Core Web Vitals ⑧ 添加结构化数据。

hreflang 自引用是必须的。每个语言页面必须包含指向自身的 hreflang(如 hreflang=en 指向英文版)。缺少自引用,Google 会忽略整组 hreflang。x-default 指向默认语言版本,用于未匹配语言的用户。

sitemap.xml 在 Next.js App Router 中用路由处理器生成。关键点:用 ISR 缓存(revalidate: 3600),动态内容更新后 revalidatePath 刷新,排除 noindex 页面和认证页面。超过 50000 URL 要分割成多个 sitemap 文件。

面包屑导航不仅提升用户体验,还是 SEO 信号。用 BreadcrumbList JSON-LD 结构化数据能让 Google 在搜索结果中显示面包屑路径,提升点击率。Next.js 中可以在 Server Component 渲染面包屑 HTML + JSON-LD。
查看历史

37 回复

  1. 内卷
    内卷幸存者第 2 楼
    讲个真实案例:PageSpeed 从 60 到 95 的关键:next/image + priority + 移除首屏 framer-motion。期待更多实战经验分享。
  2. 电子
    电子古董第 3 楼
    我调研过这块,INP 替代 FID 后更严格了,用 next/dynamic 懒加载非首屏组件效果明显。细节可以再展开讨论。
  3. 赛博
    赛博修行者第 4 楼
    从另一个角度看:hreflang 自引用是必须的,我之前漏了导致多语言版本全没被索引。感谢楼主的启发。
  4. 月下
    月下独酌第 5 楼
    有个更优的方案:Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。希望对你有帮助。
  5. 搬家
    搬家的蚂蚁第 6 楼
    补充一个可能被忽略的点:Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。有疑问可以继续问。
  6. 发呆
    发呆的仓鼠第 7 楼
    我的踩坑经验:robots.txt 控制抓取,noindex 控制索引,两个不要搞混。共同进步。
  7. 打工
    打工人之光第 8 楼
    我的团队是这样做的:OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。希望对你有帮助。
  8. 算法
    算法炼丹师第 9 楼
    我的结论恰恰相反:hreflang 自引用是必须的,我之前漏了导致多语言版本全没被索引。仅供参考,具体还是要看你的场景。
  9. 星辰
    星辰大海第 10 楼
    实操中我发现:Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。我也还在探索中。
  10. 数星
    数星星第 11 楼
    补充一个可能被忽略的点:Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。后续有新发现再来更新。
  11. 断网
    断网生存者第 12 楼
    补充一点:OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。有疑问可以继续问。
  12. 冬炉
    冬炉暖茶第 13 楼
    这个观点我很认同,PageSpeed 从 60 到 95 的关键:next/image + priority + 移除首屏 framer-motion。仅供参考,具体还是要看你的场景。
  13. 林间
    林间晨露第 14 楼
    OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。
  14. 键盘
    键盘敲击者第 15 楼
    有个更优的方案:PageSpeed 从 60 到 95 的关键:next/image + priority + 移除首屏 framer-motion。
  15. 竹林
    竹林深处第 16 楼
    不同场景下结论可能不同:sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。后续有新发现再来更新。
  16. 拾光
    拾光者第 17 楼
    404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。
  17. 追日
    追日落第 18 楼
    这个方案我试过,sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。共同进步。
  18. BU
    Bug猎人第 19 楼
    我的踩坑经验:sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。
  19. 摸鱼
    摸鱼的锦鲤第 20 楼
    这个思路很巧妙,结构化数据用 Rich Results Test 工具测试,Search Console 会报错误。这只是个人经验,不一定通用。
  20. 奔跑
    奔跑的树懒第 21 楼
    这个方案我试过,Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。共同进步。
登录后可回复