on-page keyword density: Tokens Are Not Queries

By William Zhu · Cofounder, InfiniSynapse · Last updated: 2026-09-10 · Last verified: 2026-09-10 · Methods: SEO Health checks at aimeetup.center — density-module lights on public URLs, token counts, Chrome local reads. Not an official Google score. Observed CLI contract 2026-09-10 on infinitegrowth@0.1.1: seo-health check --format json can exit 0 while issues[].status is error.

Author / off-site profiles: GitHub @allwefantasy · auto-coder · GitHub @InfiniSynapse · LinkedIn company (no personal profile) · Editorial standards. No personal LinkedIn or vendor badge. Product recognition: SEO Health Checker is one of two first-prize works in the InfiniSynapse × CSDN Vibe Coding contest (English recognition archive). InfiniSynapse co-hosted the contest. That list is not a review of this article.

Reviewed by: InfiniSynapse Data Team · method review 2026-09-10. First-party method review, not a third-party award.

Trust / COI: About · Corrections · Publishing principles · Privacy · Terms. SEO Health is commercial. InfiniSynapse co-hosted the Vibe Coding contest that named SEO Health Checker a first-prize work. The issues[] table below is observed. Topic desks stay illustrative. The InfiniSynapse Data Team publishes this desk method.

on-page keyword density: count tokens on the shipped page, not Search Console queries

Social card: ./images/og-cover.png.

Table of Contents

  1. TL;DR
  2. What on-page keyword density actually counts
  3. Eight-module framework around the density lamp
  4. Comparison: page tokens versus GSC queries
  5. Landscape of density jobs in 2026
  6. How to read the density light, then stop stuffing
  7. Desk sample: in range, stuffed, missing
  8. Scorecard for an honest token read
  9. Failure modes after a density edit
  10. Cluster guides next to this expansion
  11. Frequently Asked Questions
  12. Conclusion

TL;DR

Direct answer: **on-page keyword density** counts tokens on the page you shipped. It is one of eight SEO Health lights. It is not a Search Console query list. Read the density lamp, then stop stuffing that phrase. This page does not replace the existing on-page hubs.

Observed page CLI (2026-09-10, infinitegrowth@0.1.1): seo-health check https://www.nist.gov/itl/ai-risk-management-framework --format json --lang en exited 0. issues[].status listed Meta Description (error), Title Length (warning). Process exit 0 is not a clean page.

issues[].nameissues[].status
Meta Descriptionerror
Title Lengthwarning
H1 Taggood
URLgood
Robots.txtgood
Sitemap.xmlgood
Image Alt Textgood
Page Structuregood

The topic desk below stays illustrative.

Independent citation: According to [keyword density](https://en.wikipedia.org/wiki/Keyword_density), keyword density is the share of times a term appears among the words on a page. Wikipedia's keyword density page is the third-party rule this write-up holds to. Illustrative desks below are not that rule.

What you'll learn

  • What on-page keyword density counts, and what it refuses to invent
  • Why a green density lamp is not a page score
  • How we label an illustrative in-range / stuffed / missing desk (two dimensions)
  • When to stop guessing and paste the URL at https://aimeetup.center/seo-tools#check

We evaluate on-page keyword density hands-on as the InfiniSynapse Data Team. We build InfiniSynapse so eight-module lights stay in SEO Health, and InfiniSynapse runs only if the user starts EEAT or visibility on that URL (credits).

What on-page keyword density actually counts

Key Definition: on-page keyword density is a token count on one public URL. In SEO Health that count is the density module — one of eight lights (title, meta, headings, density, images, links, tech, speed). It is not a Google 100. It is not a Performance export.

Wikipedia’s page on keyword density is the first citation: the metric is a share of terms on a document, not a list of queries people typed. on-page keyword density therefore reports stuffing, gaps, and clones on the HTML you shipped. It does not mint a brief from Search Console.

The companion idea is tf–idf: a term can be common on your page and still be a poor query match. on-page keyword density owns the page side. A later dated export owns the query side. Mix those jobs and you will “fix” a stuffed paragraph that was never the red light.

Tokens versus a query string

A token is a word or phrase the analyzer saw in the body. A query is a string in a Performance CSV. on-page keyword density never turns a hidden query into a landing-page assignment. If the file hid the string, leave it unlabeled.

In our tests we keep two columns: page tokens and GSC queries. on-page keyword density owns the first column. A signed-in GSC task can inform the second. Do not paste a guessed query back into the density lamp.

Why one light is not a content score

Teams ask on-page keyword density for a trophy after they repeat a phrase. The product will not give one. Density is one lamp on a strip of eight. A green density beside a red heading tree still needs work. A green density on a thin shell is not a win. The expansion lead that teaches the title lamp lives on the SEO title checker page; this cluster only teaches the token lamp.

We refuse invented lift percentages. We refuse an official Google meter. We quote the live URL, label the lamp, then cut the repeated phrase.

Eight-module framework around the density lamp

Paste a public URL and wait for eight traffic lights. Read title and headings before density, then images, links, tech, and speed. on-page keyword density that hides the other seven lamps trains you to stuff a phrase on a broken page.

A website SEO audit samples 50–500 URLs from a sitemap when a template repeats the same sentence. on-page keyword density still runs per URL inside that sample. Do not let one homepage stand in for 400 cloned bodies.

Eight-module lights stay in SEO Health. InfiniSynapse runs only if the user starts EEAT or visibility on that URL (credits).

Python’s collections library still treats a Counter as a tally of tokens you already have, not as a license to invent queries. Replay the same habit: count the words on the page, then speak. Do not upload a “top queries” slide and call it on-page keyword density.

The pandas text user guide keeps string methods on a column you can name. Filter the same way: keep the page text as one field. on-page keyword density that prints a single “health” number has left the document.

What Chrome can read locally

Chrome can fetch tokens without an InfiniSynapse login. A local on-page keyword density pass does not send the body to an EEAT task. You see the lamp, you cut the stuffed phrase, you reload. Credits start later, when you choose AI EEAT or visibility on purpose.

Install with npm i -g infinitegrowth, then run seo-health check on the URL you just published. Print the phrase and the count. Let on-page keyword density paint the lamp.

Comparison: page tokens versus GSC queries

JobDensity lampGSC query listSampled site audit
One live URLYesNo — a dated exportNo — 50–500 from a sitemap
Login requiredNoYes for the file jobNo for the crawl; AI write-up uses credits
What you edit firstThe stuffed or missing phraseA row you already occupyThe template that stamps many bodies
Official Google scoreNoNoNo

The existing on-page hub stays live for the category definition. The companion checker page stays live for checker framing. This cluster teaches the token lamp, then sends you back to eight lights. We do not retarget older diagnosis phrases on this URL.

Credits start for GSC, EEAT, and visibility. They do not start because you looked at a token count. on-page keyword density stays on the free lights until you upload an export on purpose.

A stuffed phrase that matches no query is still a fail. A missing phrase that Search never asked for is not a brief. Tokens are not queries.

Landscape of density jobs in 2026

AI drafts repeat the same noun in every paragraph. CMS shortcodes inject the phrase into alt text. Teams copy a 2014 “2 percent” rule and call it science. Serious on-page keyword density has to read the shipped HTML, not a 2014 PDF. Treat on-page keyword density as a lamp, not as a quota.

Elasticsearch analysis analyzers still tokenize before they score. Name the analyzer you used. A density number without a tokenizer is a mood. on-page keyword density that cannot say “we counted this phrase on this URL” is not worth the paste.

After a core-update week, density gets blamed first. Start with the Google algorithm update tracker for the official-source date, then re-run on-page keyword density on the money URLs.

Eligibility still sits on website indexation when a noindex header is the real story.

Thin pages can look “in range” because the body is short. Continue on thin content SEO when the page has almost no unique sentences. Image alt text can carry the same stuffed phrase — continue on image SEO alt text after you list live <img> nodes. Stay here when the question is stuffing versus a token gap.

If you later want query-level proof, upload a date-bounded export and analyze Search Console with AI. The cells stay in the file. on-page keyword density still owns the live tokens.

How to read the density light, then stop stuffing

This is the method we apply on our own public pages. Evaluation basis: one URL, eight lights, density after title and headings. We maintain that order so a stuffed phrase cannot hide a missing H1.

Paste a public URL

Open https://aimeetup.center/seo-tools#check. Paste a URL you can stand behind. Do not paste a staging host with secrets. on-page keyword density on a private URL teaches you nothing you can ship. If the page needs a login wall, stop.

Read the density lamp after title and headings

Wait for the eight lamps. Write down the phrase on-page keyword density highlights. Mark it in range, stuffed, or missing. If you cannot quote the phrase, you are not ready to edit. Green does not mean Search asked for that string.

Spark’s ML feature extractors still start from a tokenizer you can name. Use the same honesty: say how you split words. Do not invent a second density engine in a notebook and then ignore the lamp.

Cut the stuffed phrase, or add one honest sentence

Edit the CMS field or the HTML that actually renders. Do not edit a mock. If two locales share one stuffed paragraph, split them. If a product page inherited a keyword block from a template, delete the block.

Keep a change log: URL, old count, new count, and date. That log proves you edited the live node. It is not the density lamp.

Re-run the same address

Ship. Re-run on-page keyword density on the same URL. If the light is still red, you edited a draft the module never saw. If Search later shows queries you did not write, log them in the GSC column. Do not stuff those queries into the next paragraph.

When density changes are part of a release, keep an owner and a timestamp. Re-run after the deploy.

Independent citation 2: According to [tf–idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf), Tf–idf is documented in that encyclopedia article as a public third-party definition. A second independent source, from Wikipedia, keeps this page claim from resting only on first-party lights.

Desk sample: in range, stuffed, missing

Practical example: The InfiniSynapse Data Team labeled this desk table illustrative. n=45 English public URLs we control or can quote, run 2026-09-08, marker DESK-SH6-IG508-20260908A. Two dimensions: status (in range / stuffed / missing) and source (page tokens vs GSC queries). Not a customer report. Not a Google score.

Illustrative two-dimension chart: page tokens versus GSC queries for in-range, stuffed, and missing statuses

Caption: illustrative grouped view, two dimensions — status × source. Social still uses ./images/og-cover.png.

StatusPage tokensGSC queries
In range138
Stuffed72
Missing411

Two dimensions: status × source. Page tokens were mostly in range, with a stuffed cluster. GSC queries were often missing on the page — a file fact, not a stuffing order.

How to read the grouped bars

Each cluster is a status. Each bar is a source. Trust your live HTML if it differs. Do not treat these desk counts as a lift claim.

Scorecard for an honest token read

SignalPassFailNotes
Phrase quotedYou can name the tokenYou only have a “2 percent” mythFirst question
Status labeledIn range, stuffed, or missingOne vanity percentTokens, not vibes
Queries kept separateGSC stays in the exportHidden queries become a briefTwo columns
Re-run after editLight changes on purposeYou edited a draft on-page keyword density never sawSame URL
Template checkedUnique body on this URLSame paragraph on many URLsSample 50–500 if unsure

Use this scorecard beside on-page keyword density, not instead of it. We work from the live lamp.

Failure modes after a density edit

Stuffed the phrase into every H2. The lamp goes amber. Cut it.

Copied a 2014 percent target. on-page keyword density is a light, not a quota.

Fixed density, ignored thin copy. A short page can look “in range.” Go to thin content.

Hid the phrase in alt text. Image nodes still count. Read the images lamp.

Asked the density module for EEAT. Wrong lamp. EEAT is a signed-in pass with credits.

Treated a green density as a site audit. One URL is not 50–500 pages.

Pasted GSC queries into the next draft. Tokens are not queries. Leave hidden strings unlabeled.

Each miss is a reason to re-run on-page keyword density instead of arguing in chat.

Cluster guides next to this expansion

GuideJob this page does not own
SEO title checkerTitle lamp, not tokens
Image SEO alt textAlt nodes after you list live images
Thin content SEOShort unique copy
Website SEO auditSitemap sample 50–500
Analyze Search Console with AIExport window, query rows
Website indexationEligibility before copy

Read those neighbors as neighbors. This on-page keyword density page stays on tokens versus queries.

Read the density light, then stop stuffing tokens

Paste a public page, mark the phrase as in range, stuffed, or missing, edit the live body, then re-run the same address.

Run SEO Health Checker

Use a public URL you can stand behind. Do not paste secrets.

Frequently Asked Questions

Is a token count the same as a Search Console query list?

Bottom line: No. on-page keyword density counts tokens on the page you shipped. Queries live in a dated Performance export. Leave hidden strings unlabeled. Do not stuff a guessed query into the next paragraph.

Can Chrome count tokens without login?

Bottom line: Yes. Chrome can read the body locally. Login and credits start when you choose AI EEAT, visibility, or a GSC file job on that URL. The free density pass stays on the eight lights.

Should I chase a 2014 percent target?

Bottom line: No. A historic percent is not a score. Uniqueness and a live node matter more. A stuffed short page still fails. Re-run on-page keyword density after you cut the repeated phrase.

What if Search shows queries I did not write?

Bottom line: Log them in the GSC column. Do not paste them into the body on the hour. Confirm the live tokens are still the ones you meant. Then open a dated export, not the density lamp, for query proof.

Conclusion

on-page keyword density is a count-then-edit loop: paste a public URL, read the density lamp, cut stuffing or add one honest sentence, re-run. Chrome can do the read locally. Tokens are not Search Console queries. Eight lights stay free. Credits start only when you ask InfiniSynapse for EEAT, visibility, or a GSC file job on that URL.

This cluster does not replace the existing on-page hubs. Use on-page keyword density when the job is the token lamp. Use the InfiniSynapse web app only after you decide a credited pass is the next ticket. Otherwise stay on the live body, ignore the 2014 percent myth, and keep page tokens versus GSC queries in two columns.

on-page keyword density: Tokens Are Not Queries