Real fixes from seven live sites. No pitch.Log in / My reports
Idea to Traffic Pressure Test

What does AdSense mean by low value content

Low value content is measurable before you submit. It usually means thin pages, near duplicate pages, or word counts inflated by generated output. Count prose words per page with generated output excluded, check pairwise similarity, and rewrite anything under 1,000 page-specific words.

The rejection, in numbers

One of the word-game sites we run was rejected by AdSense for Low value content. The policy wording is vague and reads like an aesthetic judgement, which sends most publishers into rewriting their tone. That is the wrong reaction. The rejection is arithmetic, and every number that mattered was measurable before submission.

At the time of rejection the site carried 17 content pages and 4,067 total prose words, averaging 239 words per page, with all 17 of 17 pages under 1,000 words. None of that requires a reviewer's opinion. It is a count, and we could have run it a week earlier.

Two specific defects mattered more than the weak average. Four pages followed a 5-letter-words-with-{x,z,q,j} pattern and were 99 to 100 percent identical text at 128 words each, differing only in which letter was named. We verified the overlap with Python's difflib.SequenceMatcher rather than eyeballing it. Functionally that is one page published four times.

The second defect was a page that appeared to run 1,184 words and passed a naive word count comfortably. Of those, 972 were generated word chips and only 212 were prose. Any word count that does not exclude generated output is lying to you, and ours was, until we changed how we counted.

Thin and duplicate: the two ways to fail

Low value content is not a verdict on writing quality. It describes pages that do not justify their own existence as separate URLs, and the two most common ways to fail that are thinness and duplication. Both are countable.

Thinness is the simpler failure. A 239 word average means the typical page says one thing and stops, which is indistinguishable from a page that exists to hold an ad slot. There is no official threshold, and 1,000 words of page-specific prose is the line we hold because it sits far enough above the failure region to leave no argument.

Duplication is the more dangerous failure, because it looks like scale. Four near identical pages differing by one letter are, from a reviewer's position, one page with a variable in it. Publishing a template four times adds URLs without adding content.

Generated output hides both. A word list or a chip grid inflates the count while contributing nothing a reader could not get from the tool itself. A page at 1,184 apparent words and 212 real ones reads as substantial in a spreadsheet and as thin to a human, and the human decides.

Duplicate copy across two domains on one AdSense publisher account is its own rejection risk. Two sites covering adjacent topics, built from the same article with the nouns swapped, can fail for duplication even when each site individually passes on word count.

Counting your own pages before a reviewer does

Measure three things before submitting, and measure them the same way every time.

First, prose words per page with generated output excluded. Strip the chips, lists, tables and tool output, then count what remains. That single change turned an apparent 1,184 word page into a real 212 word page.

Second, pairwise similarity between pages. Run every page against every other page and look at the worst pair, not the average:

import difflib
ratio = difflib.SequenceMatcher(None, page_a_text, page_b_text).ratio()
print(round(ratio * 100, 1))

Anything at 99 to 100 percent is the same page twice, and any substantial overlap between two pages on one site is a rewrite target, because the pair that trips a reviewer is the worst pair and not the mean.

Third, the distribution rather than the average. The rejected site's headline number was 239 words per page, but the sentence that mattered was that 17 of 17 pages were under 1,000 words. An average can be rescued by one long page. A distribution cannot.

Then apply the sibling test by hand. Take any paragraph and move it to a neighbouring page. If it still makes sense there, it was filler. Every paragraph should be false or nonsensical on any other page of the site, and this check needs no tooling.

Rewrite, merge or remove: the steps

  1. Count prose words per page with all generated output excluded. Until that number is honest, nothing downstream can be trusted.
  2. Run pairwise similarity across all pages with difflib.SequenceMatcher and list the worst pairs. Near identical pages are rewritten from scratch or merged, never trimmed and reshuffled.
  3. Rewrite every content page to carry 1,000 or more words of page-specific prose. We did this across all seven sites we run rather than only the rejected one, because the publisher account is judged as a whole.
  4. Derive the specifics rather than asserting them. Every statistic on a word-list page is computed from that page's own content. The kind of fact this produces reads like this: 53 of the 75 five-letter Q words start with Q, 12 have it second, 8 third, none fourth, and exactly 2 end with it. Nobody else has published that, it took thirty seconds to compute, and it makes the page worth keeping.
  5. Apply the sibling test to every paragraph you keep. Move it to a neighbouring page, and delete it if it still fits there.
  6. Give each site genuinely different pillars instead of reworded copy. Two sites covering adjacent topics get different subject matter, not the same article with words swapped.
  7. Leave utility pages out of the exercise. Six authentication pages on another site, being login, signup, reset, forgot, account and welcome, were deliberately not padded. They already carried <meta name="robots" content="noindex"> and were absent from the sitemap. Padding a login form to 1,000 words is exactly the pattern the policy penalises.
  8. Re-measure before resubmitting, and record the before and after so the change is a number rather than an impression.

The measured result of that work:

MeasureBeforeAfter
Network total prose words, 60 pages27,40479,092
Rejected site total prose words4,067 across 12 pages14,508
Rejected site pages at rejection17 content pagesrewritten to 1,000 or more words each
Rejected site average words per page239
Pages under 1,000 words17 of 170
Worst pairwise similarity99 to 100 percent across 4 pages

Rules we now hold every new page to

Make the word count a build check rather than a habit. A page that ships under 1,000 words of page-specific prose should fail the build, because a rule enforced by a person is a rule that lapses under deadline.

Run the similarity check on every build too. Templated page families are generated by code, so they regress the moment someone adds a fifth letter variant.

Never count generated output as content. Word counting code should strip chips, lists and tool output first, so the number in your dashboard is the number a reviewer would reach.

Plan pillars per site at the outset. Deciding what a site covers, distinct from its neighbours, is far cheaper than discovering at review time that two sites on one publisher account say the same thing.

Keep utility and authentication pages noindexed and out of the sitemap from the start. The right handling is exclusion rather than padding.

What a word count cannot prove

Hitting 1,000 words does not make a page worth reading. Word count is a floor that keeps you out of the failure region, and the three rules above are what supply value. A padded 1,000 word page is a thin page that takes longer to read.

Rewriting content does not address the other reasons an application fails, including navigation, required legal pages, ownership verification and traffic.

It also does not fix duplication that spans domains. Two sites on one publisher account carrying reworded versions of the same article stay a rejection risk however long each version is, and the remedy is different subject matter rather than more words.

Finally, none of this says whether a rewritten page will rank or earn. Passing a content review and getting traffic are different problems.

Questions about Low value content rejections

Is low value content a judgement about my writing?

No. The policy wording is vague and reads like a quality judgement, but it is arithmetic. The rejected site carried 17 content pages, 4,067 prose words, a 239 word average, and all 17 of 17 pages under 1,000 words.

How many words should a content page have?

We now hold every content page at 1,000 or more words of page-specific prose. There is no official threshold, and that line is far enough above the failure region to leave no argument.

Do generated word lists count toward my word count?

No, and counting them will mislead you. One page appeared to run 1,184 words, but 972 of those were generated word chips and only 212 were prose. Any word count that does not exclude generated output is lying to you.

How do I find near duplicate pages?

Run pairwise comparisons with Python's difflib.SequenceMatcher and look at the worst pair rather than the average. Four pages on the rejected site were 99 to 100 percent identical at 128 words each, differing only in the letter named.

Should I pad login and signup pages to hit the word count?

No. Six authentication pages on another site were deliberately not padded. They already carried a noindex robots meta tag and were absent from the sitemap, and padding a login form to 1,000 words is exactly the pattern the policy penalises.

Is it a problem to run similar content on two of my domains?

Yes. Duplicate copy across two domains on one AdSense publisher account is its own rejection risk. Two sites covering adjacent topics need genuinely different subject matter, not the same article with words swapped.