Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[metadata] keep blocking metadata rendered in head #75227

Merged
merged 6 commits into from
Jan 24, 2025

Conversation

huozhi
Copy link
Member

@huozhi huozhi commented Jan 23, 2025

What

Keep original way of rendering metadata during static generation and requesting with html limited bots agent

Why

When it's in static generation, we would like to sacrifice more time to output the more compatible result of HTML, which the metadata can be rendered in the head. Same for when streaming metadata is not enabled. Hence we reapproach the rendering strategy to move the metadata into top <head> position along with veiwport when it's needed.

In this way we can avoid the issues that metadata are rendered in the body for static generation which will makes html limited bots not able to handle it.

Related reports: #55524 (comment)

Copy link
Member Author

huozhi commented Jan 23, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ijjk
Copy link
Member

ijjk commented Jan 23, 2025

Tests Passed

@ijjk
Copy link
Member

ijjk commented Jan 23, 2025

Stats from current PR

Default Build
General Overall increase ⚠️
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
buildDuration 18.6s 15.5s N/A
buildDurationCached 14.6s 12.4s N/A
nodeModulesSize 419 MB 419 MB ⚠️ +9.67 kB
nextStartRea..uration (ms) 413ms 395ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
5306-HASH.js gzip 54.1 kB 54.1 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.46 kB 5.46 kB N/A
bccd1874-HASH.js gzip 52.9 kB 52.9 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 240 B 242 B N/A
main-HASH.js gzip 34.6 kB 34.6 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.59 kB 4.58 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.35 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
_buildManifest.js gzip 748 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
index.html gzip 523 B 522 B N/A
link.html gzip 538 B 537 B N/A
withRouter.html gzip 520 B 520 B
Overall change 520 B 520 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 209 kB 209 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
middleware-b..fest.js gzip 670 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 376 kB 376 kB N/A
app-page-exp..prod.js gzip 131 kB 131 kB N/A
app-page-tur..prod.js gzip 144 kB 144 kB N/A
app-page-tur..prod.js gzip 140 kB 140 kB N/A
app-page.run...dev.js gzip 364 kB 364 kB N/A
app-page.run..prod.js gzip 127 kB 127 kB N/A
app-route-ex...dev.js gzip 37.6 kB 37.6 kB
app-route-ex..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 39.2 kB 39.2 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB
pages.runtim...dev.js gzip 27.7 kB 27.7 kB
pages.runtim..prod.js gzip 21.9 kB 21.9 kB
server.runti..prod.js gzip 916 kB 916 kB N/A
Overall change 282 kB 282 kB
build cache
vercel/next.js canary vercel/next.js huozhi/01-23-_metadata_static_build Change
0.pack gzip 2.1 MB 2.1 MB N/A
index.pack gzip 75.8 kB 75.7 kB N/A
Overall change 0 B 0 B
Diff details
Diff for edge-ssr.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js

Diff too large to display

Diff for app-page-exp..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page.runtime.dev.js

Diff too large to display

Diff for app-page.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Commit: 7c37768

@huozhi huozhi marked this pull request as ready for review January 23, 2025 15:17
@huozhi huozhi requested a review from ztanner January 23, 2025 15:17
@huozhi huozhi requested a review from ztanner January 24, 2025 00:31
@huozhi huozhi merged commit b3055c3 into canary Jan 24, 2025
130 of 131 checks passed
@huozhi huozhi deleted the huozhi/01-23-_metadata_static_build branch January 24, 2025 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants