From 588124a24c2be5af48833e900b09b7e605466606 Mon Sep 17 00:00:00 2001 From: StreamSeb <48916398+StreamSeb@users.noreply.github.com> Date: Wed, 26 Aug 2026 20:24:48 +0200 Subject: [PATCH] feat(seo): focus key finder on key intent, widen BPM detector mic cluster MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GSC query data showed the two tool pages were competing for the same BPM terms. /tools/key-analyzer lost its BPM queries to /tools/bpm-detector and slid from position 48.6 to 57.3 with zero clicks from any named query; 112 of its 127 named queries now sit past position 50. Key finder — commit the page to key intent: - retitle to "Song Key Finder - Detect the Key of Any MP3, No Upload" - drop BPM from the H1, description and social metadata - cut the meta keywords array from 17 sprawling terms to 5 key-intent ones - promote the no-upload/private angle from the fifth H3 to the first H2 - add "MP3 Key Finder" and "Song Key Detector" H2s matching its own highest-impression queries - point tempo intent out to the BPM detector and tap tempo tools BPM detector — build on the cluster that already ranks 5-10: - H1 now carries the microphone framing the title already used - add four live-audio sections (speaker, phone mic, vinyl/radio/DJ set, live band) targeting queries adjacent to the ones ranking top 10 - link in from the beatmatching and tap tempo guides with mic anchor text Also removes a duplicate BreadcrumbList schema on the key finder page: Breadcrumbs already emits its own, so the manual generateBreadcrumbSchema block was a second competing copy. The visible trail was a lone "Key Finder" crumb while the schema declared Home > Tools > Key Finder; both now agree. Co-Authored-By: Claude Opus 5 --- src/app/guides/[slug]/page.tsx | 5 ++ src/app/tools/bpm-detector/page.tsx | 39 ++++++++++++++++ src/app/tools/key-analyzer/page.tsx | 53 +++++++--------------- src/components/tools/bpm-detector-tool.tsx | 4 +- src/components/tools/key-analyzer-tool.tsx | 47 +++++++++++++------ 5 files changed, 96 insertions(+), 52 deletions(-) diff --git a/src/app/guides/[slug]/page.tsx b/src/app/guides/[slug]/page.tsx index b569f45..91ed5c4 100644 --- a/src/app/guides/[slug]/page.tsx +++ b/src/app/guides/[slug]/page.tsx @@ -520,6 +520,7 @@ const guideContent: Record< ], relatedTools: [ { href: "/tools/tap-tempo", label: "Tap Tempo Tool" }, + { href: "/tools/bpm-detector", label: "BPM Counter Using Your Microphone" }, { href: "/tools/bpm-delay", label: "BPM Delay Calculator" }, { href: "/bpm", label: "BPM Reference" }, ], @@ -907,6 +908,10 @@ const guideContent: Record< ], relatedTools: [ { href: "/tools/tap-tempo", label: "Tap Tempo - Find Track BPM" }, + { + href: "/tools/bpm-detector", + label: "Detect BPM Through Your Microphone", + }, { href: "/tools/bpm-transition", label: "BPM Transition Helper" }, { href: "/tools/camelot", label: "Camelot Wheel - Harmonic Mixing" }, ], diff --git a/src/app/tools/bpm-detector/page.tsx b/src/app/tools/bpm-detector/page.tsx index 35dbbce..f9acdb8 100644 --- a/src/app/tools/bpm-detector/page.tsx +++ b/src/app/tools/bpm-detector/page.tsx @@ -100,6 +100,45 @@ export default function BpmDetectorPage() { the tempo from your taps - it works on anything you can hear, even through headphones.

+

Find the BPM of a Song Playing on a Speaker

+

+ Point the device at the speaker, start listening, and the tempo + appears within a few bars. Nothing needs to be connected to the + sound system - the detector works from the sound in the air, so it + reads a track coming out of a club PA, a monitor, a laptop, or a + Bluetooth speaker just as well as one playing on headphones held + close to the mic. +

+ +

BPM Counter Using Your Phone's Microphone

+

+ The page runs in the mobile browser, so your phone becomes a + pocket BPM counter with nothing to install. Open it + on the dancefloor, in a record shop, or in a rehearsal room, hold the + phone toward the source, and read the tempo. Because the analysis is + on-device, it keeps working with no signal. +

+ +

Detect BPM from Vinyl, Radio, or a Live DJ Set

+

+ Sources with no file to analyse are exactly where microphone + detection earns its place. A record on a turntable, a radio + broadcast, a support DJ's set you want to mix into - none of + them exist as an audio file you can drop into an analyzer, but all of + them are audible in the room. Pitch-adjusted vinyl works too: the + detector reads the tempo actually playing, not the tempo printed on + the label. +

+ +

Find the Tempo of a Live Band or Drummer

+

+ Live performance drifts, and the detector follows it. Point it at a + drummer to check whether the band is rushing, confirm a click-track + tempo in rehearsal, or capture the tempo of a live take you want to + rebuild in the studio later. A clear, steady backbeat gives the most + stable reading. +

+

Privacy

The audio stream never leaves your device. The detector converts diff --git a/src/app/tools/key-analyzer/page.tsx b/src/app/tools/key-analyzer/page.tsx index dea4bae..bd4b9a2 100644 --- a/src/app/tools/key-analyzer/page.tsx +++ b/src/app/tools/key-analyzer/page.tsx @@ -1,41 +1,29 @@ import type { Metadata } from "next" import { KeyAnalyzerTool } from "@/components/tools/key-analyzer-tool" import { Breadcrumbs } from "@/components/layout/breadcrumbs" -import { generateToolSchema, generateFaqSchema, generateBreadcrumbSchema, socialMetadata } from "@/lib/seo" +import { generateToolSchema, generateFaqSchema, socialMetadata } from "@/lib/seo" export const metadata: Metadata = { - title: "Free Song Key & BPM Analyzer - No Upload Needed", + title: "Song Key Finder - Detect the Key of Any MP3, No Upload", description: - "Find the musical key, Camelot code, and BPM of any song free - no upload, no software, no account. Drop in an MP3, WAV, or FLAC and it's analysed privately in your browser.", + "Free online key finder: drop in an MP3, WAV, or FLAC and read its musical key and Camelot code in seconds. Nothing is uploaded - the file is analysed privately in your browser.", keywords: [ - "online key finder", - "song bpm and key analyzer", - "bpm and key finder", - "find key of song online", - "key finder no upload", - "key finder without uploading", - "find song key without software", - "free key finder no download", - "private key finder", - "audio key detector", - "song key analyzer", - "free key detection", - "what key is this song", + "song key finder", + "key detector", + "mp3 key finder", "camelot key finder", - "musical key detector", - "key finder DJ", - "harmonic mixing key finder", + "key finder no upload", ], alternates: { canonical: "https://tunetapper.com/tools/key-analyzer", }, ...socialMetadata({ - title: "Free Song Key & BPM Analyzer - No Upload Needed | TuneTapper", + title: "Song Key Finder - Detect the Key of Any MP3, No Upload | TuneTapper", description: - "Find the key, Camelot code, and BPM of any song free - no upload, no software, no account. Analysed privately in your browser.", + "Drop in an MP3 and read its musical key and Camelot code in seconds. Nothing is uploaded - analysed privately in your browser.", path: "/tools/key-analyzer", image: "/og/key-analyzer.png", - imageAlt: "Key & BPM Analyzer - TuneTapper", + imageAlt: "Song Key Finder - TuneTapper", }), } @@ -74,18 +62,12 @@ const faqs = [ export default function KeyAnalyzerPage() { const toolSchema = generateToolSchema({ - name: "Free Online Key Finder", + name: "Song Key Finder", description: - "Detect the musical key and Camelot notation of any audio file. Runs entirely in your browser.", + "Detect the musical key and Camelot notation of any audio file. Runs entirely in your browser - nothing is uploaded.", url: "/tools/key-analyzer", }) - const breadcrumbItems = [ - { name: "Home", path: "/" }, - { name: "Tools", path: "/tools" }, - { name: "Key Finder", path: "/tools/key-analyzer" }, - ] - return ( <>