Skip to content

Commit 3961206

Browse files
feat: optimize SEO for Montegrotto Terme and Padova
2 parents 86b2338 + df655f8 commit 3961206

24 files changed

Lines changed: 712 additions & 271 deletions

.claude/settings.local.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(npm run build:*)",
5+
"Bash(npm install)",
6+
"Bash(git add:*)",
7+
"Bash(git commit -m \"$(cat <<''EOF''\nfix: SEO, security headers, accessibility and analytics improvements\n\n- Add security headers (_headers): HSTS, CSP, X-Frame-Options, Permissions-Policy\n- Add www to non-www redirect (_redirects) for canonical URL\n- Fix Google Analytics initialization order (dataLayer before script)\n- Improve color contrast on orange buttons (text-black for WCAG AA compliance)\n- Add explicit width/height to images to prevent layout shift\n- Obfuscate email address to prevent spam harvesters\n- Enhance 404 page with useful navigation links\n- Update sitemap.xml with correct primebuild.website URLs\n- Add ads.txt placeholder with correct content-type\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
8+
"Bash(git push:*)",
9+
"Bash(gh pr create:*)",
10+
"Bash(git commit -m \"$(cat <<''EOF''\nfix: correct Google Analytics gtag function and CSP headers\n\n- Fix gtag function to use proper ''arguments'' object (required by GA4)\n- Add debug console log for analytics initialization\n- Expand CSP connect-src to include all Google Analytics domains\n- Add region1.google-analytics.com for EU tracking\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")"
11+
],
12+
"deny": [],
13+
"ask": []
14+
}
15+
}

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Checkout repository
27-
uses: actions/checkout@v4
27+
uses: actions/checkout@v6
2828

2929
- name: Initialize CodeQL
3030
uses: github/codeql-action/init@v3
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: dependabot-auto-approve
2+
on:
3+
pull_request_target:
4+
types: [opened, ready_for_review, reopened, synchronize]
5+
permissions:
6+
pull-requests: write
7+
jobs:
8+
approve:
9+
if: github.actor == 'dependabot[bot]'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: hmarr/auto-approve-action@v4
13+
with:
14+
review-message: "Auto-approve: Dependabot PR"
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: dependabot-auto-merge
2+
on:
3+
pull_request_target:
4+
types: [opened, ready_for_review, reopened, synchronize]
5+
permissions:
6+
contents: write
7+
pull-requests: write
8+
jobs:
9+
automerge:
10+
if: github.actor == 'dependabot[bot]'
11+
runs-on: ubuntu-latest
12+
steps:
13+
- id: meta
14+
uses: dependabot/fetch-metadata@v2
15+
with:
16+
github-token: ${{ secrets.GITHUB_TOKEN }}
17+
18+
# Policy: solo patch/minor (modifica qui se vuoi includere i major o solo security)
19+
- name: Check policy
20+
run: |
21+
t="${{ steps.meta.outputs.update-type }}"
22+
[ "$t" = "version-update:semver-patch" ] || [ "$t" = "version-update:semver-minor" ] || exit 1
23+
24+
- name: Enable auto-merge
25+
uses: peter-evans/enable-pull-request-automerge@v3
26+
with:
27+
merge-method: squash
28+
29+
- name: Merge when ready
30+
uses: ahmadnassri/action-dependabot-auto-merge@v2
31+
with:
32+
merge-method: squash

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
steps:
1616
- name: Checkout repo
17-
uses: actions/checkout@v3
17+
uses: actions/checkout@v6
1818

1919
- name: Setup Node
2020
uses: actions/setup-node@v3

client/index.html

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,61 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<<<<<<< HEAD
67
<title>Prime Build | Custom Gaming PC & Assistenza Tecnica a Montegrotto Terme e Padova</title>
78

89
<!-- SEO Meta Tags -->
910
<meta name="description" content="Prime Build realizza PC Gaming su misura per un'esperienza di gioco senza compromessi. Assemblaggio, assistenza tecnica e ottimizzazione PC a Montegrotto Terme (PD) e Padova." />
1011
<meta name="keywords" content="PC Gaming Montegrotto Terme, PC Gaming Padova, Prime Build Montegrotto, Custom PC, Assemblaggio PC, Build PC, Gaming PC, Computer Gaming, Assistenza Tecnica PC, Padova, Italia, computer su misura, assistenza pc gaming, ottimizzazione pc gaming" />
12+
=======
13+
<title>Prime Build | PC Gaming Custom a Montegrotto Terme | Build da 750€</title>
14+
15+
<!-- SEO Meta Tags -->
16+
<meta name="description" content="Assemblaggio PC Gaming su misura a Montegrotto Terme (PD). Build gaming da 750€, assistenza tecnica e ottimizzazione. Servizio completo con componenti AMD Ryzen e NVIDIA RTX." />
17+
<meta name="keywords" content="PC Gaming, Custom PC, Assemblaggio PC, Build PC, Gaming PC, Computer Gaming, Assistenza Tecnica PC, Montegrotto Terme, Abano Terme, Padova, Provincia di Padova, PC Gaming Veneto, assemblaggio computer Padova, build gaming economica, PC streaming, build AMD Ryzen, PC NVIDIA RTX, workstation custom, ottimizzazione PC gaming, riparazione PC gaming, Italia" />
18+
>>>>>>> df655f8681056cd708efc75f1a85fca335620976
1119
<meta name="author" content="Prime Build" />
1220
<meta name="robots" content="index, follow" />
13-
<meta name="googlebot" content="index, follow" />
21+
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
1422
<meta name="geo.region" content="IT-PD" />
1523
<meta name="geo.placename" content="Montegrotto Terme" />
24+
<<<<<<< HEAD
1625
<meta name="geo.position" content="45.3166667;11.7666667" />
1726
<meta name="ICBM" content="45.3166667, 11.7666667" />
1827

28+
=======
29+
<meta name="geo.position" content="45.3297;11.7883" />
30+
<meta name="ICBM" content="45.3297, 11.7883" />
31+
32+
<!-- Additional SEO Meta Tags -->
33+
<meta name="subject" content="Servizio Assemblaggio PC Gaming Custom" />
34+
<meta name="classification" content="Business" />
35+
<meta name="target" content="all" />
36+
<meta name="coverage" content="Italy" />
37+
<meta name="distribution" content="global" />
38+
<meta name="rating" content="general" />
39+
<meta name="revisit-after" content="7 days" />
40+
41+
>>>>>>> df655f8681056cd708efc75f1a85fca335620976
1942
<!-- Open Graph / Facebook -->
2043
<meta property="og:type" content="website" />
21-
<meta property="og:url" content="https://primebuild.website/" />
22-
<meta property="og:title" content="Prime Build | Custom Gaming PC & Assistenza Tecnica a Padova" />
23-
<meta property="og:description" content="Realizziamo PC Gaming su misura per un'esperienza di gioco senza compromessi. Assistenza tecnica e ottimizzazione PC." />
24-
<meta property="og:image" content="https://primebuild.website/logo.png" />
25-
<meta property="og:image:alt" content="Prime Build Logo" />
44+
<meta property="og:url" content="https://primebuild.website/" />
45+
<meta property="og:title" content="Prime Build | PC Gaming Custom a Montegrotto Terme | Build da 750€" />
46+
<meta property="og:description" content="Servizio completo di assemblaggio PC Gaming su misura. Dall'idea alla consegna plug and play. Build gaming, assistenza tecnica e community dedicata." />
47+
<meta property="og:image" content="https://primebuild.website/og-image.png" />
48+
<meta property="og:image:width" content="1200" />
49+
<meta property="og:image:height" content="630" />
50+
<meta property="og:image:alt" content="Prime Build - PC Gaming Custom a Montegrotto Terme" />
2651
<meta property="og:locale" content="it_IT" />
2752
<meta property="og:site_name" content="Prime Build" />
28-
53+
2954
<!-- Twitter -->
3055
<meta property="twitter:card" content="summary_large_image" />
31-
<meta property="twitter:url" content="https://primebuild.website/" />
32-
<meta property="twitter:title" content="Prime Build | Custom Gaming PC & Assistenza Tecnica a Padova" />
33-
<meta property="twitter:description" content="Realizziamo PC Gaming su misura per un'esperienza di gioco senza compromessi. Assistenza tecnica e ottimizzazione PC." />
34-
<meta property="twitter:image" content="https://primebuild.website/logo.png" />
35-
<meta name="twitter:image:alt" content="Prime Build Logo" />
36-
<meta name="twitter:site" content="@PrimeBuild" />
56+
<meta property="twitter:url" content="https://primebuild.website/" />
57+
<meta property="twitter:title" content="Prime Build | PC Gaming Custom a Montegrotto Terme | Build da 750€" />
58+
<meta property="twitter:description" content="Servizio completo di assemblaggio PC Gaming su misura. Dall'idea alla consegna plug and play. Build gaming, assistenza tecnica e community dedicata." />
59+
<meta property="twitter:image" content="https://primebuild.website/og-image.png" />
60+
<meta name="twitter:image:alt" content="Prime Build - PC Gaming Custom a Montegrotto Terme" />
3761

3862
<!-- Canonical URL -->
3963
<link rel="canonical" href="https://primebuild.website/" />

client/public/_headers

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
# Security Headers
3+
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
4+
X-Frame-Options: SAMEORIGIN
5+
X-Content-Type-Options: nosniff
6+
X-XSS-Protection: 1; mode=block
7+
Referrer-Policy: strict-origin-when-cross-origin
8+
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
9+
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://*.google-analytics.com https://googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https: blob: https://www.google-analytics.com https://*.google-analytics.com https://www.googletagmanager.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://region1.google-analytics.com https://website-6al.pages.dev; frame-ancestors 'self'; base-uri 'self'; form-action 'self' https://website-6al.pages.dev
10+
11+
# Ensure ads.txt has correct content-type
12+
/ads.txt
13+
Content-Type: text/plain; charset=utf-8

client/public/_redirects

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Redirect www to non-www (canonical)
2+
https://www.primebuild.website/* https://primebuild.website/:splat 301
3+
4+
# SPA fallback - all routes go to index.html
5+
/* /index.html 200

client/public/ads.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# ads.txt for primebuild.website
2+
# This site does not run any advertising
3+
# placeholder file to prevent 404 errors

client/public/og-image.png

84.9 KB
Loading

0 commit comments

Comments
 (0)