# On-page SEO checker

> Audit any page for on-page SEO: status, canonical, robots, title, meta description, headings, word count, image alt text, links, schema and Open Graph tags.

Canonical: https://cromagnon.app/tools/on-page-seo-checker
Last updated: 2026-10-27

- Category: SEO
- Formats: URL · HTML
- Use it: https://cromagnon.app/tools/on-page-seo-checker (free, runs in the browser)

## What it does

On-page SEO is everything on the page itself that helps search engines find, understand and show it: whether it can be indexed, its title and description, how its headings are organised, its text, images and links, and the structured data and sharing tags in its code. This tool fetches any public page once and checks all of it in one report, with a score for each area, the headings outline, every image and its alt text, and every link. Add a keyword to see where the page uses it.

## How to use it

1. Type the address of the page you want to check. A domain alone checks the home page.
2. Add the keyword the page should rank for, if you have one, to include placement checks.
3. Click Check page and read the overall score, then each area's checks: red first, then amber.
4. Open the Headings, Images and Links tabs to see the outline, which images lack alt text and where links point.
5. Fix the issues in your CMS or code, then check the page again to confirm.

Tip: Start with Indexing. A page that's marked noindex, answers an error or has a canonical pointing elsewhere won't rank however good the rest is, so those few checks matter more than everything else in the report.

## What each area checks

- **Indexing**: The status code and any redirects, the canonical tag (missing, several, relative or pointing elsewhere), robots rules in meta tags and the X-Robots-Tag header, the viewport tag for phones, the lang attribute, https, page size, server response time and hreflang links.
- **Title and description**: Present, single, and the right length in pixels as Google displays them, using the same checks as the SERP preview tool.
- **Headings**: Exactly one H1, an outline that doesn't skip levels (H2 straight to H4), no empty headings, and subheadings in long pages.
- **Content**: Words in the main text, leaving out navigation, header and footer, plus keyword placement in the title, H1, first paragraph, description, address and subheadings.
- **Images**: Alt attributes (missing, or empty for decorative images), width and height to prevent layout shifts, and a lazy-loaded first image that may slow the main picture.
- **Links**: Internal and external links, links without text, vague link text, http links on an https page and internal links marked nofollow.
- **Structured data**: Each JSON-LD item found, checked against Google's required and recommended properties, with broken JSON flagged.
- **Social sharing**: Open Graph and Twitter card tags that control how the page looks when shared.

## How the score works

Each check is worth one point when it passes, half when it's a warning and none when it's a problem; the score is the share of points, out of 100, for each area and for the whole page. It's a quick way to compare pages and track progress, not a prediction of rankings. A page can score 100 and still not rank if the content doesn't answer the search better than other pages, and a page with a few warnings can rank first.

Treat red items as things to fix and amber items as things to consider. Some warnings are fine for a particular page: a contact page doesn't need 300 words, and a canonical pointing elsewhere is correct on a duplicate.

## What this tool can't see

The checker reads the HTML the server sends, like most crawlers do on first fetch. If your site builds content with JavaScript in the browser, text, links or tags added that way won't be counted here; Google usually renders JavaScript, but later and not always fully, so important content and tags are safest in the server's HTML. Speed and Core Web Vitals depend on the visitor's device and network, so measure them with PageSpeed Insights or the Core Web Vitals report in Search Console. Pages behind a login, or that block automated requests, can't be checked.

## Fixing the most common problems

No or duplicate title: give every page a unique title that says what it offers, under about 600 pixels. Missing description: write one or two sentences that make someone want to click. Several H1s: keep one main heading and turn the others into H2s. Missing alt text: describe what the image shows in a few words, or use alt="" for purely decorative images. Canonical problems: make each page's canonical its own final address, and point duplicates at the main version. Vague links: replace "click here" with words that describe the destination. No structured data: add the schema type that fits the page, such as Article, Product or LocalBusiness, with the schema generator.

## Tips

- **Check templates**: Problems usually come from templates. Check one page of each type (home, category, product, article) to find site-wide issues.
- **Compare with a winner**: Check the page that ranks first for your keyword and compare headings, length and schema.
- **Mobile matters**: Google indexes the mobile version. A missing viewport tag is a serious problem.
- **One topic per page**: If the title, H1 and top phrases point at different topics, decide what the page is for.
- **Recheck after deploys**: Releases can remove canonicals or add noindex by mistake. A quick check catches it.
- **Use the other tools**: Open the schema validator, hreflang checker or broken link checker for any area that needs a closer look.

## Questions

### Is this a full site audit?

No, it checks one page at a time, in depth. Check your main templates to find most site-wide issues.

### Why is my word count lower than I expected?

Navigation, header, footer, side panels and scripts are left out, so only the main content is counted.

### Why does it say there's no H1 when I can see one?

The big heading may be styled text rather than an <h1>, or it may be added by JavaScript after the page loads.

### Does a score of 100 guarantee rankings?

No. It means the page has no technical or on-page issues the tool can see. Rankings depend on relevance, quality, links and competition.

### Can it check pages that need a login?

No. Only public pages can be fetched.

### Is the page stored?

No. The page is fetched once by our server and checked in your browser. Nothing is kept.

## Related

- [SERP Preview](https://cromagnon.app/tools/serp-preview)
- [Schema Validator](https://cromagnon.app/tools/schema-validator)
- [Keyword Density Checker](https://cromagnon.app/tools/keyword-density)
- [Open Graph Generator](https://cromagnon.app/tools/open-graph-generator)
- [All tools](https://cromagnon.app/tools)
