Skip to content

website: fix SEO audit issues - #3234

Merged
vpetersson merged 2 commits into
Screenly:masterfrom
vpetersson-bot:seo-audit-fixes
Aug 2, 2026
Merged

website: fix SEO audit issues#3234
vpetersson merged 2 commits into
Screenly:masterfrom
vpetersson-bot:seo-audit-fixes

Conversation

@vpetersson-bot

@vpetersson-bot vpetersson-bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Fixes issues surfaced by the anthias.screenly.io site audit (2026-08-02). All changes are in website/; the site builds clean (hugo --minify) and a full link-integrity pass shows 0 broken links / 0 empty anchors.

Fixed in this PR

Audit issue Fix
Unminified JS/CSS (22 — every page) style.css + chroma.css were piped | fingerprint only, shipping unminified. Now | minify | fingerprint. (slider JS was already minified via js.Build.)
Non-descriptive anchor text (6) Replaced "here"/"click here" with descriptive link text (docs index, developer, balena, installation pages).
Links with no anchor text (3) These were raw-URL links (two balenaCloud dashboard URLs, one GitHub source link) rendered with the URL as their anchor text. Gave them descriptive text.
4xx + broken internal links (/cdn-cgi/l/email-protection) Cloudflare's email obfuscation rewrote git@github.com:… (SSH clone) and you@example.com into email-protection links. Switched to the HTTPS clone URL and a <your-email> placeholder.
Low text-to-HTML ratio (home, /api/) Both were under the ~10% threshold (home 9.4%, /api/ 8.4%). Added a home-page "Open source digital signage you control" section and an /api/ overview (base URL, versioning, authentication, errors) rendered from content/api.md. Now 15.0% and 10.6%.
Low word count (migrate-to-screenly) Expanded ~230 → ~570 words (what gets migrated, good-to-know, troubleshooting).
Pages with only one internal link (5) Added "Related documentation" cross-links to the flagged docs pages.

Not addressed here (need a decision or live outside the repo)

  • No HSTS — the site is fronted by Cloudflare; enable HSTS in the Cloudflare dashboard (SSL/TLS → Edge Certificates → HSTS). Not a repo change.
  • Structured data "markup errors" (home) — the SoftwareApplication JSON-LD is valid but lacks aggregateRating, which Google/Semrush want. I did not add one because there's no real rating source and fabricating ratings violates Google's guidelines.
  • Meta refresh redirect (/docs/x86-installation/) — this is a Hugo alias preserving a legacy URL; meta-refresh is the only option on static hosting, and removing it would 404 old inbound links. Left intentionally.
  • Cloudflare email obfuscation more broadly — consider disabling it (Scrape Shield) so future code snippets containing user@host-style strings aren't rewritten into 4xx links.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KnaHskk4LSYZKggBdBZZwc

…tion, thin content)

Addresses issues from the anthias.screenly.io site audit:

- Minify CSS at build: pipe style.css and chroma.css through `| minify`
  (was `| fingerprint` only, so the fingerprinted CSS shipped unminified —
  the largest audit finding, on every page).
- Replace non-descriptive "here"/"click here" anchor text with descriptive
  link text (docs index, developer, balena, installation pages).
- Stop Cloudflare email-obfuscation false positives: the SSH clone URL
  `git@github.com:...` and the `you@example.com` example were rewritten by
  Cloudflare into /cdn-cgi/l/email-protection links (a 4xx + "broken internal
  link" in the audit). Use the HTTPS clone URL and a `<your-email>` placeholder.
- Expand the thin "Migrating assets to Screenly" page (low word count) with
  what-gets-migrated, good-to-know, and troubleshooting sections.
- Add "Related documentation" cross-links to pages the audit flagged as having
  only one internal link.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KnaHskk4LSYZKggBdBZZwc
@vpetersson-bot
vpetersson-bot requested a review from a team as a code owner August 2, 2026 07:08
- Add an API overview section (base URL, versioning, authentication, errors)
  rendered from content/api.md, and a home-page 'Open source digital signage
  you control' section. Both pages were under the ~10% text-to-HTML threshold
  (home 9.4%, /api/ 8.4%); now 15.0% and 10.6%.
- Give the three raw-URL links descriptive anchor text (two balenaCloud
  dashboard URLs on the balena page, one GitHub source link on the developer
  page) that the audit flagged as links with no anchor text.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KnaHskk4LSYZKggBdBZZwc
@sonarqubecloud

sonarqubecloud Bot commented Aug 2, 2026

Copy link
Copy Markdown

@vpetersson
vpetersson merged commit dee31c3 into Screenly:master Aug 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants