Catalog / thammynp.com
64

SEO audit for thammynp.com

Thẩm Mỹ NP

other

Health 64/100 (fair) · 48 pages crawled · generated 2026-08-26

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

Viện Thẩm Mỹ Ngân Phạm làm đẹp từ trái tim

48
pages crawled
46
indexable pages
1
errors
133
warnings
753
notices
25
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Security 98 1 0 83
Duplicate 66 0 55 36
Agent Readiness 74 0 41 42
Links 84 0 25 83
Crawlability 96 0 7 25
Images 99 0 2 70
Budget 99 0 1 0
Headings 99 0 1 1
Indexability 99 0 1 0
Cache 100 0 0 42
Canonical 100 0 0 1
Content 100 0 0 45
Meta Description 100 0 0 41
Mobile 100 0 0 1
Performance 100 0 0 169
Sitemap 100 0 0 1
Social 100 0 0 75
Structured Data 100 0 0 2
Titles 100 0 0 36
Findings

Errors (1 rules)

error Mixed content on HTTPS page

Rule security.mixed_content · Security · 1 occurrence(s)

Warnings (10 rules)

warning Control has no accessible name

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

warning Noindex page receives internal links (crawl-budget waste)

Rule budget.noindex_linked · Budget · 1 occurrence(s)

  • https://thammynp.com/gio-hang.html — this noindex page has 41 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://thammynp.com/, https://thammynp.com/gioi-thieu.html, https://thammynp.com/san-pham.html.

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Incomplete/empty response after retries (likely transient — re-crawl)

Rule fetch.incomplete · Crawlability · 6 occurrence(s)

warning Missing <h1>

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

warning Images missing alt text

Rule images.missing_alt · Images · 2 occurrence(s)

warning noindex + nofollow (blocks link equity flow)

Rule index.noindex_nofollow · Indexability · 1 occurrence(s)

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 25 occurrence(s)

warning Meta-refresh redirect (use an HTTP 301 instead)

Rule meta.refresh_redirect · Crawlability · 1 occurrence(s)

Notices (32 rules)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

  • https://thammynp.com/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

notice No main landmark for AI agents

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

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

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

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 1 occurrence(s)

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 3 occurrence(s)

notice Duplicate meta description across pages

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

notice Missing <!DOCTYPE html> (quirks-mode rendering risk)

Rule encoding.doctype_missing · Content · 1 occurrence(s)

notice Multiple <h1> elements

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

notice Missing html lang attribute

Rule i18n.lang_missing · Mobile · 1 occurrence(s)

notice Image alt text is very long (possible keyword stuffing)

Rule images.alt_too_long · Images · 1 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

Rule images.generic_filename · Images · 27 occurrence(s)

  • https://thammynp.com/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/index.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/bao-ve-lan-da-8 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/cang-da-mat-11/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/duong-da-6 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/filler-tiem-cang-bong-da-arielle-29.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/filler-tiem-cang-bong-da-mat-sosum-soft-27.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/kem-chong-nang-cs-lab-23.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/kem-duong-power-repair-21.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/kem-tri-mun-30.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/kem-tri-mun-4 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/mat-na-dap-mat-10/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/mat-na-dap-mat-12/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/mat-na-mat-ca-hoi-salmon-oil-nutrition-eye-patch-28.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/mat-na-phuc-hoi-diona-25.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/serum-phuc-hoi-da-chong-lao-hoa-eldas-20.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/serum-te-bao-goc-vitamin-drwon-2-26.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/set-5-mon-duong-trang-cua-whoo-19.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/set-ohui-chong-lao-hoa-bo-3-san-pham-18.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/sua-tam-trang-medifferent-22.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/tai-tao-lan-da-7 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/tay-xoa-hinh-xam-9 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/tre-hoa-lan-da-5 — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://thammynp.com/san-pham/xoa-xam-cs-lab-24.html — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.

notice Likely hero image lacks fetchpriority=high

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

  • https://thammynp.com/ — the likely hero/LCP image (logo-np-6913.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://thammynp.com/dao-tao.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/dich-vu.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/dich-vu.html&p=2 — the likely hero/LCP image (logo-np-6913.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://thammynp.com/gio-hang.html — the likely hero/LCP image (thanhcong.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://thammynp.com/gioi-thieu.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/index.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/lien-he.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-arielle-29.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-mat-sosum-soft-27.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/kem-chong-nang-cs-lab-23.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/kem-duong-power-repair-21.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/kem-tri-mun-30.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/mat-na-mat-ca-hoi-salmon-oil-nutrition-eye-patch-28.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/mat-na-phuc-hoi-diona-25.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/serum-phuc-hoi-da-chong-lao-hoa-eldas-20.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/serum-te-bao-goc-vitamin-drwon-2-26.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/set-5-mon-duong-trang-cua-whoo-19.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/set-ohui-chong-lao-hoa-bo-3-san-pham-18.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/sua-tam-trang-medifferent-22.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/san-pham/xoa-xam-cs-lab-24.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/tin-tuc.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/tin-tuc/dich-vu-tham-my-mui-nhe-giai-phap-chinh-sua-khuyet-diem-mui-tinh-te-60.html — the likely hero/LCP image (logo-np-6913.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://thammynp.com/tuyen-dung.html — the likely hero/LCP image (logo-np-6913.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 · 42 occurrence(s)

notice Internal link has no anchor text / accessible name

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

notice Page has only one internal inlink (fragile crawl path)

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

  • https://thammynp.com/index.html — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.

notice Internal link points to a noindex page

Rule links.to_noindex · Links · 41 occurrence(s)

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

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

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 38 occurrence(s)

notice Missing Open Graph tags

Rule og.missing · Social · 34 occurrence(s)

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

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

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

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

  • https://thammynp.com/ — 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://thammynp.com/dao-tao.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://thammynp.com/dich-vu.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://thammynp.com/dich-vu.html&p=2 — 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://thammynp.com/gio-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://thammynp.com/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://thammynp.com/index.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://thammynp.com/lien-he.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://thammynp.com/san-pham.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-arielle-29.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-mat-sosum-soft-27.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://thammynp.com/san-pham/kem-chong-nang-cs-lab-23.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://thammynp.com/san-pham/kem-duong-power-repair-21.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://thammynp.com/san-pham/kem-tri-mun-30.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://thammynp.com/san-pham/mat-na-mat-ca-hoi-salmon-oil-nutrition-eye-patch-28.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://thammynp.com/san-pham/mat-na-phuc-hoi-diona-25.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://thammynp.com/san-pham/serum-phuc-hoi-da-chong-lao-hoa-eldas-20.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://thammynp.com/san-pham/serum-te-bao-goc-vitamin-drwon-2-26.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://thammynp.com/san-pham/set-5-mon-duong-trang-cua-whoo-19.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://thammynp.com/san-pham/set-ohui-chong-lao-hoa-bo-3-san-pham-18.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://thammynp.com/san-pham/sua-tam-trang-medifferent-22.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://thammynp.com/san-pham/xoa-xam-cs-lab-24.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://thammynp.com/tin-tuc.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://thammynp.com/tin-tuc/dich-vu-tham-my-mui-nhe-giai-phap-chinh-sua-khuyet-diem-mui-tinh-te-60.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://thammynp.com/tuyen-dung.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 · 42 occurrence(s)

  • https://thammynp.com/ — 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://thammynp.com/dao-tao.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://thammynp.com/dich-vu.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://thammynp.com/dich-vu.html&p=2 — 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://thammynp.com/gio-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://thammynp.com/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://thammynp.com/index.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://thammynp.com/lien-he.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://thammynp.com/san-pham.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-arielle-29.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://thammynp.com/san-pham/filler-tiem-cang-bong-da-mat-sosum-soft-27.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://thammynp.com/san-pham/kem-chong-nang-cs-lab-23.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://thammynp.com/san-pham/kem-duong-power-repair-21.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://thammynp.com/san-pham/kem-tri-mun-30.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://thammynp.com/san-pham/mat-na-mat-ca-hoi-salmon-oil-nutrition-eye-patch-28.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://thammynp.com/san-pham/mat-na-phuc-hoi-diona-25.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://thammynp.com/san-pham/serum-phuc-hoi-da-chong-lao-hoa-eldas-20.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://thammynp.com/san-pham/serum-te-bao-goc-vitamin-drwon-2-26.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://thammynp.com/san-pham/set-5-mon-duong-trang-cua-whoo-19.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://thammynp.com/san-pham/set-ohui-chong-lao-hoa-bo-3-san-pham-18.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://thammynp.com/san-pham/sua-tam-trang-medifferent-22.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://thammynp.com/san-pham/xoa-xam-cs-lab-24.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://thammynp.com/tin-tuc.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://thammynp.com/tin-tuc/dich-vu-tham-my-mui-nhe-giai-phap-chinh-sua-khuyet-diem-mui-tinh-te-60.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://thammynp.com/tuyen-dung.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 Slow server response

Rule perf.slow_response · Performance · 1 occurrence(s)

notice URL redirects to another URL

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

notice Deep page has no BreadcrumbList structured data

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

notice Missing recommended security headers

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

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

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

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 1 occurrence(s)

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

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

notice Title is very short

Rule title.too_short · Titles · 34 occurrence(s)

Pages (showing 48 of 48)
URLStatusIndexableWordsIn-links
https://thammynp.com/
Thẩm Mỹ NP
200 yes 1316 41
https://thammynp.com/dao-tao.html
Đào tạo
200 yes 226 41
https://thammynp.com/dich-vu.html
Dịch vụ
200 yes 1001 41
https://thammynp.com/gio-hang.html
:: Thông Báo ::
200 no 25 41
https://thammynp.com/gioi-thieu.html
Thẩm Mỹ NP Kính Chào Quý Khách
200 yes 555 41
https://thammynp.com/lien-he.html
Thẩm Mỹ NP
200 yes 267 41
https://thammynp.com/tin-tuc.html
Tin tức
200 yes 784 41
https://thammynp.com/tuyen-dung.html
Tuyển dụng
200 yes 226 41
https://thammynp.com/index.html
Thẩm Mỹ NP
200 yes 1316 1
https://thammynp.com/tin-tuc/dia-chi-nang-cung-chan-may-uy-tin-dep-tu-nhien-chi-phi-hop-ly-tai-tphcm-59.html
Địa chỉ nâng cung chân mày uy tín, đẹp tự nhiên, chi phí hợp lý tại TPHCM
200 yes 2096 34
https://thammynp.com/tin-tuc/dich-vu-tham-my-mui-nhe-giai-phap-chinh-sua-khuyet-diem-mui-tinh-te-60.html
Dịch vụ thẩm mỹ mũi nhẹ - Giải pháp chỉnh sửa khuyết điểm mũi tinh tế
200 yes 1622 34
https://thammynp.com/tin-tuc/duc-phuc-va-7-sao-viet-da-thay-doi-dien-mao-hoan-toan-nho-dao-keo-5.html
Đức Phúc và 7 sao Việt đã thay đổi diện mạo hoàn toàn nhờ dao kéo.
200 yes 1129 34
https://thammynp.com/tin-tuc/hoa-hau-ky-duyen-phau-thuat-tham-my-nhung-van-soc-4.html
Hoa hậu Kỳ Duyên: phẫu thuật thẩm mỹ nhưng vẫn sốc...
200 yes 2085 34
https://thammynp.com/tin-tuc/hon-nhan-vien-man-cua-dinh-ngoc-diep-2.html
Hôn nhân viên mãn của Đinh Ngọc Diệp
200 yes 843 34
https://thammynp.com/tin-tuc/lap-nghiep-o-my-khong-nhu-ban-tuong-1.html
Lập nghiệp ở Mỹ, không như bạn tưởng
200 yes 1489 34
https://thammynp.com/tin-tuc/cat-mi-plasma-30.html
Cắt mí Plasma
200 yes 517 7
https://thammynp.com/dich-vu.html&p=2
Dịch vụ
200 yes 637 2
https://thammynp.com/dich-vu/don-cam-mini-53 200 yes 0 0
https://thammynp.com/dich-vu/nhan-mi-25 200 yes 0 0
https://thammynp.com/dich-vu/tao-hinh-cam-nhe-54 200 yes 0 0
https://thammynp.com/dich-vu/tao-hinh-moi-trai-tim-46 200 yes 0 0
https://thammynp.com/dich-vu/thu-gon-canh-mui-14 200 yes 0 0
https://thammynp.com/san-pham.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/bao-ve-lan-da-8
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/cang-da-mat-11/
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/duong-da-6
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/filler-tiem-cang-bong-da-arielle-29.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/filler-tiem-cang-bong-da-mat-sosum-soft-27.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/kem-chong-nang-9/
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/kem-chong-nang-cs-lab-23.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/kem-duong-power-repair-21.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/kem-tri-mun-30.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/kem-tri-mun-4
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/mat-na-dap-mat-10/
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/mat-na-dap-mat-12/
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/mat-na-mat-ca-hoi-salmon-oil-nutrition-eye-patch-28.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/mat-na-phuc-hoi-diona-25.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/serum-phuc-hoi-da-chong-lao-hoa-eldas-20.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/serum-te-bao-goc-vitamin-drwon-2-26.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/set-5-mon-duong-trang-cua-whoo-19.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/set-ohui-chong-lao-hoa-bo-3-san-pham-18.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/sua-tam-trang-7/
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/sua-tam-trang-medifferent-22.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/tai-tao-lan-da-7
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/tay-xoa-hinh-xam-9
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/tre-hoa-lan-da-5
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/san-pham/xoa-xam-cs-lab-24.html
Thẩm Mỹ NP
200 yes 1316 0
https://thammynp.com/dich-vu/tao-hinh-moi-cuoi-47 0 no 0 0

Audit your own site — free

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

Scan your site →