Catalog / vietnhan.co
66

SEO audit for vietnhan.co

VietNhan Media | Giải pháp Website, Marketing, SEO uy tín

media

Health 66/100 (fair) · 50 pages crawled · generated 2026-07-29

Download Markdown report (feed to ChatGPT / Claude / Cursor)

VietNhan Media là công ty cung cấp dịch vụ thiết kế web, dịch vụ SEO hàng đầu Việt Nam. Giải pháp marketing toàn diện cho doanh nghiệp với hơn 1814+ khách hàng tin dùng

Screenshot of vietnhan.co
50
pages crawled
49
indexable pages
0
errors
391
warnings
751
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 0 0 247 1
Agent Readiness 71 0 49 58
Performance 71 0 49 196
Duplicate 76 0 40 20
Headings 98 0 3 1
Structured Data 99 0 2 61
Robots 99 0 1 0
Cache 100 0 0 49
Content 100 0 0 51
Crawlability 100 0 0 19
Images 100 0 0 49
Meta Description 100 0 0 47
Mobile 100 0 0 49
Security 100 0 0 98
Social 100 0 0 49
Titles 100 0 0 3
Findings

Warnings (8 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 49 occurrence(s)

warning Duplicate page content

Rule duplicate.content · Duplicate · 20 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 20 occurrence(s)

warning Internal link points to a redirect

Rule links.redirect_target · Links · 247 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 49 occurrence(s)

warning robots.txt blocks CSS/JS the pages need to render

Rule robots.blocks_css_js · Robots · 1 occurrence(s)

  • https://vietnhan.co/ — robots.txt Disallow blocks render-critical CSS/JS under: /css/, /js/ — Google's renderer can't fetch these, so the affected pages may render blank or thin. Allow the asset path(s) for Googlebot.

warning BreadcrumbList present but structurally incomplete

Rule schema.breadcrumb_incomplete · Structured Data · 2 occurrence(s)

  • https://vietnhan.co/dich-vu-viet-nhan.html — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://vietnhan.co/thiet-ke-website.html — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.

Notices (23 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 9 occurrence(s)

notice No main landmark for AI agents

Rule agent.no_main_landmark · Agent Readiness · 49 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 49 occurrence(s)

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 20 occurrence(s)

notice Article page has no publication date (freshness / E-E-A-T)

Rule eeat.no_date · Content · 2 occurrence(s)

  • https://vietnhan.co/dich-vu-viet-nhan.html — this page is marked up as an article but has no publication date — no datePublished in its JSON-LD and no visible date — add a visible published date and an Article.datePublished so Google can assess freshness
  • https://vietnhan.co/thiet-ke-website.html — this page is marked up as an article but has no publication date — no datePublished in its JSON-LD and no visible date — add a visible published date and an Article.datePublished so Google can assess freshness

notice Multiple <h1> elements

Rule h1.multiple · Headings · 1 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 49 occurrence(s)

  • https://vietnhan.co/ — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/chay-adword.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/cloud-server.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-bao-tri.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-4-000-000-d-thang-314 — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-cham-soc-fanpage-tron-goi.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-thiet-ke-in-an.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-thong-bao-website-voi-bo-cong-thuong.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-viet-nhan.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/dich-vu-xac-minh-ban-do-google-maps.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/email-hosting.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/gioi-thieu.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/ho-tro-khach-hang.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-binh-thanh-50 — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/khach-hang-viet-nhan.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/khach-hang/up-tech-367 — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/lien-he-viet-nhan.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/linux-hosting.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/n/thiet-ke-website-quan-7-168 — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/phan-mem.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/seo.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/ten-mien.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/thiet-ke-website.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/thiet-ke.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://vietnhan.co/ve-viet-nhan.html — the likely hero/LCP image (logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 49 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 1 occurrence(s)

notice Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 49 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 47 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 49 occurrence(s)

  • https://vietnhan.co/ — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/chay-adword.html — 17 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/cloud-server.html — 16 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-bao-tri.html — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-4-000-000-d-thang-314 — 15 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-cham-soc-fanpage-tron-goi.html — 18 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-thiet-ke-in-an.html — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-thong-bao-website-voi-bo-cong-thuong.html — 15 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-viet-nhan.html — 29 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/dich-vu-xac-minh-ban-do-google-maps.html — 21 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/email-hosting.html — 21 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/gioi-thieu.html — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/ho-tro-khach-hang.html — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-binh-thanh-50 — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/khach-hang-viet-nhan.html — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/khach-hang/up-tech-367 — 11 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/lien-he-viet-nhan.html — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/linux-hosting.html — 20 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/n/thiet-ke-website-quan-7-168 — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/phan-mem.html — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/seo.html — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/ten-mien.html — 16 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/thiet-ke-website.html — 22 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/thiet-ke.html — 33 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://vietnhan.co/ve-viet-nhan.html — 20 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 49 occurrence(s)

  • https://vietnhan.co/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/chay-adword.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/cloud-server.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-bao-tri.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-4-000-000-d-thang-314 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-cham-soc-fanpage-tron-goi.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-thiet-ke-in-an.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-thong-bao-website-voi-bo-cong-thuong.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-viet-nhan.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/dich-vu-xac-minh-ban-do-google-maps.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/email-hosting.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/gioi-thieu.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/ho-tro-khach-hang.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-binh-thanh-50 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/khach-hang-viet-nhan.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/khach-hang/up-tech-367 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/lien-he-viet-nhan.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/linux-hosting.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/n/thiet-ke-website-quan-7-168 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/phan-mem.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/seo.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/ten-mien.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/thiet-ke-website.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/thiet-ke.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://vietnhan.co/ve-viet-nhan.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

notice No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 49 occurrence(s)

  • https://vietnhan.co/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/chay-adword.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/cloud-server.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-bao-tri.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-4-000-000-d-thang-314 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-cham-soc-fanpage-tron-goi.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-thiet-ke-in-an.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-thong-bao-website-voi-bo-cong-thuong.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-viet-nhan.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/dich-vu-xac-minh-ban-do-google-maps.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/email-hosting.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/gioi-thieu.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/ho-tro-khach-hang.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-binh-thanh-50 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/khach-hang-viet-nhan.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/khach-hang/up-tech-367 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/lien-he-viet-nhan.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/linux-hosting.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/n/thiet-ke-website-quan-7-168 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/phan-mem.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/seo.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/ten-mien.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/thiet-ke-website.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/thiet-ke.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://vietnhan.co/ve-viet-nhan.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice URL redirects to another URL

Rule redirect.single · Crawlability · 19 occurrence(s)

notice Article schema missing recommended properties (Top Stories / image carousel)

Rule schema.article_incomplete · Structured Data · 12 occurrence(s)

notice Deprecated schema type with no Google rich result

Rule schema.deprecated_type · Structured Data · 12 occurrence(s)

notice Missing recommended security headers

Rule security.missing_headers · Security · 49 occurrence(s)

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 49 occurrence(s)

notice Title tag is identical to the H1 (missed keyword variation)

Rule title.same_as_h1 · Titles · 3 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://vietnhan.co/
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/chay-adword.html
Dịch Vụ Chạy Quảng Cáo Chuyên Nghiệp, Uy Tín, Giá Tốt
200 yes 626 49
https://vietnhan.co/cloud-server.html
Cung Cấp Cloud Server, AWS Tốc Độ Cao Uy Tín
200 yes 490 49
https://vietnhan.co/dich-vu-bao-tri.html
Dịch Vụ Chăm Sóc Và Bảo Trì Website Chuyên Nghiệp, Hiệu Quả
200 yes 408 49
https://vietnhan.co/dich-vu-cham-soc-fanpage-tron-goi.html
Dịch Vụ Chăm Sóc Fanpage Trọn Gói, Chuyên Nghiệp
200 yes 471 49
https://vietnhan.co/dich-vu-thiet-ke-in-an.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/dich-vu-thong-bao-website-voi-bo-cong-thuong.html
Dịch Vụ Thông Báo Bộ Công Thương Uy Tín, Nhanh Chóng
200 yes 508 49
https://vietnhan.co/dich-vu-viet-nhan.html
Tổng hợp các dịch vụ tại VietNhan Media
200 yes 740 49
https://vietnhan.co/dich-vu-xac-minh-ban-do-google-maps.html
Dịch Vụ Xác Minh Bản Đồ Google Maps Chính Xác, Tiện Lợi
200 yes 1308 49
https://vietnhan.co/email-hosting.html
Cung Cấp Email Hosting, Email Theo Tên Miền Chuyên Nghiệp
200 yes 515 49
https://vietnhan.co/gioi-thieu.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/ho-tro-khach-hang.html
Tổng hợp các bài viết mới nhất tại VietNhan
200 yes 827 49
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-binh-tan-187
Thiết Kế Website Quận Bình Tân | Thiết Kế Website Trọn Gói
200 yes 1518 49
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-binh-thanh-50
Thiết Kế Website Quận Bình Thạnh | Thiết kế website
200 yes 1331 49
https://vietnhan.co/khach-hang-viet-nhan.html
Khách hàng và dự án tiêu biểu
200 yes 311 49
https://vietnhan.co/khach-hang.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/lien-he-viet-nhan.html
Liên hệ với VietNhan Media
200 yes 337 49
https://vietnhan.co/lien-he.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/linux-hosting.html
Cung Cấp Linux Hosting Tốc Độ Cao, Bảo Mật Tốt
200 yes 496 49
https://vietnhan.co/phan-mem.html
Thiết Kế Phần Mềm Chất Lượng, Hiệu Quả Cao
200 yes 769 49
https://vietnhan.co/seo.html
Dịch Vụ SEO Từ Khóa Website Lên Top Google Hiệu Quả
200 yes 809 49
https://vietnhan.co/ten-mien.html
Cung Cấp Domain, Tên Miền Uy Tín, Giá Tốt
200 yes 505 49
https://vietnhan.co/thiet-ke-website.html
Thiết Kế Website Chuyên Nghiệp, Chuẩn SEO, Bảo Hành Lâu Dài
200 yes 1408 49
https://vietnhan.co/thiet-ke.html
Thiết kế website giá tốt tại Việt Nhân
200 yes 625 49
https://vietnhan.co/tin-tuc.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 49
https://vietnhan.co/ve-viet-nhan.html
Công Ty TNHH Truyền Thông Việt Nhân
200 yes 783 49
https://vietnhan.co/khach-hang/up-tech-367
Dự án thiết kế website cho U.P TECH
200 yes 925 2
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-tan-phu-53
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 1
https://vietnhan.co/pham-mem.html
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 1
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-an-giang-186
Thiết kế website tại An Giang - Tặng tên miền, free hosting năm đầu
200 yes 1263 1
https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-8-000-000d-thang-315
Dịch vụ bảo trì website trọn gói 8.000.000 đ/tháng
200 yes 1787 1
https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-12-000-000d-thang-317
Dịch vụ bảo trì website trọn gói 12.000.000 đ/tháng
200 yes 1429 0
https://vietnhan.co/dich-vu-bao-tri/dich-vu-cham-soc-va-bao-tri-website-4-000-000-d-thang-314
Dịch vụ bảo trì website trọn gói 4.000.000 đ/tháng
200 yes 1369 0
https://vietnhan.co/ho-tro-khach-hang/dich-vu-thiet-ke-landing-page-de-chay-quang-cao-hieu-qua-511
Dịch vụ thiết kế landing page để chạy quảng cáo hiệu quả
200 yes 1330 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-web-ban-hang-tai-binh-tan-513
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-ban-chan-ga-goi-dem-tron-goi-512
Thiết kế website bán chăn ga gối đệm trọn gói
200 yes 1245 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-ban-hang-tron-goi-cho-quan-2-516
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-ban-hang-truc-tuyen-277
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-giao-duc-tron-goi-chuan-seo-514
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-giao-duc-tron-goi-tu-6-trieu-473
Thiết kế website giáo dục trọn gói từ 6 triệu
200 yes 1221 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-4-165
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-8-169
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-quan-phu-nhuan-176
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-tai-hoc-mon-51
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-tai-quan-10-243
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-tan-binh-52
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-thuong-mai-dien-tu-tron-goi-515
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/ho-tro-khach-hang/thiet-ke-website-ton-giao-tron-goi-tu-4-trieu-475
Thiết kế website tôn giáo trọn gói từ 4 triệu
200 yes 1309 0
https://vietnhan.co/n/thiet-ke-website-quan-7-168
VietNhan Media | Giải pháp Website, Marketing, SEO uy tín
200 yes 610 0
https://vietnhan.co/files/common/viet-nhan-co-kcevrjhd21qiyvkookqnsoipfcwsswjo4qu.jpg 200 no 0 1

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →