Next.js App Router 中 viewport 和 metadata 分离
sitemap.xml 在 Next.js App Router 中用路由处理器生成。关键点:用 ISR 缓存(revalidate: 3600),动态内容更新后 revalidatePath 刷新,排除 noindex 页面和认证页面。超过 50000 URL 要分割成多个 sitemap 文件。...
sitemap.xml 在 Next.js App Router 中用路由处理器生成。关键点:用 ISR 缓存(revalidate: 3600),动态内容更新后 revalidatePath 刷新,排除 noindex 页面和认证页面。超过 50000 URL 要分割成多个 sitemap 文件。...
Canonical URL 解决重复内容问题。多语言站点、分页页面、带查询参数的页面都需要正确设置 canonical。Next.js metadata 中 canonical 要用绝对 URL,通过 buildPageUrl 工具函数确保域名一致。 SEO 友好的 URL 用 kebab-cas...
SEO 分页 URL 用 /page/2 路径形式比 ?page=2 查询参数更好。路径形式更利于 Google 理解和索引,查询参数可能被当作重复内容。但分页页面的 canonical 要指向自身而非第一页,否则第二页之后的内容不会被索引。 hreflang 是多语言站点最容易被忽略的 SEO...
Google 抓取预算对大站很重要。优化方法:① robots.txt 禁止低价值页面 ② 用 noindex 阻止索引但不阻止抓取 ③ 优化内链结构让重要页面更易到达 ④ 删除或合并薄内容页面 ⑤ 监控 Search Console 的抓取统计。 hreflang 是多语言站点最容易被忽略的 S...
robots.txt 不是阻止索引的手段,而是控制抓取。要阻止索引用 noindex meta 标签或 X-Robots-Tag header。常见的 robots.txt 配置:允许所有页面、禁止 /admin、禁止 /api、指向 sitemap.xml。 Canonical URL 解决重复...
RSS Feed 虽然不直接影响 SEO 排名,但能增加内容曝光渠道,被聚合网站和 RSS 阅读器抓取,带来外链和流量。Next.js App Router 中用路由处理器生成 RSS XML,用 ISR 缓存。 SEO 分页 URL 用 /page/2 路径形式比 ?page=2 查询参数更好。...
Canonical URL 解决重复内容问题。多语言站点、分页页面、带查询参数的页面都需要正确设置 canonical。Next.js metadata 中 canonical 要用绝对 URL,通过 buildPageUrl 工具函数确保域名一致。 SEO 分页 URL 用 /page/2 路径...
hreflang 自引用是必须的。每个语言页面必须包含指向自身的 hreflang(如 hreflang=en 指向英文版)。缺少自引用,Google 会忽略整组 hreflang。x-default 指向默认语言版本,用于未匹配语言的用户。 软 404 是指返回 200 状态码但内容是「页面未找...
hreflang 是多语言站点最容易被忽略的 SEO 配置。每个语言页面必须包含指向自身的 hreflang、指向其他语言版本的 hreflang、以及 x-default。缺少自引用会导致 Google 忽略整组 hreflang,多语言版本可能被当作重复内容。 Google Search Co...
sitemap.xml 在 Next.js App Router 中用路由处理器生成。关键点:用 ISR 缓存(revalidate: 3600),动态内容更新后 revalidatePath 刷新,排除 noindex 页面和认证页面。超过 50000 URL 要分割成多个 sitemap 文件。...
SEO 友好的 URL 用 kebab-case:/forum/thread/how-to-optimize-nextjs-seo。避免下划线、驼峰、中文 URL(虽然 Google 支持但不利于分享)。Next.js 中可以用 slugify 函数生成 URL 友好的 slug。 hreflan...
Core Web Vitals 2024 的三个指标:LCP(最大内容绘制,<2.5s)、INP(交互到下一次绘制,<200ms)、CLS(累积布局偏移,<0.1)。其中 INP 替代了 FID,更严格。Next.js 用 next/image 优化图片能显著改善 LCP,用 next/dynami...
软 404 是指返回 200 状态码但内容是「页面未找到」的页面。Google 会把这些当作低质内容。Next.js 中确保:不存在的页面用 notFound() 触发真正的 404,搜索结果无结果时返回 404 或 noindex。 Core Web Vitals INP 优化关键是减少主线程阻...
PageSpeed 优化记录:我的站点从 60 分到 95 分花了三周。关键改动:① 图片用 next/image + priority ② 移除首屏 framer-motion 改用 CSS 动画 ③ 非首屏组件 next/dynamic 懒加载 ④ 字体用 next/font ⑤ 第三方脚本延迟...
Next.js Image 组件自动优化图片格式(WebP/AVIF)、尺寸和懒加载,对 LCP 优化效果显著。LCP 图片要加 priority 属性,否则懒加载会延迟 LCP 时间。但不要给所有图片加 priority,只给首屏最大的图片。 SEO 分页 URL 用 /page/2 路径形式比...
robots.txt 不是阻止索引的手段,而是控制抓取。要阻止索引用 noindex meta 标签或 X-Robots-Tag header。常见的 robots.txt 配置:允许所有页面、禁止 /admin、禁止 /api、指向 sitemap.xml。 Schema.org 类型选择:博客...
robots.txt 不是阻止索引的手段,而是控制抓取。要阻止索引用 noindex meta 标签或 X-Robots-Tag header。常见的 robots.txt 配置:允许所有页面、禁止 /admin、禁止 /api、指向 sitemap.xml。 Next.js Image 组件自动...
JSON-LD 是 Google 推荐的结构化数据格式。博客文章用 Article 类型,产品页用 Product + AggregateOffer,FAQ 用 FAQPage。用 Next.js 可以在 Server Component 中直接渲染 script 标签,不需要客户端注入。 Goo...
PageSpeed 优化记录:我的站点从 60 分到 95 分花了三周。关键改动:① 图片用 next/image + priority ② 移除首屏 framer-motion 改用 CSS 动画 ③ 非首屏组件 next/dynamic 懒加载 ④ 字体用 next/font ⑤ 第三方脚本延迟...
Schema.org 类型选择:博客文章用 Article(必须有 author/datePublished),产品页用 Product + AggregateOffer(不要用 Offer + price:0),FAQ 用 FAQPage(必须有 Question/Answer 数组)。选错类型会...