- robots.txt now also points at a real sitemap.xml (public pages
only: /, /download, /themes, /showcase) and disallows the
auth-gated routes (/account, /configs, /link) that have nothing
useful to a crawler
- canonical <link> on the root page
- SoftwareApplication JSON-LD so Google can render a rich result
(name, free price, icon) instead of a plain blue link
Claude-Session: https://claude.ai/code/session_01F1M1Jic1wTSn4igUENynmZ
Lighthouse audit findings:
- No robots.txt existed, so nginx's SPA fallback (try_files -> index.html)
served the React app's HTML at /robots.txt -- crawlers got 44 "syntax
not understood" lines instead of directives.
- No Cache-Control on /assets/*, so every visit re-fetched a hashed,
content-addressed bundle that can never actually change under that
URL. Lighthouse estimated 936 KiB/visit wasted on this alone.
Claude-Session: https://claude.ai/code/session_01F1M1Jic1wTSn4igUENynmZ