Catalog / lifesciencetextbook.com
68

SEO audit for lifesciencetextbook.com

Middle School | Life Science Textbook

otherWix

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

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

Discovering Life Science is a middle school life science textbook with an approachable format. It is thoroughly illustrated, but not visually "over-busy." The 72 brief lessons are written in a student…

Screenshot of lifesciencetextbook.com
50
pages crawled
50
indexable pages
0
errors
57
warnings
338
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Duplicate 72 0 46 16
Meta Description 96 0 6 41
Agent Readiness 99 0 2 0
Headings 99 0 1 9
Performance 99 0 1 111
Structured Data 99 0 1 48
Content 100 0 0 55
Images 100 0 0 2
Security 100 0 0 50
Social 100 0 0 6
Findings

Warnings (7 rules)

warning Control has no accessible name

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

warning Near-duplicate page content

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

warning Duplicate <title> across pages

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

warning Missing <h1>

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

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

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

  • https://www.lifesciencetextbook.com/about-us-25 — the likely hero/LCP image (discoveringlifescience_front(6).jpg) 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 Product schema missing required or recommended properties

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

  • https://www.lifesciencetextbook.com/product-page/sample-product — Product structured data is missing required properties (offers.price, offers.priceCurrency) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (brand, aggregateRating, review), which enrich the result.

Notices (12 rules)

notice Low text-to-HTML ratio

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

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

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

  • https://www.lifesciencetextbook.com/about-us-25 — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.lifesciencetextbook.com/blank-page — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.lifesciencetextbook.com/format — 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://www.lifesciencetextbook.com/index — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.lifesciencetextbook.com/materials — this page reads as difficult (Flesch Reading Ease 40, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Duplicate meta description across pages

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

notice Likely hero image lacks fetchpriority=high

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

  • https://www.lifesciencetextbook.com/blank-page-3 — the likely hero/LCP image (fdcd97_eeb9f4a4dd514c9da9902feccff449e4~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/blank-page-7 — the likely hero/LCP image (fdcd97_274da4b229d548a09022c40b661b466b~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/book-s-evolution — the likely hero/LCP image (fdcd97_0dd433a677e540a2842a1a6a35bc0d26~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/digital-teacher-s-guide — the likely hero/LCP image (fdcd97_ff1ee872cb8249caa0ebc1cce01199e8~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/format — the likely hero/LCP image (fdcd97_b49d16b6978e4c6dbb935304b4c81ce0~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/index — the likely hero/LCP image (fdcd97_3428522b6b824b28a97ad767cabbbda8~mv2.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/materials — the likely hero/LCP image (fdcd97_e34f1c1334614217bcf5c026c9c9fd03~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/product-page/sample-product — the likely hero/LCP image (3c76e2_bf235c38610f4d2a905db71095b351cf~mv2_jpg_v1_fit_w_1000%2ch_1000%2cq_90_file.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/rationale-and-strategies — the likely hero/LCP image (fdcd97_1d1a5d5c30c34076928de5e7724f817f~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/scientists-included-in-the-lessons — the likely hero/LCP image (fdcd97_86d9ca38e2e44b1799237e2e5aa5c38b~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://www.lifesciencetextbook.com/table-of-contents — the likely hero/LCP image (fdcd97_ff1ee872cb8249caa0ebc1cce01199e8~mv2.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

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

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

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 41 occurrence(s)

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

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

notice No Last-Modified header (no conditional GET for unchanged pages)

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

  • https://www.lifesciencetextbook.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://www.lifesciencetextbook.com/about-us-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://www.lifesciencetextbook.com/about-us-10 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-12 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-13 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-14 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-18 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-22 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-25 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-3 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-5 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-6 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/about-us-7 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/blank-page — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/blank-page-5 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/blank-page-6 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/blank-page-8 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/book-s-evolution — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/contact — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/format — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/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://www.lifesciencetextbook.com/product-page/sample-product — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/sample-lesson-3 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/sample-lesson-5 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://www.lifesciencetextbook.com/scientists-included-in-the-lessons — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice Missing recommended security headers

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.lifesciencetextbook.com/
Middle School | Life Science Textbook
200 yes 503 50
https://www.lifesciencetextbook.com/about-us-1
Outline of U-9 L-6 | Life Science Textbook
200 yes 499 50
https://www.lifesciencetextbook.com/about-us-10
Outline of U-3 L-2 | Discovering Life Science
200 yes 500 50
https://www.lifesciencetextbook.com/about-us-11
Outline U-5 L-2 | Discovering Life Science
200 yes 501 50
https://www.lifesciencetextbook.com/about-us-12
Outline of U-6 L-4 | Discovering Life Science
200 yes 501 50
https://www.lifesciencetextbook.com/about-us-13
Outline of U-1 L-3 | Discovering Life Science
200 yes 491 50
https://www.lifesciencetextbook.com/about-us-14
Unit 1 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-15
Unit 2 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-16
Unit 3 Title Page | Discovering Life Science
200 yes 309 50
https://www.lifesciencetextbook.com/about-us-18
Unit 5 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-19
Unit 6 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-2
• U1-L2 / Scientific Method & CER | Life Science Textbook
200 yes 341 50
https://www.lifesciencetextbook.com/about-us-21
Unit 8 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-22
Unit 9 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-23
Unit 10 Title Page | Discovering Life Science
200 yes 286 50
https://www.lifesciencetextbook.com/about-us-24
About Us | Discovering Life Science
200 yes 443 50
https://www.lifesciencetextbook.com/about-us-25
ONE METHOD | Discovering Life Science
200 yes 582 50
https://www.lifesciencetextbook.com/about-us-3
• U-3 L-2 / Photosynthesis | Life Science Textbook
200 yes 322 50
https://www.lifesciencetextbook.com/about-us-4
• U-1 L-3 / More Scientific Thinking | Life Science Textbook
200 yes 307 50
https://www.lifesciencetextbook.com/about-us-5
• U-2 L-6 / Plant groups | Life Science Textbook
200 yes 308 50
https://www.lifesciencetextbook.com/about-us-6
About Us | Life Science Textbook
200 yes 302 50
https://www.lifesciencetextbook.com/about-us-7
• U-5 L-2 / Breathing basics | Life Science Textbook
200 yes 327 50
https://www.lifesciencetextbook.com/about-us-8
Outline U1 L2 | Life Science Textbook
200 yes 517 50
https://www.lifesciencetextbook.com/about-us-9
Outline of U-2 L-6 / Plant Groups | Life Science Textbook
200 yes 517 50
https://www.lifesciencetextbook.com/blank-page-1
Blank Page | Life Science Textbook
200 yes 507 50
https://www.lifesciencetextbook.com/blank-page-3
Outlining Instructions | Life Science Textbook
200 yes 1021 50
https://www.lifesciencetextbook.com/blank-page-4
Outline of U-1 L-12 | Life Science Textbook
200 yes 516 50
https://www.lifesciencetextbook.com/blank-page-5
Outline of U7 L3 | Life Science Textbook
200 yes 499 50
https://www.lifesciencetextbook.com/blank-page-6
NGSS? | Life Science Textbook
200 yes 492 50
https://www.lifesciencetextbook.com/blank-page-7
Testimonials | Discovering Life Science
200 yes 723 50
https://www.lifesciencetextbook.com/blank-page-8
One book - many plans! | Discovering Life Science
200 yes 479 50
https://www.lifesciencetextbook.com/book-s-evolution
Blank Page | Life Science Textbook
200 yes 1437 50
https://www.lifesciencetextbook.com/contact
Contact | Discovering Life Science
200 yes 316 50
https://www.lifesciencetextbook.com/digital-teacher-s-guide
Digital Teacher's Guide | Life Science Textbook
200 yes 406 50
https://www.lifesciencetextbook.com/format
Format | Life Science Textbook
200 yes 367 50
https://www.lifesciencetextbook.com/index
Meet The Team | Life Science Textbook
200 yes 373 50
https://www.lifesciencetextbook.com/materials
Blank Page | Life Science Textbook
200 yes 424 50
https://www.lifesciencetextbook.com/purchase-options
FAQ | Life Science Textbook
200 yes 1067 50
https://www.lifesciencetextbook.com/rationale-and-strategies
FAQ | Life Science Textbook
200 yes 561 50
https://www.lifesciencetextbook.com/sample-lesson-1
Store Policies | Life Science Textbook
200 yes 499 50
https://www.lifesciencetextbook.com/sample-lesson-2
Blank Page | Life Science Textbook
200 yes 390 50
https://www.lifesciencetextbook.com/sample-lesson-3
FAQ | Life Science Textbook
200 yes 327 50
https://www.lifesciencetextbook.com/sample-lesson-4
Sample Lesson #4 | Life Science Textbook
200 yes 362 50
https://www.lifesciencetextbook.com/sample-lesson-5
Sample Lesson #5 | Life Science Textbook
200 yes 330 50
https://www.lifesciencetextbook.com/sample-lesson-6
Sample Lesson #6 | Life Science Textbook
200 yes 392 50
https://www.lifesciencetextbook.com/scientists-included-in-the-lessons
Blank Page | Life Science Textbook
200 yes 290 50
https://www.lifesciencetextbook.com/table-of-contents
Blank | Life Science Textbook
200 yes 305 50
https://www.lifesciencetextbook.com/blank-page
Blank Page | Life Science Textbook
200 yes 280 0
https://www.lifesciencetextbook.com/product-page/sample-product
Sample Product | Life Science Textboo
200 yes 461 0
https://www.lifesciencetextbook.com/store-policies-1
Store Policies | Life Science Textbook
200 yes 344 0

Audit your own site — free

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

Scan your site →