Catalog / hairlinez.com
60

SEO audit for hairlinez.com

haircare with hairlinez™ - Hairlinez

otherWordPress

Health 60/100 (fair) · 50 pages crawled · generated 2026-08-26

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

Beautiful hair with Salon Quality haircare products from your favourite brands Matrix Biolage, Juuce, NAK, De Lorenzo, Revita, Davroe.

50
pages crawled
40
indexable pages
5
errors
159
warnings
549
notices
0
orphan pages
3
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 94 3 0 47
Crawlability 96 2 0 1
Agent Readiness 72 0 47 14
Performance 72 0 47 189
Structured Data 88 0 20 41
Meta Description 92 0 13 21
Indexability 95 0 9 0
Budget 97 0 5 0
Headings 97 0 5 0
Duplicate 98 0 4 0
Sitemap 98 0 3 0
Content 99 0 2 58
Canonical 99 0 1 0
Images 99 0 1 4
Robots 99 0 1 0
Titles 99 0 1 0
Cache 100 0 0 47
Security 100 0 0 96
Social 100 0 0 30
URL 100 0 0 1
Findings

Errors (2 rules)

error Broken internal link (target 4xx/5xx)

Rule links.broken_internal · Links · 3 occurrence(s)

error Client error (4xx) response

Rule status.4xx · Crawlability · 2 occurrence(s)

Warnings (16 rules)

warning Control has no accessible name

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

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

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

  • https://hairlinez.com/2020/12 — this noindex page has 20 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://hairlinez.com/articles, https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour, https://hairlinez.com/tips-tricks-curly-hair.
  • https://hairlinez.com/2021/02 — this noindex page has 20 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://hairlinez.com/articles, https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour, https://hairlinez.com/tips-tricks-curly-hair.
  • https://hairlinez.com/2022/05 — this noindex page has 20 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://hairlinez.com/articles, https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour, https://hairlinez.com/tips-tricks-curly-hair.
  • https://hairlinez.com/cart — this noindex page has 49 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://hairlinez.com/, https://hairlinez.com/articles, https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour.
  • https://hairlinez.com/my-account/edit-account — this noindex page has 49 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://hairlinez.com/, https://hairlinez.com/articles, https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour.

warning Canonical target is noindex

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

warning Thin content (low word count)

Rule content.thin · Content · 2 occurrence(s)

warning Near-duplicate page content

Rule duplicate.near · Duplicate · 4 occurrence(s)

warning Images missing alt text

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

warning Page is noindex

Rule index.noindex · Indexability · 9 occurrence(s)

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

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

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

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

  • https://hairlinez.com/ — robots.txt Disallow blocks render-critical CSS/JS under: /wp-admin/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 · 5 occurrence(s)

  • https://hairlinez.com/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. 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://hairlinez.com/product-category/brands — 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://hairlinez.com/product-tag/all — 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://hairlinez.com/shop — 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://hairlinez.com/shop/page/2 — 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.

warning Schema describes content not visible on the page

Rule schema.hidden_content · Structured Data · 4 occurrence(s)

  • https://hairlinez.com/articles — a schema name/headline ("Articles - Hairlinez") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://hairlinez.com/location-draft — a schema name/headline ("Location Draft - Hairlinez") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://hairlinez.com/shop — a schema name/headline ("Products Archive - Hairlinez") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://hairlinez.com/shop/page/2 — a schema name/headline ("Products Archive - Page 2 of 16 - Hairlinez") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.

warning Product schema missing required or recommended properties

Rule schema.product_incomplete · Structured Data · 11 occurrence(s)

  • https://hairlinez.com/product/argan-soft-conditioner-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/argan-soft-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/colour-life-conditioner-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/colour-life-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/full-volume-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/miracle-d-frizz-conditioner-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/miracle-d-frizz-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/silk-hydrate-conditioner-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/silk-hydrate-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/ultra-repair-conditioner-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.
  • https://hairlinez.com/product/ultra-repair-shampoo-375ml — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.

warning Non-indexable URL listed in sitemap

Rule sitemap.non_indexable · Sitemap · 3 occurrence(s)

warning Title likely truncated in SERP (too wide)

Rule title.too_long · Titles · 1 occurrence(s)

Notices (22 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://hairlinez.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 · 5 occurrence(s)

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

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

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 22 occurrence(s)

  • https://hairlinez.com/about-us — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/affiliate-area — this page reads as difficult (Flesch Reading Ease 43, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/category/ajeless — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/cookie-policy — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product-category/brands/davroe/shampoo-davroe/blonde — this page reads as difficult (Flesch Reading Ease 39, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product-category/brands/de-lorenzo/conditioner-de-lorenzo — this page reads as difficult (Flesch Reading Ease 38, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product-tag/all — this page reads as difficult (Flesch Reading Ease 38, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/argan-soft-conditioner-375ml — this page reads as difficult (Flesch Reading Ease 32, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/argan-soft-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 42, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/colour-life-conditioner-375ml — this page reads as difficult (Flesch Reading Ease 33, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/colour-life-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 41, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/full-volume-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 41, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/miracle-d-frizz-conditioner-375ml — this page reads as difficult (Flesch Reading Ease 35, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/miracle-d-frizz-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 40, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/silk-hydrate-conditioner-375ml — this page reads as difficult (Flesch Reading Ease 37, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/silk-hydrate-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 43, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/ultra-repair-conditioner-375ml — this page reads as difficult (Flesch Reading Ease 33, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/product/ultra-repair-shampoo-375ml — this page reads as difficult (Flesch Reading Ease 41, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/request-confirmation — this page reads as difficult (Flesch Reading Ease 42, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/revitafoam-leave-in-conditioner — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/tag/all-hair-types — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://hairlinez.com/wish-list — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Likely hero image lacks fetchpriority=high

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

  • https://hairlinez.com/ — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/about-us — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/affiliate-area — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/articles — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/cart — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/category/ajeless — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/checkout — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/contact — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/cookie-policy — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/disclaimer — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/how-much-hair-care-product-should-i-use — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/location-draft — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/my-account — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/privacy-policy — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/product/colour-life-shampoo-375ml — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/refund_returns — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/request-confirmation — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/revitafoam-leave-in-conditioner — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/shop — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/terms-of-service — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/test-keyword-page — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/tips-tricks-curly-hair — the likely hero/LCP image (logo2-01.jpg) 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://hairlinez.com/wish-list — the likely hero/LCP image (logo2-01.jpg) 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 · 4 occurrence(s)

notice Internal link has no anchor text / accessible name

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

  • https://hairlinez.com/ — 10 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/about-us — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/affiliate-area — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/articles — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/cart — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/category/ajeless — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/checkout — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/contact — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/cookie-policy — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/disclaimer — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/how-much-hair-care-product-should-i-use — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/location-draft — 4 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/my-account — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/privacy-policy — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/product/colour-life-shampoo-375ml — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/refund_returns — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/request-confirmation — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/revitafoam-leave-in-conditioner — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/shop — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/terms-of-service — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/test-keyword-page — 4 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/tips-tricks-curly-hair — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
  • https://hairlinez.com/wish-list — 1 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.

notice Missing Open Graph tags

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

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

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

  • https://hairlinez.com/ — 45 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://hairlinez.com/about-us — 31 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://hairlinez.com/affiliate-area — 30 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://hairlinez.com/articles — 35 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://hairlinez.com/cart — 30 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://hairlinez.com/category/ajeless — 31 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://hairlinez.com/checkout — 30 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://hairlinez.com/contact — 30 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://hairlinez.com/cookie-policy — 31 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://hairlinez.com/disclaimer — 30 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://hairlinez.com/how-much-hair-care-product-should-i-use — 31 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://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — 31 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://hairlinez.com/location-draft — 57 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://hairlinez.com/my-account — 30 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://hairlinez.com/privacy-policy — 30 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://hairlinez.com/product/colour-life-shampoo-375ml — 34 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://hairlinez.com/refund_returns — 30 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://hairlinez.com/request-confirmation — 30 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://hairlinez.com/revitafoam-leave-in-conditioner — 31 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://hairlinez.com/shop — 40 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://hairlinez.com/terms-of-service — 30 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://hairlinez.com/test-keyword-page — 43 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://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — 31 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://hairlinez.com/tips-tricks-curly-hair — 31 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://hairlinez.com/wish-list — 30 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 · 47 occurrence(s)

  • https://hairlinez.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://hairlinez.com/about-us — 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://hairlinez.com/affiliate-area — 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://hairlinez.com/articles — 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://hairlinez.com/cart — 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://hairlinez.com/category/ajeless — 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://hairlinez.com/checkout — 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://hairlinez.com/contact — 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://hairlinez.com/cookie-policy — 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://hairlinez.com/disclaimer — 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://hairlinez.com/how-much-hair-care-product-should-i-use — 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://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — 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://hairlinez.com/location-draft — 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://hairlinez.com/my-account — 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://hairlinez.com/privacy-policy — 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://hairlinez.com/product/colour-life-shampoo-375ml — 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://hairlinez.com/refund_returns — 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://hairlinez.com/request-confirmation — 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://hairlinez.com/revitafoam-leave-in-conditioner — 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://hairlinez.com/shop — 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://hairlinez.com/terms-of-service — 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://hairlinez.com/test-keyword-page — 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://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — 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://hairlinez.com/tips-tricks-curly-hair — 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://hairlinez.com/wish-list — 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 · 47 occurrence(s)

  • https://hairlinez.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://hairlinez.com/about-us — 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://hairlinez.com/affiliate-area — 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://hairlinez.com/articles — 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://hairlinez.com/cart — 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://hairlinez.com/category/ajeless — 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://hairlinez.com/checkout — 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://hairlinez.com/contact — 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://hairlinez.com/cookie-policy — 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://hairlinez.com/disclaimer — 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://hairlinez.com/how-much-hair-care-product-should-i-use — 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://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — 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://hairlinez.com/location-draft — 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://hairlinez.com/my-account — 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://hairlinez.com/privacy-policy — 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://hairlinez.com/product/colour-life-shampoo-375ml — 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://hairlinez.com/refund_returns — 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://hairlinez.com/request-confirmation — 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://hairlinez.com/revitafoam-leave-in-conditioner — 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://hairlinez.com/shop — 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://hairlinez.com/terms-of-service — 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://hairlinez.com/test-keyword-page — 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://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — 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://hairlinez.com/tips-tricks-curly-hair — 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://hairlinez.com/wish-list — 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 · 1 occurrence(s)

notice Deep page has no BreadcrumbList structured data

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

notice Deprecated schema type with no Google rich result

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

  • https://hairlinez.com/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/about-us — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/affiliate-area — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/articles — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/category/ajeless — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/contact — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/cookie-policy — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/disclaimer — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/how-much-hair-care-product-should-i-use — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/location-draft — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/privacy-policy — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/product-category/brands — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/product-category/brands/davroe/shampoo-davroe/blonde — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/product/colour-life-shampoo-375ml — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/refund_returns — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/request-confirmation — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/revitafoam-leave-in-conditioner — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/shop — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/tag/all-hair-types — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/terms-of-service — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/test-keyword-page — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/tips-tricks-curly-hair — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://hairlinez.com/wish-list — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.

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 · 47 occurrence(s)

  • https://hairlinez.com/ — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/about-us — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/affiliate-area — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/articles — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/cart — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/category/ajeless — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/checkout — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/contact — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/cookie-policy — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/disclaimer — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/how-much-hair-care-product-should-i-use — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/location-draft — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/my-account — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/privacy-policy — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/product/colour-life-shampoo-375ml — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/refund_returns — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/request-confirmation — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/revitafoam-leave-in-conditioner — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/shop — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/terms-of-service — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/test-keyword-page — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/tips-tricks-curly-hair — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
  • https://hairlinez.com/wish-list — 3 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".

notice Underscores in URL path (prefer hyphens)

Rule url.underscores · URL · 1 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://hairlinez.com/
haircare with hairlinez™ - Hairlinez
200 yes 618 49
https://hairlinez.com/about-us
About Us - Hairlinez
200 yes 332 49
https://hairlinez.com/articles
Articles - Hairlinez
200 yes 637 49
https://hairlinez.com/cart
Cart - Hairlinez
200 no 134 49
https://hairlinez.com/contact
FAQ & CONTACT - Hairlinez
200 yes 343 49
https://hairlinez.com/my-account/edit-account
My account - Hairlinez
200 no 193 49
https://hairlinez.com/product-category/brands/davroe
DAVROE Archives - Hairlinez
200 yes 280 49
https://hairlinez.com/product-category/brands/davroe/shampoo-davroe/blonde
BLONDE Archives - Hairlinez
200 yes 169 49
https://hairlinez.com/product-category/brands/de-lorenzo/conditioner-de-lorenzo
CONDITIONER Archives - Hairlinez
200 yes 222 49
https://hairlinez.com/shop
Products Archive - Hairlinez
200 yes 291 49
https://hairlinez.com/product-category/brands
BRANDS Archives - Hairlinez
200 yes 292 14
https://hairlinez.com/lets-talk-grey-hair-embrace-your-natural-hair-i-do-no-more-colour
Let’s talk grey hair …. Embrace your natural hair, I do no more colour !! - Hairlinez
200 yes 614 23
https://hairlinez.com/revitafoam-leave-in-conditioner
Product focus - Revitafoam - Hairlinez
200 yes 414 23
https://hairlinez.com/tips-tricks-curly-hair
Tips & Tricks for Curly Hair - Hairlinez
200 yes 496 23
https://hairlinez.com/2020/12
December 2020 - Hairlinez
200 no 324 20
https://hairlinez.com/2021/02
February 2021 - Hairlinez
200 no 310 20
https://hairlinez.com/2022/05
May 2022 - Hairlinez
200 no 326 20
https://hairlinez.com/how-much-hair-care-product-should-i-use
How much hair care products should I use ? - Hairlinez
200 yes 972 20
https://hairlinez.com/the-total-grey-package-haircare-skincare-makeup-hints
The Total Grey Package ... haircare ... skincare... makeup hints - Hairlinez
200 yes 453 20
https://hairlinez.com/author/alexandra
Alexandra Carlyle, Author at Hairlinez
200 yes 639 12
https://hairlinez.com/privacy-policy
Privacy- Policy - Hairlinez
200 yes 1859 4
https://hairlinez.com/shop/page/2
Products Archive - Page 2 of 16 - Hairlinez
200 yes 283 1
https://hairlinez.com/category/ajeless
ajeless™ Archives - Hairlinez
200 yes 323 5
https://hairlinez.com/product/argan-soft-conditioner-375ml
ARGAN SOFT CONDITIONER 375ML - Hairlinez
200 yes 244 1
https://hairlinez.com/product/argan-soft-shampoo-375ml
ARGAN SOFT SHAMPOO 375ML - Hairlinez
200 yes 246 1
https://hairlinez.com/cookie-policy
Cookie Policy - Hairlinez
200 yes 791 2
https://hairlinez.com/product/ultra-repair-conditioner-375ml
ULTRA REPAIR CONDITIONER 375ML - Hairlinez
200 yes 262 1
https://hairlinez.com/product/colour-life-shampoo-375ml
COLOUR LIFE SHAMPOO 375ML - Hairlinez
200 yes 250 1
https://hairlinez.com/product/miracle-d-frizz-shampoo-375ml
MIRACLE D-FRIZZ SHAMPOO 375ML - Hairlinez
200 yes 249 1
https://hairlinez.com/product/silk-hydrate-conditioner-375ml
SILK HYDRATE CONDITIONER 375ML - Hairlinez
200 yes 249 1
https://hairlinez.com/product/colour-life-conditioner-375ml
COLOUR LIFE CONDITIONER 375ML - Hairlinez
200 yes 248 1
https://hairlinez.com/product/silk-hydrate-shampoo-375ml
SILK HYDRATE SHAMPOO 375ML - Hairlinez
200 yes 254 1
https://hairlinez.com/affiliate-area
Affiliate Area - Hairlinez
200 yes 233 0
https://hairlinez.com/checkout
Cart - Hairlinez
200 no 134 0
https://hairlinez.com/disclaimer
Disclaimer - Hairlinez
200 yes 287 0
https://hairlinez.com/location-draft
Location Draft - Hairlinez
200 yes 1549 0
https://hairlinez.com/my-account
My account - Hairlinez
200 no 193 0
https://hairlinez.com/product-tag/all
all Archives - Hairlinez
200 yes 164 0
https://hairlinez.com/product/full-volume-shampoo-375ml
FULL VOLUME SHAMPOO 375ML - Hairlinez
200 yes 239 0
https://hairlinez.com/product/miracle-d-frizz-conditioner-375ml
MIRACLE D-FRIZZ CONDITIONER 375ML - Hairlinez
200 yes 247 0
https://hairlinez.com/product/ultra-repair-shampoo-375ml
ULTRA REPAIR SHAMPOO 375ML - Hairlinez
200 yes 261 0
https://hairlinez.com/refund_returns
Refund and Returns Policy - Hairlinez
200 yes 675 0
https://hairlinez.com/request-confirmation
Request Confirmation - Hairlinez
200 yes 233 0
https://hairlinez.com/tag/all-hair-types
all hair types Archives - Hairlinez
200 yes 296 0
https://hairlinez.com/terms-of-service
Terms and Conditions - Hairlinez
200 yes 2343 0
https://hairlinez.com/test-keyword-page
Test Keyword page - Hairlinez
200 yes 818 0
https://hairlinez.com/wish-list
Wish List - Hairlinez
200 yes 236 0
https://hairlinez.com/ajeless-care
Page not found - Hairlinez
404 no 146 2
https://hairlinez.com/ajelessmorning-skincare-regime
Page not found - Hairlinez
404 no 146 1
https://hairlinez.com/wp-content/uploads/2022/03/juuce-colour-life-shampoo.jpg 200 no 0 1

Audit your own site — free

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

Scan your site →