6 Hole Ocarina Tabs is our own site, and the longest-running one here. For 13 years it has given away tablature for the small pendant ocarina, to kids picking out their first song and adults learning by ear. Almost all of its visitors come from free search results, around 28,000 different people a month, and it holds the top result for “6 hole ocarina tabs”.
That ranking is exactly why moving it was risky. It ran on WordPress on a rented server, and every song page was an address Google already trusted. So the rule for the rebuild was simple: every song keeps its URL, and every page has to get better, not just different.
At a glance#
| Site | 6holeocarina.com |
| What it is | Free 6-hole ocarina tab library |
| Visitors | About 28,000 unique a month, almost all from search |
| Before | WordPress on a VPS, about $10 to $15 a month to host |
| After | Hugo on Cloudflare Workers, under a dollar a month |
| Our role | Owner, developer and publisher |
How it gets its traffic#
- Long-tail song searches. Each song page targets what players actually type, like “song of time 6 hole ocarina tab”. Pages such as Song of Time, Zelda’s Lullaby, Amazing Grace and Twinkle Twinkle draw steady search traffic.
- Years of trust kept intact. All 130 song URLs stayed the same through the move, and old WordPress category and tag pages were permanently redirected, so no ranking was thrown away.
- Pages that answer the search. Every song page now has its own 80 to 150 word introduction, its own meta description and MusicComposition structured data naming the song, composer and key.
What we built and changed#
- The move. A Python crawl of the WordPress sitemap, every song moved to a static page at the same address, 301 redirects for everything else.
- Tabs you can play. Tabs are real HTML tables, not images. Point at a note and it highlights, shows a finger chart and plays the note, synthesized in the browser with no audio files.
- A tab editor with share links, soprano, alto and bass voicing, a piano keyboard input and printable sheets.
- Search and AI discovery: a generated llms.txt, sitemap, structured data, related-song links and breadcrumbs.
- Security: a hash-based Content Security Policy rolled out in report-only mode first, then enforced, plus HSTS, cross-origin isolation and long-lived asset caching. No email address appears anywhere on the site.
- Accessibility: WCAG 2.1 AA as the target, with automated axe and keyboard tests on every change and a public accessibility statement.
- Newsletter and contact form on our own form service, with double opt-in and Cloudflare Turnstile.
How it works#
Hugo builds about 180 pages from plain text files, Cloudflare builds and serves them straight from GitHub, and the interactive parts are small JavaScript modules on top of pages that read fine without them.
Results#
- Visitors: about 28,000 unique a month, mostly from search, kept through the move.
- PageSpeed: 100 on mobile and desktop, measured 2026-11-05, and all three Core Web Vitals pass on Chrome’s field data from real visitors.
- Lighthouse: 100 in all four categories on desktop, measured 2026-07-16.
- Hosting cost: from $10 to $15 a month down to under a dollar.
- Search Console and Cloudflare traffic figures: details coming soon.
What is next#
- Themed songbook PDFs, already built, for sale alongside the free tabs.
- More “how to play” song pages chosen by search demand.
- A warmed-up newsletter for returning players.
