Catalog / ryzer.one
52

SEO audit for ryzer.one

Monitoring konstrukcji budowlanych | Ryzer

saas

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

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

Ryzer — monitoring konstrukcji budowlanych. Projektujemy, instalujemy i utrzymujemy systemy monitoringu IoT. Dashboard online 24/7.

Screenshot of ryzer.one
50
pages crawled
43
indexable pages
14
errors
133
warnings
392
notices
0
orphan pages
7
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Crawlability 86 7 0 0
Links 86 7 0 0
Security 74 0 43 50
Duplicate 75 0 41 22
Hreflang 76 0 40 0
Content 95 0 9 14
Agent Readiness 100 0 0 44
Canonical 100 0 0 17
Images 100 0 0 43
Meta Description 100 0 0 7
Performance 100 0 0 109
Sitemap 100 0 0 4
Social 100 0 0 43
Structured Data 100 0 0 30
Titles 100 0 0 9
Findings

Errors (2 rules)

error Broken internal link (target 4xx/5xx)

Rule links.broken_internal · Links · 7 occurrence(s)

error Client error (4xx) response

Rule status.4xx · Crawlability · 7 occurrence(s)

Warnings (7 rules)

warning Thin content (low word count)

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

warning Duplicate page content

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

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

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

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

warning Duplicate <title> across pages

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

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 43 occurrence(s)

  • https://ryzer.one/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://ryzer.one/monitoring-konstrukcji — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://ryzer.one/realizacje — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://ryzer.one/utrzymanie-systemow — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/blog/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/blog/jak-dziala-monitoring-konstrukcji — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/about/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/blog/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/blog/how-structural-monitoring-works — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/contact/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/heritage-monitoring/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/privacy-policy/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/projects/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/structural-monitoring/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/en/system-maintenance/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/kontakt/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/monitoring-budynkow-zabytkowych/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/monitoring-konstrukcji/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/o-nas/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/polityka-prywatnosci/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/realizacje/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/realizacje/stadion-sosnowiec — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
  • https://www.ryzer.one/utrzymanie-systemow/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".

warning hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 10 occurrence(s)

warning hreflang has no return link (not reciprocal)

Rule hreflang.no_return · Hreflang · 30 occurrence(s)

Notices (18 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://ryzer.one/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

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

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

  • https://www.ryzer.one/blog/ — 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).
  • https://www.ryzer.one/kontakt/ — 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).
  • https://www.ryzer.one/monitoring-konstrukcji/ — 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).
  • https://www.ryzer.one/o-nas/ — 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).
  • https://www.ryzer.one/polityka-prywatnosci/ — 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).
  • https://www.ryzer.one/realizacje/ — 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).
  • https://www.ryzer.one/utrzymanie-systemow/ — 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 Canonical points to a different URL

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

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

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

  • https://ryzer.one/en/ — this page reads as very difficult (Flesch Reading Ease 28, 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.ryzer.one/en/ — this page reads as very difficult (Flesch Reading Ease 28, 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.ryzer.one/en/about/ — 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.ryzer.one/en/blog — this page reads as difficult (Flesch Reading Ease 36, 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.ryzer.one/en/blog/ — this page reads as difficult (Flesch Reading Ease 36, 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.ryzer.one/en/blog/how-structural-monitoring-works — 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.ryzer.one/en/contact/ — this page reads as difficult (Flesch Reading Ease 44, 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.ryzer.one/en/heritage-monitoring/ — this page reads as very difficult (Flesch Reading Ease 11, 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.ryzer.one/en/projects — this page reads as very difficult (Flesch Reading Ease 26, 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.ryzer.one/en/projects/ — this page reads as very difficult (Flesch Reading Ease 26, 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.ryzer.one/en/structural-monitoring — this page reads as very difficult (Flesch Reading Ease 25, 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.ryzer.one/en/structural-monitoring/ — this page reads as very difficult (Flesch Reading Ease 25, 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.ryzer.one/en/system-maintenance — this page reads as very difficult (Flesch Reading Ease 10, 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.ryzer.one/en/system-maintenance/ — this page reads as very difficult (Flesch Reading Ease 10, 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 · 22 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://ryzer.one/ — the likely hero/LCP image (hero-home.webp) 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://ryzer.one/blog — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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://ryzer.one/en/ — the likely hero/LCP image (hero-home.webp) 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://ryzer.one/monitoring-konstrukcji — the likely hero/LCP image (stadium-panorama.webp) 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://ryzer.one/realizacje — the likely hero/LCP image (card.webp) 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.ryzer.one/ — the likely hero/LCP image (hero-home.webp) 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.ryzer.one/blog — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/blog/ — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/blog/jak-dziala-monitoring-konstrukcji — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/blog/kiedy-potrzebny-monitoring-budynku — the likely hero/LCP image (kiedy-potrzebny-monitoring-budynku.webp) 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.ryzer.one/en/ — the likely hero/LCP image (hero-home.webp) 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.ryzer.one/en/blog — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/en/blog/ — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/en/blog/how-structural-monitoring-works — the likely hero/LCP image (jak-dziala-monitoring-konstrukcji.webp) 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.ryzer.one/en/projects — the likely hero/LCP image (card.webp) 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.ryzer.one/en/projects/ — the likely hero/LCP image (card.webp) 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.ryzer.one/en/structural-monitoring — the likely hero/LCP image (stadium-panorama.webp) 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.ryzer.one/en/structural-monitoring/ — the likely hero/LCP image (stadium-panorama.webp) 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.ryzer.one/monitoring-konstrukcji — the likely hero/LCP image (stadium-panorama.webp) 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.ryzer.one/monitoring-konstrukcji/ — the likely hero/LCP image (stadium-panorama.webp) 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.ryzer.one/realizacje — the likely hero/LCP image (card.webp) 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.ryzer.one/realizacje/ — the likely hero/LCP image (card.webp) 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.ryzer.one/realizacje/stadion-sosnowiec — the likely hero/LCP image (card.webp) 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 · 43 occurrence(s)

notice Meta description too long

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

notice Meta description too short

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

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

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

  • https://ryzer.one/ — 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://ryzer.one/monitoring-konstrukcji — 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://ryzer.one/realizacje — 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://ryzer.one/utrzymanie-systemow — 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.ryzer.one/ — 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.ryzer.one/blog/ — 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.ryzer.one/blog/jak-dziala-monitoring-konstrukcji — 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.ryzer.one/en/ — 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.ryzer.one/en/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://www.ryzer.one/en/blog/ — 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.ryzer.one/en/blog/how-structural-monitoring-works — 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.ryzer.one/en/contact/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://www.ryzer.one/en/heritage-monitoring/ — 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.ryzer.one/en/privacy-policy/ — 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.ryzer.one/en/projects/ — 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.ryzer.one/en/structural-monitoring/ — 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.ryzer.one/en/system-maintenance/ — 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.ryzer.one/kontakt/ — 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.ryzer.one/monitoring-budynkow-zabytkowych/ — 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.ryzer.one/monitoring-konstrukcji/ — 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.ryzer.one/o-nas/ — 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.ryzer.one/polityka-prywatnosci/ — 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.ryzer.one/realizacje/ — 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.ryzer.one/realizacje/stadion-sosnowiec — 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.ryzer.one/utrzymanie-systemow/ — 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 · 43 occurrence(s)

  • https://ryzer.one/ — 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://ryzer.one/monitoring-konstrukcji — 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://ryzer.one/realizacje — 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://ryzer.one/utrzymanie-systemow — 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.ryzer.one/ — 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.ryzer.one/blog/ — 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.ryzer.one/blog/jak-dziala-monitoring-konstrukcji — 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.ryzer.one/en/ — 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.ryzer.one/en/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://www.ryzer.one/en/blog/ — 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.ryzer.one/en/blog/how-structural-monitoring-works — 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.ryzer.one/en/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.ryzer.one/en/heritage-monitoring/ — 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.ryzer.one/en/privacy-policy/ — 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.ryzer.one/en/projects/ — 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.ryzer.one/en/structural-monitoring/ — 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.ryzer.one/en/system-maintenance/ — 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.ryzer.one/kontakt/ — 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.ryzer.one/monitoring-budynkow-zabytkowych/ — 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.ryzer.one/monitoring-konstrukcji/ — 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.ryzer.one/o-nas/ — 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.ryzer.one/polityka-prywatnosci/ — 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.ryzer.one/realizacje/ — 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.ryzer.one/realizacje/stadion-sosnowiec — 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.ryzer.one/utrzymanie-systemow/ — 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 · 7 occurrence(s)

notice Missing recommended security headers

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

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 4 occurrence(s)

notice Title is very short

Rule title.too_short · Titles · 9 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://www.ryzer.one/en/system-maintenance
Monitoring System Maintenance | Ryzer
200 yes 255 15
https://www.ryzer.one/en/about/
About | Ryzer
200 yes 225 15
https://www.ryzer.one/en/contact/
Contact | Ryzer
200 yes 149 15
https://www.ryzer.one/en/privacy-policy/
Privacy Policy | Ryzer
200 yes 527 15
https://www.ryzer.one/en/projects
Projects | Ryzer
200 yes 299 15
https://www.ryzer.one/en/
Structural Health Monitoring | Ryzer
200 yes 346 15
https://www.ryzer.one/en/structural-monitoring
Structural Health Monitoring | Ryzer
200 yes 313 15
https://www.ryzer.one/en/blog
Blog | Ryzer
200 yes 189 16
https://www.ryzer.one/utrzymanie-systemow
Utrzymanie systemów monitoringu | Ryzer
200 yes 244 20
https://www.ryzer.one/realizacje
Realizacje | Ryzer
200 yes 283 20
https://www.ryzer.one/blog
Blog | Ryzer
200 yes 187 21
https://www.ryzer.one/
Monitoring konstrukcji budowlanych | Ryzer
200 yes 331 20
https://www.ryzer.one/monitoring-konstrukcji
Monitoring konstrukcji budowlanych | Ryzer
200 yes 289 20
https://www.ryzer.one/kontakt
Kontakt | Ryzer
200 yes 141 19
https://www.ryzer.one/o-nas
O nas | Ryzer
200 yes 219 19
https://www.ryzer.one/polityka-prywatnosci
Polityka prywatności | Ryzer
200 yes 521 19
https://ryzer.one/
Monitoring konstrukcji budowlanych | Ryzer
200 yes 331 10
https://ryzer.one/blog
Blog | Ryzer
200 yes 187 9
https://ryzer.one/kontakt
Kontakt | Ryzer
200 yes 141 9
https://ryzer.one/monitoring-konstrukcji
Monitoring konstrukcji budowlanych | Ryzer
200 yes 289 9
https://ryzer.one/o-nas
O nas | Ryzer
200 yes 219 9
https://ryzer.one/polityka-prywatnosci
Polityka prywatności | Ryzer
200 yes 521 9
https://ryzer.one/realizacje
Realizacje | Ryzer
200 yes 283 9
https://ryzer.one/utrzymanie-systemow
Utrzymanie systemów monitoringu | Ryzer
200 yes 244 9
https://www.ryzer.one/en/heritage-monitoring/
Heritage Building Monitoring | Ryzer
200 yes 487 3
https://www.ryzer.one/monitoring-budynkow-zabytkowych/
Monitoring budynków zabytkowych | Ryzer
200 yes 468 3
https://ryzer.one/en/
Structural Health Monitoring | Ryzer
200 yes 346 2
https://ryzer.one/monitoring-budynkow-zabytkowych
Monitoring budynków zabytkowych | Ryzer
200 yes 468 2
https://www.ryzer.one/en/blog/how-structural-monitoring-works
How Does Structural Monitoring Work? A Complete Guide | Ryzer
200 yes 1115 2
https://www.ryzer.one/realizacje/stadion-sosnowiec
Stadion Sosnowiec — monitoring konstrukcji zadaszenia | Ryzer
200 yes 463 2
https://www.ryzer.one/blog/jak-dziala-monitoring-konstrukcji
Jak działa monitoring konstrukcji? Kompletny przewodnik | Ryzer
200 yes 1022 2
https://www.ryzer.one/blog/kiedy-potrzebny-monitoring-budynku
Kiedy potrzebny jest monitoring budynku? | Ryzer
200 yes 1011 2
https://www.ryzer.one/blog/
Blog | Ryzer
200 yes 187 0
https://www.ryzer.one/en/blog/
Blog | Ryzer
200 yes 189 0
https://www.ryzer.one/en/projects/
Projects | Ryzer
200 yes 299 0
https://www.ryzer.one/en/structural-monitoring/
Structural Health Monitoring | Ryzer
200 yes 313 0
https://www.ryzer.one/en/system-maintenance/
Monitoring System Maintenance | Ryzer
200 yes 255 0
https://www.ryzer.one/kontakt/
Kontakt | Ryzer
200 yes 141 0
https://www.ryzer.one/monitoring-konstrukcji/
Monitoring konstrukcji budowlanych | Ryzer
200 yes 289 0
https://www.ryzer.one/o-nas/
O nas | Ryzer
200 yes 219 0
https://www.ryzer.one/polityka-prywatnosci/
Polityka prywatności | Ryzer
200 yes 521 0
https://www.ryzer.one/realizacje/
Realizacje | Ryzer
200 yes 283 0
https://www.ryzer.one/utrzymanie-systemow/
Utrzymanie systemów monitoringu | Ryzer
200 yes 244 0
https://www.ryzer.one/about/
404: Not Found
404 no 5 1
https://www.ryzer.one/contact/
404: Not Found
404 no 5 1
https://www.ryzer.one/heritage-monitoring/
404: Not Found
404 no 5 1
https://www.ryzer.one/privacy-policy/
404: Not Found
404 no 5 1
https://www.ryzer.one/projects/
404: Not Found
404 no 5 1
https://www.ryzer.one/structural-monitoring/
404: Not Found
404 no 5 1
https://www.ryzer.one/system-maintenance/
404: Not Found
404 no 5 1

Audit your own site — free

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

Scan your site →