- robots.txt and sitemap.xml (both answered with the homepage before) - real 404 page; nginx returns 404 instead of the homepage for unknown paths - gzip and caching for fonts, images, videos - JSON-LD as one graph: ProfessionalService (+founders, offer), WebSite, FAQPage built from the FAQ answers - sharper title and a meta description under 160 characters, real descriptions for imprint and privacy pages - imprint cites § 5 DDG (TMG was replaced in May 2024) - empty kontakt.howWeWork hides the block instead of a red placeholder Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
38 lines
1.2 KiB
Nginx Configuration File
38 lines
1.2 KiB
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name _;
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
# Keine Zugriffsprotokolle: Besucher-IPs werden nicht gespeichert
|
|
# (so steht es auch in der Datenschutzerklaerung). Fehler weiter melden.
|
|
access_log off;
|
|
|
|
# Komprimieren: HTML/CSS/JS/SVG kommen deutlich kleiner beim Besucher an
|
|
gzip on;
|
|
gzip_comp_level 6;
|
|
gzip_min_length 512;
|
|
gzip_vary on;
|
|
gzip_proxied any;
|
|
gzip_types text/plain text/css text/xml application/xml application/javascript
|
|
application/json application/ld+json image/svg+xml;
|
|
|
|
# Saubere URLs. Unbekannte Adressen bekommen eine echte 404 statt der
|
|
# Startseite (sonst wertet Google sie als "Soft 404" / doppelte Inhalte).
|
|
location / {
|
|
try_files $uri $uri/ $uri.html =404;
|
|
}
|
|
error_page 404 /404.html;
|
|
|
|
# Astro legt gehashte Assets unter /_astro ab -> lange cachen
|
|
location /_astro/ {
|
|
expires 1y;
|
|
add_header Cache-Control "public, immutable";
|
|
}
|
|
|
|
# Schriften, Bilder, Videos: aendern sich selten
|
|
location ~* \.(woff2|webp|jpg|jpeg|png|svg|ico|mp4)$ {
|
|
expires 7d;
|
|
add_header Cache-Control "public";
|
|
}
|
|
}
|