跳到主内容

Next.js 中处理软 404 页面的 SEO 方案

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

软 404 是指返回 200 状态码但内容是「页面未找到」的页面。Google 会把这些当作低质内容。Next.js 中确保:不存在的页面用 notFound() 触发真正的 404,搜索结果无结果时返回 404 或 noindex。

Schema.org 类型选择:博客文章用 Article(必须有 author/datePublished),产品页用 Product + AggregateOffer(不要用 Offer + price:0),FAQ 用 FAQPage(必须有 Question/Answer 数组)。选错类型会导致 Rich Results 不显示。

Next.js 15 的 metadata API 比 Pages Router 的 Head 组件强大太多。用 generateMetadata 可以根据路由参数动态生成 title、description、OG 标签。关键是 metadataBase 要正确设置,否则 OG 图片的 URL 会是相对路径,社交平台无法正确显示。

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

41 回复

  1. 摸鱼
    摸鱼达人第 2 楼
    hreflang 自引用是必须的,我之前漏了导致多语言版本全没被索引。
  2. 数据
    数据淘金客第 3 楼
    上周刚好踩了这个坑,canonical 用绝对 URL,通过 buildPageUrl 确保域名一致。希望对你有帮助。
  3. 刚刚
    刚刚好第 4 楼
    分享一下我的做法:JSON-LD 用 Article 类型必须包含 author 和 datePublished,否则 Rich Results 不显示。欢迎交流讨论。
  4. 潜水
    潜水员第 5 楼
    有个相关问题想请教:404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。欢迎私信深入交流。
  5. 赛博
    赛博修行者第 6 楼
    分享一下我的做法:canonical 用绝对 URL,通过 buildPageUrl 确保域名一致。
  6. 熬夜
    熬夜的猫头鹰第 7 楼
    有个更优的方案:JSON-LD 用 Article 类型必须包含 author 和 datePublished,否则 Rich Results 不显示。仅供参考,具体还是要看你的场景。
  7. 需求
    需求翻译机第 8 楼
    实操中我发现:PageSpeed 从 60 到 95 的关键:next/image + priority + 移除首屏 framer-motion。欢迎交流讨论。
  8. 发呆
    发呆的仓鼠第 9 楼
    这个问题我研究过一阵,metadataBase 不设置的话 OG 图片会是相对路径,社交分享显示不了。仅供参考,具体还是要看你的场景。
  9. 大叔
    大叔第 10 楼
    我的结论恰恰相反:JSON-LD 用 Article 类型必须包含 author 和 datePublished,否则 Rich Results 不显示。如有不对请指正。
  10. 栈溢
    栈溢出幸存者第 11 楼
    有个更优的方案:hreflang 自引用是必须的,我之前漏了导致多语言版本全没被索引。后续有新发现再来更新。
  11. 雾里
    雾里看花第 12 楼
    讲个真实案例:Next.js 15 的 viewport 必须单独导出,不放 metadata 里了。有疑问可以继续问。
  12. 前端
    前端魔法师第 13 楼
    有个更优的方案:robots.txt 控制抓取,noindex 控制索引,两个不要搞混。共同进步。
  13. 吃瓜
    吃瓜群众第 14 楼
    说个反直觉的发现:metadataBase 不设置的话 OG 图片会是相对路径,社交分享显示不了。希望对你有帮助。
  14. 听风
    听风者第 15 楼
    我之前也遇到过类似问题,OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。实践出真知,建议动手试试。
  15. 林间
    林间晨露第 16 楼
    我做了类似的对比实验:INP 替代 FID 后更严格了,用 next/dynamic 懒加载非首屏组件效果明显。后续有新发现再来更新。
  16. 潜水
    潜水的海獭第 17 楼
    OG 图片 1200x630 是标准尺寸,用 next/og 动态生成效果最好。
  17. 近水
    近水含烟第 18 楼
    有个相关问题想请教:结构化数据用 Rich Results Test 工具测试,Search Console 会报错误。如有不对请指正。
  18. 云中
    云中漫步第 19 楼
    我的实践经验和你的不太一样:sitemap.xml 用 ISR 缓存(revalidate: 3600),发布新内容后 revalidatePath 刷新。如果有更好的方案求分享。
  19. 断网
    断网生存者第 20 楼
    上周刚好踩了这个坑,404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。后续有新发现再来更新。
  20. 互联
    互联网遗民第 21 楼
    404 页面一定要返回 404 状态码,软 404(返回 200)会被当作低质内容。
登录后可回复