跳到主内容

sitemap.xml 动态生成最佳实践:Next.js App Router 实现

Stack Overflow copy手0 浏览
ST
Google Search Console 的 URL 检查工具可以查看单个 URL 的索引状态、抓取情况、结构化数据错误、移动端可用性。新页面发布后用这个工具请求索引,比等 Google 自然发现快很多。

Google E-E-A-T(经验、专业、权威、可信)是内容质量的评估框架。提升方法:作者署名 + 作者简介、引用权威来源、展示真实案例、保持内容更新频率。对 YMYL(你的金钱或生活)类站点尤为重要。

Core Web Vitals 2024 的三个指标:LCP(最大内容绘制,<2.5s)、INP(交互到下一次绘制,<200ms)、CLS(累积布局偏移,<0.1)。其中 INP 替代了 FID,更严格。Next.js 用 next/image 优化图片能显著改善 LCP,用 next/dynamic 懒加载非首屏组件改善 INP。

Next.js 15 将 viewport 从 metadata 中分离,必须单独导出 viewport 对象。缺少 viewport 会导致移动端渲染异常,影响移动端优先索引。viewport 中可以设置 width、initialScale、themeColor 等。
查看历史

28 回复

  1. 摸鱼
    摸鱼达人第 2 楼
    讲个真实案例:sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。踩了很多坑才总结出来的。
  2. 内卷
    内卷幸存者第 3 楼
    补充一点:canonical 用绝对 URL,通过 buildPageUrl 确保域名一致。
  3. 采蜜
    采蜜的熊第 4 楼
    有个相关问题想请教:结构化数据用 Rich Results Test 工具测试,Search Console 会报错误。仅供参考,具体还是要看你的场景。
  4. 打工
    打工人之光第 5 楼
    有个更优的方案:PageSpeed 从 60 到 95 的关键:next/image + priority + 移除首屏 framer-motion。实践出真知,建议动手试试。
  5. 社恐
    社恐患者第 6 楼
    我调研过这块,Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。
  6. 大叔
    大叔第 7 楼
    这个问题我研究过一阵,OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。感谢楼主的启发。
  7. 打盹
    打盹的考拉第 8 楼
    不同场景下结论可能不同:结构化数据用 Rich Results Test 工具测试,Search Console 会报错误。感谢楼主的启发。
  8. 栈溢
    栈溢出幸存者第 9 楼
    INP 替代 FID 后更严格了,用 next/dynamic 懒加载非首屏组件效果明显。
  9. 听风
    听风者第 10 楼
    从另一个角度看:404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。
  10. CT
    Ctrl+C工程师第 11 楼
    说个反直觉的发现:robots.txt 控制抓取,noindex 控制索引,两个不要搞混。希望少走弯路。
  11. 数星
    数星星第 12 楼
    我的看法略有不同:INP 替代 FID 后更严格了,用 next/dynamic 懒加载非首屏组件效果明显。
  12. 吃瓜
    吃瓜群众第 13 楼
    这个问题我研究过一阵,404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。实践出真知,建议动手试试。
  13. 不将
    不将就第 14 楼
    我的团队是这样做的:INP 替代 FID 后更严格了,用 next/dynamic 懒加载非首屏组件效果明显。希望对你有帮助。
  14. 键盘
    键盘敲击者第 15 楼
    讲个真实案例:robots.txt 控制抓取,noindex 控制索引,两个不要搞混。如果有更好的方案求分享。
  15. 观星
    观星者第 16 楼
    我调研过这块,metadataBase 不设置的话 OG 图片会是相对路径,社交分享显示不了。希望少走弯路。
  16. 烟雨
    烟雨江南第 17 楼
    我调研过这块,sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。这只是个人经验,不一定通用。
  17. 云中
    云中漫步第 18 楼
    我的团队是这样做的:JSON-LD 用 Article 类型必须包含 author 和 datePublished,否则 Rich Results 不显示。实践出真知,建议动手试试。
  18. 蜕皮
    蜕皮的蛇第 19 楼
    我的实践经验和你的不太一样:sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。
  19. 会议
    会议逃生专家第 20 楼
    补充一个可能被忽略的点:robots.txt 控制抓取,noindex 控制索引,两个不要搞混。共同进步。
  20. 拾光
    拾光者第 21 楼
    我的理解是:hreflang 自引用是必须的,我之前漏了导致多语言版本全没被索引。
登录后可回复