diff --git a/packages/next-server/server/render.tsx b/packages/next-server/server/render.tsx index 6adfddc5e86a84400c4f1fb6265e5fe69a81a286..f0bd82582fd4e1857a699c3ec364ec3a98444af6 100644 --- a/packages/next-server/server/render.tsx +++ b/packages/next-server/server/render.tsx @@ -443,12 +443,17 @@ export async function renderToHTML( }) if (amphtml && html) { - html = await optimizeAmp(html, { amphtml, query }) + if (ampMode.hasQuery) { + html = await optimizeAmp(html, { amphtml, query }) + } - // don't validate dirty AMP - if (renderOpts.ampValidator && query.amp) { + if (renderOpts.ampValidator) { await renderOpts.ampValidator(html, pathname) } + // run optimize after validating in dirty mode + if (!ampMode.hasQuery) { + html = await optimizeAmp(html, { amphtml, query }) + } } if (amphtml || hasAmp) {