Catalog / plygem.com
65

SEO audit for plygem.com

The Total Designed Exterior | Browse Exterior Building Materials - Ply Gem

other

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

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

Browse exterior building materials at Ply Gem, one of the top manufacturers of residential building exterior materials in North America. Browse our vast selection of exterior building materials today.

Screenshot of plygem.com
50
pages crawled
50
indexable pages
0
errors
373
warnings
708
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 9 0 151 50
Performance 40 0 100 176
Agent Readiness 70 0 50 100
Meta Description 77 0 39 3
Duplicate 85 0 25 0
Structured Data 98 0 4 49
Headings 98 0 3 13
Robots 99 0 1 0
Cache 100 0 0 50
Canonical 100 0 0 1
Content 100 0 0 49
Crawlability 100 0 0 6
Images 100 0 0 112
Security 100 0 0 50
Social 100 0 0 49
Findings

Warnings (13 rules)

warning Control has no accessible name

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

warning Duplicate page content

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

warning Near-duplicate page content

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

warning Duplicate <title> across pages

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

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

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

  • https://www.plygem.com/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/fence-railing/vinyl-railing/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/fence-railing/warranty/submit-a-warranty-claim/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/for-pros/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/metal-rainware/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/patio-doors/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/patio-doors/warranty/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/pro-academy/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/pro-academy/contact-training-team/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/pro-solutions/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/siding/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/siding/for-pros/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/siding/warranty/submit-a-warranty-claim/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/stone-veneer/warranty/register-your-warranty/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/support/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/support/warranty-information/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/trim-moulding/resources/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/windows/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/ — the likely hero/LCP image (plygem-logo.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://www.plygem.com/windows/warranty/ — the likely hero/LCP image (plygem-logo.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 Internal link points to a redirect

Rule links.redirect_target · Links · 151 occurrence(s)

  • https://www.plygem.com/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/fence-railing/vinyl-railing/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/fence-railing/vinyl-railing/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/fence-railing/vinyl-railing/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/patio-doors/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/patio-doors/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/patio-doors/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/pro-academy/contact-training-team/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/pro-solutions/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/pro-solutions/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/pro-solutions/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/siding/for-pros/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/siding/for-pros/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/siding/for-pros/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides
  • https://www.plygem.com/windows/ — https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty → https://www.plygem.com/product-literature/?sideid=shutters-installation-guides,shutters-product-literature,shutters-technical-data,shutters-warranty
  • https://www.plygem.com/windows/ — https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty → https://www.plygem.com/product-literature/?sideid=stone-installation-guides,ply-gem-stone-product-literature,ply-gem-stone-technical-docs,clipstone-mortarless-stone-literature,clipstone-mortarless-stone-technical-data,stone-warranty
  • https://www.plygem.com/windows/ — https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides → https://www.plygem.com/product-literature/?sideid=trim-installation-guides,trim-product-literature,trim-technical-documents,trim-warranty,trim-specification-guides

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

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

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

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

  • https://www.plygem.com/ — robots.txt Disallow blocks render-critical CSS/JS under: /wp-content/cache/min/1/, /wp-content/cache/min/1/ajax/libs/select2/4.0.13/js/, /wp-content/cache/min/1/i/, /wp-content/cache/min/1/masonry-layout@4/dist/, /wp-content/cache/min/1/wp-content/plugins/gravityforms/assets/css/dist/, /wp-content/cache/min/1/wp-content/plugins/post-views-counter/css/, /wp-content/cache/min/1/wp-content/plugins/post-views-counter/js/, /wp-content/cache/min/1/wp-content/plugins/tablepress/css/build/, /wp-content/cache/min/1/wp-content/themes/plygem/assets/css/, /wp-content/cache/min/1/wp-content/themes/plygem/assets/js/, /wp-content/plugins/gravityforms/assets/css/dist/, /wp-content/plugins/gravityforms/assets/js/dist/, /wp-content/plugins/gravityforms/js/, /wp-content/plugins/gravityforms/js/components/form_editor/conditional_flyout/, /wp-content/plugins/megamenu/js/, /wp-content/plugins/menu-image/includes/css/, /wp-content/plugins/post-views-counter/css/, /wp-content/plugins/post-views-counter/js/, /wp-content/plugins/tablepress/css/build/, /wp-content/themes/plygem/assets/css/, /wp-content/themes/plygem/assets/js/, /wp-includes/css/, /wp-includes/js/, /wp-includes/js/dist/, /wp-includes/js/jquery/ui/ — Google's renderer can't fetch these, so the affected pages may render blank or thin. Allow the asset path(s) for Googlebot.

warning BreadcrumbList present but structurally incomplete

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

  • https://www.plygem.com/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.

warning Rich-result schema missing required properties

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

warning Product schema missing required or recommended properties

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

  • https://www.plygem.com/ply-gem-1500-vinyl-collection/ — Product structured data is missing required properties (image, 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 (sku|gtin, aggregateRating, review), which enrich the result.

Notices (20 rules)

notice Heading levels skip a level

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

notice No main landmark for AI agents

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

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

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

notice Canonical target reachable only via a canonical tag (no inlinks)

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

  • https://www.plygem.com/widen-resources/ — this URL is a canonical target but has no internal links pointing to it — crawlers only learn of it via the canonical tag. Add direct internal links (or list it in the sitemap).

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

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

  • https://www.plygem.com/ — this page reads as very difficult (Flesch Reading Ease 7, 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.plygem.com/fence-railing/vinyl-railing/ — this page reads as very difficult (Flesch Reading Ease 20, 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.plygem.com/fence-railing/warranty/submit-a-warranty-claim/ — this page reads as very difficult (Flesch Reading Ease -24, 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.plygem.com/for-pros/ — this page reads as difficult (Flesch Reading Ease 43, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — this page reads as difficult (Flesch Reading Ease 31, 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.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — this page reads as difficult (Flesch Reading Ease 43, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/metal-rainware/ — this page reads as very difficult (Flesch Reading Ease 12, 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.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/ — this page reads as very difficult (Flesch Reading Ease -30, 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.plygem.com/patio-doors/ — this page reads as very difficult (Flesch Reading Ease 16, 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.plygem.com/patio-doors/warranty/ — this page reads as difficult (Flesch Reading Ease 37, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/pro-academy/ — this page reads as very difficult (Flesch Reading Ease 2, 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.plygem.com/pro-academy/contact-training-team/ — this page reads as very difficult (Flesch Reading Ease -21, 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.plygem.com/pro-solutions/ — this page reads as very difficult (Flesch Reading Ease 24, 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.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/ — this page reads as very difficult (Flesch Reading Ease -29, 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.plygem.com/siding/ — this page reads as difficult (Flesch Reading Ease 42, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/siding/for-pros/ — this page reads as difficult (Flesch Reading Ease 43, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/siding/warranty/submit-a-warranty-claim/ — this page reads as very difficult (Flesch Reading Ease -8, 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.plygem.com/stone-veneer/warranty/register-your-warranty/ — this page reads as very difficult (Flesch Reading Ease -100, 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.plygem.com/support/ — this page reads as very difficult (Flesch Reading Ease 1, 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.plygem.com/support/warranty-information/ — this page reads as very difficult (Flesch Reading Ease -23, 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.plygem.com/trim-moulding/resources/ — this page reads as very difficult (Flesch Reading Ease -191, 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.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/ — this page reads as very difficult (Flesch Reading Ease -29, 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.plygem.com/windows/ — this page reads as very difficult (Flesch Reading Ease 27, 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.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/ — this page reads as difficult (Flesch Reading Ease 38, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://www.plygem.com/windows/warranty/ — this page reads as difficult (Flesch Reading Ease 37, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Image alt text is very long (possible keyword stuffing)

Rule images.alt_too_long · Images · 12 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

Rule images.generic_filename · Images · 50 occurrence(s)

  • https://www.plygem.com/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/fence-railing/vinyl-railing/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/fence-railing/warranty/submit-a-warranty-claim/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/for-pros/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/metal-rainware/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/patio-doors/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/patio-doors/warranty/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/pro-academy/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/pro-academy/contact-training-team/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/pro-solutions/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/siding/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/siding/for-pros/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/siding/warranty/submit-a-warranty-claim/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/stone-veneer/warranty/register-your-warranty/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/support/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/support/warranty-information/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/trim-moulding/resources/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/windows/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.plygem.com/windows/warranty/ — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.

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

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

notice Internal link has no anchor text / accessible name

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

notice Meta description too long

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

notice Missing Open Graph tags

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

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

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

  • https://www.plygem.com/ — the page has 1526 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/contact/ — the page has 1575 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/difference/ — the page has 1519 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/for-pros/ — the page has 2118 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/metal-rainware/gutter-solutions/ — the page has 1757 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/patio-doors-by-series/ — the page has 1797 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/patio-doors/ — the page has 1633 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/patio-doors/warranty/ — the page has 1750 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/ply-gem-1500-vinyl-collection/ — the page has 1729 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/pro-academy/contact-training-team/ — the page has 1507 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/product-list-with-filter/ — the page has 1601 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/product-listing/ — the page has 1601 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/product-literature/ — the page has 2619 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/shutters-accessories/ — the page has 1672 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/shutters-accessories/resources/ — the page has 2619 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/siding/ — the page has 1779 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/siding/for-pros/ — the page has 2075 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/stone-veneer/ — the page has 1528 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/stone-veneer/resources/ — the page has 2619 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/stone-veneer/warranty/register-your-warranty/ — the page has 2343 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/trim-moulding/resources/ — the page has 2619 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/widen-resources/ — the page has 2619 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/windows-by-series/ — the page has 1807 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/windows/ — the page has 1798 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.
  • https://www.plygem.com/windows/warranty/ — the page has 1760 DOM elements (recommended maximum is around 1500) — a large DOM increases style-recalculation, layout and paint cost, hurting LCP and INP. Flatten deep nesting, paginate long lists/tables, and lazy-render off-screen elements.

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

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

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

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

  • https://www.plygem.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://www.plygem.com/fence-railing/vinyl-railing/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/fence-railing/warranty/submit-a-warranty-claim/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/for-pros/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/metal-rainware/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/patio-doors/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/patio-doors/warranty/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/pro-academy/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/pro-academy/contact-training-team/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/pro-solutions/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/siding/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/siding/for-pros/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/siding/warranty/submit-a-warranty-claim/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/stone-veneer/warranty/register-your-warranty/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/support/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/support/warranty-information/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/trim-moulding/resources/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/windows/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.plygem.com/windows/warranty/ — 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://www.plygem.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.plygem.com/fence-railing/vinyl-railing/ — 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.plygem.com/fence-railing/warranty/submit-a-warranty-claim/ — 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.plygem.com/for-pros/ — 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.plygem.com/ideas-inspiration/blog/curb-appeal-101/ — 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.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/ — 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.plygem.com/metal-rainware/ — 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.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/ — 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.plygem.com/patio-doors/ — 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.plygem.com/patio-doors/warranty/ — 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.plygem.com/pro-academy/ — 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.plygem.com/pro-academy/contact-training-team/ — 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.plygem.com/pro-solutions/ — 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.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/ — 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.plygem.com/siding/ — 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.plygem.com/siding/for-pros/ — 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.plygem.com/siding/warranty/submit-a-warranty-claim/ — 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.plygem.com/stone-veneer/warranty/register-your-warranty/ — 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.plygem.com/support/ — 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.plygem.com/support/warranty-information/ — 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.plygem.com/trim-moulding/resources/ — 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.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/ — 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.plygem.com/windows/ — 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.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/ — 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.plygem.com/windows/warranty/ — 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 URL redirects to another URL

Rule redirect.single · Crawlability · 6 occurrence(s)

notice Deprecated schema type with no Google rich result

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

notice target=_blank link without rel=noopener (tab-napping)

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

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.plygem.com/
The Total Designed Exterior | Browse Exterior Building Materials - Ply Gem
200 yes 1689 50
https://www.plygem.com/contact/
Contact - Ply Gem
200 yes 1218 50
https://www.plygem.com/contact/careers/
Careers - Ply Gem
200 yes 1490 50
https://www.plygem.com/fence-railing/
Fence & Railing - Ply Gem
200 yes 1253 50
https://www.plygem.com/fence-railing/vinyl-railing/
Vinyl Railing - Ply Gem
200 yes 1308 50
https://www.plygem.com/for-pros/
For Pros - Ply Gem
200 yes 28824 50
https://www.plygem.com/for-pros/partner-resources/
Partner Resources - Ply Gem
200 yes 1036 50
https://www.plygem.com/how-to-buy/
How to Buy - Ply Gem
200 yes 841 50
https://www.plygem.com/ideas-inspiration/
Ideas & Inspiration - Ply Gem
200 yes 19780 50
https://www.plygem.com/metal-rainware/
Metal & Rainware - Ply Gem
200 yes 1176 50
https://www.plygem.com/metal-rainware/gutter-solutions/
Gutter Protection Systems - Ply Gem
200 yes 19108 50
https://www.plygem.com/patio-doors/
Residential Patio Doors - Ply Gem
200 yes 1812 50
https://www.plygem.com/privacy-policy/
Privacy Policy - Ply Gem
200 yes 4779 50
https://www.plygem.com/pro-academy/
Pro Academy - Ply Gem
200 yes 1358 50
https://www.plygem.com/pro-solutions/
Pro Solutions Program - Ply Gem
200 yes 1262 50
https://www.plygem.com/product-literature/
Product Literature - Ply Gem
200 yes 3619 50
https://www.plygem.com/shutters-accessories/
Shutters & Accessories - Ply Gem
200 yes 13696 50
https://www.plygem.com/shutters-accessories/resources/
Product Literature - Ply Gem
200 yes 3619 50
https://www.plygem.com/siding/
Siding - Ply Gem
200 yes 21070 50
https://www.plygem.com/siding/for-pros/
For Pros - Ply Gem
200 yes 28827 50
https://www.plygem.com/sign-up-for-ply-gem-updates/
Sign Up for Ply Gem Updates - Ply Gem
200 yes 957 50
https://www.plygem.com/stone-veneer/
Stone Veneer - Ply Gem
200 yes 3671 50
https://www.plygem.com/stone-veneer/resources/
Product Literature - Ply Gem
200 yes 3619 50
https://www.plygem.com/support/
Support - Ply Gem
200 yes 974 50
https://www.plygem.com/support/warranty-information/
Warranty Information - Ply Gem
200 yes 1047 50
https://www.plygem.com/trim-moulding/
Trim & Moulding - Ply Gem
200 yes 3440 50
https://www.plygem.com/trim-moulding/resources/
Product Literature - Ply Gem
200 yes 3619 50
https://www.plygem.com/windows-by-series/
Windows by Series - Ply Gem Window Series - Ply Gem
200 yes 18764 50
https://www.plygem.com/windows/
Residential Windows - Ply Gem
200 yes 2580 50
https://www.plygem.com/windows/warranty/
Warranty Information for Windows & Patio Doors - Ply Gem
200 yes 19510 50
https://www.plygem.com/how-to-buy/distributor-results/
Find a Distributor - Ply Gem
200 yes 864 1
https://www.plygem.com/patio-doors-by-series/
Patio Doors by Series - Ply Gem Patio Door Series - Ply Gem
200 yes 18758 1
https://www.plygem.com/patio-doors/warranty/
Warranty - Ply Gem
200 yes 19509 1
https://www.plygem.com/ply-gem-1500-vinyl-collection/
Ply Gem 1500 Vinyl Collection - Ply Gem
200 yes 18767 1
https://www.plygem.com/pro-academy/contact-training-team/
Contact the Pro Academy Siding Training Team
200 yes 1078 1
https://www.plygem.com/accuquote/
AccuQuote - Ply Gem
200 yes 1116 0
https://www.plygem.com/difference/
Difference - Ply Gem
200 yes 1274 0
https://www.plygem.com/fence-railing/warranty/submit-a-warranty-claim/
Submit a Warranty Claim - Ply Gem
200 yes 847 0
https://www.plygem.com/ideas-inspiration/blog/curb-appeal-101/
Curb Appeal 101 - Ply Gem
200 yes 1655 0
https://www.plygem.com/ideas-inspiration/dave-jenny-marrs-ply-gem-palettes/
Marrs Curated Exterior Palettes Lookbook Download - Ply Gem
200 yes 3454 0
https://www.plygem.com/metal-rainware/warranty/submit-a-warranty-claim/
Submit a Warranty Claim - Ply Gem
200 yes 826 0
https://www.plygem.com/patio-doors/perspective/meeting-request/
Perspective Multi-Slide Patio Door Meeting Request - Ply Gem
200 yes 989 0
https://www.plygem.com/product-list-with-filter/
Product List with Filter - Ply Gem
200 yes 974 0
https://www.plygem.com/product-listing/
Product List with Filter - Ply Gem
200 yes 974 0
https://www.plygem.com/shutters-accessories/warranty/submit-a-warranty-claim/
Submit a Warranty Claim - Ply Gem
200 yes 825 0
https://www.plygem.com/siding/warranty/submit-a-warranty-claim/
Submit a Warranty Claim - Ply Gem
200 yes 937 0
https://www.plygem.com/stone-veneer/warranty/register-your-warranty/
Register Your Warranty - Ply Gem
200 yes 2234 0
https://www.plygem.com/trim-moulding/warranty/submit-a-warranty-claim/
Submit a Warranty Claim - Ply Gem
200 yes 826 0
https://www.plygem.com/widen-resources/
Product Literature - Ply Gem
200 yes 3619 0
https://www.plygem.com/windows/installation-instructions/1500-bay-bow-window-installation-instructions/
1500 Bay & Bow Window Installation Instructions - Ply Gem
200 yes 2166 0

Audit your own site — free

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

Scan your site →