Catalog / vaporschoice.gr
65

SEO audit for vaporschoice.gr

Vaporschoice.gr / Omerta Liquids

other

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

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

Omerta Liquids, ToB.

Screenshot of vaporschoice.gr
50
pages crawled
50
indexable pages
0
errors
255
warnings
708
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Structured Data 34 0 110 6
Agent Readiness 70 0 50 99
Performance 70 0 50 209
Images 86 0 24 24
Duplicate 93 0 12 7
Canonical 97 0 5 10
Meta Description 98 0 4 89
Content 100 0 0 43
Links 100 0 0 50
Security 100 0 0 50
Social 100 0 0 20
Titles 100 0 0 69
URL 100 0 0 32
Findings

Warnings (11 rules)

warning Control has no accessible name

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

warning Near-duplicate page content

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

warning Homepage duplicated across protocol/host variants (no redirect)

Rule duplicate.protocol_host · Duplicate · 3 occurrence(s)

  • https://vaporschoice.gr/ — http://vaporschoice.gr/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.
  • https://vaporschoice.gr/ — http://www.vaporschoice.gr/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.
  • https://vaporschoice.gr/ — https://www.vaporschoice.gr/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.

warning Duplicate <title> across pages

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

warning Images missing alt text

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

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

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

warning BreadcrumbList present but structurally incomplete

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

  • https://www.vaporschoice.gr/Carat-Premium — 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://www.vaporschoice.gr/Drippy — 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://www.vaporschoice.gr/Drippy-Sweet-Frosty-Grapes-Apples-20ml — 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://www.vaporschoice.gr/Drippy-Wafer-Bueno-Cream-20ml — 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://www.vaporschoice.gr/Joora — 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://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml — 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://www.vaporschoice.gr/Las-Copas — 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://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml — 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://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml — 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://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml — 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://www.vaporschoice.gr/Las-Copas-Gold-Tropic-60ml — 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://www.vaporschoice.gr/Las-Copas-Verde-Crush-120ml — 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://www.vaporschoice.gr/NIXX-E-Liquids — 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://www.vaporschoice.gr/NIXX-Flavors — 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://www.vaporschoice.gr/Omerta-Gusto-Premium — 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://www.vaporschoice.gr/Omerta-Waves-Premium — 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://www.vaporschoice.gr/Omerta. — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract — 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://www.vaporschoice.gr/Pouches — 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://www.vaporschoice.gr/Pouches/NIXX-Pouches — 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://www.vaporschoice.gr/Siberia — 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://www.vaporschoice.gr/index.php?route=product/category&path=177&sort=p.date_added&order=DESC — 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://www.vaporschoice.gr/index.php?route=product/category&path=228_149_213 — 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://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC — 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 Rich-result schema missing required properties

Rule schema.invalid · Structured Data · 44 occurrence(s)

warning Product schema missing required or recommended properties

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

  • https://www.vaporschoice.gr/Carat-Silky-Tobacco-10ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Drippy-Lemon-Butter-Tart-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Drippy-Sweet-Frosty-Grapes-Apples-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Drippy-Wafer-Bueno-Cream-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Las-Copas-Gold-Tropic-60ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Las-Copas-Verde-Crush-120ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract/omerta-abstract-dawn-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/Siberia-Grape-Pop-120 — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/la-famiglia-the-hitman — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/new-arrivals/Las-Copas-Verde-Crush-120ml?sort=p.date_added&order=DESC — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-caravella-coffee-bourbon-tobacco-15ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-cry-no-evil-60ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-fear-no-evil-60ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-gusto-tobacco-leaf-20ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-gusto-tri-bacco-10ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-sense-no-evil-60ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-sweet-dreams-milkshake-cookie-30ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-touch-no-evil — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.
  • https://www.vaporschoice.gr/omerta-waves-margarita-30ml — Product structured data is missing required property (offers.price) — 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 (sku|gtin, aggregateRating, review), which enrich the result.

Notices (24 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

notice No main landmark for AI agents

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

notice Canonical points to a different URL

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

notice Low text-to-HTML ratio

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

notice Title tag and meta description are identical

Rule content.title_meta_same · Meta Description · 43 occurrence(s)

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://vaporschoice.gr/ — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Carat-Premium — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Drippy — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Joora — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Las-Copas — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/LasCopas — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/NIXX-E-Liquids — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/NIXX-Flavors — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Omerta-Gusto-Premium — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Omerta-Waves-Premium — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Omerta. — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Pouches — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Pouches/NIXX-Pouches — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/Siberia — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/index.php?route=account/login — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/index.php?route=product/category&path=177&sort=p.date_added&order=DESC — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/index.php?route=product/category&path=228_149_213 — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/index.php?route=product/search&search=Tiramisu&description=true — the likely hero/LCP image (vclogo-355x356.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://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC — the likely hero/LCP image (vclogo-355x356.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 · 24 occurrence(s)

notice Internal link has no anchor text / accessible name

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

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

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

notice Meta description too short

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

notice Large DOM (over 1500 elements) slows rendering & interaction

Rule perf.dom_size_large · Performance · 9 occurrence(s)

  • https://www.vaporschoice.gr/Omerta-Gusto-Premium — the page has 1639 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/Omerta-Waves-Premium — the page has 1614 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots — the page has 1751 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots?page=2 — the page has 1756 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/Siberia — the page has 1600 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/index.php?route=product/manufacturer/info&manufacturer_id=108 — the page has 1570 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/new-arrivals — the page has 1653 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC — the page has 1692 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.vaporschoice.gr/new-arrivals?sort=p.date_added&order=DESC&page=2 — the page has 1658 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.

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

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

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

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

  • https://vaporschoice.gr/ — 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://www.vaporschoice.gr/Carat-Premium — 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://www.vaporschoice.gr/Drippy — 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://www.vaporschoice.gr/Joora — 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://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml — 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://www.vaporschoice.gr/Las-Copas — 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://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml — 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://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml — 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://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml — 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://www.vaporschoice.gr/LasCopas — 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://www.vaporschoice.gr/NIXX-E-Liquids — 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://www.vaporschoice.gr/NIXX-Flavors — 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://www.vaporschoice.gr/Omerta-Gusto-Premium — 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://www.vaporschoice.gr/Omerta-Waves-Premium — 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://www.vaporschoice.gr/Omerta. — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract — 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://www.vaporschoice.gr/Pouches — 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://www.vaporschoice.gr/Pouches/NIXX-Pouches — 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://www.vaporschoice.gr/Siberia — 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://www.vaporschoice.gr/index.php?route=account/login — 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://www.vaporschoice.gr/index.php?route=product/category&path=177&sort=p.date_added&order=DESC — 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://www.vaporschoice.gr/index.php?route=product/category&path=228_149_213 — 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://www.vaporschoice.gr/index.php?route=product/search&search=Tiramisu&description=true — 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://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC — 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 · 50 occurrence(s)

  • https://vaporschoice.gr/ — 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://www.vaporschoice.gr/Carat-Premium — 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://www.vaporschoice.gr/Drippy — 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://www.vaporschoice.gr/Joora — 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://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml — 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://www.vaporschoice.gr/Las-Copas — 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://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml — 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://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml — 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://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml — 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://www.vaporschoice.gr/LasCopas — 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://www.vaporschoice.gr/NIXX-E-Liquids — 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://www.vaporschoice.gr/NIXX-Flavors — 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://www.vaporschoice.gr/Omerta-Gusto-Premium — 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://www.vaporschoice.gr/Omerta-Waves-Premium — 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://www.vaporschoice.gr/Omerta. — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots — 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://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract — 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://www.vaporschoice.gr/Pouches — 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://www.vaporschoice.gr/Pouches/NIXX-Pouches — 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://www.vaporschoice.gr/Siberia — 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://www.vaporschoice.gr/index.php?route=account/login — 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://www.vaporschoice.gr/index.php?route=product/category&path=177&sort=p.date_added&order=DESC — 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://www.vaporschoice.gr/index.php?route=product/category&path=228_149_213 — 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://www.vaporschoice.gr/index.php?route=product/search&search=Tiramisu&description=true — 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://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC — 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 Missing recommended security headers

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

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

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

notice Many query parameters

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

notice Underscores in URL path (prefer hyphens)

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.vaporschoice.gr/Omerta.
Omerta
200 yes 224 50
https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots
Flavor Shots
200 yes 1364 50
https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract
Abstract Premium
200 yes 635 50
https://www.vaporschoice.gr/Pouches
Pouches
200 yes 554 50
https://www.vaporschoice.gr/Pouches/NIXX-Pouches
NIXX
200 yes 554 50
https://www.vaporschoice.gr/delivery
Πληρωμές - Αποστολές
200 yes 772 50
https://www.vaporschoice.gr/index.php?route=account/login
Σύνδεση Λογαριασμού
200 yes 258 50
https://www.vaporschoice.gr/index.php?route=information/information&information_id=6
Πολιτική Ασφαλείας
200 yes 826 50
https://www.vaporschoice.gr/index.php?route=product/category&path=228_149_213
Omerta Classics
200 yes 414 50
https://www.vaporschoice.gr/new-arrivals&sort=p.date_added&order=DESC
Νέες Αφίξεις
200 yes 1232 50
https://www.vaporschoice.gr/index.php?route=product/manufacturer/info&manufacturer_id=108
Omerta
200 yes 1297 30
https://www.vaporschoice.gr/LasCopas
Las Copas
200 yes 810 10
https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots/Omerta-Abstract/omerta-abstract-dawn-20ml
Abstract Dawn 120
200 yes 404 2
https://www.vaporschoice.gr/new-arrivals
Νέες Αφίξεις
200 yes 1356 3
https://www.vaporschoice.gr/Omerta./Omerta-Flavor-Shots?page=2
Flavor Shots
200 yes 1375 1
https://www.vaporschoice.gr/omerta-cry-no-evil-60ml
Omerta Cry No Evil 60
200 yes 339 2
https://www.vaporschoice.gr/omerta-fear-no-evil-60ml
Omerta Fear No Evil 60
200 yes 335 2
https://www.vaporschoice.gr/omerta-sense-no-evil-60ml
Omerta Sense No Evil 60
200 yes 325 2
https://www.vaporschoice.gr/omerta-touch-no-evil
Omerta Touch No Evil 60
200 yes 327 2
https://www.vaporschoice.gr/new-arrivals/Las-Copas-Verde-Crush-120ml?sort=p.date_added&order=DESC
Las Copas Verde Crush 120
200 yes 373 2
https://www.vaporschoice.gr/new-arrivals?sort=p.date_added&order=DESC&page=2
Νέες Αφίξεις
200 yes 1346 1
https://www.vaporschoice.gr/Las-Copas-Berry-Bramble-120ml
Las Copas Berry Bramble 120
200 yes 370 7
https://www.vaporschoice.gr/Las-Copas-Crimson-Mule-60ml
Las Copas Crimson Mule 60
200 yes 369 7
https://www.vaporschoice.gr/Las-Copas-Electric-Razz-120ml
Las Copas Electric Razz 120
200 yes 376 4
https://www.vaporschoice.gr/Joora
Joora
200 yes 538 2
https://www.vaporschoice.gr/NIXX-E-Liquids
NIXX E-Liquids
200 yes 614 2
https://www.vaporschoice.gr/NIXX-Flavors
NIXX
200 yes 810 2
https://www.vaporschoice.gr/Siberia
Siberia
200 yes 1384 2
https://www.vaporschoice.gr/Siberia-Grape-Pop-120
Siberia Grape Pop 120
200 yes 362 2
https://www.vaporschoice.gr/Carat-Premium
Carat Premium
200 yes 1041 2
https://www.vaporschoice.gr/Carat-Silky-Tobacco-10ml
Carat Silky Tobacco 60
200 yes 386 2
https://www.vaporschoice.gr/Drippy
Drippy
200 yes 727 2
https://www.vaporschoice.gr/Drippy-Lemon-Butter-Tart-20ml
Drippy Lemon Butter Tart 60
200 yes 335 2
https://www.vaporschoice.gr/Drippy-Sweet-Frosty-Grapes-Apples-20ml
Drippy Sweet & Frosty Grapes & Apples 60
200 yes 347 2
https://www.vaporschoice.gr/Drippy-Wafer-Bueno-Cream-20ml
Drippy Wafer Bueno Cream 60
200 yes 332 2
https://www.vaporschoice.gr/La-Famiglia-The-Hitman-Reserve-20ml
La Famiglia The Hitman Reserve 60
200 yes 394 2
https://www.vaporschoice.gr/Las-Copas
Las Copas
200 yes 820 2
https://www.vaporschoice.gr/Omerta-Gusto-Premium
Gusto Premium
200 yes 1338 2
https://www.vaporschoice.gr/Omerta-Waves-Premium
Waves Premium
200 yes 1430 2
https://www.vaporschoice.gr/index.php?route=product/search&search=Tiramisu&description=true
Αναζήτηση - Tiramisu
200 yes 543 2
https://www.vaporschoice.gr/la-famiglia-the-hitman
La Famiglia The Hitman 60
200 yes 375 2
https://www.vaporschoice.gr/omerta-caravella-coffee-bourbon-tobacco-15ml
Caravella Coffee Bourbon Tobacco 60
200 yes 354 2
https://www.vaporschoice.gr/omerta-gusto-tobacco-leaf-20ml
Gusto Tobacco Leaf 120
200 yes 367 2
https://www.vaporschoice.gr/omerta-gusto-tri-bacco-10ml
Gusto Tri-Bacco 60
200 yes 368 2
https://www.vaporschoice.gr/omerta-sweet-dreams-milkshake-cookie-30ml
Sweet Dreams Milkshake Cookie 120
200 yes 407 2
https://www.vaporschoice.gr/omerta-waves-margarita-30ml
Waves Margarita 120
200 yes 348 2
https://www.vaporschoice.gr/Las-Copas-Gold-Tropic-60ml
Las Copas Gold Tropic 60
200 yes 369 2
https://www.vaporschoice.gr/Las-Copas-Verde-Crush-120ml
Las Copas Verde Crush 120
200 yes 371 2
https://www.vaporschoice.gr/index.php?route=product/category&path=177&sort=p.date_added&order=DESC
PGVG Labs
200 yes 779 1
https://vaporschoice.gr/
Vaporschoice.gr / Omerta Liquids
200 yes 791 0

Audit your own site — free

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

Scan your site →