SEO audit for s32.io
S32 Technologies — Defending Today. Securing Tomorrow.
Health 86/100 (good) · 50 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)S32 Technologies is an industry-leading cybersecurity solutions and tailored access operations provider to governments, defense forces, law enforcement, and critical infrastructure.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Titles | 96 | 0 | 6 | 0 |
| Budget | 98 | 0 | 4 | 0 |
| Duplicate | 99 | 0 | 2 | 7 |
| Agent Readiness | 100 | 0 | 0 | 7 |
| Cache | 100 | 0 | 0 | 46 |
| Content | 100 | 0 | 0 | 57 |
| Crawlability | 100 | 0 | 0 | 4 |
| Meta Description | 100 | 0 | 0 | 35 |
| Performance | 100 | 0 | 0 | 92 |
| Security | 100 | 0 | 0 | 46 |
| Sitemap | 100 | 0 | 0 | 5 |
| Social | 100 | 0 | 0 | 90 |
| Structured Data | 100 | 0 | 0 | 4 |
Warnings (3 rules)
warning robots.txt-disallowed URL receives internal links (crawl-budget leak)
Rule budget.disallow_linked · Budget · 4 occurrence(s)
- https://s32.io/auth/login?realm=customers&next=/portal — internal links point to https://s32.io/auth/login?realm=customers&next=/portal, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://s32.io/clients.
- https://s32.io/auth/login?realm=customers&next=/portal/support — internal links point to https://s32.io/auth/login?realm=customers&next=/portal/support, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://s32.io/clients.
- https://s32.io/login — internal links point to https://s32.io/login, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://s32.io/, https://s32.io/about, https://s32.io/company/jordan-watkins.
- https://s32.io/status — internal links point to https://s32.io/status, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://s32.io/, https://s32.io/about, https://s32.io/company/jordan-watkins.
warning Duplicate <title> across pages
Rule duplicate.title · Duplicate · 2 occurrence(s)
- https://s32.io/ — title shared by 2 pages: https://s32.io/contact
- https://s32.io/contact — title shared by 2 pages: https://s32.io/
warning Title likely truncated in SERP (too wide)
Rule title.too_long · Titles · 6 occurrence(s)
- https://s32.io/interceptplus — 79 chars, ~587px (limit ~580px)
- https://s32.io/interceptplus/csp — 92 chars, ~718px (limit ~580px)
- https://s32.io/interceptplus/le — 77 chars, ~599px (limit ~580px)
- https://s32.io/solutions/armed-forces — 81 chars, ~635px (limit ~580px)
- https://s32.io/solutions/national-security — 94 chars, ~704px (limit ~580px)
- https://s32.io/solutions/service-providers — 75 chars, ~583px (limit ~580px)
Notices (15 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 6 occurrence(s)
- https://s32.io/clients — h3 follows h1 — skips h2
- https://s32.io/interceptplus — h4 follows h2 — skips h3
- https://s32.io/netdefense — h4 follows h2 — skips h3
- https://s32.io/resources?type=datasheet — h3 follows h1 — skips h2
- https://s32.io/resources?type=white-paper — h3 follows h1 — skips h2
- https://s32.io/shadowstrike — h4 follows h2 — skips h3
notice No llms.txt for AI agents
Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)
- https://s32.io/ — no llms.txt found at the site root — add one so AI agents get a curated site summary
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 46 occurrence(s)
- https://s32.io/ — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/about — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/careers — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/cirt — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/clients — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/company/jordan-watkins — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/compare — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/contact — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/genesis — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/genesis/compare — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/interceptplus — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/interceptplus/compare — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/magen — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/magen/compare — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/makom — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/netdefense — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/partners — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/sales — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/services — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/shadowstrike — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/solutions — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/solutions/law-enforcement — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/trulyaware — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/trust — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://s32.io/trust/deployment-models — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · cloudflare: DYNAMIC
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 11 occurrence(s)
- https://s32.io/clients — 4.9%
- https://s32.io/contact — 4.0%
- https://s32.io/news — 4.1%
- https://s32.io/news?type=news — 4.1%
- https://s32.io/resources/brief/warrant-to-courtroom — 4.7%
- https://s32.io/resources/provenance-first-intelligence — 4.8%
- https://s32.io/resources/sovereign-detection — 4.6%
- https://s32.io/resources/the-lawful-boundary — 4.7%
- https://s32.io/resources/threat-sovereignty-outlook-2026 — 4.8%
- https://s32.io/resources?type=datasheet — 4.4%
- https://s32.io/resources?type=white-paper — 4.6%
notice Main text is hard to read (low Flesch Reading Ease)
Rule content.readability_poor · Content · 46 occurrence(s)
- https://s32.io/ — 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://s32.io/about — 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://s32.io/careers — 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://s32.io/cirt — 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://s32.io/clients — this page reads as very difficult (Flesch Reading Ease 0, 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://s32.io/company/jordan-watkins — this page reads as very difficult (Flesch Reading Ease -15, 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://s32.io/compare — 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://s32.io/contact — 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://s32.io/genesis — 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://s32.io/genesis/compare — 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://s32.io/interceptplus — 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://s32.io/interceptplus/compare — this page reads as very difficult (Flesch Reading Ease 6, 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://s32.io/magen — 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://s32.io/magen/compare — 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://s32.io/makom — this page reads as very difficult (Flesch Reading Ease 14, 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://s32.io/netdefense — this page reads as very difficult (Flesch Reading Ease 9, 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://s32.io/partners — 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://s32.io/sales — this page reads as very difficult (Flesch Reading Ease 19, 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://s32.io/services — 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://s32.io/shadowstrike — this page reads as very difficult (Flesch Reading Ease 22, 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://s32.io/solutions — this page reads as very difficult (Flesch Reading Ease 6, 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://s32.io/solutions/law-enforcement — 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://s32.io/trulyaware — 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://s32.io/trust — 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://s32.io/trust/deployment-models — this page reads as very difficult (Flesch Reading Ease 5, 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 · 7 occurrence(s)
- https://s32.io/ — meta description shared by 7 pages: https://s32.io/about, https://s32.io/contact, https://s32.io/careers
- https://s32.io/about — meta description shared by 7 pages: https://s32.io/, https://s32.io/contact, https://s32.io/careers
- https://s32.io/careers — meta description shared by 7 pages: https://s32.io/, https://s32.io/about, https://s32.io/contact
- https://s32.io/clients — meta description shared by 7 pages: https://s32.io/, https://s32.io/about, https://s32.io/contact
- https://s32.io/contact — meta description shared by 7 pages: https://s32.io/, https://s32.io/about, https://s32.io/careers
- https://s32.io/makom — meta description shared by 7 pages: https://s32.io/, https://s32.io/about, https://s32.io/contact
- https://s32.io/netdefense — meta description shared by 7 pages: https://s32.io/, https://s32.io/about, https://s32.io/contact
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 35 occurrence(s)
- https://s32.io/ — 181 chars
- https://s32.io/about — 181 chars
- https://s32.io/careers — 181 chars
- https://s32.io/cirt/compare — 166 chars
- https://s32.io/clients — 181 chars
- https://s32.io/company/jordan-watkins — 210 chars
- https://s32.io/compare — 204 chars
- https://s32.io/contact — 181 chars
- https://s32.io/genesis — 207 chars
- https://s32.io/interceptplus — 279 chars
- https://s32.io/interceptplus/compare — 213 chars
- https://s32.io/magen — 173 chars
- https://s32.io/makom — 181 chars
- https://s32.io/netdefense — 181 chars
- https://s32.io/partners — 203 chars
- https://s32.io/resources/threat-sovereignty-outlook-2026 — 200 chars
- https://s32.io/sales — 192 chars
- https://s32.io/sales/contact — 165 chars
- https://s32.io/services — 210 chars
- https://s32.io/shadowstrike — 273 chars
- https://s32.io/solutions — 184 chars
- https://s32.io/solutions/law-enforcement — 202 chars
- https://s32.io/trulyaware — 170 chars
- https://s32.io/trust — 199 chars
- https://s32.io/trust/deployment-models — 201 chars
notice Missing Open Graph tags
Rule og.missing · Social · 45 occurrence(s)
- https://s32.io/ — og:title, og:description, og:image
- https://s32.io/about — og:title, og:description, og:image
- https://s32.io/careers — og:title, og:description, og:image
- https://s32.io/cirt — og:title, og:description, og:image
- https://s32.io/clients — og:title, og:description, og:image
- https://s32.io/compare — og:title, og:description, og:image
- https://s32.io/contact — og:title, og:description, og:image
- https://s32.io/genesis — og:title, og:description, og:image
- https://s32.io/genesis/compare — og:title, og:description, og:image
- https://s32.io/interceptplus — og:title, og:description, og:image
- https://s32.io/interceptplus/compare — og:title, og:description, og:image
- https://s32.io/magen — og:title, og:description, og:image
- https://s32.io/magen/compare — og:title, og:description, og:image
- https://s32.io/makom — og:title, og:description, og:image
- https://s32.io/netdefense — og:title, og:description, og:image
- https://s32.io/netdefense/compare — og:title, og:description, og:image
- https://s32.io/partners — og:title, og:description, og:image
- https://s32.io/sales — og:title, og:description, og:image
- https://s32.io/services — og:title, og:description, og:image
- https://s32.io/shadowstrike — og:title, og:description, og:image
- https://s32.io/solutions — og:title, og:description, og:image
- https://s32.io/solutions/law-enforcement — og:title, og:description, og:image
- https://s32.io/trulyaware — og:title, og:description, og:image
- https://s32.io/trust — og:title, og:description, og:image
- https://s32.io/trust/deployment-models — og:title, og:description, og:image
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 46 occurrence(s)
- https://s32.io/ — 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://s32.io/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://s32.io/careers — 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://s32.io/cirt — 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://s32.io/clients — 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://s32.io/company/jordan-watkins — 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://s32.io/compare — 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://s32.io/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://s32.io/genesis — 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://s32.io/genesis/compare — 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://s32.io/interceptplus — 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://s32.io/interceptplus/compare — 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://s32.io/magen — 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://s32.io/magen/compare — 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://s32.io/makom — 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://s32.io/netdefense — 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://s32.io/partners — 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://s32.io/sales — 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://s32.io/services — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://s32.io/shadowstrike — 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://s32.io/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://s32.io/solutions/law-enforcement — 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://s32.io/trulyaware — 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://s32.io/trust — 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://s32.io/trust/deployment-models — 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 · 46 occurrence(s)
- https://s32.io/ — 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://s32.io/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://s32.io/careers — 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://s32.io/cirt — 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://s32.io/clients — 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://s32.io/company/jordan-watkins — 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://s32.io/compare — 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://s32.io/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://s32.io/genesis — 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://s32.io/genesis/compare — 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://s32.io/interceptplus — 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://s32.io/interceptplus/compare — 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://s32.io/magen — 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://s32.io/magen/compare — 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://s32.io/makom — 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://s32.io/netdefense — 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://s32.io/partners — 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://s32.io/sales — 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://s32.io/services — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://s32.io/shadowstrike — 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://s32.io/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://s32.io/solutions/law-enforcement — 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://s32.io/trulyaware — 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://s32.io/trust — 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://s32.io/trust/deployment-models — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
notice Blocked by robots.txt
Rule robots.blocked · Crawlability · 4 occurrence(s)
- https://s32.io/auth/login?realm=customers&next=/portal — Disallowed by robots.txt; not fetched
- https://s32.io/auth/login?realm=customers&next=/portal/support — Disallowed by robots.txt; not fetched
- https://s32.io/login — Disallowed by robots.txt; not fetched
- https://s32.io/status — Disallowed by robots.txt; not fetched
notice Deep page has no BreadcrumbList structured data
Rule schema.breadcrumb_missing · Structured Data · 4 occurrence(s)
- https://s32.io/interceptplus/csp — depth-2 page has structured data but no BreadcrumbList
- https://s32.io/interceptplus/le — depth-2 page has structured data but no BreadcrumbList
- https://s32.io/news?type=news — depth-2 page has structured data but no BreadcrumbList
- https://s32.io/resources/brief/warrant-to-courtroom — depth-2 page has structured data but no BreadcrumbList
notice Missing recommended security headers
Rule security.missing_headers · Security · 46 occurrence(s)
- https://s32.io/ — HSTS, CSP, X-Content-Type-Options
- https://s32.io/about — HSTS, CSP, X-Content-Type-Options
- https://s32.io/careers — X-Content-Type-Options, HSTS, CSP
- https://s32.io/cirt — HSTS, CSP, X-Content-Type-Options
- https://s32.io/clients — HSTS, CSP, X-Content-Type-Options
- https://s32.io/company/jordan-watkins — X-Content-Type-Options, HSTS, CSP
- https://s32.io/compare — HSTS, CSP, X-Content-Type-Options
- https://s32.io/contact — X-Content-Type-Options, HSTS, CSP
- https://s32.io/genesis — CSP, X-Content-Type-Options, HSTS
- https://s32.io/genesis/compare — HSTS, CSP, X-Content-Type-Options
- https://s32.io/interceptplus — HSTS, CSP, X-Content-Type-Options
- https://s32.io/interceptplus/compare — HSTS, CSP, X-Content-Type-Options
- https://s32.io/magen — HSTS, CSP, X-Content-Type-Options
- https://s32.io/magen/compare — CSP, X-Content-Type-Options, HSTS
- https://s32.io/makom — HSTS, CSP, X-Content-Type-Options
- https://s32.io/netdefense — X-Content-Type-Options, HSTS, CSP
- https://s32.io/partners — HSTS, CSP, X-Content-Type-Options
- https://s32.io/sales — HSTS, CSP, X-Content-Type-Options
- https://s32.io/services — HSTS, CSP, X-Content-Type-Options
- https://s32.io/shadowstrike — X-Content-Type-Options, HSTS, CSP
- https://s32.io/solutions — CSP, X-Content-Type-Options, HSTS
- https://s32.io/solutions/law-enforcement — CSP, X-Content-Type-Options, HSTS
- https://s32.io/trulyaware — X-Content-Type-Options, HSTS, CSP
- https://s32.io/trust — HSTS, CSP, X-Content-Type-Options
- https://s32.io/trust/deployment-models — HSTS, CSP, X-Content-Type-Options
notice Indexable page not listed in sitemap
Rule sitemap.orphan_not_listed · Sitemap · 5 occurrence(s)
- https://s32.io/interceptplus/csp — indexable but not in sitemap
- https://s32.io/interceptplus/le — indexable but not in sitemap
- https://s32.io/news — indexable but not in sitemap
- https://s32.io/resources/brief/warrant-to-courtroom — indexable but not in sitemap
- https://s32.io/sales/contact — indexable but not in sitemap
notice Missing Twitter Card tag
Rule twitter.missing · Social · 45 occurrence(s)
- https://s32.io/
- https://s32.io/about
- https://s32.io/careers
- https://s32.io/cirt
- https://s32.io/clients
- https://s32.io/compare
- https://s32.io/contact
- https://s32.io/genesis
- https://s32.io/genesis/compare
- https://s32.io/interceptplus
- https://s32.io/interceptplus/compare
- https://s32.io/magen
- https://s32.io/magen/compare
- https://s32.io/makom
- https://s32.io/netdefense
- https://s32.io/netdefense/compare
- https://s32.io/partners
- https://s32.io/sales
- https://s32.io/services
- https://s32.io/shadowstrike
- https://s32.io/solutions
- https://s32.io/solutions/law-enforcement
- https://s32.io/trulyaware
- https://s32.io/trust
- https://s32.io/trust/deployment-models
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://s32.io/ S32 Technologies — Defending Today. Securing Tomorrow. |
200 | yes | 961 | 46 |
| https://s32.io/about About — S32 Technologies |
200 | yes | 822 | 46 |
| https://s32.io/careers Careers — S32 Technologies |
200 | yes | 644 | 46 |
| https://s32.io/cirt Cyber Response — 24/7 Incident Response | S32 Technologies |
200 | yes | 1249 | 46 |
| https://s32.io/clients Current Clients — S32 Technologies |
200 | yes | 477 | 46 |
| https://s32.io/company/mission-outcomes Mission Outcomes — S32 Technologies |
200 | yes | 713 | 46 |
| https://s32.io/compare Compare S32 — Honest, Sourced Competitor Comparisons | S32 Technologies |
200 | yes | 706 | 46 |
| https://s32.io/genesis Genesis OSINT — Provider-Agnostic Intelligence Platform | S32 Technologies |
200 | yes | 1304 | 46 |
| https://s32.io/interceptplus InterceptPlus — Lawful Interception & Intelligence Solutions | S32 Technologies |
200 | yes | 1311 | 46 |
| https://s32.io/magen Magen — All-Source Intelligence Platform | S32 Technologies |
200 | yes | 1534 | 46 |
| https://s32.io/makom Makom Cloud — Secure Hosting, Domains & Email | S32 Technologies |
200 | yes | 748 | 46 |
| https://s32.io/netdefense NetDefense — SIGINT-powered XDR | S32 Technologies |
200 | yes | 911 | 46 |
| https://s32.io/news Newsroom — News & Insight | S32 Technologies |
200 | yes | 373 | 46 |
| https://s32.io/partners Partners — Team with S32 | S32 Technologies |
200 | yes | 624 | 46 |
| https://s32.io/resources Resource Library — Reports, White Papers & Datasheets | S32 Technologies |
200 | yes | 727 | 46 |
| https://s32.io/resources?type=datasheet Resource Library — Reports, White Papers & Datasheets | S32 Technologies |
200 | yes | 517 | 46 |
| https://s32.io/resources?type=white-paper Resource Library — Reports, White Papers & Datasheets | S32 Technologies |
200 | yes | 471 | 46 |
| https://s32.io/sales/contact Contact Sales — S32 Technologies |
200 | yes | 689 | 46 |
| https://s32.io/services Services & Capabilities | S32 Technologies |
200 | yes | 1294 | 46 |
| https://s32.io/shadowstrike ShadowStrike — Sovereign Computer Network Operations | S32 Technologies |
200 | yes | 1291 | 46 |
| https://s32.io/solutions Solutions — Built Around the Mission | S32 Technologies |
200 | yes | 764 | 46 |
| https://s32.io/solutions/armed-forces Armed Forces Solutions — Cyber & Network Defense for the Fight | S32 Technologies |
200 | yes | 959 | 46 |
| https://s32.io/solutions/enterprise Enterprise & Critical Infrastructure Solutions — Resilience | S32 Technologies |
200 | yes | 817 | 46 |
| https://s32.io/solutions/law-enforcement Law Enforcement Solutions — Warrant to Courtroom | S32 Technologies |
200 | yes | 844 | 46 |
| https://s32.io/solutions/national-security National Security & Intelligence Solutions — Authority-Bound at State Scale | S32 Technologies |
200 | yes | 906 | 46 |
| https://s32.io/solutions/service-providers Service Provider Solutions — Lawful-Intercept Compliance | S32 Technologies |
200 | yes | 805 | 46 |
| https://s32.io/trulyaware TrulyAware — Security Awareness Training | S32 Technologies |
200 | yes | 1346 | 46 |
| https://s32.io/trust Trust & Compliance — S32 Technologies |
200 | yes | 877 | 46 |
| https://s32.io/trust/deployment-models Deployment Models — Trust & Compliance | S32 Technologies |
200 | yes | 661 | 46 |
| https://s32.io/interceptplus/compare How InterceptPlus Compares — Lawful Interception | S32 Technologies |
200 | yes | 900 | 4 |
| https://s32.io/resources/provenance-first-intelligence Provenance-First Intelligence — White Paper | S32 Technologies |
200 | yes | 461 | 3 |
| https://s32.io/resources/the-lawful-boundary The Lawful Boundary — White Paper | S32 Technologies |
200 | yes | 461 | 3 |
| https://s32.io/sales Work With S32 — Capabilities & Engagement — S32 Technologies |
200 | yes | 980 | 2 |
| https://s32.io/interceptplus/csp InterceptPlus CSP — Lawful Intercept for Communications Service Providers | S32 Technologies |
200 | yes | 898 | 2 |
| https://s32.io/interceptplus/le InterceptPlus LE — Lawful Interception for Law Enforcement | S32 Technologies |
200 | yes | 980 | 2 |
| https://s32.io/cirt/compare S32 Cyber Response vs. Commercial Incident Response | S32 Technologies |
200 | yes | 723 | 2 |
| https://s32.io/genesis/compare Genesis vs. Legacy OSINT Platforms | S32 Technologies |
200 | yes | 701 | 2 |
| https://s32.io/magen/compare Magen vs. Legacy Intelligence Platforms | S32 Technologies |
200 | yes | 716 | 2 |
| https://s32.io/netdefense/compare NetDefense vs. Commercial XDR & Legacy SIEM | S32 Technologies |
200 | yes | 716 | 2 |
| https://s32.io/trulyaware/compare TrulyAware vs. Mainstream Awareness Training | S32 Technologies |
200 | yes | 681 | 2 |
| https://s32.io/resources/sovereign-detection Sovereign Detection — White Paper | S32 Technologies |
200 | yes | 449 | 2 |
| https://s32.io/resources/threat-sovereignty-outlook-2026 Threat & Sovereignty Outlook 2026 — Flagship Report | S32 Technologies |
200 | yes | 467 | 2 |
| https://s32.io/news?type=news Newsroom — News & Insight | S32 Technologies |
200 | yes | 373 | 2 |
| https://s32.io/resources/brief/warrant-to-courtroom Warrant to Courtroom — Solution Brief | S32 Technologies |
200 | yes | 470 | 1 |
| https://s32.io/company/jordan-watkins Jordan Watkins — Founder & Executive Director | S32 Technologies |
200 | yes | 694 | 0 |
| https://s32.io/contact S32 Technologies — Defending Today. Securing Tomorrow. |
200 | yes | 353 | 0 |
| https://s32.io/auth/login?realm=customers&next=/portal | 0 | no | 0 | 1 |
| https://s32.io/auth/login?realm=customers&next=/portal/support | 0 | no | 0 | 1 |
| https://s32.io/login | 0 | no | 0 | 46 |
| https://s32.io/status | 0 | no | 0 | 46 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.