First CH AppsSmall apps that need a server

日本語

Meta Tag & SEO Basics Check

Enter a URL and we fetch the page on our server, then list its SEO basics with a pass/fail grade. Lengths are measured in full-width equivalents: a title of 32 or fewer and a meta description of 100–170 are treated as the target. We also fetch robots.txt once to confirm the URL is not disallowed.

Card previews and the measured og:image belong to OGP Check (by URL); scoring for AI search (ChatGPT, Perplexity and friends) belongs to the GEO Checker. This page is the first stop: what basic tags are missing, on one screen.

How it is graded

Lengths are full-width equivalents (ASCII and half-width kana count as 0.5). Japanese search results are cut by width, so a raw character count cannot decide it.

title: 32 full-width equivalents or fewer is the target (longer titles get truncated). Under 10 is flagged for review because it rarely says enough.

meta description: 100–170 full-width equivalents is the target. English pages are normally shorter than this, so read the count as guidance rather than a verdict.

robots.txt is evaluated with Google's rules (longest match wins, Allow wins ties) against the googlebot group, or * when there is none.

SERVER PROCESSING — what we send and what we keep

Sent: only the URL you type. Our server (Cloudflare Workers) fetches that URL as a public page, then fetches /robots.txt from the same site once.

Stored: nothing. The check lives entirely inside one request and writes neither the URL nor the result to any database (no KV, no D1). It leaves memory when the request ends.

Returned: the tag values we extracted and their grades. We never re-serve the fetched HTML, so this app cannot be used to browse other sites through us.

Note: public GET only. URLs pointing at internal networks, localhost or private IPs are rejected. Pages behind a login, or pages that inject their meta tags with JavaScript, cannot be graded correctly.

Use it as an API

POST /meta-check/api/inspect with JSON ({"url": "https://example.com/"}) or a form body and you get the same report back as JSON.