Taprun.dev is ten days old. Thirteen blog posts, one Chrome extension, a Deno CLI, and a growing list of Claude Code users who've started depending on it. One question has been in the back of my head the whole time: how do I know if any of this is working?
My first instinct was the obvious one: sign up for Ahrefs or SEMrush. Both come up in every SEO tutorial. Both start around $99/month. Both promise the one metric everyone talks about — Domain Rating, or Domain Authority, depending on which tool. I got as far as entering my credit card on Ahrefs's paid signup page before I stopped and asked a dumber question: what would I actually do with that data at ten days old?
The honest answer: almost nothing. And there's a free stack that covers everything that does matter at this stage.
Domain Rating and Domain Authority are logarithmic scales. They move slowly by design. For a new domain, the progression roughly looks like this:
Paying $99/month to watch a number go from 0 to 1 to 2 is a bad trade. The data that would justify the subscription — competitor keyword research, batch content gap analysis, 10,000-row backlink audits — none of that is relevant when you have 13 posts and no rankings yet. At this stage, the job is to publish consistently and measure whether Google and Bing are picking up what you publish. That's all you need, and all of that is free.
Four tools, each giving you a piece of data that isn't duplicated by the others:
| Tool | What it actually tells you | Cost |
|---|---|---|
| Google Search Console | Impressions, clicks, search queries, CTR, indexed pages, Core Web Vitals — from Google specifically | Free |
| Bing Webmaster Tools | The same, but for Bing, Yahoo, and DuckDuckGo (which uses Bing's index) | Free |
| Ahrefs Webmaster Tools (Free) | Real Ahrefs DR score + full backlink list + ranking keywords + top pages, for any domain you own | Free |
| IndexNow | Direct URL push to Bing, Yandex, and several other engines — tells them to crawl specific pages immediately | Free |
The part that surprises most developers is Ahrefs Webmaster Tools. Ahrefs gives you the same Domain Rating number that paying customers see — but for free, as long as you verify you own the domain. They do this because it's a lead funnel: you see the data, you want more, you upgrade. For a new site where you're the only domain you care about, the lead funnel is the exact use case you need, and zero dollars is the exact price.
If you don't already have GSC set up, stop reading and go set it up right now. It's the most accurate source for how Google specifically is seeing your site. Impressions and clicks come from Google's own logs, not a third-party crawl. Indexing status is authoritative. Every SEO decision you make should be cross-checked against GSC before you believe any other tool.
Bing is usually an afterthought, but it covers Bing, Yahoo, and DuckDuckGo — collectively around 10% of English-language search in 2026, and higher in some verticals. More importantly, Bing crawls and indexes fast. For a new site, Bing often picks up and ranks content within 24 hours, while Google can take a week or two. Seeing your content actually surface on a real SERP, even on Bing, is a morale boost that matters.
The crown jewel. Free tier gives you: real DR, referring domains (who links to you), organic keywords you rank for, top pages, and a site audit running on a schedule you pick. The data refreshes within 48 hours of verification. You'll need to verify ownership, which you can do via Google Search Console OAuth (one-click if you're already in GSC), a DNS TXT record, an HTML meta tag, or by installing Ahrefs's analytics JavaScript snippet.
IndexNow is an open protocol backed by Microsoft, Yandex, and several smaller engines. You submit URLs via a single HTTP POST, and they crawl those URLs within minutes instead of waiting to discover them through sitemap diffing. It's the fastest way to tell Bing about new content. For a new site, every published post should be pushed through IndexNow within an hour of going live.
I did all four on taprun.dev in a single Claude Code session, using Tap as the automation layer. The value of running it through an agent instead of by hand isn't about saving time on a one-off setup — it's about the automation being repeatable. Next month when I add a second domain, the same agent runs the same flow in the same order, and I don't have to remember what I did.
Bing offers several verification methods. For a GitHub Pages site, the simplest is their XML file: download BingSiteAuth.xml, drop it in your repo's docs/ directory, push, and click Verify. The whole round-trip is:
# 1. Add your site in Bing WMT, choose XML file verification, download BingSiteAuth.xml # 2. Commit it to the Pages repo git add docs/BingSiteAuth.xml git commit -m "chore: add Bing Webmaster Tools verification file" git push origin main # 3. Wait ~30s for GitHub Pages to deploy curl https://taprun.dev/BingSiteAuth.xml <?xml version="1.0"?> <users><user>...</user></users> # 4. Click Verify in Bing WMT UI — done
Total time: under five minutes. From that moment on, Bing starts crawling and you start seeing the dashboard populate within a day.
Ahrefs offered me four verification methods: GSC OAuth, DNS TXT, HTML meta tag, or installing their Web Analytics snippet. I tried GSC first and hit a wall: the OAuth popup button in Ahrefs is triggered by a programmatic click from the Claude Code agent, and Chrome's popup blocker rejects programmatic window.open() calls that lack a real user gesture. This is a hard browser security rule, not a Tap limitation — Playwright and Puppeteer hit the same wall. OAuth flows fundamentally require a human click.
I switched to the analytics snippet method. Ahrefs provides a one-line <script> tag and says "paste this into the <head> section of your site". The catch: taprun.dev has nineteen hand-written HTML files. Every page needs the snippet. I ran this through Claude Code:
cd docs
SNIPPET='<script src="https://analytics.ahrefs.com/analytics.js" data-key="..." async></script>'
for f in *.html blog/*.html ns/*.html; do
perl -i -pe "s|</head>|$SNIPPET\n</head>|" "$f"
done
git add docs/ && git commit -m "install ahrefs analytics" && git push
Nineteen files, one commit, one push. Ahrefs's crawler detected the snippet on the next check and flipped ownership to verified.
The deeper fix is a Jekyll _includes directory so I'm never editing nineteen files again. That's on my list for tomorrow.
After I pushed, Ahrefs's Recheck button kept failing. I dug in. Here's what I found:
curl -sI https://taprun.dev/ | grep -iE "age|last-modified|cache-control" age: 3474 last-modified: Sat, 11 Apr 2026 04:22:23 GMT cache-control: max-age=3600
The page was 58 minutes old in Cloudflare's edge cache, and the last-modified timestamp was from before my push. GitHub Pages deployed my change within seconds, but Cloudflare was serving a stale version with a one-hour TTL. Cache-busted requests (?cb=123) returned the new HTML, proving the origin was fine.
Two fixes: wait an hour for the TTL to expire, or purge Cloudflare's cache. I purged via the Cloudflare dashboard, and within thirty seconds Ahrefs's crawler saw the new content.
Lesson: if you're on GitHub Pages behind Cloudflare and any tool is failing to see fresh content, suspect the CDN cache first, not the deploy. The fastest diagnostic is curl with a cache-buster query string — if the cache-busted response has the new content and the normal response doesn't, it's a cache issue, not a build issue.
IndexNow requires a key file at your domain root — you pick a key like mysite-key-123, write it to /mysite-key-123.txt, and any POST to IndexNow's API validates against that file. Once the key is in place, submission is one HTTP request per batch of URLs:
curl -X POST https://api.indexnow.org/indexnow \ -H "Content-Type: application/json" \ -d '{ "host": "taprun.dev", "key": "<your-key>", "urlList": [ "https://taprun.dev/", "https://taprun.dev/blog/", "https://taprun.dev/blog/latest-post.html" ] }' HTTP/2 202 Accepted
202 Accepted means Bing, Yandex, and any other participating engine now has a queued job to fetch each of those URLs. I pushed fifteen URLs — the homepage, the blog index, the changelog, and all thirteen blog posts — in a single batch. Everything came back accepted in about two seconds.
Now that the stack is set up, here's what I'll be watching — in order of how actionable the signal is:
Notice what's not on that list: competitor keyword tracking, SERP position monitoring, content gap analysis, batch link building. Those are the features you pay for, and they're premature at this stage. Do them at DR 15+, not DR 0.
The one piece of this I'd recommend stealing even if you don't care about dev tool SEO: write your setup as a repeatable agent workflow, not a manual checklist. I did this whole flow through Claude Code and Tap. Every step I took is now a program I can replay for the next domain, the next blog, the next client. The fifteen-minute cost of running it through an agent the first time is cheaper than the ten-minute cost of running it by hand every single time I onboard a new site.
That's what Tap is for. Interface operations — verification flows, OAuth dances, sitemap submissions, cache purges — all the stuff that lives in dashboards and has no real API, compiled into deterministic programs. Once a flow works, it works forever, zero AI cost per run.
Tap is the AI-era replacement for Selenium and Puppeteer scripts. You forge a tap once through an MCP-connected agent (Claude Code, Cursor, any MCP host), and from then on you replay it forever with zero AI. Two hundred community skills, full forge + doctor + heal lifecycle, and a Chrome extension that runs in your actual logged-in browser — no session juggling.
curl -fsSL https://taprun.dev/install.sh | sh