Skip to content

Commit 76f4bfd

Browse files
authored
Merge pull request #52 from JackTreble/copilot/improve-seo-free-tools
Add favicon + SEO meta tags to all tool pages
2 parents 7a7cde4 + c8283db commit 76f4bfd

19 files changed

Lines changed: 857 additions & 9 deletions

package-lock.json

Lines changed: 556 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
"@ffmpeg/core": "0.12.6",
1111
"@ffmpeg/ffmpeg": "0.12.6",
1212
"esbuild": "0.25.2",
13-
"jszip": "3.10.1",
1413
"jspdf": "2.5.1",
14+
"jszip": "3.10.1",
1515
"pdf-lib": "1.17.1",
1616
"pdfjs-dist": "3.11.174",
17-
"qrcode": "1.5.4"
17+
"qrcode": "1.5.4",
18+
"sharp": "^0.34.5"
1819
}
1920
}

tools/apple-touch-icon.png

2.97 KB
Loading

tools/aquarium.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="robots" content="noindex, nofollow">
67
<title>FIGUEROA AERO A | VIRTUAL AQUARIUM</title>
78
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;900&family=VT323&display=swap" rel="stylesheet">
89
<style>

tools/exif-stripper.html

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,37 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link rel="icon" type="image/svg+xml" href="favicon.svg">
7+
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
8+
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
69
<title>Free EXIF Remover — Strip GPS &amp; Metadata from Photos | No Upload | tools.treble.dev</title>
710
<meta name="description" content="Remove GPS location, device info, and all hidden metadata from photos. Free, private — your images never leave your browser. Strip EXIF from JPEG and PNG instantly.">
811
<meta name="keywords" content="remove exif data online free, strip gps from photo online, remove metadata from image, exif remover no upload, remove location from photo, photo metadata cleaner, strip exif jpeg png, privacy photo tool">
912
<link rel="canonical" href="https://tools.treble.dev/exif-stripper.html">
1013

1114
<!-- Open Graph -->
1215
<meta property="og:type" content="website">
16+
<meta property="og:site_name" content="tools.treble.dev">
1317
<meta property="og:title" content="Free EXIF Remover — Strip GPS &amp; Metadata from Photos | No Upload">
1418
<meta property="og:description" content="Remove GPS, device info, and all hidden metadata from your photos for free. Runs entirely in your browser — nothing is ever uploaded.">
1519
<meta property="og:url" content="https://tools.treble.dev/exif-stripper.html">
1620

21+
<!-- Twitter Card -->
22+
<meta name="twitter:card" content="summary_large_image">
23+
<meta name="twitter:title" content="Free EXIF Remover — Strip GPS &amp; Metadata from Photos | No Upload">
24+
<meta name="twitter:description" content="Remove GPS, device info, and all hidden metadata from your photos for free. Runs entirely in your browser — nothing is ever uploaded.">
25+
<meta name="twitter:image" content="https://tools.treble.dev/og-image.png">
26+
27+
<!-- Open Graph image -->
28+
<meta property="og:image" content="https://tools.treble.dev/og-image.png">
29+
<meta property="og:image:width" content="1200">
30+
<meta property="og:image:height" content="630">
31+
<meta property="og:image:alt" content="tools.treble.dev — Free. Private. Browser-Based.">
32+
33+
<!-- PWA / theme -->
34+
<link rel="manifest" href="manifest.json">
35+
<meta name="theme-color" content="#004aad">
36+
1737
<script type="application/ld+json">
1838
{
1939
"@context": "https://schema.org",
@@ -68,6 +88,47 @@
6888
}
6989
</script>
7090

91+
<script type="application/ld+json">
92+
{
93+
"@context": "https://schema.org",
94+
"@type": "FAQPage",
95+
"mainEntity": [
96+
{
97+
"@type": "Question",
98+
"name": "Does this tool upload my photos to a server?",
99+
"acceptedAnswer": {
100+
"@type": "Answer",
101+
"text": "No. All processing happens entirely in your browser. Your images are never sent to any server — they never leave your device."
102+
}
103+
},
104+
{
105+
"@type": "Question",
106+
"name": "Does removing EXIF data affect image quality?",
107+
"acceptedAnswer": {
108+
"@type": "Answer",
109+
"text": "For JPEG files, no. The tool uses a lossless binary splice to remove metadata — pixel data is never re-encoded, so there is absolutely zero quality loss. PNG files are re-encoded via the browser Canvas API, which may have a very minor effect on file size but not visible quality."
110+
}
111+
},
112+
{
113+
"@type": "Question",
114+
"name": "What information is stored in EXIF metadata?",
115+
"acceptedAnswer": {
116+
"@type": "Answer",
117+
"text": "EXIF metadata can include GPS coordinates (precise latitude and longitude), the make and model of your device, the date and time the photo was taken, camera settings such as aperture and shutter speed, and sometimes software version information. This data is embedded silently by smartphones and cameras."
118+
}
119+
},
120+
{
121+
"@type": "Question",
122+
"name": "Can I remove only GPS data and keep the rest?",
123+
"acceptedAnswer": {
124+
"@type": "Answer",
125+
"text": "Yes. Use the 'Remove GPS Only' button for a one-click privacy fix that strips only the location data, or use the group checkboxes to choose exactly which metadata categories to remove."
126+
}
127+
}
128+
]
129+
}
130+
</script>
131+
71132
<link rel="stylesheet" href="common.css">
72133
<link rel="stylesheet" href="exif-stripper/style.css">
73134
</head>

tools/favicon-32x32.png

610 Bytes
Loading

tools/favicon.svg

Lines changed: 4 additions & 0 deletions
Loading

tools/icon-192.png

3.15 KB
Loading

tools/index.html

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,37 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link rel="icon" type="image/svg+xml" href="favicon.svg">
7+
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
8+
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
69
<title>Free Browser Tools — PDF, Video &amp; QR Utilities | tools.treble.dev</title>
710
<meta name="description" content="Free, private browser tools for everyday tasks — redact PDFs, trim videos to GIF, generate QR codes, and print without black ink. No uploads, no accounts, no paywalls. Everything runs in your browser.">
11+
<meta name="keywords" content="free browser tools, free online tools no upload, private web tools, pdf tools free, qr code generator free, video to gif converter, exif remover, print without black ink">
812
<link rel="canonical" href="https://tools.treble.dev/">
913

1014
<!-- Open Graph -->
1115
<meta property="og:type" content="website">
16+
<meta property="og:site_name" content="tools.treble.dev">
1217
<meta property="og:title" content="Free Browser Tools — PDF, Video &amp; QR Utilities | tools.treble.dev">
1318
<meta property="og:description" content="Free, private browser tools for everyday tasks. No uploads, no accounts, no paywalls. PDF redaction, video to GIF, QR codes, and more — all in your browser.">
1419
<meta property="og:url" content="https://tools.treble.dev/">
1520

21+
<!-- Twitter Card -->
22+
<meta name="twitter:card" content="summary_large_image">
23+
<meta name="twitter:title" content="Free Browser Tools — PDF, Video &amp; QR Utilities | tools.treble.dev">
24+
<meta name="twitter:description" content="Free, private browser tools for everyday tasks. No uploads, no accounts, no paywalls. PDF redaction, video to GIF, QR codes, and more — all in your browser.">
25+
<meta name="twitter:image" content="https://tools.treble.dev/og-image.png">
26+
27+
<!-- Open Graph image -->
28+
<meta property="og:image" content="https://tools.treble.dev/og-image.png">
29+
<meta property="og:image:width" content="1200">
30+
<meta property="og:image:height" content="630">
31+
<meta property="og:image:alt" content="tools.treble.dev — Free. Private. Browser-Based.">
32+
33+
<!-- PWA / theme -->
34+
<link rel="manifest" href="manifest.json">
35+
<meta name="theme-color" content="#004aad">
36+
1637
<!-- Structured data: WebSite -->
1738
<script type="application/ld+json">
1839
{
@@ -24,6 +45,18 @@
2445
}
2546
</script>
2647

48+
<!-- Structured data: Organization -->
49+
<script type="application/ld+json">
50+
{
51+
"@context": "https://schema.org",
52+
"@type": "Organization",
53+
"name": "tools.treble.dev",
54+
"url": "https://tools.treble.dev/",
55+
"logo": "https://tools.treble.dev/favicon.svg",
56+
"description": "Free, private browser-based tools for everyday tasks. No uploads, no accounts, no paywalls."
57+
}
58+
</script>
59+
2760
<!-- Structured data: ItemList of tools -->
2861
<script type="application/ld+json">
2962
{
@@ -76,7 +109,7 @@
76109

77110
<header class="site-header">
78111
<div class="header-content">
79-
<h1>Free Browser Tools</h1>
112+
<h1>Free Browser Tools — PDF, QR, Video &amp; Privacy Utilities</h1>
80113
<p class="mission-statement">
81114
Simple, private utilities for everyday tasks — no accounts, no uploads, no paywalls.
82115
Everything runs directly in your browser.

tools/mandelbrot.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="robots" content="noindex, nofollow">
67
<title>Psychedelic Mandelbrot Zoom</title>
78
<style>
89
body {

0 commit comments

Comments
 (0)