PageSpeed Insights报RPC::DEADLINE_EXCEEDED错误求助
解决PageSpeed Insights测试时的RPC::DEADLINE_EXCEEDED错误
问题分析
你的middleware仅对根路径/做重定向,但PageSpeed Insights(PSI)测试时可能尝试访问根路径,若重定向后的服务端响应存在延迟,或PSI爬虫对重定向的处理逻辑触发超时,就会出现这类错误。结合你使用next-intl的情况,服务端语言资源加载效率也可能是诱因。
解决方案
1. 优化重定向逻辑
当前重定向默认使用307临时状态码,改为301永久重定向可能更适配PSI爬虫的处理逻辑,同时确保重定向路径响应无阻塞:
import { NextResponse } from 'next/server'; export function middleware(request) { const { pathname, search } = request.nextUrl; if (pathname === '/') { // 指定301永久重定向状态码 return NextResponse.redirect(new URL(`/pl${search}`, request.url), { status: 301 }); } return NextResponse.next(); } export const config = { matcher: ['/'], };
2. 排查next-intl服务端性能瓶颈
next-intl的服务端语言资源加载过慢会直接拖长首屏响应时间,触发PSI超时:
- 精简语言资源文件(如
messages/pl.json),移除冗余内容 - 避免在服务端组件中同步加载语言资源,改用异步并行加载模式
3. 验证服务端响应速度
用curl测试根路径和目标路径的响应耗时,确认是否超过PSI的阈值(通常为10秒):
# 测试根路径重定向耗时 curl -w "%{time_total}\n" -o /dev/null -s https://www.frontendpolska.pl/ # 测试目标路径响应耗时 curl -w "%{time_total}\n" -o /dev/null -s https://www.frontendpolska.pl/pl
若响应超时,需优化服务端渲染性能:
- 减少服务端组件中的不必要计算逻辑
- 启用Next.js静态生成(SSG)或增量静态再生(ISR),避免动态渲染的重复开销
4. 监控PSI爬虫请求行为
在middleware中添加日志,确认PSI请求是否被正确处理:
import { NextResponse } from 'next/server'; export function middleware(request) { console.log('Request UA:', request.headers.get('user-agent')); const { pathname, search } = request.nextUrl; if (pathname === '/') { return NextResponse.redirect(new URL(`/pl${search}`, request.url), { status: 301 }); } return NextResponse.next(); } export const config = { matcher: ['/'], };
查看日志中是否存在PSI相关UA(如Chrome-Lighthouse),确认重定向流程是否正常完成。
总结
核心解决方向是优化重定向逻辑、提升服务端响应速度,重点排查next-intl的服务端资源加载效率。通过上述步骤可定位并解决PSI的超时问题。
内容的提问来源于stack exchange,提问作者Алексей Коба
相关产品推荐
相关产品推荐

