Hướng dẫn về Nuxt SEO
Nuxt ships máy chủ-side kết xuất theo mặc định, nhưng đó là một theo-route setting, không phải là bảo đảm — đầy đủ HTML để các crawler chỉ on routes đó giữ điều này. Kết xuất modes, useSeoMeta(), đó @nuxtjs/seo toolkit, hydration và Nitro caveats, Core Web Vitals, và đó mistakes đó âm thầm cost bạn.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Công cụ trực tuyến liên quanCore Web Vitals History & Competitor Comparison
Nuxt máy chủ-renders các trang theo mặc định, so một route đó giữ đó default cho các crawler một hoàn tất HTML document thay vì đó empty shell một đơn giản Vue SPA ships — nhưng đây là một theo-route setting: routeRules hoặc một global ssr:sai có thể flip bất kỳ route để CSR, so verify đó thực tế route thay vì assuming từ đó framework name. Đó foundational decision là kết xuất chế độ theo route — SSR (default), SSG qua nuxt generate, hoặc hybrid route rules — vì meta tags, schema, và sitemaps all come sau đó. Dùng useSeoMeta() cho meta, treat Harlan Wilton @nuxtjs/seo bundle as an tùy chọn bên thứ ba toolkit (không Nuxt cốt lõi) cho robots/sitemap/OG/schema/canonical, không bao giờ reach cho dynamic kết xuất (Google deprecated điều này), verify hydration/payload và Nitro deployment-preset/bộ nhớ đệm behavior independently of máy chủ HTML, và remember đó AI-crawler kết xuất contracts vary by provider — SSR/SSG diễn đạt nội dung trong thô HTML và maximizes coverage.
Tóm tắt — Nuxt là framework được xây dựng bên cạnh Vue, và nó good Đối với SEO cho một main reason: on route đó giữ default, nó xây dựng các trang on máy chủ, so các công cụ tìm kiếm nhận finished HTML trang thay vì blank một họ’d có để fill trong themselves. đó theo-route setting, không trang web-wide bảo đảm —
routeRuleshoặc globalssr: falsecó thể turn bất kỳ được cho route lại vào đơn giản-Vue-style rỗng shell. kiểm tra thực tế route, không chỉ project name. phần lớn quan trọng lựa chọn bạn’ll làm là Cách mỗi route nhận được kết xuất; mọi thứ khác (meta tags, sitemaps) xuất hiện sau khi đó.
Vì sao Nuxt là good Đối với SEO — on routes đó giữ default
Vue, on của nó own, xây dựng single-trang app: máy chủ gửi gần như-rỗng HTML shell, và JavaScript fills trong nội dung sau khi nó chạy trong trình duyệt. đó tricky Đối với tìm kiếm, vì trang looks rỗng cho đến khi JavaScript executes.
Nuxt là Vue “meta-framework” (bản dịch) «meta-framework» — một fuller toolkit được xây dựng khoảng Vue — và của nó
default các cách sửa đó vấn đề. Nuxt renders của bạn các trang on đó máy chủ đầu tiên
(máy chủ-side kết xuất, hoặc SSR), so khi Google hoặc một khách truy cập asks cho một trang
on một route đó hasn’t đã switched off SSR, they nhận đó hoàn tất HTML right
away. Evidence for this claim Nuxt universal rendering returns server-rendered HTML to the browser by default. Scope: Nuxt default universal rendering. Confidence: high · Verified: Nuxt: Rendering modes Không đang chờ cho JavaScript. đó là đó single
biggest reason một Nuxt site có thể là easier để nhận được lập chỉ mục hơn một đơn giản Vue app —
nhưng đây là một route-by-route outcome, không điều gì đó framework name bảo đảm.
MỘT route với ssr: false, hoặc một đó leans on <ClientOnly> cho của nó main
nội dung, cho lên đó advantage và ships đó giống nhau empty-shell vấn đề đơn giản
Vue có.
một decision đó matters phần lớn: kết xuất, theo route
Khi ai đó asks cho cụ thể trang, nơi làm của nó HTML nhận được xây dựng? đó
routeRules-cấp độ câu hỏi, không project-wide một — Nuxt app có thể mix modes
trên routes. Nuxt cho bạn một vài options:
- máy chủ-side kết xuất (SSR) — default. máy chủ xây dựng đầy đủ trang on mỗi yêu cầu. Great Đối với SEO.
- Static generation (SSG) — chạy
nuxt generatevà Nuxt xây dựng all của bạn các trang vào đơn giản HTML files ahead của time. cũng great Đối với SEO, và perfect cho blogs và tài liệu đó không thay đổi mỗi minute. - SPA chế độ — trang là được xây dựng trong trình duyệt, như đơn giản Vue. tránh điều này cho bất cứ điều gì bạn muốn tìm thấy trong tìm kiếm.
good news là defaults là đã pointed right way. bạn mostly có để tránh switching them off.
Thêm các tiêu đề và meta tags
Trong Nuxt bạn đặt của bạn trang tiêu đề và mô tả meta với được xây dựng-trong function được gọi là
useSeoMeta(). Evidence for this claim Nuxt provides useSeoMeta for defining SEO and social metadata. Scope: Current Nuxt composable. Confidence: high · Verified: Nuxt: useSeoMeta bạn drop nó vào trang và truyền trong của bạn tiêu đề, mô tả, và
social-share image:
useSeoMeta({
title: 'My Page Title',
description: 'A concise, page-specific summary with the key information first',
})đó modern, được khuyến nghị way. (có older function được gọi là useHead()
đó vẫn hoạt động và là được sử dụng cho khác điều trong trang <head>, nhưng Đối với SEO
meta tags reach cho useSeoMeta().) Google có không fixed meta-mô tả character
limit; snippets là query-phụ thuộc và truncated để fit device, so preview
quan trọng các trang trong của họ dự kiến language và script thay vì coding để quota.
tùy chọn thêm-on: Nuxt SEO modules
Nuxt cốt lõi không generate robots.txt, XML sitemap, social-share images,
dữ liệu có cấu trúc, hoặc canonical các URL — những điều đó là jobs cho tách biệt, tùy chọn
packages, không điều gì đó nuxt.config.ts cho bạn theo mặc định. nhà phát triển named
Harlan Wilton maintains free, community bundle của những điều đó packages — installed as
@nuxtjs/seo — đó covers tất cả them tại sau khi. nó thứ ba-party toolkit, không
part của Nuxt itself, so installing nó không tự động làm bất kỳ của đó
output đúng; bạn vẫn xác nhận sitemap, robots rules, và schema nó
generates match Điều gì bạn thực ra muốn.
điều mọi người nhận sai
Mọi người assume “Vue/Nuxt can’t be in Google.” (bản dịch) «Vue/Nuxt không thể là trong Google.» Đó đã là loại of đúng cho đơn giản Vue apps năm ago — điều này không đúng cho Nuxt với của nó máy chủ kết xuất. Đó real mistakes là điều như chuyển thành SSR off by accident, hoặc blocking của bạn JavaScript files so Google không thể xây dựng đó trang.
Muốn deeper version — đầy đủ menu của kết xuất modes, module ecosystem trong detail, Core Web Vitals, và phổ biến mistakes với các cách sửa? Chuyển để Nâng cao tab.
Tóm tắt — Nuxt default là máy chủ-side kết xuất, so route đó giữ đó default nhận hoàn tất DOM thay vì rỗng shell đơn giản Vue SPA ships — nhưng đó theo-route outcome:
ssr: falsehoặcrouteRulesoverride có thể turn bất kỳ route vào CSR hoặc hybrid, so kiểm thử thực tế route, không project name. Kết xuất strategy là foundational decision — SSR (default), SSG (nuxt generate), hoặc hybridrouteRules— vì meta, schema, và sitemaps all come sau khi nó. sử dụnguseSeoMeta()cho meta tags (useHead()cho rest của head, máy chủ-chỉ variants Khi bạn không cần reactivity), và treat Harlan Wilton@nuxtjs/seobundle as tùy chọn thứ ba-party toolkit cho robots/sitemap/OG/schema/canonical — không part của Nuxt cốt lõi, và không proof của nó output là đúng cho đến khi bạn kiểm tra nó. không bao giờ sử dụng dynamic kết xuất (Google deprecated nó). AI-crawler kết xuất varies by provider — SSR/SSG maximizes thô-HTML coverage. Beyond ban đầu HTML, verify hydration/payload, Nitro deployment presets và bộ nhớ đệm, và trực tiếp HTTP status independently — máy chủ HTML alone không prove bất kỳ của những điều đó. thông thường JS-SEO rules vẫn apply: thực<a href>links, không block JS/CSS, watch được kết xuất so với. thô HTML.
Nuxt là Vue câu trả lời để SPA vấn đề
Vue, by itself, ships single-trang application: HTML shell plus JavaScript đó xây dựng DOM trong trình duyệt. Nuxt là meta-framework bên cạnh Vue (đang chạy on Nitro máy chủ engine trong Nuxt 3, với Nuxt 4 sau trong 2025), và của nó toàn bộ reason cho existing — từ SEO standpoint — là đó nó renders on máy chủ by default. mỗi trang arrives as fully-formed HTML document, mà là chính xác Điều gì Googlebot wants để đọc không có để execute JavaScript đầu tiên. Đơn giản Vue SEO là của nó own topic với của nó own thất bại modes; ở đây I’m assuming bạn’ve picked Nuxt precisely so bạn không có để fight SPA vấn đề.
Này là đó giống nhau point I làm về JavaScript generally: “any kind of SSR, static rendering, and prerendering setup is going to be fine for search engines. Gatsby, Next, Nuxt, etc., are all great.” (bản dịch) «bất kỳ kind of SSR, static kết xuất, và prerendering setup là going để là fine cho các công cụ tìm kiếm. Gatsby, Tiếp theo, Nuxt, etc., là all great.» Nuxt defaults là pointed đó right way. Hầu hết Nuxt SEO các vấn đề là mọi người chuyển thành những defaults off, hoặc layering mistakes on top of them.
Kết xuất strategy là foundation — decided theo route, không theo project
Trước meta tags, trước schema, trước sitemaps, đó câu hỏi đó decides
mọi thứ là cách làm đó HTML nhận produced cho này cụ thể route? Nuxt
documents universal (máy chủ) kết xuất as đó app-wide default, nhưng đó default
không một route-cấp độ bảo đảm: một global ssr: false switches đó toàn bộ app để
client kết xuất, và routeRules có thể assign một khác nhau chế độ để bất kỳ URL
pattern. “This is a Nuxt app” (bản dịch) «Này là một Nuxt app» tells bạn không có gì về cách một particular trang
renders — bạn có để kiểm tra đó route. Nuxt cho bạn five strategies:
| Chế độ | Cách bạn đặt nó | SEO impact | Best cho |
|---|---|---|---|
| Universal / SSR | Default (ssr: true) | Excellent — đầy đủ HTML mỗi yêu cầu | Dynamic, personalized nội dung |
| Static / SSG | nuxt generate | Excellent — HTML được xây dựng tại deploy time | Blogs, tài liệu, marketing |
| Hybrid | routeRules theo route | Excellent — mix theo route | Lớn mixed-nội dung các trang |
| SPA / CSR | ssr: false | Poor cho được lập chỉ mục nội dung | Dashboards, admin panels |
| Edge-side | Deployment đích | Excellent — thấp TTFB | Global performance |
Đó chính thức Nuxt tài liệu là blunt về vì sao client-side kết xuất là lựa chọn sai
cho nội dung: “Indexing and updating the content delivered via client-side rendering
takes more time” (bản dịch) «Lập chỉ mục và updating đó nội dung delivered qua client-side kết xuất takes hơn time», whereas với máy chủ (universal) kết xuất “web crawlers can
directly index the page’s content.” (bản dịch) «web các crawler có thể trực tiếp chỉ mục đó trang nội dung.» Evidence for this claim Nuxt documents that universal rendering delivers HTML content immediately and allows crawlers to index it directly. Scope: Nuxt rendering; no indexing guarantee. Confidence: high · Verified: Nuxt: Rendering modes
(Nuxt kết xuất tài liệu.) CSR
(ssr: false) là positioned cho lại-office, dashboards, và games — không bất cứ điều gì
bạn muốn được lập chỉ mục.
Hybrid kết xuất là power move cho lớn các trang. Route rules trong
nuxt.config.ts let bạn đặt kết xuất và bộ nhớ đệm chế độ theo URL pattern:
routeRules: {
'/blog/**': { prerender: true }, // SSG for the blog
'/product/**': { swr: 3600 }, // ISR-style: regenerate hourly
'/admin/**': { ssr: false }, // SPA for the admin area
'/checkout/**': { ssr: true }, // always-fresh SSR
}swr (stale-trong khi-revalidate) và isr (incremental static regeneration) generate
trang statically sau đó refresh nó trong background — ideal cho cao trang-count
e-commerce hoặc news nơi đầy đủ rebuild on mỗi thay đổi không phải practical. Nuxt
Islands (<NuxtIsland>) render components không có shipping client-side JavaScript,
cutting hydration cost và helping INP — Cốt lõi Web Vital đó phần lớn thường
vấn đề on Nuxt apps.
Cách verify điều gì bạn thực ra shipped: View Nguồn cho thấy đó thô HTML đó máy chủ đã gửi; nếu nội dung của bạn là ở đó, bạn là máy chủ-kết xuất. DevTools’ Elements panel cho thấy đó được kết xuất DOM. Và GSC URL Inspection tool cho thấy điều gì Google thực ra fetched và được kết xuất — đó nguồn of truth. không trust “it looks fine in my browser.” (bản dịch) «điều này looks fine trong my trình duyệt.»
Cách Googlebot xử lý Nuxt app
Google xử lý bất kỳ JavaScript app trong three phases — crawl, render, chỉ mục — và đó catch là timing: kết xuất happens trong một queue, không instantly. As I put điều này trong my JavaScript SEO hướng dẫn, đó renderer là patient — “there is no fixed timeout for the renderer… It’s really patient, and you should not be concerned.” (bản dịch) «có không fixed timeout cho đó renderer… đây là thực sự patient, và bạn không nên là concerned.» Nhưng patient không đó giống nhau as fast cho fresh nội dung. Nếu bạn ship một client-được kết xuất trang, nội dung của bạn không exist cho Google until đó render wave chạy; SSR và SSG close đó khoảng trống vì đó HTML là hoàn tất on đó đầu tiên fetch.
Hai nhiều hơn điều quan trọng tại quy mô. Kết xuất JavaScript là expensive — từ my 2019
JavaScript SEO talk (Ungagged), crawl costs go lên by khoảng 20× sau khi Google có để render
(directional, nhưng order của magnitude vẫn holds). và Google takes phần lớn
restrictive directive trên thô và được kết xuất HTML — so noindex injected by
JavaScript sẽ win over index trong thô HTML, và vice versa. canonical
injected qua JavaScript là respected chỉ nếu có không canonical trong thô HTML
đã. giữ của bạn robots và các tín hiệu canonical trong máy chủ-được kết xuất HTML, mà
Nuxt làm cho bạn Khi SSR là on.
AI-crawler reality
Đây là 2026 wrinkle. AI các crawler — GPTBot, ClaudeBot, PerplexityBot, và rest — generally không execute JavaScript tại all. họ chỉ mục thô HTML và không có gì khác. So client-được kết xuất Nuxt trang là effectively invisible để AI câu trả lời engines. SSR hoặc SSG không phải chỉ tốt hơn cho Google ở đây; nó price của entry cho câu trả lời engine optimization cũng. nếu bạn muốn của bạn nội dung cited by ChatGPT, Perplexity, hoặc Claude, nó có để là trong HTML on đầu tiên fetch.
Beyond ban đầu HTML: payload, hydration, và các mã trạng thái
Getting máy chủ HTML với nội dung của bạn trong điều này là necessary nhưng không sufficient — several điều có thể vẫn go sai downstream of đó đầu tiên phản hồi, và “I checked View Source” (bản dịch) «I checked View Nguồn» không cover them:
- Payload và hydration. Universal kết xuất gửi HTML và serialized dữ liệu payload client dùng để hydrate — attach event listeners và pick lên nơi máy chủ left off — không có re-fetching. máy chủ HTML looking right không prove hydration succeeded, đó client navigation reproduces giống nhau nội dung, hoặc đó payload không phải stale. nếu trang feels fine on đầu tiên load nhưng breaks sau khi client-side route thay đổi, đó hydration/payload vấn đề, không kết xuất-chế độ vấn đề.
<ClientOnly>và trình duyệt-chỉ nội dung. Wrapping điều gì đó trong<ClientOnly>— phổ biến cho trình duyệt-API-phụ thuộc widgets — có nghĩ là nó absent từ máy chủ phản hồi ngay cả on nếu không-universal route. nếu của bạn main nội dung, mấu chốt link, hoặc của bạn meta tags end lên bên trong client-chỉ boundary, các crawler và AI bots đó chỉ đọc thô HTML miss nó, regardless của bạn kết xuất chế độ setting. Inspect thực tế phản hồi, không chỉ kết xuất chế độ config.- các mã trạng thái và các chuyển hướng không phải self-certifying. Nuxt trang lỗi
kết xuất trong trình duyệt, hoặc
navigateTo()/composable-driven chuyển hướng, không by itself prove Điều gì HTTP status trực tiếp máy chủ phản hồi được gửi. Google hướng dẫn là rõ ràng đó có ý nghĩa các mã trạng thái quan trọng cho crawling và lập chỉ mục — xác nhận thực tế header vớicurl -I, không Điều gì client-được kết xuất trang lỗi displays.
None of này là an argument so với universal kết xuất — đây là đó reminder đó “the HTML is server-rendered” (bản dịch) «đó HTML là máy chủ-được kết xuất» là đó đầu tiên kiểm tra, không đó cuối cùng một.
Nitro, deployment presets, và bộ nhớ đệm boundaries
Nuxt máy chủ output là được xây dựng by Nitro, và Nitro compiles differently depending on deployment preset bạn đích (Node máy chủ, Cloudflare, Vercel, Netlify, static, và others). đó matters Đối với SEO vì presets và adapters có thể differ trong runtime APIs khả dụng, bộ nhớ đệm behavior, streaming hỗ trợ, regional deployment, và filesystem access — route rule hoặc máy chủ handler đó hoạt động dưới một preset không phải guaranteed để behave identically dưới một. Hai consequences worth kiểm thử explicitly thay vì assuming:
- bộ nhớ đệm keys và invalidation là route-cụ thể, không tự động.
swrvàisrroute rules bộ nhớ đệm và regenerate output, nhưng sai bộ nhớ đệm mấu chốt, bị thiếu invalidation, hoặc bộ nhớ đệm header đặt by của bạn deployment nền tảng có thể phục vụ stale, personalized, hoặc inconsistent HTML để các crawler. kiểm tra thực tế phản hồi age và bất kỳCache-Control/Agecác header on trực tiếp URL, không chỉrouteRulesconfig. - Production parity không phải guaranteed by staging behavior. route kết xuất correctly trong local dev hoặc preview deployment không xác nhận production preset produces giống nhau output — máy chủ routes, các chuyển hướng, và lỗi xử lý trực tiếp trong Nitro máy chủ layer, và đó layer là part phần lớn có khả năng để differ by đích. Kiểm thử production URL trực tiếp sau khi bất kỳ deployment thay đổi, giống nhau way bạn’d verify kết xuất chế độ.
Meta tags: useSeoMeta() và useHead()
Nuxt head management chạy on Unhead, và nó cho bạn hai composables cho khác jobs.
useSeoMeta() là một để reach cho Đối với SEO và social meta tags. nó flat,
loại-safe API với typed parameters. Evidence for this claim useSeoMeta is a typed Nuxt API for SEO and social meta tags. Scope: Current Nuxt composable. Confidence: high · Verified: Nuxt: useSeoMeta nó helps tránh kinh điển Open Graph
bug của sử dụng name nơi bạn needed property:
useSeoMeta({
title: 'My Page Title',
ogTitle: 'My Page Title',
description: 'Concise page-specific description with the key information first',
ogDescription: 'Concise social description tailored to this page',
ogImage: 'https://mysite.com/og-image.png', // must be an absolute URL
twitterCard: 'summary_large_image',
})useHead() là chung-purpose head tool cho mọi thứ khác — scripts, link
tags, thân phản hồi các thuộc tính, và tiêu đề templates:
useHead({
titleTemplate: '%s · My Site Name',
htmlAttrs: { lang: 'en' },
})reliable layering pattern là: static defaults (charset, viewport, favicon) trong
nuxt.config.ts → trang web-wide tiêu đề template và global OG defaults trong app.vue →
trang-cụ thể overrides qua useSeoMeta() trong trang component. phổ biến bug là
putting useSeoMeta() trong layout thay vì trang, mà overwrites cụ thể
trang tags với generic ones. và since các công cụ tìm kiếm đọc ban đầu load, SEO meta
generally không cần để là reactive — useServerHead() skips client-side
re-execution.
Mà API, và Điều gì nó thực ra proves:
| API | Phạm vi | Reactive? | Điều gì nó proves về output |
|---|---|---|---|
useSeoMeta() | Flat, typed SEO/social meta chỉ | Có (default) | Sets typed properties correctly — không đó route là unique, canonical, hoặc indexable; bạn vẫn own đó logic |
useHead() | Bất cứ điều gì trong <head> — scripts, links, attrs, tiêu đề template | Có (default) | Chung head control; giống nhau caveat — API sử dụng không phải proof của đúng máy chủ phản hồi |
useServerHead() / máy chủ-chỉ calls | giống nhau as trên | Không — máy chủ chỉ, skips client re-execution | Xác nhận tag ships sau khi trong máy chủ HTML; không xác nhận client navigation re-sets nó nếu bạn rely on nó ở đó |
Calling một of những composables tells bạn đó API ran — điều này không by itself tell
bạn điều gì một trực tiếp máy chủ phản hồi hoặc một client-side route thay đổi thực ra emits.
Xác nhận với View Nguồn hoặc curl, không chỉ “I called useSeoMeta().” (bản dịch) «I called useSeoMeta().»
@nuxtjs/seo module ecosystem (Harlan Wilton) — tùy chọn, không cốt lõi
Nuxt cốt lõi không ship sitemap, robots.txt, OG image generation, hoặc
Schema.org out của box — những điều đó là bên ngoài Nuxt own primitives (useHead,
useSeoMeta, route rules, kết xuất modes). community fills đó khoảng trống với
Harlan Wilton @nuxtjs/seo — riêng-installed, thứ ba-party umbrella
package (nuxtseo.com, hiện tại v5.x, actively maintained, targeting Nuxt
3,16+ và Nuxt 4) đó bundles six modules. Installing nó cho bạn sitemap,
robots, OG-image, và schema generation — nó không by itself bảo đảm
output là đúng cho của bạn routes; verify Điều gì nó produces giống nhau way bạn’d
verify bất cứ điều gì khác:
| Module | Điều gì nó làm |
|---|---|
@nuxtjs/robots | robots.txt + meta robots + X-Robots-Tag các header |
@nuxtjs/sitemap | Auto XML sitemaps từ các trang + dynamic routes |
nuxt-og-image | Dynamic OG images ( Vue template → image) |
nuxt-schema-org | Schema.org JSON-LD dữ liệu có cấu trúc |
nuxt-seo-utils | Canonical các URL, breadcrumbs, defaults |
nuxt-link-checker | Xây dựng-time hỏng-link detection |
Install toàn bộ bundle với npx nuxt module add seo, hoặc grab riêng lẻ modules
(npx nuxt module add sitemap robots). một vài behaviors worth knowing:
@nuxtjs/sitemapauto-generates từ của bạnpages/directory plus dynamic routes, splits vào sitemap chỉ mục tự động past 50 000 các URL, hỗ trợ i18n multi-language sitemaps, và có được xây dựng-trong IndexNow hỗ trợ. Một điều để nhận right: Google bỏ quachangefreqvàpriority; chỉ chính xáclastmodmatters, và chỉ Khi nội dung genuinely thay đổi.@nuxtjs/robotsgeneratesrobots.txt, robots meta tag, vàX-Robots-Tagheader — và theo mặc định nó disallows all các crawler on non-production environments, mà là chính xác staging-indexation footgun đó bites headless xây dựng. nó cũng cho bạn theo-bot rules, so Bạn có thể block GPTBot cụ thể trong khi leaving mọi người khác alone (là intentional — block AI crawler và nó sẽ không cite bạn).nuxt-seo-utilsxử lý canonical các URL và, usefully, strips theo dõi parameters (utm_*,fbclid,gclid) từ canonicals tự động.
nuxt/image và Core Web Vitals
@nuxt/image là image module: tự động responsive srcset, modern formats
(WebP/AVIF), được xây dựng-trong optimization qua CDN providers, và lazy loading. Hai
rules carry phần lớn của SEO giá trị:
- không bao giờ lazy-load LCP image. của bạn hero image nên load eagerly; lazy-loading nó delays của bạn Largest Contentful Paint.
- luôn đặt
widthvàheightso trình duyệt reserves space và bạn không take Cumulative Layout Shift hit.
<NuxtImg
src="/hero.jpg"
width="1200"
height="630"
alt="Descriptive alt text"
:loading="isHeroImage ? 'eager' : 'lazy'"
format="webp"
/>2026 targets để aim cho (p75): LCP ≤ 2,5s, INP ≤ 200ms, CLS ≤ 0,1. On Nuxt apps,
INP là một đó tends để suffer vì hydration tạo input lag — mà là
chính xác Điều gì Nuxt Islands và <NuxtIsland> là cho.
Nuxt nội dung + SEO
Nếu bạn là dùng @nuxt/content (đó markdown/MDX nội dung module), đó integration
với @nuxtjs/seo là straightforward nhưng có một ordering gotcha: load @nuxtjs/seo
trước @nuxt/content trong của bạn modules array. Bạn có thể thì set SEO trong nội dung
frontmatter (title, description, robots, ogImage, schemaOrg) và pull điều này
vào của bạn [slug].vue template với useSeoMeta() sau fetching đó nội dung. Này
là đó Nuxt-native version of đó headless-CMS pattern, và đó giống nhau “rebuild what the
plugin did” (bản dịch) «rebuild điều gì đó plugin đã làm» discipline áp dụng.
phổ biến Nuxt SEO mistakes
- Dùng SPA chế độ (
ssr: false) cho nội dung bạn muốn được lập chỉ mục. Đó hầu hết expensive mistake — và đó một đó làm bạn invisible để AI các crawler. - Relative URLs cho OG images.
ogImagephải được an absolute URL hoặc social previews break. useSeoMeta()trong một layout thay vì đó trang — generic tags overwrite trang-cụ thể ones.- Không verifying được kết xuất HTML — View Nguồn ≠ DevTools ≠ điều gì Google được kết xuất. Dùng URL Inspection.
- Blocking JS/CSS trong
robots.txt— Google sẽ không render từ blocked files. - Leaving đó staging
noindex/disallow trong place sau launch (hoặc, conversely, forgetting@nuxtjs/robotschặn non-prod theo mặc định và wondering vì sao prod là fine nhưng một custom env không). - Lazy-loading đó LCP image — tanks của bạn LCP.
- Bị thiếu
width/heighton images — CLS. changefreq/prioritytrong sitemaps — Google bỏ qua them; chỉlastmodđược tính.- Reaching cho dynamic kết xuất. Google deprecated điều này — “dynamic rendering is a workaround and not a long-term solution” (bản dịch) «dynamic kết xuất là một workaround và không một dài-term giải pháp» — và điều này chỉ serves đó engines bạn configure điều này cho, bị thiếu Bing và mỗi AI crawler. Với Nuxt bạn không bao giờ cần điều này: SSR và SSG đã cho các crawler hoàn tất HTML.
llms.txt và AEO
llms.txt là đơn giản-text file — robots.txt cousin — đó helps AI tools navigate
của bạn nội dung. nuxt-llms module auto-generates /llms.txt và /llms-full.txt
từ Nuxt nội dung. As của muộn 2025 của nó chính consumers là MCP các máy chủ và AI coding
tools (Cursor, Claude Code) thay vì ChatGPT hoặc Perplexity trực tiếp, và nó phần lớn
hữu ích cho tài liệu các trang và kỹ thuật blogs — ít hơn so cho e-commerce hoặc news.
Worth thêm nếu bạn’re tài liệu/dev trang web; không priority nếu không.
nơi điều này fits
Nuxt SEO là thực sự concrete application của JavaScript SEO qua Nuxt own conventions — và nó overlaps heavily với SEO cho headless CMS topic Khi của bạn Nuxt frontend pulls từ headless backend. principles không thay đổi; Nuxt chỉ cho bạn good defaults và mạnh module ecosystem để implement them với.
AI summary
condensed take on Nâng cao version:
- Nuxt là Vue meta-framework, và của nó SEO advantage là một default:
máy chủ-side kết xuất. route đó giữ đó default ships hoàn tất HTML,
không rỗng shell đơn giản Vue SPA ships — nhưng nó theo-route outcome, không
project-wide bảo đảm.
ssr: falsehoặcrouteRulesoverride có thể flip bất kỳ route để CSR hoặc hybrid, so verify thực tế route. - Kết xuất strategy là foundation, decided theo route — nó decides
mọi thứ trước khi meta, schema, hoặc sitemaps. Modes: SSR (default), SSG
(
nuxt generate), hybrid (routeRules), SPA (ssr: false, tránh cho được lập chỉ mục nội dung), edge. - Hybrid
routeRulesmix modes theo URL;swr/isrregenerate trong background; Nuxt Islands cut hydration cost và help INP. - Googlebot crawl → renders (queued, không instant) → indexes; takes phần lớn restrictive directive trên thô so với. được kết xuất HTML. Kết xuất là ~20× crawl cost. SSR/SSG close timing khoảng trống.
- AI-crawler kết xuất là provider-cụ thể — CSR phụ thuộc vào client execution Đó là không covered by một shared contract, so SSR/SSG maximizes AI visibility.
- Beyond đầu tiên-load HTML: verify hydration/payload independently (máy chủ HTML
≠ proof của thành công hydration hoặc client-nav parity), watch cho
<ClientOnly>hiding nội dung từ các crawler ngay cả on universal routes, và xác nhận trực tiếp HTTP status/các chuyển hướng vớicurl -Ithay vì trusting client-được kết xuất trang lỗi. - Nitro và deployment presets (Node, Cloudflare, Vercel, Netlify, static) có thể differ trong runtime APIs, bộ nhớ đệm, streaming, và regions — kiểm thử bộ nhớ đệm các header và production parity theo route, không assume presets behave identically.
- Meta tags:
useSeoMeta()Đối với SEO/social (loại-safe),useHead()cho rest của head, máy chủ-chỉ variants Khi reactivity không phải needed. Layer:nuxt.config.ts→app.vue→ trang. không putuseSeoMeta()trong layout. OG images cần absolute các URL. Calling API proves API ran, không Điều gì trực tiếp phản hồi emits — xác nhận với View Nguồn/curl. @nuxtjs/seo(Harlan Wilton) là tùy chọn thứ ba-party toolkit (v5.x, actively maintained, Nuxt 3,16+/4.x) — không part của Nuxt cốt lõi. nó bundles robots, sitemap, OG image, Schema.org, canonical, và link-checker, nhưng installing nó không itself prove đúng output. Sitemap: chỉlastmodmatters. Robots: chặn non-prod theo mặc định; theo-bot AI rules.@nuxt/image+ CWV: không bao giờ lazy-load LCP image; luôn đặtwidth/height(CLS). Targets: LCP ≤ 2,5s, INP ≤ 200ms, CLS ≤ 0,1.- không sử dụng dynamic kết xuất — Google deprecated nó; Nuxt SSR/SSG đã phục vụ đầy đủ HTML.
Tài liệu chính thức
Chính-nguồn tài liệu từ Nuxt và các công cụ tìm kiếm.
Nuxt
- Nuxt — Kết xuất Concepts — universal, client-side, và hybrid (
routeRules) kết xuất, và Vì sao các crawler ưu tiên máy chủ-được kết xuất routes. - Nuxt — SEO và Meta (getting đã bắt đầu) —
useSeoMeta(),useHead(), và head management. - Nuxt —
useSeoMetacomposable — loại-safe meta API reference, including máy chủ-chỉ usage. - Nuxt — máy chủ Engine (Nitro) — deployment presets, cross-nền tảng output, và nơi runtime/bộ nhớ đệm behavior có thể diverge.
- Nuxt — Nuxt Lifecycle — máy chủ render, payload transfer, và hydration as distinct stages.
- Nuxt Image —
<NuxtImg>, responsive formats, và provider config cho Core Web Vitals. @nuxtjs/seoon Nuxt Modules — module catalog entry: hiện tại version, downloads, và đó nó riêng-installed package.
- Understand JavaScript SEO basics — crawl → render → chỉ mục pipeline và crawlable links (framework-agnostic; tài liệu củ Google không mention Nuxt by name).
- Dynamic Kết xuất (deprecated workaround) — Vì sao Google deprecated nó và Điều gì để sử dụng thay vì (SSR, static kết xuất, hydration).
Quotes từ nguồn
On—record statements từ Nuxt, Google, và my own writing. mỗi tìm kiếm-engine / Nuxt link là deep link đó jumps để quoted passage on nguồn trang.
Nuxt — kết xuất Đối với SEO
- “Indexing and updating the content delivered via client-side rendering takes more time.” (bản dịch) «Lập chỉ mục và updating đó nội dung delivered qua client-side kết xuất takes hơn time.» — Nuxt kết xuất tài liệu. Nhảy đến trích dẫn
- “Web crawlers can directly index the page’s content, which makes Universal rendering a great choice for any content that you want to index quickly.” (bản dịch) «Web các crawler có thể trực tiếp chỉ mục đó trang nội dung, mà làm Universal kết xuất một great lựa chọn cho bất kỳ nội dung đó bạn muốn để chỉ mục quickly.» — Nuxt kết xuất tài liệu. Nhảy đến trích dẫn
Google — JavaScript processing & dynamic kết xuất
- “Google processes JavaScript web apps in three main phases: 1. Crawling 2. Rendering 3. Indexing.” (bản dịch) «Google xử lý JavaScript web apps trong three main phases: 1. Crawling 2. Kết xuất 3. Lập chỉ mục.» — Google Search Central tài liệu. Nhảy đến trích dẫn
- “Dynamic rendering is a workaround and not a long-term solution for problems with JavaScript-generated content in search engines. Instead, we recommend that you use server-side rendering, static rendering, or hydration as a solution.” (bản dịch) «Dynamic kết xuất là một workaround và không một dài-term giải pháp cho các vấn đề với JavaScript-generated nội dung trong các công cụ tìm kiếm. Thay vì, we khuyến nghị đó bạn dùng máy chủ-side kết xuất, static kết xuất, hoặc hydration as một giải pháp.» — Google Search Central tài liệu. Nhảy đến trích dẫn
Patrick Stox (my own hoạt động — JavaScript SEO: Definitive Hướng dẫn)
- “Any kind of SSR, static rendering, and prerendering setup is going to be fine for search engines. Gatsby, Next, Nuxt, etc., are all great.” (bản dịch) «Bất kỳ kind of SSR, static kết xuất, và prerendering setup là going để là fine cho các công cụ tìm kiếm. Gatsby, Tiếp theo, Nuxt, etc., là all great.»
- “There is no fixed timeout for the renderer… It’s really patient, and you should not be concerned.” (bản dịch) «Có không fixed timeout cho đó renderer… đây là thực sự patient, và bạn không nên là concerned.»
- “JavaScript is not bad for SEO, and it’s not evil. It’s just different from what many SEOs are used to.” (bản dịch) «JavaScript không phải bad cho SEO, và đây là không evil. đây là chỉ khác nhau từ điều gì nhiều SEOs là được dùng để.»
Nuxt SEO checklist
nhanh truyền để xác nhận Nuxt trang web là thiết lập Đối với tìm kiếm và AI các crawler:
- nội dung bạn muốn được lập chỉ mục là được kết xuất on máy chủ hoặc tại xây dựng time (SSR hoặc
SSG) — không SPA chế độ (
ssr: false). - Confirmed qua View Nguồn đó quan trọng nội dung là trong thô HTML, và qua URL Inspection đó Google renders nó.
-
useSeoMeta()là trong trang components, không shared layout overwriting trang tags. -
ogImagedùng absolute URL (không relative). - tiêu đề template là đặt sau khi trong
app.vue; theo-trang các tiêu đề/các mô tả là unique. -
@nuxtjs/sitemaplà generating XML sitemap;lastmodlà chính xác và bạn’re không relying onchangefreq/priority. -
@nuxtjs/robotslà configured; non-prod auto-disallow không phải accidentally applying để production. -
robots.txtlàm không block của bạn JS/CSS. - Canonicals là absolute và theo-trang (
nuxt-seo-utils). - LCP image loads eagerly (không lazy); all images có
width/height(CLS). - thực
<a href>links /<NuxtLink>cho navigation — không<div @click>routing. - nếu sử dụng
@nuxt/content,@nuxtjs/seolà loaded trước khi nó trong modules array. - Dynamic kết xuất là không trong sử dụng anywhere.
mental models
1. Kết xuất strategy xuất hiện đầu tiên. Meta tags, schema, và sitemaps là downstream of một decision: cách đó HTML nhận produced. Câu trả lời “is this content server-rendered, statically generated, or client-rendered?” (bản dịch) «là này nội dung máy chủ-được kết xuất, statically generated, hoặc client-được kết xuất?» trước gỡ lỗi bất cứ điều gì khác.
2. SSR là default — của bạn job là mostly không để break nó.
Nuxt points defaults right way. phần lớn Nuxt SEO failures là ai đó setting
ssr: false, blocking JS/CSS, hoặc injecting các tín hiệu qua JavaScript đó conflict với
thô HTML.
3. Pick kết xuất chế độ by nội dung loại.
- Mostly-static (blog, tài liệu, marketing) → SSG (
prerender: true). - luôn-fresh / dynamic → SSR.
- Hourly/daily nội dung wanting static speed →
swr/isr. - Behind login, không được lập chỉ mục → SPA (
ssr: false) là fine. - Công khai nội dung bạn muốn được xếp hạng hoặc cited by AI → không bao giờ SPA.
4. HTML-đầu tiên, JS-thứ hai cho mỗi tín hiệu. nội dung, meta, canonical, robots directives, và links all belong trong máy chủ-được kết xuất HTML. Google takes phần lớn restrictive directive trên thô so với. được kết xuất; AI các crawler see chỉ thô. JS-injected SEO là fallback, không plan.
5. sử dụng modules, nhưng understand Điều gì họ làm.
@nuxtjs/seo saves hoạt động, nhưng non-prod robots auto-disallow, lastmod-chỉ
sitemap reality, và absolute-URL canonicals là vẫn yours để nhận right.
Nuxt SEO — bảng tra nhanh
Kết xuất modes
| Chế độ | Config | SEO | Best cho |
|---|---|---|---|
| Universal / SSR | ssr: true (default) | ✅ Best | Dynamic / personalized |
| Static / SSG | nuxt generate | ✅ Best | Blogs, tài liệu, marketing |
| Hybrid | routeRules | ✅ Best | Lớn mixed-nội dung các trang |
| SPA / CSR | ssr: false | ⚠️ Poor cho lập chỉ mục | Dashboards, admin |
| Edge-side | Deploy đích | ✅ Thấp TTFB | Global performance |
Composables
| sử dụng | Reach cho |
|---|---|
| SEO + social meta tags | useSeoMeta() (loại-safe) |
| Tiêu đề templates, scripts, link tags, html attrs | useHead() |
| Skip client re-execution cho static meta | useServerHead() |
@nuxtjs/seo modules
| Module | Job |
|---|---|
@nuxtjs/robots | robots.txt + meta robots + X-Robots-Tag (chặn non-prod theo mặc định) |
@nuxtjs/sitemap | XML sitemap (chỉ lastmod matters; auto chỉ mục past 50k các URL) |
nuxt-og-image | Dynamic OG images |
nuxt-schema-org | JSON-LD dữ liệu có cấu trúc |
nuxt-seo-utils | Canonical các URL (strips utm_*/fbclid/gclid), breadcrumbs |
nuxt-link-checker | Xây dựng-time hỏng links |
Fast rules
- Install mọi thứ:
npx nuxt module add seo. - OG images: absolute các URL chỉ.
- LCP image:
loading="eager"; all images cầnwidth/height(CLS). - CWV targets: LCP ≤ 2,5s, INP ≤ 200ms, CLS ≤ 0,1.
- không bao giờ block JS/CSS trong robots.txt.
- Dynamic kết xuất: deprecated — Nuxt SSR/SSG replace nó.
- AI các crawler: không JavaScript → SPA nội dung là invisible để them.
See Điều gì Nuxt trang thực ra ships
toàn bộ Nuxt SEO câu hỏi reduces để một kiểm tra: là của bạn nội dung trong thô HTML máy chủ gửi, hoặc chỉ sau khi JavaScript chạy? nếu nó trong thô HTML, bạn’re máy chủ-kết xuất và các crawler (và AI bots) có thể đọc nó.
Fetch thô HTML và look cho của bạn nội dung
macOS / Linux:
# Raw HTML as the server sends it — before any client JS runs
curl -sL -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
https://example.com/page/ -o raw.html
# Is your headline actually in the server HTML? (empty = client-rendered)
grep -o "Your headline text" raw.htmlWindows (PowerShell):
$ua = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Invoke-WebRequest -Uri "https://example.com/page/" -UserAgent $ua -OutFile raw.html
Select-String -Path raw.html -Pattern "Your headline text"nếu của bạn text hiển thị trong trình duyệt nhưng là bị thiếu từ raw.html, trang là
client-được kết xuất — flip route để SSR hoặc prerender nó. ( đơn giản curl có thể’t chạy JS;
cho được kết xuất DOM sử dụng URL Inspection hoặc headless-Chrome crawler.)
xác nhận bạn không phải blocking JS/CSS
macOS / Linux:
curl -sL https://example.com/robots.txt | grep -iE "disallow.*\.(js|css)|Disallow:\s*/(_nuxt|_ipx|assets)"Disallow matching /_nuxt/ (Nuxt xây dựng output) hoặc /_ipx/ ( @nuxt/image
optimizer) sẽ break kết xuất — gần như luôn mistake.
Static config snippet (nuxt.config.ts)
export default defineNuxtConfig({
modules: ['@nuxtjs/seo'], // robots, sitemap, og-image, schema-org, utils
site: { url: 'https://mysite.com' }, // required for absolute canonicals + sitemap
routeRules: {
'/blog/**': { prerender: true }, // SSG for content
'/admin/**': { ssr: false }, // SPA for the dashboard (won't be indexed)
},
}) Tools cho Nuxt SEO
- URL Inspection (Google Search Console) — nguồn của truth. Chạy trực tiếp kiểm thử và kiểm tra được kết xuất HTML, screenshot, và trang các tài nguyên để xác nhận của bạn Nuxt nội dung thực ra được kết xuất và không có gì blocked.
@nuxtjs/seo/ nuxtseo.com — Harlan Wilton module bundle; dev tools panel hiển thị của bạn generated robots, sitemap, schema, và OG images trong development.- Nuxt DevTools — inspect head tags, route rules, và mà kết xuất chế độ mỗi route là sử dụng.
- Rich Kết quả Kiểm thử — xác nhận
nuxt-schema-orgJSON-LD là present trong được kết xuất output sau khi bất kỳ kết xuất thay đổi. - Ahrefs trang web Audit / Screaming Frog (JS-kết xuất chế độ) — crawl với JS kết xuất on so với. off để diff thô so với. được kết xuất HTML trên toàn bộ Nuxt app và catch CSR gaps.
- Lighthouse / PageSpeed Insights — Core Web Vitals (LCP, INP, CLS) cho
@nuxt/imagevà Nuxt Islands hoạt động. - Bing Quản trị viên web Tools — Bing crawl/chỉ mục view và nơi IndexNow submissions hiển thị lên.
Nuxt SEO mistakes để tránh
Concrete mistakes đó hiển thị lên repeatedly on thực Nuxt các trang — ngăn những điều này trước khi họ ship, thay vì diagnosing them sau khi traffic drops.
Flipping ssr: false on nội dung bạn muốn được lập chỉ mục
single phần lớn expensive Nuxt SEO mistake. SPA chế độ ships giống nhau rỗng-shell vấn đề đơn giản Vue có — các công cụ tìm kiếm có để chờ cho render queue để fill trong nội dung. AI-crawler kết xuất contracts vary by provider, so crawler đó fetches chỉ ban đầu HTML sẽ miss nội dung trang.
Vì sao nó sai: bạn’re voluntarily giving lên một default (SSR) đó làm Nuxt easier để chỉ mục hơn đơn giản Vue.
Điều gì để làm thay vì: leave ssr: true ( default) cho bất cứ điều gì công khai và
indexable. Reserve ssr: false cho genuinely non-được lập chỉ mục surfaces — logged-trong
dashboards, admin panels — qua routeRules, không global config flip.
Putting useSeoMeta() trong shared layout
Setting tiêu đề/mô tả bên trong layout component feels efficient — một place,
áp dụng mọi nơi — nhưng nó có nghĩ là mỗi trang đó dùng đó layout nhận giống nhau
generic tags, và trang-cấp độ useSeoMeta() calls có thể nhận overwritten depending on
render order.
Vì sao nó sai: unique, trang-cụ thể các tiêu đề và các mô tả là basic relevance các tín hiệu; layout-cấp độ default collapses them all để một string.
Điều gì để làm thay vì: đặt global fallbacks sau khi trong app.vue (tiêu đề template, OG
defaults), sau đó call useSeoMeta() bên trong mỗi trang component với đó trang
thực tế tiêu đề và mô tả.
Shipping relative ogImage URL
ogImage: '/social.png' looks fine trong trình duyệt và completely fails Khi
Facebook, LinkedIn, hoặc X try để fetch nó, vì social các crawler không resolve
relative paths so với của bạn trang web.
Vì sao nó sai: social các nền tảng cần absolute URL để fetch image; relative path resolves để không có gì từ của họ side.
Điều gì để làm thay vì: luôn truyền đầy đủ https:// URL, và đặt site.url trong
nuxt.config.ts so @nuxtjs/seo’s modules có thể xây dựng absolute các URL cho bạn
tự động.
Reaching cho dynamic kết xuất
Serving một prerendered snapshot để known bots và đó SPA để mọi người khác đã là một legitimate workaround năm ago. Google có since called điều này out trực tiếp: “dynamic rendering is a workaround and not a long-term solution.” (bản dịch) «dynamic kết xuất là một workaround và không một dài-term giải pháp.»
Vì sao nó sai: nó chỉ phục vụ bots bạn configure, misses mọi thứ khác (Bing, phần lớn AI các crawler), và adds thực infrastructure để maintain — cho vấn đề Nuxt own SSR/SSG đã solves.
Điều gì để làm thay vì: sử dụng SSR hoặc nuxt generate và skip dynamic kết xuất
hoàn toàn. có không scenario nơi Nuxt trang web cần nó.
Blocking /_nuxt/ hoặc /_ipx/ trong robots.txt
blanket Disallow: /assets/ hoặc overzealous robots rule có thể accidentally catch
Nuxt xây dựng output directory (/_nuxt/) hoặc @nuxt/image optimizer path
(/_ipx/).
Vì sao nó sai: nếu Googlebot có thể’t fetch JS/CSS đó xây dựng trang, nó có thể’t xác nhận của bạn SSR output là Điều gì nó looks như — và bất kỳ client-side enhancements silently dừng kết xuất cho nó.
Điều gì để làm thay vì: không bao giờ disallow xây dựng-output hoặc image-optimizer paths. kiểm tra
robots.txt sau khi mỗi deploy đó touches routing hoặc module config, không chỉ sau khi
tại launch.
Leaving non-production robots block active sau khi launch
@nuxtjs/robots disallows all các crawler on non-production environments theo mặc định —
good safety net cho staging, nhưng nó đọc environment variables để quyết định, và
misconfigured NODE_ENV hoặc preview-deploy setting có thể làm nó fire trong production
cũng.
Vì sao nó sai: trang web looks completely fine trong trình duyệt trong khi robots.txt
âm thầm disallows mọi thứ, và không có gì nhận được lập chỉ mục cho đến khi ai đó notices.
Điều gì để làm thay vì: sau khi bất kỳ deploy hoặc environment thay đổi, fetch
https://yoursite.com/robots.txt trực tiếp và xác nhận nó không blanket
Disallow: /.
Standing KPIs cho Nuxt SEO
ongoing numbers để track sau khi của bạn kết xuất setup là đúng — không một-time kiểm tra, nhưng recurring các tín hiệu đó catch regressions as app thay đổi.
Core Web Vitals (LCP, INP, CLS)
Điều gì nó tells bạn: liệu thực khách truy cập là getting fast, ổn định trang — trực tiếp affected by Nuxt Islands/hydration cost (INP) và image-loading choices (LCP, CLS).
Cách pull nó: trường dữ liệu từ Chrome UX Báo cáo qua /tools/crux-tracker/ hoặc /tools/cwv-checker/; lab dữ liệu từ Lighthouse cho pre-phát hành kiểm tra.
Benchmark / realistic range: Google published “good” thresholds là LCP ≤ 2,5s, INP ≤ 200ms, CLS ≤ 0,1 tại 75th percentile — những điều đó là truyền/fail lines CrUX itself dùng, không number I’m inventing. nơi bạn land trong “good” phụ thuộc heavily on của bạn image weight và Cách nhiều bạn hydrate.
Cadence: CrUX trường dữ liệu cập nhật on rolling 28-day window — kiểm tra monthly, và immediately sau khi bất kỳ thay đổi để images, fonts, hoặc hydration.
Được kết xuất-so với-thô HTML parity
Điều gì nó tells bạn: liệu nội dung các công cụ tìm kiếm và AI các crawler có thể
thực ra see ( thô HTML) matches Điều gì khách truy cập sees trong trình duyệt ( được kết xuất
DOM) — cốt lõi Nuxt SEO risk nếu ssr nhận flipped hoặc route regresses để CSR.
Cách pull điều này: /tools/render-khoảng trống/ diffs thô so với. được kết xuất HTML cho một URL; cho đó có thẩm quyền Google-side view, dùng GSC URL Inspection → “View Crawled Page.” (bản dịch) «View Được crawl Trang.»
Benchmark / realistic range: Đây là binary kiểm tra, không range — của bạn mấu chốt nội dung (headline, thân phản hồi copy, liên kết nội bộ) nên là present trong thô HTML, đầy đủ dừng. bất kỳ khoảng trống trên một trang bạn muốn được lập chỉ mục hoặc cited là regression để khắc phục, không number để tolerate.
Cadence: sau khi mỗi deploy đó touches routeRules, layouts, hoặc ssr
config; spot-kiểm tra mấu chốt templates monthly nếu không.
chỉ mục coverage (trang lập chỉ mục báo cáo)
Điều gì nó tells bạn: Cách nhiều của bạn được gửi các URL Google có thực ra được lập chỉ mục, và Vì sao rest là excluded (duplicate, được crawl-không-được lập chỉ mục, blocked, etc.) — downstream tín hiệu đó kết xuất các vấn đề eventually surface as.
Cách pull nó: Search Console → trang lập chỉ mục báo cáo, filtered để của bạn Nuxt trang web URL patterns.
Benchmark / realistic range: có không universal healthy percentage — nó phụ thuộc vào Cách nhiều near-duplicate hoặc thin các URL của bạn route structure generates. Watch trend và exclusion reasons, không đích number.
Cadence: weekly during và sau khi kết xuất-chế độ migration; monthly nếu không.
AI crawler access
Điều gì nó tells bạn: liệu GPTBot, ClaudeBot, PerplexityBot, và similar AI
các crawler có thể thực ra fetch của bạn các trang — tách biệt từ Google, since những điều này bots
generally không execute JavaScript và đọc chỉ thô HTML của bạn robots.txt
lets them reach.
Cách pull nó: /tools/ai-crawler-checker/ để xác nhận không AI người dùng-agent là disallowed; máy chủ nhật ký để xác nhận bots là thực ra requesting các trang, không chỉ permitted để.
Benchmark / realistic range: có không citation-rate benchmark I có thể cho bạn honestly — Cách thường AI câu trả lời engine cites bạn phụ thuộc vào query space và competition, không điều gì đó Nuxt configuration controls trực tiếp. Track access (được phép so với. blocked), không đã làm-lên citation percentage.
Cadence: sau khi mỗi robots.txt hoặc @nuxtjs/robots config thay đổi; monthly log
spot-kiểm tra nếu không.
Tự kiểm tra: Nuxt SEO
Five nhanh các câu hỏi on optimizing Nuxt trang web Đối với tìm kiếm. Pick câu trả lời cho mỗi, sau đó kiểm tra.
các tài nguyên worth của bạn time
My related writing
- JavaScript SEO: Definitive Hướng dẫn — my đầy đủ hướng dẫn để kết xuất, DOM parity, phần lớn-restrictive-directive rule, và Vì sao SSR/static/prerender (Nuxt được bao gồm) là all fine Đối với tìm kiếm.
- Người mới bắt đầu Hướng dẫn để kỹ thuật SEO — nơi kết xuất và crawling fit trong bigger picture.
My speaking
- JavaScript SEO — Ungagged 2019 (SlideShare) — Googlebot’s evergreen Chromium, ~20× crawl cost của kết xuất, History API over hash routing, và Cách Google xử lý JS-injected canonicals. (Standing disclaimer: dynamic-kết xuất advice trong đó deck là hiện tại outdated — Google deprecated nó.)
từ khoảng ngành
- Nuxt — Kết xuất Concepts (chính thức) — universal so với. client-side kết xuất và Vì sao các crawler ưu tiên SSR.
- Nuxt — SEO và Meta (chính thức) —
useSeoMeta()vàuseHead(), getting-đã bắt đầu reference. - Learn SEO với Nuxt (Harlan Wilton / nuxtseo.com) — phần lớn comprehensive nhà phát triển-focused Nuxt SEO hướng dẫn, kept hiện tại.
- harlan-zw/nuxt-seo (GitHub) — nguồn cho
@nuxtjs/seomodule bundle. - Nuxt Image (chính thức) —
<NuxtImg>và Core Web Vitals optimization. - Optimize Nuxt Performance (DebugBear) — practitioner walkthrough của Nuxt Core Web Vitals các cách sửa.
- Nuxt 3 Kết xuất Modes (RisingStack) — kỹ thuật so sánh của SSR, SSG, và hybrid kết xuất.
- r/TechSEO — community cho kết xuất/lập chỉ mục gỡ lỗi.
Videos
- Google Search Central (YouTube) — Martin Splitt JavaScript SEO series là best chính thức walkthrough của Cách Google crawl, renders, và indexes JS apps; nó framework-agnostic nhưng áp dụng trực tiếp để Nuxt. Channel
Nhật ký thay đổi
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 27 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 18 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.