Canonical URL Checker
A canonical tag tells Google which version of a page is the real one. If it points to localhost:3000, Google can't crawl it — zero indexing, zero traffic. Paste any URL below to check for localhost leaks, HTTP/HTTPS mismatches, and tag disagreements.
What This Tool Checks
<link rel="canonical">The <link rel="canonical"> tag that tells search engines your preferred URL.
og:urlThe og:url meta tag used by social platforms when sharing your page.
url / @idThe url and @id fields in your structured data that search engines parse.
Whether your canonical, og:url, and schema URLs all agree. Mismatches confuse crawlers.
Common Causes
ENV_FALLBACK—Localhost fallbacks in codeprocess.env.SITE_URL || 'http://localhost:3000' — the env var isn't set in production, so the fallback wins.
MISSING_BASE—Missing metadataBaseNext.js defaults to localhost:3000 when metadataBase isn't configured and you're not on Vercel.
COPY_DRIFT—Copy-paste driftURL construction duplicated across files. Some copies fall out of sync after refactors.
Frequently Asked Questions
A canonical URL tells search engines which version of a page is the original. If multiple URLs serve the same content (www vs non-www, HTTP vs HTTPS, trailing slash variants), the canonical tag prevents duplicate content penalties and consolidates ranking signals to one URL.
Google tries to crawl the localhost address, fails because it's not routable from their servers, and treats your page as a duplicate of something unreachable. The result: zero indexing, zero impressions, zero organic traffic. Pages may stay de-indexed for weeks even after you fix it.
Check after every deployment that touches URL generation, metadata, or environment variables. The most common cause of canonical breakage is a config change or code refactor that silently changes how URLs are constructed. A CI/CD check that validates canonical tags before deploy is the best prevention.
No. The URL is sent to the server for a real-time fetch, the results are returned, and nothing is stored. No analytics, no logs, no tracking. The API endpoint is rate-limited to 5 requests per minute per IP to prevent abuse.
Full Fix Guide
How I Fixed Canonical URLs Pointing to Localhost in Next.js
The forensic breakdown — finding and fixing 13 scattered URL fallbacks, with real git diffs and a prevention strategy.