SEO audit for bottly.shop
The Modular Bottle | TMB Modular Bottle
Health 65/100 (fair) · 39 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Explore the TMB Modular Bottle for the ultimate hydration experience. Our high-quality, customizable bottles are designed for active lifestyles and offer exceptional convenience. Join the TMB communit…
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Agent Readiness | 72 | 0 | 37 | 26 |
| Content | 83 | 0 | 22 | 39 |
| Links | 89 | 0 | 14 | 37 |
| Duplicate | 92 | 0 | 11 | 8 |
| Headings | 94 | 0 | 8 | 2 |
| Canonical | 95 | 0 | 6 | 0 |
| Structured Data | 97 | 0 | 4 | 6 |
| Budget | 98 | 0 | 2 | 0 |
| Cache | 100 | 0 | 0 | 37 |
| Crawlability | 100 | 0 | 0 | 2 |
| Images | 100 | 0 | 0 | 37 |
| Meta Description | 100 | 0 | 0 | 37 |
| Performance | 100 | 0 | 0 | 148 |
| Security | 100 | 0 | 0 | 37 |
Warnings (10 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 37 occurrence(s)
- https://bottly.shop/ — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/about — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/categories/accessories — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/categories/frontpage — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/accessories — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/accessories-1 — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/colors — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/frontpage — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/pro — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/collections/secret-sale — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/contact — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/faq — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/couchconsole — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/glass-500ml — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/glass-500ml-copy — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-standard — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-ultra-blue — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-ultra-grey — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/products/tmb-ultra-white — 5 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/returns — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/shipping — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/store — 3 button/link(s) with no text or aria-label — an agent can't target them
- https://bottly.shop/store?sort=created_at — 3 button/link(s) with no text or aria-label — an agent can't target them
warning robots.txt-disallowed URL receives internal links (crawl-budget leak)
Rule budget.disallow_linked · Budget · 2 occurrence(s)
- https://bottly.shop/account — internal links point to https://bottly.shop/account, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://bottly.shop/, https://bottly.shop/store, https://bottly.shop/about.
- https://bottly.shop/cart — internal links point to https://bottly.shop/cart, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://bottly.shop/, https://bottly.shop/store, https://bottly.shop/about.
warning Missing canonical tag
Rule canonical.missing · Canonical · 6 occurrence(s)
warning Thin content (low word count)
Rule content.thin · Content · 22 occurrence(s)
- https://bottly.shop/ — 150 words
- https://bottly.shop/about — 93 words
- https://bottly.shop/categories/accessories — 53 words
- https://bottly.shop/categories/frontpage — 134 words
- https://bottly.shop/collections/accessories — 92 words
- https://bottly.shop/collections/accessories-1 — 54 words
- https://bottly.shop/collections/colors — 67 words
- https://bottly.shop/collections/frontpage — 48 words
- https://bottly.shop/collections/pro — 102 words
- https://bottly.shop/collections/secret-sale — 48 words
- https://bottly.shop/contact — 69 words
- https://bottly.shop/products/couchconsole — 143 words
- https://bottly.shop/products/glass-cups — 129 words
- https://bottly.shop/products/insulation-sleeve — 125 words
- https://bottly.shop/products/straw-kit — 117 words
- https://bottly.shop/products/tall-module — 115 words
- https://bottly.shop/products/tea-fruit-infuser — 123 words
- https://bottly.shop/products/tmb-modularbottle-gift-card — 195 words
- https://bottly.shop/returns — 199 words
- https://bottly.shop/shipping — 108 words
- https://bottly.shop/store — 184 words
- https://bottly.shop/store?sort=created_at — 186 words
warning Near-duplicate page content
Rule duplicate.near · Duplicate · 6 occurrence(s)
- https://bottly.shop/products/tmb-modular-bottle-pro — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-blue, https://bottly.shop/products/tmb-ultra-grey, https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy
- https://bottly.shop/products/tmb-modular-bottle-pro-copy — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-blue, https://bottly.shop/products/tmb-ultra-grey, https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-blue, https://bottly.shop/products/tmb-ultra-grey, https://bottly.shop/products/tmb-ultra-white
- https://bottly.shop/products/tmb-ultra-blue — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-grey, https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy, https://bottly.shop/products/tmb-ultra-white
- https://bottly.shop/products/tmb-ultra-grey — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-blue, https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy, https://bottly.shop/products/tmb-ultra-white
- https://bottly.shop/products/tmb-ultra-white — near-duplicate of 5 page(s): https://bottly.shop/products/tmb-ultra-blue, https://bottly.shop/products/tmb-ultra-grey, https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy
warning Homepage duplicated across protocol/host variants (no redirect)
Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)
- https://bottly.shop/ — http://bottly.shop/ 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)
- https://bottly.shop/categories/accessories — title shared by 2 pages: https://bottly.shop/collections/accessories
- https://bottly.shop/categories/frontpage — title shared by 2 pages: https://bottly.shop/collections/frontpage
- https://bottly.shop/collections/accessories — title shared by 2 pages: https://bottly.shop/categories/accessories
- https://bottly.shop/collections/frontpage — title shared by 2 pages: https://bottly.shop/categories/frontpage
warning Missing <h1>
Rule h1.missing · Headings · 8 occurrence(s)
- https://bottly.shop/categories/accessories
- https://bottly.shop/categories/frontpage
- https://bottly.shop/collections/accessories
- https://bottly.shop/collections/accessories-1
- https://bottly.shop/collections/colors
- https://bottly.shop/collections/frontpage
- https://bottly.shop/collections/pro
- https://bottly.shop/collections/secret-sale
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 14 occurrence(s)
- https://bottly.shop/about — no internal links point here
- https://bottly.shop/categories/accessories — no internal links point here
- https://bottly.shop/categories/frontpage — no internal links point here
- https://bottly.shop/collections/accessories — no internal links point here
- https://bottly.shop/collections/accessories-1 — no internal links point here
- https://bottly.shop/collections/colors — no internal links point here
- https://bottly.shop/collections/frontpage — no internal links point here
- https://bottly.shop/collections/pro — no internal links point here
- https://bottly.shop/collections/secret-sale — no internal links point here
- https://bottly.shop/contact — no internal links point here
- https://bottly.shop/faq — no internal links point here
- https://bottly.shop/products/shipping-protection — no internal links point here
- https://bottly.shop/returns — no internal links point here
- https://bottly.shop/shipping — no internal links point here
warning BreadcrumbList present but structurally incomplete
Rule schema.breadcrumb_incomplete · Structured Data · 4 occurrence(s)
- https://bottly.shop/categories/accessories — 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://bottly.shop/categories/frontpage — 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://bottly.shop/store — 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://bottly.shop/store?sort=created_at — 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.
Notices (19 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 25 occurrence(s)
- https://bottly.shop/faq — h3 follows h1 — skips h2
- https://bottly.shop/products/copy-of-tmb-modular-bottle-1 — h3 follows h1 — skips h2
- https://bottly.shop/products/couchconsole — h3 follows h1 — skips h2
- https://bottly.shop/products/glass-500ml — h3 follows h1 — skips h2
- https://bottly.shop/products/glass-500ml-copy — h3 follows h1 — skips h2
- https://bottly.shop/products/glass-cups — h3 follows h1 — skips h2
- https://bottly.shop/products/grey-tmb-modular-bottle — h3 follows h1 — skips h2
- https://bottly.shop/products/insulation-sleeve — h3 follows h1 — skips h2
- https://bottly.shop/products/shipping-protection — h3 follows h1 — skips h2
- https://bottly.shop/products/straw-kit — h3 follows h1 — skips h2
- https://bottly.shop/products/tall-module — h3 follows h1 — skips h2
- https://bottly.shop/products/tea-fruit-infuser — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-modular-bottle-pro — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-modular-bottle-pro-copy — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-modularbottle-gift-card — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-pure-white — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-standard — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-ultra-blue — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-ultra-grey — h3 follows h1 — skips h2
- https://bottly.shop/products/tmb-ultra-white — h3 follows h1 — skips h2
- https://bottly.shop/returns — h3 follows h1 — skips h2
- https://bottly.shop/store — h3 follows h1 — skips h2
- https://bottly.shop/store?sort=created_at — h3 follows h1 — skips h2
notice No llms.txt for AI agents
Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)
- https://bottly.shop/ — no llms.txt found at the site root — add one so AI agents get a curated site summary
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 37 occurrence(s)
- https://bottly.shop/ — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/about — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/categories/accessories — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/categories/frontpage — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/accessories — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/accessories-1 — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/colors — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/frontpage — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/pro — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/collections/secret-sale — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/contact — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/faq — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/couchconsole — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/glass-500ml — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/glass-500ml-copy — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-standard — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-ultra-blue — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-ultra-grey — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/products/tmb-ultra-white — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/returns — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/shipping — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/store — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
- https://bottly.shop/store?sort=created_at — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 37 occurrence(s)
- https://bottly.shop/ — 0.3%
- https://bottly.shop/about — 0.4%
- https://bottly.shop/categories/accessories — 0.1%
- https://bottly.shop/categories/frontpage — 0.2%
- https://bottly.shop/collections/accessories — 0.2%
- https://bottly.shop/collections/accessories-1 — 0.1%
- https://bottly.shop/collections/colors — 0.1%
- https://bottly.shop/collections/frontpage — 0.1%
- https://bottly.shop/collections/pro — 0.2%
- https://bottly.shop/collections/secret-sale — 0.1%
- https://bottly.shop/contact — 0.3%
- https://bottly.shop/faq — 1.0%
- https://bottly.shop/products/couchconsole — 0.3%
- https://bottly.shop/products/glass-500ml — 1.2%
- https://bottly.shop/products/glass-500ml-copy — 1.1%
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 0.5%
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — 0.6%
- https://bottly.shop/products/tmb-standard — 0.6%
- https://bottly.shop/products/tmb-ultra-blue — 0.5%
- https://bottly.shop/products/tmb-ultra-grey — 0.5%
- https://bottly.shop/products/tmb-ultra-white — 0.5%
- https://bottly.shop/returns — 0.8%
- https://bottly.shop/shipping — 0.5%
- https://bottly.shop/store — 0.2%
- https://bottly.shop/store?sort=created_at — 0.2%
notice Main text is hard to read (low Flesch Reading Ease)
Rule content.readability_poor · Content · 2 occurrence(s)
- https://bottly.shop/returns — 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://bottly.shop/shipping — this page reads as difficult (Flesch Reading Ease 46, 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 Duplicate meta description across pages
Rule duplicate.meta_desc · Duplicate · 8 occurrence(s)
- https://bottly.shop/ — meta description shared by 8 pages: https://bottly.shop/about, https://bottly.shop/contact, https://bottly.shop/faq
- https://bottly.shop/about — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/contact, https://bottly.shop/faq
- https://bottly.shop/categories/accessories — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/contact
- https://bottly.shop/categories/frontpage — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/contact
- https://bottly.shop/contact — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/faq
- https://bottly.shop/faq — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/contact
- https://bottly.shop/returns — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/contact
- https://bottly.shop/shipping — meta description shared by 8 pages: https://bottly.shop/, https://bottly.shop/about, https://bottly.shop/contact
notice Multiple <h1> elements
Rule h1.multiple · Headings · 2 occurrence(s)
- https://bottly.shop/products/glass-500ml — 3 <h1> elements
- https://bottly.shop/products/glass-500ml-copy — 3 <h1> elements
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 37 occurrence(s)
- https://bottly.shop/ — the likely hero/LCP image (logo-dark-2.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://bottly.shop/about — the likely hero/LCP image (logo-dark-2.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://bottly.shop/categories/accessories — the likely hero/LCP image (logo-dark-2.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://bottly.shop/categories/frontpage — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/accessories — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/accessories-1 — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/colors — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/frontpage — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/pro — the likely hero/LCP image (logo-dark-2.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://bottly.shop/collections/secret-sale — the likely hero/LCP image (logo-dark-2.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://bottly.shop/contact — the likely hero/LCP image (logo-dark-2.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://bottly.shop/faq — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/couchconsole — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/glass-500ml — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/glass-500ml-copy — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-modular-bottle-secret-sale — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-standard — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-ultra-blue — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-ultra-grey — the likely hero/LCP image (logo-dark-2.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://bottly.shop/products/tmb-ultra-white — the likely hero/LCP image (logo-dark-2.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://bottly.shop/returns — the likely hero/LCP image (logo-dark-2.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://bottly.shop/shipping — the likely hero/LCP image (logo-dark-2.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://bottly.shop/store — the likely hero/LCP image (logo-dark-2.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://bottly.shop/store?sort=created_at — the likely hero/LCP image (logo-dark-2.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 · 37 occurrence(s)
- https://bottly.shop/ — 11 of 11 images without width/height
- https://bottly.shop/about — 2 of 2 images without width/height
- https://bottly.shop/categories/accessories — 6 of 6 images without width/height
- https://bottly.shop/categories/frontpage — 20 of 20 images without width/height
- https://bottly.shop/collections/accessories — 14 of 14 images without width/height
- https://bottly.shop/collections/accessories-1 — 6 of 6 images without width/height
- https://bottly.shop/collections/colors — 8 of 8 images without width/height
- https://bottly.shop/collections/frontpage — 4 of 4 images without width/height
- https://bottly.shop/collections/pro — 14 of 14 images without width/height
- https://bottly.shop/collections/secret-sale — 4 of 4 images without width/height
- https://bottly.shop/contact — 2 of 2 images without width/height
- https://bottly.shop/faq — 2 of 2 images without width/height
- https://bottly.shop/products/couchconsole — 27 of 27 images without width/height
- https://bottly.shop/products/glass-500ml — 6 of 6 images without width/height
- https://bottly.shop/products/glass-500ml-copy — 6 of 6 images without width/height
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 25 of 25 images without width/height
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — 24 of 24 images without width/height
- https://bottly.shop/products/tmb-standard — 24 of 24 images without width/height
- https://bottly.shop/products/tmb-ultra-blue — 25 of 25 images without width/height
- https://bottly.shop/products/tmb-ultra-grey — 25 of 25 images without width/height
- https://bottly.shop/products/tmb-ultra-white — 25 of 25 images without width/height
- https://bottly.shop/returns — 2 of 2 images without width/height
- https://bottly.shop/shipping — 2 of 2 images without width/height
- https://bottly.shop/store — 25 of 25 images without width/height
- https://bottly.shop/store?sort=created_at — 25 of 25 images without width/height
notice Internal link has no anchor text / accessible name
Rule links.no_anchor_text · Links · 37 occurrence(s)
- https://bottly.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://bottly.shop/about — 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://bottly.shop/categories/accessories — 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://bottly.shop/categories/frontpage — 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://bottly.shop/collections/accessories — 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://bottly.shop/collections/accessories-1 — 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://bottly.shop/collections/colors — 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://bottly.shop/collections/frontpage — 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://bottly.shop/collections/pro — 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://bottly.shop/collections/secret-sale — 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://bottly.shop/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://bottly.shop/faq — 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://bottly.shop/products/couchconsole — 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://bottly.shop/products/glass-500ml — 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://bottly.shop/products/glass-500ml-copy — 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://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 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://bottly.shop/products/tmb-modular-bottle-secret-sale — 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://bottly.shop/products/tmb-standard — 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://bottly.shop/products/tmb-ultra-blue — 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://bottly.shop/products/tmb-ultra-grey — 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://bottly.shop/products/tmb-ultra-white — 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://bottly.shop/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://bottly.shop/shipping — 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://bottly.shop/store — 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://bottly.shop/store?sort=created_at — 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 Meta description too long
Rule meta_desc.too_long · Meta Description · 8 occurrence(s)
- https://bottly.shop/ — 243 chars
- https://bottly.shop/about — 243 chars
- https://bottly.shop/categories/accessories — 243 chars
- https://bottly.shop/categories/frontpage — 243 chars
- https://bottly.shop/contact — 243 chars
- https://bottly.shop/faq — 243 chars
- https://bottly.shop/returns — 243 chars
- https://bottly.shop/shipping — 243 chars
notice Meta description too short
Rule meta_desc.too_short · Meta Description · 29 occurrence(s)
- https://bottly.shop/collections/accessories — 18 chars
- https://bottly.shop/collections/accessories-1 — 22 chars
- https://bottly.shop/collections/colors — 17 chars
- https://bottly.shop/collections/frontpage — 21 chars
- https://bottly.shop/collections/pro — 14 chars
- https://bottly.shop/collections/secret-sale — 22 chars
- https://bottly.shop/products/copy-of-tmb-modular-bottle-1 — 16 chars
- https://bottly.shop/products/couchconsole — 26 chars
- https://bottly.shop/products/glass-500ml — 11 chars
- https://bottly.shop/products/glass-500ml-copy — 11 chars
- https://bottly.shop/products/glass-cups — 10 chars
- https://bottly.shop/products/insulation-sleeve — 17 chars
- https://bottly.shop/products/shipping-protection — 19 chars
- https://bottly.shop/products/tmb-modular-bottle-pro — 14 chars
- https://bottly.shop/products/tmb-modular-bottle-pro-copy — 14 chars
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 15 chars
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — 32 chars
- https://bottly.shop/products/tmb-modularbottle-gift-card — 27 chars
- https://bottly.shop/products/tmb-pure-white — 17 chars
- https://bottly.shop/products/tmb-standard — 20 chars
- https://bottly.shop/products/tmb-ultra-blue — 16 chars
- https://bottly.shop/products/tmb-ultra-grey — 16 chars
- https://bottly.shop/products/tmb-ultra-white — 17 chars
- https://bottly.shop/store — 28 chars
- https://bottly.shop/store?sort=created_at — 28 chars
notice Legacy image format (jpg/png/gif) with no next-gen fallback
Rule perf.images_legacy_format · Performance · 37 occurrence(s)
- https://bottly.shop/ — 11 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/about — 2 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://bottly.shop/categories/accessories — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/categories/frontpage — 20 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/collections/accessories — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/collections/accessories-1 — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/collections/colors — 8 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://bottly.shop/collections/frontpage — 4 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://bottly.shop/collections/pro — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/collections/secret-sale — 4 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://bottly.shop/contact — 2 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://bottly.shop/faq — 2 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://bottly.shop/products/couchconsole — 27 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://bottly.shop/products/glass-500ml — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/products/glass-500ml-copy — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — 24 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://bottly.shop/products/tmb-standard — 24 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://bottly.shop/products/tmb-ultra-blue — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/products/tmb-ultra-grey — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/products/tmb-ultra-white — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/returns — 2 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://bottly.shop/shipping — 2 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://bottly.shop/store — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
- https://bottly.shop/store?sort=created_at — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 37 occurrence(s)
- https://bottly.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://bottly.shop/about — 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://bottly.shop/categories/accessories — 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://bottly.shop/categories/frontpage — 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://bottly.shop/collections/accessories — 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://bottly.shop/collections/accessories-1 — 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://bottly.shop/collections/colors — 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://bottly.shop/collections/frontpage — 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://bottly.shop/collections/pro — 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://bottly.shop/collections/secret-sale — 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://bottly.shop/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://bottly.shop/faq — 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://bottly.shop/products/couchconsole — 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://bottly.shop/products/glass-500ml — 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://bottly.shop/products/glass-500ml-copy — 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://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 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://bottly.shop/products/tmb-modular-bottle-secret-sale — 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://bottly.shop/products/tmb-standard — 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://bottly.shop/products/tmb-ultra-blue — 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://bottly.shop/products/tmb-ultra-grey — 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://bottly.shop/products/tmb-ultra-white — 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://bottly.shop/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://bottly.shop/shipping — 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://bottly.shop/store — 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://bottly.shop/store?sort=created_at — 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 · 37 occurrence(s)
- https://bottly.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://bottly.shop/about — 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://bottly.shop/categories/accessories — 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://bottly.shop/categories/frontpage — 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://bottly.shop/collections/accessories — 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://bottly.shop/collections/accessories-1 — 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://bottly.shop/collections/colors — 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://bottly.shop/collections/frontpage — 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://bottly.shop/collections/pro — 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://bottly.shop/collections/secret-sale — 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://bottly.shop/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://bottly.shop/faq — 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://bottly.shop/products/couchconsole — 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://bottly.shop/products/glass-500ml — 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://bottly.shop/products/glass-500ml-copy — 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://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — 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://bottly.shop/products/tmb-modular-bottle-secret-sale — 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://bottly.shop/products/tmb-standard — 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://bottly.shop/products/tmb-ultra-blue — 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://bottly.shop/products/tmb-ultra-grey — 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://bottly.shop/products/tmb-ultra-white — 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://bottly.shop/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://bottly.shop/shipping — 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://bottly.shop/store — 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://bottly.shop/store?sort=created_at — 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 Blocked by robots.txt
Rule robots.blocked · Crawlability · 2 occurrence(s)
- https://bottly.shop/account — Disallowed by robots.txt; not fetched
- https://bottly.shop/cart — Disallowed by robots.txt; not fetched
notice Deprecated schema type with no Google rich result
Rule schema.deprecated_type · Structured Data · 1 occurrence(s)
- https://bottly.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.
notice No structured data detected
Rule schema.none · Structured Data · 5 occurrence(s)
notice Missing recommended security headers
Rule security.missing_headers · Security · 37 occurrence(s)
- https://bottly.shop/ — HSTS, CSP
- https://bottly.shop/about — HSTS, CSP
- https://bottly.shop/categories/accessories — HSTS, CSP
- https://bottly.shop/categories/frontpage — HSTS, CSP
- https://bottly.shop/collections/accessories — HSTS, CSP
- https://bottly.shop/collections/accessories-1 — HSTS, CSP
- https://bottly.shop/collections/colors — HSTS, CSP
- https://bottly.shop/collections/frontpage — HSTS, CSP
- https://bottly.shop/collections/pro — CSP, HSTS
- https://bottly.shop/collections/secret-sale — HSTS, CSP
- https://bottly.shop/contact — HSTS, CSP
- https://bottly.shop/faq — HSTS, CSP
- https://bottly.shop/products/couchconsole — HSTS, CSP
- https://bottly.shop/products/glass-500ml — HSTS, CSP
- https://bottly.shop/products/glass-500ml-copy — HSTS, CSP
- https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy — HSTS, CSP
- https://bottly.shop/products/tmb-modular-bottle-secret-sale — HSTS, CSP
- https://bottly.shop/products/tmb-standard — HSTS, CSP
- https://bottly.shop/products/tmb-ultra-blue — HSTS, CSP
- https://bottly.shop/products/tmb-ultra-grey — HSTS, CSP
- https://bottly.shop/products/tmb-ultra-white — HSTS, CSP
- https://bottly.shop/returns — HSTS, CSP
- https://bottly.shop/shipping — HSTS, CSP
- https://bottly.shop/store — HSTS, CSP
- https://bottly.shop/store?sort=created_at — HSTS, CSP
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://bottly.shop/ The Modular Bottle | TMB Modular Bottle |
200 | yes | 150 | 37 |
| https://bottly.shop/store Store | TMB Modular Bottle |
200 | yes | 184 | 37 |
| https://bottly.shop/store?sort=created_at Store | TMB Modular Bottle |
200 | yes | 186 | 37 |
| https://bottly.shop/products/tmb-ultra-blue TMB - Ultra Blue | TMB Modular Bottle |
200 | yes | 300 | 12 |
| https://bottly.shop/products/tmb-modular-bottle-pro TMB - Pro Grey | TMB Modular Bottle |
200 | yes | 300 | 11 |
| https://bottly.shop/products/tmb-modular-bottle-pro-copy TMB - Pro Blue | TMB Modular Bottle |
200 | yes | 302 | 11 |
| https://bottly.shop/products/tmb-modular-bottle-pro-copy-copy TMB - Pro White | TMB Modular Bottle |
200 | yes | 300 | 11 |
| https://bottly.shop/products/tmb-ultra-grey TMB - Ultra Grey | TMB Modular Bottle |
200 | yes | 300 | 11 |
| https://bottly.shop/products/tmb-ultra-white TMB - Ultra White | TMB Modular Bottle |
200 | yes | 300 | 11 |
| https://bottly.shop/products/glass-500ml-copy Glass 700ml | TMB Modular Bottle |
200 | yes | 452 | 8 |
| https://bottly.shop/products/tmb-modular-bottle-secret-sale TMB - Modular Bottle Secret Sale | TMB Modular Bottle |
200 | yes | 291 | 6 |
| https://bottly.shop/products/tmb-standard TMB - Modular Bottle | TMB Modular Bottle |
200 | yes | 295 | 6 |
| https://bottly.shop/products/glass-500ml Glass 500ml | TMB Modular Bottle |
200 | yes | 480 | 7 |
| https://bottly.shop/products/couchconsole CouchConsole - TMB edition | TMB Modular Bottle |
200 | yes | 143 | 10 |
| https://bottly.shop/products/tmb-modularbottle-gift-card TMB ModularBottle Gift Card | TMB Modular Bottle |
200 | yes | 195 | 3 |
| https://bottly.shop/products/glass-cups Glass Cups | TMB Modular Bottle |
200 | yes | 129 | 6 |
| https://bottly.shop/products/insulation-sleeve Insulation Sleeve | TMB Modular Bottle |
200 | yes | 125 | 6 |
| https://bottly.shop/products/straw-kit Straw Kit | TMB Modular Bottle |
200 | yes | 117 | 6 |
| https://bottly.shop/products/tall-module Tall Module | TMB Modular Bottle |
200 | yes | 115 | 6 |
| https://bottly.shop/products/tea-fruit-infuser Tea & Fruit Infuser | TMB Modular Bottle |
200 | yes | 123 | 6 |
| https://bottly.shop/products/copy-of-tmb-modular-bottle-1 TMB - Space Blue | TMB Modular Bottle |
200 | yes | 289 | 4 |
| https://bottly.shop/products/grey-tmb-modular-bottle TMB - Dark Grey | TMB Modular Bottle |
200 | yes | 289 | 4 |
| https://bottly.shop/products/tmb-pure-white TMB - White Black | TMB Modular Bottle |
200 | yes | 289 | 4 |
| https://bottly.shop/about About TMB Modular Bottle | TMB Modular Bottle |
200 | yes | 93 | 0 |
| https://bottly.shop/categories/accessories ADD-ons | TMB Modular Bottle |
200 | yes | 53 | 0 |
| https://bottly.shop/categories/frontpage TMB Bottle | TMB Modular Bottle |
200 | yes | 134 | 0 |
| https://bottly.shop/collections/accessories ADD-ons | TMB Modular Bottle |
200 | yes | 92 | 0 |
| https://bottly.shop/collections/accessories-1 Accessories | TMB Modular Bottle |
200 | yes | 54 | 0 |
| https://bottly.shop/collections/colors Colors | TMB Modular Bottle |
200 | yes | 67 | 0 |
| https://bottly.shop/collections/frontpage TMB Bottle | TMB Modular Bottle |
200 | yes | 48 | 0 |
| https://bottly.shop/collections/pro PRO | TMB Modular Bottle |
200 | yes | 102 | 0 |
| https://bottly.shop/collections/secret-sale Secret Sale | TMB Modular Bottle |
200 | yes | 48 | 0 |
| https://bottly.shop/contact Get in Touch with TMB Modular | TMB Modular Bottle |
200 | yes | 69 | 0 |
| https://bottly.shop/faq Frequently Asked Questions | TMB Modular Bottle |
200 | yes | 227 | 0 |
| https://bottly.shop/products/shipping-protection Shipping Protection | TMB Modular Bottle |
200 | yes | 203 | 0 |
| https://bottly.shop/returns Returns & Exchanges | TMB Modular Bottle |
200 | yes | 199 | 0 |
| https://bottly.shop/shipping Shipping & Delivery | TMB Modular Bottle |
200 | yes | 108 | 0 |
| https://bottly.shop/account | 0 | no | 0 | 37 |
| https://bottly.shop/cart | 0 | no | 0 | 37 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.