Summary
Website Quality Score
Performance 10.0
SEO 9.4
Security 8.5
Accessibility 10.0
Best Practices 9.6
Fix first (highest score impact)
| Impact | Issue | Category | How to fix |
|---|---|---|---|
| -1.5 | 2 page(s) with critical security findings | Security | Add the missing security headers (CSP, HSTS, X-Content-Type-Options) and harden cookies (Secure/HttpOnly/SameSite). |
| -0.3 | Non-unique page titles detected | SEO | Give every page a unique, descriptive <title> (avoid reusing the same title across pages). |
| -0.3 | Non-unique meta descriptions detected | SEO | Write a unique meta description per page summarizing its content (~50-160 chars). |
| -0.3 | No WebP image support | Best Practices | Serve images in a modern format (WebP or AVIF) for better compression. |
| -0.1 | No AVIF image support | Best Practices | Consider AVIF for the best image compression (alongside or instead of WebP). |
- ⛔ Security - 2 pages(s) with critical finding(s).
- ⚠️ No titles provided for uniqueness check.
- ⚠️ No meta descriptions provided for uniqueness check.
- ⚠️ No WebP image found on the website.
- ⚠️ No AVIF image found on the website.
- ⏩ Loaded robots.txt for domain 'medialo-corpo.pyramix.ca': status code 401, size 176 B and took 50 ms.
- ⏩ DNS IPv6: domain medialo-corpo.pyramix.ca does not support IPv6 (DNS server: 192.168.3.1).
- ✅ Skipped URLs - no skipped URLs found.
- ✅ External URLs - no external URLs found.
- ✅ Redirects - no redirects found.
- ✅ 404 OK - all pages exists, no non-existent pages found.
- ✅ SSL/TLS certificate uses a strong signature algorithm (ecdsa-with-SHA384).
- ✅ SSL/TLS certificate uses a strong public key (EC 384 bits).
- ✅ SSL/TLS certificate chain is trusted by the system CA store.
- ✅ Only modern TLS protocols are supported (no SSLv3 / TLS 1.0 / TLS 1.1).
- ✅ Modern TLS 1.3 is supported.
- ✅ SSL/TLS certificate is valid until Sep 6 19:25:03 2026 GMT. Issued by C = US, O = Let's Encrypt, CN = YE2. Subject is CN = medialo-corpo.pyramix.ca.
- ✅ SSL/TLS certificate issued by 'C = US, O = Let's Encrypt, CN = YE2'.
- ✅ Performance OK - all non-media URLs are faster than 3 seconds.
- ✅ HTTP headers - found 6 unique headers.
- ✅ All pages support Brotli compression.
- ✅ All pages have quoted attributes.
- ✅ All pages have inline SVGs smaller than 5120 bytes.
- ✅ All pages have inline SVGs with less than 5 duplicates.
- ✅ All pages have valid or none inline SVGs.
- ✅ All pages without multiple <h1> headings.
- ✅ All pages have <h1> heading.
- ✅ All pages have heading structure without skipped levels.
- ✅ All pages have DOM depth less than 30.
- ✅ All pages have clickable (interactive) phone numbers.
- ✅ No HTML structural issues found.
- ✅ All pages have image alt attributes.
- ✅ All pages have form labels.
- ✅ All links/buttons have an accessible name.
- ✅ All pages expose a main landmark.
- ✅ All pages have lang attribute.
- ✅ DNS IPv4 OK: domain medialo-corpo.pyramix.ca resolved to 206.80.251.181 (DNS server: 192.168.3.1).
Visited URLs
| URL | Status | Type | Time (s) | Size | Cache |
|---|---|---|---|---|---|
| / | 401 | HTML | 6 ms | 578 B | None |
Best practices
| Analysis name | OK | Notice | Warning | Critical |
|---|---|---|---|---|
| Heading structure | 2 | 0 | 0 | 0 |
| DOM depth (> 30) | 1 | 0 | 0 | 0 |
| Title uniqueness (> 10%) | 0 | 0 | 1 | 0 |
| Description uniqueness (> 10%) | 0 | 0 | 1 | 0 |
| Brotli support | 0 | 0 | 0 | 0 |
| WebP support | 0 | 0 | 1 | 0 |
| AVIF support | 0 | 0 | 1 | 0 |
Large inline SVGs
No problems found.
Duplicate inline SVGs
No problems found.
Invalid inline SVGs
No problems found.
Missing quotes on attributes
No problems found.
DOM depth
No problems found.
Heading structure
No problems found.
Non-clickable phone numbers
No problems found.
Title uniqueness
No problems found.
Description uniqueness
No problems found.
Accessibility
Nothing to report.
Valid HTML
No problems found.
Missing image alt attributes
No problems found.
Missing form labels
No problems found.
Missing aria labels
No problems found.
Missing roles
No problems found.
Missing html lang attribute
No problems found.
Security
Found 12 row(s).
| Header | OK | Notice | Warning | Critical | Recommendation |
|---|---|---|---|---|---|
| Strict-Transport-Security | 0 | 0 | 0 | 1 | Strict-Transport-Security header is not set. It enforces secure connections and protects against MITM attacks. |
| Content-Security-Policy | 0 | 0 | 0 | 1 | Content-Security-Policy header is not set. It restricts resources the page can load and prevents XSS attacks. |
| X-Frame-Options | 0 | 0 | 1 | 0 | X-Frame-Options header is not set. It prevents clickjacking attacks when set to 'deny' or 'sameorigin. |
| X-Content-Type-Options | 0 | 0 | 1 | 0 | X-Content-Type-Options header is not set. It stops MIME type sniffing and mitigates content type attacks. |
| Referrer-Policy | 0 | 0 | 1 | 0 | Referrer-Policy header is not set. It controls referrer header sharing and enhances privacy and security. |
| Feature-Policy | 0 | 0 | 1 | 0 | Feature-Policy header is not set. It allows enabling/disabling browser APIs and features for security. Not important if Permissions-Policy is set. |
| Permissions-Policy | 0 | 0 | 1 | 0 | Permissions-Policy header is not set. It allows enabling/disabling browser APIs and features for security. |
| Server | 0 | 1 | 0 | 0 | Server header is set to 'openresty'. It is better not to reveal used technologies. |
| Cross-Origin-Opener-Policy | 0 | 1 | 0 | 0 | Cross-Origin-Opener-Policy is not set. 'same-origin' isolates your browsing context from cross-origin popups (mitigates Spectre/XS-Leaks). |
| Cross-Origin-Embedder-Policy | 0 | 1 | 0 | 0 | Cross-Origin-Embedder-Policy is not set. 'require-corp' enables cross-origin isolation for powerful features. |
| Cross-Origin-Resource-Policy | 0 | 1 | 0 | 0 | Cross-Origin-Resource-Policy is not set. 'same-origin' or 'same-site' blocks other sites from embedding this resource. |
| X-XSS-Protection | 1 | 0 | 0 | 0 | |
| No rows found, please edit your search term. | |||||
Security headers
Found 11 row(s).
| Severity | Occurs | Detail | Affected URLs (max 5) |
|---|---|---|---|
| critical | 1 | Strict-Transport-Security header is not set. It enforces secure connections and protects against MITM attacks. | / |
| critical | 1 | Content-Security-Policy header is not set. It restricts resources the page can load and prevents XSS attacks. | / |
| warning | 1 | X-Frame-Options header is not set. It prevents clickjacking attacks when set to 'deny' or 'sameorigin. | / |
| warning | 1 | Feature-Policy header is not set. It allows enabling/disabling browser APIs and features for security. Not important if Permissions-Policy is set. | / |
| warning | 1 | X-Content-Type-Options header is not set. It stops MIME type sniffing and mitigates content type attacks. | / |
| warning | 1 | Referrer-Policy header is not set. It controls referrer header sharing and enhances privacy and security. | / |
| warning | 1 | Permissions-Policy header is not set. It allows enabling/disabling browser APIs and features for security. | / |
| notice | 1 | Cross-Origin-Embedder-Policy is not set. 'require-corp' enables cross-origin isolation for powerful features. | / |
| notice | 1 | Cross-Origin-Resource-Policy is not set. 'same-origin' or 'same-site' blocks other sites from embedding this resource. | / |
| notice | 1 | Server header is set to 'openresty'. It is better not to reveal used technologies. | / |
| notice | 1 | Cross-Origin-Opener-Policy is not set. 'same-origin' isolates your browsing context from cross-origin popups (mitigates Spectre/XS-Leaks). | / |
| No rows found, please edit your search term. | |||
SEO metadata
No URLs.
OpenGraph metadata
No URLs with OpenGraph data (og:* or twitter:* meta tags).
Heading structure
No URLs to analyze heading structure.
404 URLs
No 404 URLs found.
Redirected URLs
No redirects found.
Skipped URLs Summary
No skipped URLs found.
Skipped URLs
No skipped URLs found.
External URLs
No external URLs found.
TOP fastest URLs
No fast URLs faster than 1 second(s) found.
TOP slowest URLs
No slow URLs slower than 0.01 second(s) found.
Content types
| Content type | URLs 🔽 | Total size | Total time | Avg time | Status 40x |
|---|---|---|---|---|---|
| HTML | 1 | 578 B | 5 ms | 5 ms | 1 |
Content types (MIME types)
| Content type | URLs 🔽 | Total size | Total time | Avg time | Status 40x |
|---|---|---|---|---|---|
| text / html | 1 | 578 B | 5 ms | 5 ms | 1 |
Source domains
| Domain | Totals | HTML |
|---|---|---|
| medialo-corpo.pyramix.ca | 1 / 578B / 5ms | 1 / 578B / 5ms |
HTTP headers
| Header 🔼 | Occurs | Unique | Values preview | Min value | Max value |
|---|---|---|---|---|---|
| Connection | 1 | 1 | close | ||
| Content-Length | 1 | - | [ignored generic values] | 578 B | 578 B |
| Content-Type | 1 | 1 | text / html | ||
| Date | 1 | - | [ignored generic values] | 2026-06-29 | 2026-06-29 |
| Server | 1 | 1 | openresty | ||
| Www-Authenticate | 1 | 1 | Basic realm="Authorization required" |
HTTP header values
| Header | Occurs | Value |
|---|---|---|
| Connection | 1 | close |
| Content-Type | 1 | text / html |
| Server | 1 | openresty |
| Www-Authenticate | 1 | Basic realm="Authorization required" |
HTTP Caching by content type (only from crawlable domains)
| Content type | Cache type | URLs 🔽 | AVG lifetime | MIN lifetime | MAX lifetime |
|---|---|---|---|---|---|
| HTML | No cache headers | 1 | - | - | - |
HTTP Caching by domain
| Domain | Cache type | URLs 🔽 | AVG lifetime | MIN lifetime | MAX lifetime |
|---|---|---|---|---|---|
| medialo-corpo.pyramix.ca | No cache headers | 1 | - | - | - |
HTTP Caching by domain and content type
| Domain | Content type | Cache type | URLs 🔽 | AVG lifetime | MIN lifetime | MAX lifetime |
|---|---|---|---|---|---|---|
| medialo-corpo.pyramix.ca | HTML | No cache headers | 1 | - | - | - |
DNS info
| DNS resolving tree |
|---|
| medialo-corpo.pyramix.ca |
| IPv4: 206.80.251.181 |
| DNS server: 192.168.3.1 |
SSL/TLS info
Found 11 row(s).
| Info | Text |
|---|---|
| Issuer | C = US, O = Let's Encrypt, CN = YE2 |
| Subject | CN = medialo-corpo.pyramix.ca |
| Subject Alternative Names | medialo-corpo.pyramix.ca |
| Valid from | Jun 8 19:25:04 2026 GMT (VALID already 20.6 day(s)) |
| Valid to | Sep 6 19:25:03 2026 GMT (VALID still for 69.4 day(s)) |
| Serial number | 06:93:3c:01:8f:50:24:9e:90:6b:8b:33:67:31:78:f7:ab:88 |
| Signature algorithm | ecdsa-with-SHA384 |
| Public key | EC 384 bits |
| SHA-256 fingerprint | 30:7B:09:81:52:CA:04:2E:07:AC:63:15:2E:E3:84:80:17:E3:8E:EE:2E:57:DB:B7:A3:1F:D3:42:C8:DA:B3:AD |
| Supported protocols | TLSv1.2, TLSv1.3 |
| Trust | Trusted by system CA store |
| No rows found, please edit your search term. | |
Crawler stats
| Basic stats | |
|---|---|
| Total execution time | 6.8 s |
| Total URLs | 1 |
| Total size | 578 B |
| Requests - total time | 6 ms |
| Requests - avg time | 6 ms |
| Requests - min time | 6 ms |
| Requests - max time | 6 ms |
| Requests - p90 time (HTML docs) | 6 ms |
| Requests by status | 401: 1 |
Analysis stats
Found 17 row(s).
| Class::method | Exec time 🔽 | Exec count |
|---|---|---|
| SslTlsAnalyzer::getTLSandSSLCertificateInfo | 5 s | 1 |
| BestPracticeAnalyzer::checkNonClickablePhoneNumbers | 2 ms | 1 |
| SecurityAnalyzer::checkHtmlSecurity | 1 ms | 1 |
| BestPracticeAnalyzer::checkMissingQuotesOnAttributes | 0 ms | 1 |
| BestPracticeAnalyzer::checkInlineSvg | 0 ms | 1 |
| BestPracticeAnalyzer::checkMaxDOMDepth | 0 ms | 1 |
| SeoAndOpenGraphAnalyzer::analyzeSeo | 0 ms | 1 |
| BestPracticeAnalyzer::checkHeadingStructure | 0 ms | 1 |
| SeoAndOpenGraphAnalyzer::analyzeHeadings | 0 ms | 1 |
| SecurityAnalyzer::checkHeaders | 0 ms | 1 |
| SeoAndOpenGraphAnalyzer::analyzeOpenGraph | 0 ms | 1 |
| BestPracticeAnalyzer::checkTitleUniqueness | 0 ms | 1 |
| BestPracticeAnalyzer::checkMetaDescriptionUniqueness | 0 ms | 1 |
| BestPracticeAnalyzer::checkBrotliSupport | 0 ms | 1 |
| BestPracticeAnalyzer::checkWebpSupport | 0 ms | 1 |
| BestPracticeAnalyzer::checkAvifSupport | 0 ms | 1 |
| SeoAndOpenGraphAnalyzer::emitSeoQualityFindings | 0 ms | 1 |
| No rows found, please edit your search term. | ||
Content processor stats
Found 12 row(s).
| Class::method | Exec time 🔽 | Exec count |
|---|---|---|
| HtmlProcessor::findUrls | 0 ms | 1 |
| CssProcessor::findUrls | 0 ms | 1 |
| JavaScriptProcessor::findUrls | 0 ms | 1 |
| NextJsProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| AstroProcessor::findUrls | 0 ms | 1 |
| AstroProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| NextJsProcessor::findUrls | 0 ms | 1 |
| JavaScriptProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| CssProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| SvelteProcessor::findUrls | 0 ms | 1 |
| HtmlProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| SvelteProcessor::applyContentChangesBeforeUrlParsing | 0 ms | 1 |
| No rows found, please edit your search term. | ||
Crawler info
| Version | 2.5.1.20260627 |
|---|---|
| Executed At | 2026-06-29 10:20:17 |
| Command | siteone-crawler --url=https://medialo-corpo.pyramix.ca/ --workers=3 --max-reqs-per-sec=10 --timeout=10 --device=desktop --timezone=America/Toronto --rows-limit=2500 --output-html-report=/home/siteone-crawler-medialo/siteone-crawler/reports/site-medialo-corpo/2026-06/site-medialo-corpo.report.html --output-json-file=/home/siteone-crawler-medialo/siteone-crawler/reports/site-medialo-corpo/2026-06/site-medialo-corpo.report.json --output-text-file= --hide-progress-bar --debug-log-file=/home/siteone-crawler-medialo/siteone-crawler/reports/site-medialo-corpo/2026-06/site-medialo-corpo.debug.log --max-depth=3 --disable-all-assets --remove-query-params |
| Hostname | CT-Medialo |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/26.0.0.0 Safari/537.36 SiteOne-Crawler/2.5.1.20260627 |