Catalog / brokenstocks.com
68

SEO audit for brokenstocks.com

Stocks Down 20%+ From Their 52-Week High — Broken Stocks

portfolio

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

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

The daily-updated list of U.S. stocks down 20% or more from a 52-week high — falling knives, broken trends, and structural breakdowns. Paste your portfolio; we'll flag anything that's on the list.

Screenshot of brokenstocks.com
50
pages crawled
50
indexable pages
0
errors
86
warnings
305
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Performance 74 0 44 152
Titles 77 0 39 0
Duplicate 99 0 2 0
Content 99 0 1 1
AI Content 100 0 0 7
Images 100 0 0 45
Meta Description 100 0 0 49
Structured Data 100 0 0 34
URL 100 0 0 17
Findings

Warnings (4 rules)

warning Thin content (low word count)

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

warning Near-duplicate page content

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

warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)

Rule images.no_lazy_lcp_candidate · Performance · 44 occurrence(s)

  • https://brokenstocks.com/falling-knives/basic-materials — the likely hero/LCP image (lwlg.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/communication-services — the likely hero/LCP image (sklz.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/consumer-cyclical — the likely hero/LCP image (dbi.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/consumer-defensive — the likely hero/LCP image (jbs.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/financial-services — the likely hero/LCP image (rily.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/healthcare — the likely hero/LCP image (ocs.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/industrials — the likely hero/LCP image (lunr.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/falling-knives/technology — the likely hero/LCP image (toyo.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/famous — the likely hero/LCP image (nflx.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/list — the likely hero/LCP image (metc.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/list?page=2 — the likely hero/LCP image (te.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/list?sector=Basic+Materials — the likely hero/LCP image (metc.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/list?tier=red — the likely hero/LCP image (metc.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/basic-materials — the likely hero/LCP image (metc.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/communication-services — the likely hero/LCP image (cabo.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/consumer-cyclical — the likely hero/LCP image (lcid.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/consumer-defensive — the likely hero/LCP image (brbr.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/energy — the likely hero/LCP image (geos.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/financial-services — the likely hero/LCP image (crcl.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/healthcare — the likely hero/LCP image (upb.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/industrials — the likely hero/LCP image (eh.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/real-estate — the likely hero/LCP image (csgp.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/technology — the likely hero/LCP image (blsh.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/sectors/utilities — the likely hero/LCP image (oklo.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://brokenstocks.com/ticker/METC — the likely hero/LCP image (metc.png) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

warning Title likely truncated in SERP (too wide)

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

Notices (12 rules)

notice Uniform sentence length (scaled-content hygiene signal)

Rule ai.uniform_sentence_length · AI Content · 7 occurrence(s)

  • https://brokenstocks.com/list — sentence lengths on this page are unusually uniform (standard deviation 4.0 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/list?page=2 — sentence lengths on this page are unusually uniform (standard deviation 4.0 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/list?tier=red — sentence lengths on this page are unusually uniform (standard deviation 4.0 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/sectors/consumer-cyclical — sentence lengths on this page are unusually uniform (standard deviation 3.8 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/sectors/healthcare — sentence lengths on this page are unusually uniform (standard deviation 3.6 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/sectors/industrials — sentence lengths on this page are unusually uniform (standard deviation 3.7 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.
  • https://brokenstocks.com/sectors/technology — sentence lengths on this page are unusually uniform (standard deviation 3.5 words, below 4) — a stylistically flat rhythm that correlates with templated or unedited content and low editorial effort. Vary sentence length and add specifics on a re-read. This is a content-quality nudge; it does not determine AI authorship.

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

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

  • https://brokenstocks.com/falling-knives — this page reads as difficult (Flesch Reading Ease 38, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

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

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

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

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

  • https://brokenstocks.com/list — the page has 3159 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://brokenstocks.com/list?page=2 — the page has 3172 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://brokenstocks.com/list?tier=red — the page has 3159 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://brokenstocks.com/sectors/consumer-cyclical — the page has 2010 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://brokenstocks.com/sectors/healthcare — the page has 2303 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://brokenstocks.com/sectors/industrials — the page has 2056 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://brokenstocks.com/sectors/technology — the page has 3524 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 · 45 occurrence(s)

  • https://brokenstocks.com/ — 5 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://brokenstocks.com/falling-knives/basic-materials — 12 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://brokenstocks.com/falling-knives/communication-services — 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://brokenstocks.com/falling-knives/consumer-cyclical — 3 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://brokenstocks.com/falling-knives/consumer-defensive — 3 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://brokenstocks.com/falling-knives/healthcare — 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://brokenstocks.com/falling-knives/industrials — 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://brokenstocks.com/falling-knives/technology — 38 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://brokenstocks.com/famous — 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://brokenstocks.com/list — 200 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://brokenstocks.com/list?page=2 — 200 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://brokenstocks.com/list?sector=Basic+Materials — 70 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://brokenstocks.com/list?tier=red — 200 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://brokenstocks.com/sectors/basic-materials — 70 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://brokenstocks.com/sectors/communication-services — 42 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://brokenstocks.com/sectors/consumer-cyclical — 133 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://brokenstocks.com/sectors/consumer-defensive — 52 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://brokenstocks.com/sectors/energy — 35 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://brokenstocks.com/sectors/financial-services — 82 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://brokenstocks.com/sectors/healthcare — 153 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://brokenstocks.com/sectors/industrials — 137 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://brokenstocks.com/sectors/real-estate — 31 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://brokenstocks.com/sectors/technology — 238 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://brokenstocks.com/sectors/utilities — 15 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://brokenstocks.com/ticker/METC — 7 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 · 50 occurrence(s)

  • https://brokenstocks.com/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://brokenstocks.com/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://brokenstocks.com/falling-knives — 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://brokenstocks.com/falling-knives/basic-materials — 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://brokenstocks.com/falling-knives/technology — 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://brokenstocks.com/famous — 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://brokenstocks.com/glossary — 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://brokenstocks.com/list — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://brokenstocks.com/list?page=2 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://brokenstocks.com/list?sector=Basic+Materials — 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://brokenstocks.com/list?tier=red — 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://brokenstocks.com/methodology — 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://brokenstocks.com/sectors — 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://brokenstocks.com/sectors/basic-materials — 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://brokenstocks.com/sectors/communication-services — 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://brokenstocks.com/sectors/consumer-cyclical — 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://brokenstocks.com/sectors/consumer-defensive — 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://brokenstocks.com/sectors/energy — 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://brokenstocks.com/sectors/financial-services — 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://brokenstocks.com/sectors/healthcare — 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://brokenstocks.com/sectors/industrials — 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://brokenstocks.com/sectors/real-estate — 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://brokenstocks.com/sectors/technology — 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://brokenstocks.com/sectors/utilities — 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://brokenstocks.com/ticker/METC — 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://brokenstocks.com/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://brokenstocks.com/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://brokenstocks.com/falling-knives — 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://brokenstocks.com/falling-knives/basic-materials — 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://brokenstocks.com/falling-knives/technology — 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://brokenstocks.com/famous — 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://brokenstocks.com/glossary — 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://brokenstocks.com/list — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://brokenstocks.com/list?page=2 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://brokenstocks.com/list?sector=Basic+Materials — 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://brokenstocks.com/list?tier=red — 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://brokenstocks.com/methodology — 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://brokenstocks.com/sectors — 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://brokenstocks.com/sectors/basic-materials — 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://brokenstocks.com/sectors/communication-services — 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://brokenstocks.com/sectors/consumer-cyclical — 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://brokenstocks.com/sectors/consumer-defensive — 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://brokenstocks.com/sectors/energy — 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://brokenstocks.com/sectors/financial-services — 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://brokenstocks.com/sectors/healthcare — 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://brokenstocks.com/sectors/industrials — 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://brokenstocks.com/sectors/real-estate — 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://brokenstocks.com/sectors/technology — 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://brokenstocks.com/sectors/utilities — 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://brokenstocks.com/ticker/METC — 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 Deep page has no BreadcrumbList structured data

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

notice FAQPage structured data (rich result removed May 2026)

Rule schema.faq_deprecated · Structured Data · 28 occurrence(s)

  • https://brokenstocks.com/falling-knives/basic-materials — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/communication-services — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/consumer-cyclical — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/consumer-defensive — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/energy — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/financial-services — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/healthcare — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/industrials — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/real-estate — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/technology — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/falling-knives/utilities — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/ARCT — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/BLSH — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/BRBR — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/CABO — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/GEOS — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/KRRO — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/LCID — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/METC — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/MNDY — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/MSTR — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/OKLO — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/PAR — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/UPB — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://brokenstocks.com/ticker/VITL — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.

notice No structured data detected

Rule schema.none · Structured Data · 3 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://brokenstocks.com/
Stocks Down 20%+ From Their 52-Week High — Broken Stocks
200 yes 462 50
https://brokenstocks.com/about
About Broken Stocks — who runs it and how the data works
200 yes 371 50
https://brokenstocks.com/falling-knives
Falling knives in U.S. stocks — 84 tickers down 30%+ from a recent high
200 yes 244 50
https://brokenstocks.com/famous
Famous stocks on the Broken List — household names down 20%+ from a 52-week high
200 yes 492 50
https://brokenstocks.com/glossary
Glossary — falling knife, decline sigma, time-frame continuity
200 yes 517 50
https://brokenstocks.com/list
Stocks down 20% or more from a 52-week high — The Broken Stocks List (2,564)
200 yes 3034 50
https://brokenstocks.com/methodology
How Broken Stocks tiers declining stocks — Methodology
200 yes 910 50
https://brokenstocks.com/sectors
Broken stocks by sector — where the damage is concentrated
200 yes 182 50
https://brokenstocks.com/sectors/technology
Technology stocks down from a 52-week high — 238 broken Technology stocks
200 yes 2962 7
https://brokenstocks.com/sectors/healthcare
Healthcare stocks down from a 52-week high — 153 broken Healthcare stocks
200 yes 1983 6
https://brokenstocks.com/sectors/communication-services
Communication Services stocks down from a 52-week high — 42 broken Communication Services stocks
200 yes 676 5
https://brokenstocks.com/sectors/consumer-defensive
Consumer Defensive stocks down from a 52-week high — 52 broken Consumer Defensive stocks
200 yes 818 5
https://brokenstocks.com/sectors/industrials
Industrials stocks down from a 52-week high — 137 broken Industrials stocks
200 yes 1792 5
https://brokenstocks.com/sectors/consumer-cyclical
Consumer Cyclical stocks down from a 52-week high — 133 broken Consumer Cyclical stocks
200 yes 1776 4
https://brokenstocks.com/sectors/energy
Energy stocks down from a 52-week high — 35 broken Energy stocks
200 yes 592 4
https://brokenstocks.com/sectors/utilities
Utilities stocks down from a 52-week high — 15 broken Utilities stocks
200 yes 351 4
https://brokenstocks.com/sectors/basic-materials
Basic Materials stocks down from a 52-week high — 70 broken Basic Materials stocks
200 yes 1019 4
https://brokenstocks.com/sectors/financial-services
Financial Services stocks down from a 52-week high — 82 broken Financial Services stocks
200 yes 1173 3
https://brokenstocks.com/sectors/real-estate
Real Estate stocks down from a 52-week high — 31 broken Real Estate stocks
200 yes 565 3
https://brokenstocks.com/ticker/BLSH
BLSH (Bullish) is down 79.0% from a 52-week high — Red List · Broken Stocks
200 yes 779 6
https://brokenstocks.com/ticker/MNDY
MNDY (monday.com Ltd.) is down 75.5% from a 52-week high — Red List · Broken Stocks
200 yes 826 6
https://brokenstocks.com/ticker/MSTR
MSTR (Strategy Inc) is down 76.7% from a 52-week high — Red List · Broken Stocks
200 yes 776 6
https://brokenstocks.com/ticker/PAR
PAR (PAR Technology Corporation) is down 77.9% from a 52-week high — Red List · Broken Stocks
200 yes 828 6
https://brokenstocks.com/ticker/ARCT
ARCT (Arcturus Therapeutics Holdings ) is down 75.2% from a 52-week high — Red List · Broken Stocks
200 yes 788 5
https://brokenstocks.com/ticker/KRRO
KRRO (Korro Bio, Inc.) is down 78.6% from a 52-week high — Red List · Broken Stocks
200 yes 792 5
https://brokenstocks.com/ticker/UPB
UPB (Upstream Bio, Inc.) is down 79.3% from a 52-week high — Red List · Broken Stocks
200 yes 727 5
https://brokenstocks.com/ticker/BRBR
BRBR (BellRing Brands, Inc.) is down 78.6% from a 52-week high — Red List · Broken Stocks
200 yes 803 4
https://brokenstocks.com/ticker/CABO
CABO (Cable One, Inc.) is down 79.2% from a 52-week high — Red List · Broken Stocks
200 yes 802 4
https://brokenstocks.com/ticker/CCOI
CCOI (Cogent Communications Holdings,) is down 74.1% from a 52-week high — Red List · Broken Stocks
200 yes 776 4
https://brokenstocks.com/ticker/EH
EH (EHang Holdings Limited) is down 74.0% from a 52-week high — Red List · Broken Stocks
200 yes 797 4
https://brokenstocks.com/ticker/PSIX
PSIX (Power Solutions International, ) is down 73.9% from a 52-week high — Red List · Broken Stocks
200 yes 786 4
https://brokenstocks.com/ticker/VITL
VITL (Vital Farms, Inc.) is down 75.3% from a 52-week high — Red List · Broken Stocks
200 yes 798 4
https://brokenstocks.com/ticker/METC
METC (Ramaco Resources, Inc.) is down 79.5% from a 52-week high — Red List · Broken Stocks
200 yes 794 4
https://brokenstocks.com/ticker/GEOS
GEOS (Geospace Technologies Corporati) is down 76.2% from a 52-week high — Red List · Broken Stocks
200 yes 790 3
https://brokenstocks.com/ticker/LCID
LCID (Lucid Group, Inc.) is down 77.9% from a 52-week high — Red List · Broken Stocks
200 yes 797 3
https://brokenstocks.com/ticker/OKLO
OKLO (Oklo Inc.) is down 77.2% from a 52-week high — Red List · Broken Stocks
200 yes 801 3
https://brokenstocks.com/list?tier=red
Stocks down 20% or more from a 52-week high — The Broken Stocks List (2,564)
200 yes 3033 3
https://brokenstocks.com/falling-knives/financial-services
Falling knives in Financial Services — 2 Financial Services stocks down 30%+ from a recent high
200 yes 254 2
https://brokenstocks.com/falling-knives/real-estate
Falling knives in Real Estate — 1 Real Estate stock down 30%+ from a recent high
200 yes 245 2
https://brokenstocks.com/falling-knives/consumer-cyclical
Falling knives in Consumer Cyclical — 3 Consumer Cyclical stocks down 30%+ from a recent high
200 yes 262 2
https://brokenstocks.com/falling-knives/energy
Falling knives in Energy — 1 Energy stock down 30%+ from a recent high
200 yes 238 2
https://brokenstocks.com/falling-knives/utilities
Falling knives in Utilities — 1 Utilities stock down 30%+ from a recent high
200 yes 236 2
https://brokenstocks.com/falling-knives/communication-services
Falling knives in Communication Services — 4 Communication Services stocks down 30%+ from a recent high
200 yes 275 2
https://brokenstocks.com/falling-knives/consumer-defensive
Falling knives in Consumer Defensive — 3 Consumer Defensive stocks down 30%+ from a recent high
200 yes 264 2
https://brokenstocks.com/falling-knives/industrials
Falling knives in Industrials — 11 Industrials stocks down 30%+ from a recent high
200 yes 338 2
https://brokenstocks.com/falling-knives/healthcare
Falling knives in Healthcare — 8 Healthcare stocks down 30%+ from a recent high
200 yes 307 2
https://brokenstocks.com/falling-knives/basic-materials
Falling knives in Basic Materials — 12 Basic Materials stocks down 30%+ from a recent high
200 yes 353 2
https://brokenstocks.com/falling-knives/technology
Falling knives in Technology — 38 Technology stocks down 30%+ from a recent high
200 yes 607 2
https://brokenstocks.com/list?page=2
Stocks down 20% or more from a 52-week high — The Broken Stocks List (2,564)
200 yes 3065 1
https://brokenstocks.com/list?sector=Basic+Materials
Stocks down 20% or more from a 52-week high — The Broken Stocks List (2,564)
200 yes 1214 3

Audit your own site — free

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

Scan your site →