Skip to main content

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

1
Canonical Tag<link rel="canonical">

The <link rel="canonical"> tag that tells search engines your preferred URL.

2
Open Graph URLog:url

The og:url meta tag used by social platforms when sharing your page.

3
JSON-LD Schemaurl / @id

The url and @id fields in your structured data that search engines parse.

4
Tag Consistency

Whether your canonical, og:url, and schema URLs all agree. Mismatches confuse crawlers.

Common Causes

● ● ●diagnostic output
[CRIT]
ENV_FALLBACKLocalhost fallbacks in code

process.env.SITE_URL || 'http://localhost:3000' — the env var isn't set in production, so the fallback wins.

[CRIT]
MISSING_BASEMissing metadataBase

Next.js defaults to localhost:3000 when metadataBase isn't configured and you're not on Vercel.

[WARN]
COPY_DRIFTCopy-paste drift

URL 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.

Browse all tools