Technical website audit · webskan.com

Website audit: kamilobstawski.com

https://kamilobstawski.com/pl/ · Report generated 05/11/2026

Summary

Mobile

82
Performance
95
Accessibility
100
Best practices
100
SEO

Desktop

100
Performance
95
Accessibility
100
Best practices
100
SEO

What to fix – prioritised list

Your site is in good shape: it is secure over HTTPS, fast on desktop, and scores 100 for SEO and best practices. The single most important fix is to add descriptive text (alt text) to all 6 images, which helps Google Images, screen-reader users and overall SEO. After that, improve mobile speed and a few accessibility details.

  1. Priority: high Effort: 30 min · Impact: Better image SEO and accessibility

    Add alt text to all 6 images

    Every image on the page has no alt text. Visitors using screen readers get no description, and Google cannot understand the images, so you lose possible image-search traffic.

    How: Open each image in your CMS or template and add a short description of what it shows, for example 'Kamil Obstawski at work' instead of leaving it empty. Decorative images should have an empty alt attribute (alt="") on purpose. Check the other pages too, since the audit counted only the home page.

  2. Priority: medium Effort: dev needed · Impact: Faster, smoother mobile experience

    Reduce the delay on mobile when the page becomes usable

    Mobile performance is 82 against 100 on desktop. The page shows quickly, but it blocks for about 0.74 seconds (Total Blocking Time) and takes about 4 seconds to become fully interactive on a phone. Visitors on slower phones may tap and see nothing happen.

    How: Ask your developer to check the 4 scripts on the page and defer or remove any that are not needed right away (add the 'defer' attribute, load them after the page is shown). Also remove unused CSS and minify the CSS file, which Lighthouse estimates will save about 150 ms and 30 KB. Re-run the mobile test afterwards to confirm the gain.

  3. Priority: medium Effort: 30 min · Impact: Easier reading for everyone

    Fix low text contrast in 3 places

    Three pieces of text on the home page are too faint against their background. People with weaker eyesight, or anyone reading on a phone in sunlight, will struggle to read them.

    How: Ask your developer to find the three flagged elements (a free tool like the WAVE or axe browser extension highlights them) and darken the text colour or lighten the background. Aim for a contrast ratio of at least 4.5:1 for normal text. A contrast checker such as WebAIM's will confirm the result.

  4. Priority: medium Effort: 15 min · Impact: Better accessibility on every page

    Add a main content area and page regions

    All three pages checked (home, blog, contact) lack a main content landmark, and much of the content sits outside any labelled region. Screen-reader users cannot jump straight to the content, and this is the main reason accessibility is not at 100.

    How: In the page template, wrap the central content in a <main> element, and use <header>, <nav> and <footer> for the other parts. Because this is a shared template, one change fixes every page. It takes a developer a few minutes.

  5. Priority: low Effort: 1-2 h · Impact: Stronger protection against script injection

    Add a Content-Security-Policy header

    This header is missing. It limits which scripts can run on your site, so it is a useful protection if a malicious script ever gets in.

    How: Your site is behind Cloudflare, so your developer can add the header in the Cloudflare dashboard (Rules, then Transform Rules, then Modify Response Header) or on the web server. Start with 'Content-Security-Policy-Report-Only' so nothing breaks, check which resources are blocked, then switch to the enforced version.

  6. Priority: low Effort: 15 min · Impact: Small security hardening

    Add a Permissions-Policy header

    This header is missing. It lets you switch off browser features such as camera, microphone and location that your site does not use, which reduces what a hacked script could do.

    How: Add a response header in Cloudflare (Transform Rules, Modify Response Header) or on your server, for example: Permissions-Policy: camera=(), microphone=(), geolocation=(). It is low risk and quick to do.

  7. Priority: low Effort: 15 min · Impact: Cleaner Google indexing

    Use a permanent redirect from the root address

    The address https://kamilobstawski.com redirects to /pl/ with a temporary (302) redirect. Google may keep treating the root address as the main page instead of passing its strength on to /pl/.

    How: If /pl/ is meant to be the permanent home page, change the redirect from 302 to 301 in your server or Cloudflare redirect rule. If you plan to redirect visitors by browser language, a 302 is fine, so confirm with your developer first.

  8. Priority: low Effort: 10 min · Impact: Avoids a possible outage warning

    Renew the SSL certificate in time

    Your certificate has 60 days left. It is valid now, but if renewal fails, visitors would see a scary security warning and leave.

    How: Check that automatic renewal is switched on (Cloudflare or your host usually handles this). Set a calendar reminder for about 2 weeks before the expiry date to confirm it renewed.

Core Web Vitals (simulated, mobile)

MetricValueRating
Largest Contentful Paint (LCP)1.2 sgood
Cumulative Layout Shift (CLS)0.000good
Total Blocking Time (TBT)0.7 spoor
First Contentful Paint (FCP)1.2 sgood
Speed Index (SI)1.6 sgood
Page weight0.4 MB
Requests18

Biggest speed opportunities

Security & configuration

HTTP headers protecting your visitors:

CheckResult
strict-transport-securityOK
content-security-policymissing
x-content-type-optionsOK
x-frame-optionsOK
referrer-policyOK
permissions-policymissing
TLS certificateOK · valid for 60 more days · issuer: Let's Encrypt
http → https redirectOK
www.kamilobstawski.com redirects to the main addressOK
HTML response compressionbr
Headers leaking technologyserver: cloudflare
Mixed content (http on https)OK

Technical SEO

CheckResult
Page titleKamil Obstawski — full-stack developer, buduję z agentami AI (60 chars)
Meta description163 chars
Canonical URLhttps://kamilobstawski.com/pl/
H1 headings1
Images without alt text6 / 6
Open Graph (social previews)10
Structured data (schema.org)unknown
Document language (lang)pl
Viewport (mobile)OK
FaviconOK
robots.txtOK
Sitemaphttps://kamilobstawski.com/sitemap.xml → 200 (46 URL)

Links

Checked 13 links from the home page.

No broken links found.

Accessibility (WCAG 2.1 AA, axe-core)

https://kamilobstawski.com/pl/

IssueImpactelements
Elements must meet minimum color contrast ratio thresholds ↗serious3
Document should have one main landmark ↗moderate1
All page content should be contained by landmarks ↗moderate27

https://kamilobstawski.com/pl/blog/

IssueImpactelements
Document should have one main landmark ↗moderate1
All page content should be contained by landmarks ↗moderate23

https://kamilobstawski.com/pl/kontakt/

IssueImpactelements
Document should have one main landmark ↗moderate1
All page content should be contained by landmarks ↗moderate8

Screenshots

desktopmobile