Skip to content
Approvalens

How we inspect · 240 written rules

Methodology

Approvalens does not guess. Every finding in a report comes from one of the rules on this page. Where Google documents a requirement we link to it; where a rule is based on common rejection patterns or on our own measurement, we say so.

A fountain pen resting on a notepad

Same site, same rules, same report.

How a scan works

  1. 01

    We open your home page and follow its internal links breadth-first — content links first, then menus, then the footer — until we reach 5,000 pages. Trust pages such as the privacy policy are always included.

  2. 02

    We read robots.txt the way Google does (most specific group, longest match, Mediapartners-Google ignoring the * group), your sitemaps and ads.txt.

  3. 03

    We request your home page as a desktop browser, a phone, Googlebot, the AdSense crawler and AdsBot, and compare the answers.

  4. 04

    We check up to 120 internal links and 40 images, probe a page that cannot exist to detect soft 404s, and test http://, www and the bare domain.

  5. 05

    We open the home page in a real phone-sized Chromium browser to measure overflow, overlays, load speed and content that only appears with JavaScript.

  6. 06

    We look up the domain in RDAP and the Internet Archive to see its age and past topic.

How the score is calculated

Each failed check costs its category points by severity. Category scores are combined with the weights below. A blocker caps the overall score at 35; one critical issue caps it at 74, three at 60, four or more at 44. Verdicts: Ready (85+, no critical issues), Almost ready (70+), Needs work (45+), Not ready (below 45 or any blocker).

Points lost per failed check

  • Blocker

    AdSense will not approve the site while this is true. Fix it first.

    −60points
  • Critical

    A documented rejection reason or a strong rejection signal. Fix before you apply.

    −25points
  • Warning

    Weakens your application. Fix it before you apply if you can.

    −10points
  • Notice

    Worth doing. On its own it has a small effect.

    −3points

Category weightsShare of the final score

  • Access & availability18%
  • Content18%
  • Policy14%
  • Trust & required pages12%
  • Page quality10%
  • Topic & niche9%
  • Site structure7%
  • Programmatic SEO & duplication5%
  • Technical SEO3%
  • User experience3%
  • Verification & ads.txt1%

The page-quality rubric

Every content page starts at 100 points and loses points for each issue below. 85+ is Highest, 70+ High, 50+ Medium, 30+ Low, below 30 Lowest. The rubric follows the questions Google's Search Quality Rater Guidelines ask: what the page is for, how much effort went into it, how readable it is (Flesch for English, Ateşman for Turkish), who wrote it and when, and whether the title is honest.

  • No H1 heading
  • Several H1 headings
  • H1 and title differ
  • No subheadings
  • Few subheadings
  • Skipped heading level
  • Very thin page
  • Thin page
  • Short page
  • Little main content
  • Very long paragraphs
  • No images or lists
  • Only stock photos
  • Images without alt text
  • Hard to read
  • Dense text
  • Long sentences
  • No author name
  • No publish date
  • No reliable sources
  • No outside links
  • No title tag
  • Title too short
  • Title too long
  • Clickbait title
  • All-caps title
  • Repeated word in title
  • No meta description
  • Description length
  • No internal links
  • Canonical to another site
  • Near-duplicate page
  • Mostly template text
  • Off-topic page
  • Competes with other pages
  • Broken links
  • Hard to reach

How the niche map works

We match every page against 87 niche lexicons in 7 languages. Titles and headings count three times. The site's niche is the one present on most pages, not just the one that tops a few; a page is read in that context, so a fish-disease article on an aquarium site counts as aquarium content. Off-topic pages must lean clearly elsewhere and must not share vocabulary clusters with your main topic. Separately, we cluster pages by shared vocabulary without any lexicon, so the map works even for topics outside our lexicons.

How programmatic and duplicate pages are found

We group URLs by slug shape (best-{x}-in-{x}), group pages by HTML layout, and inside each group replace the words that change from page to page with a slot. Sentences that stay identical on at least half of a group are template text; the rest of each page is its own. We also compare every pair of pages for near-duplicates (5-word shingles), find sentences repeated across many pages, detect title patterns and find pages whose titles target the same keywords.

Every check

01Access & availability

18 checks

02Verification & ads.txt

10 checks

03Content

23 checks

04Trust & required pages

15 checks

05Policy

25 checks

06Topic & niche

10 checks

07Page quality

13 checks

08Site structure

18 checks

09Programmatic SEO & duplication

5 checks

10Technical SEO

60 checks

11User experience

34 checks
  • No pop-up covering the page on phones

    CriticalOfficial rule

    Google says intrusive interstitials make content less accessible on mobile, especially pop-ups that cover the main content right after a visitor arrives. The Better Ads Standards count large pop-ups as a bad ad experience. Banners required by law, such as cookie consent and age checks, are exempt and not counted here. We report a pop-up only when it still covers the screen two seconds later, on both phone sizes and on a reload.

    Sources:developers.google.com/search/docs/appearance/avoid-intrusivebetterads.org/standards/

  • Layout stays still while loading (our phone test)

    WarningOfficial rule

    This is our own lab measurement of Cumulative Layout Shift, without scrolling or tapping, on two phone sizes and a reload. It can differ from the real-user Core Web Vitals that Google shows elsewhere in this report and in Search Console. Good is 0.1 or less, poor is above 0.25. Jumping content makes readers lose their place and tap the wrong thing, often an ad.

    Sources:web.dev/articles/clsweb.dev/articles/optimize-cls

  • Scripts, styles, images and fonts load

    WarningOfficial rule

    A missing script or stylesheet can break the layout and features; missing images and fonts leave gaps. Reviewers see the same broken page. We count only files on your own domain that returned an HTTP error on all three loads; rate limits and bot checks are ignored.

    Sources:developer.mozilla.org/en-US/docs/Web/HTTP/Status

  • Pages fit the phone screen

    WarningOfficial rule

    Google's mobile guidance asks for pages that fit the screen without sideways scrolling or zooming. A page that wobbles sideways looks broken, and most visitors use phones. We report it only when a real swipe moved the page sideways on both screen sizes and on a reload, and we name the element that sticks out.

    Sources:developers.google.com/search/docs/crawling-indexing/mobile/mweb.dev/articles/responsive-web-design-basicssupport.google.com/adsense/answer/7299563

  • Mobile viewport on every page

    WarningOfficial rule

    Without a viewport tag set to width=device-width, phones lay the page out about 980px wide and shrink it, so text is tiny and links are hard to tap. Google's mobile guidance asks for it on every page, not only the homepage.

    Sources:developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tagdevelopers.google.com/search/docs/crawling-indexing/mobile/m

  • Real-user speed (Core Web Vitals)

    WarningOfficial rule

    These numbers come from the Chrome UX Report (CrUX): real visits by Chrome users over the last 28 days, measured at the 75th percentile. Good means LCP (loading) of 2.5 s or less, INP (responsiveness) of 200 ms or less and CLS (visual stability) of 0.1 or less. Poor means more than 4 s, 500 ms or 0.25. Core Web Vitals are part of Google Search's page experience signals. They are not an AdSense approval rule, but slow pages lose readers and earn less.

    Sources:developers.google.com/search/docs/appearance/core-web-vitalsweb.dev/articles/vitalssupport.google.com/webmasters/answer/9205520

  • Pop-up covering the page

    WarningOfficial rule

    The Better Ads Standards, which Google's policies follow, count large pop-ups and full-screen overlays as bad experiences. Reviewers want to see your content first.

    Sources:betterads.org/standards/support.google.com/publisherpolicies/answer/11035030

  • Content needs JavaScript

    WarningOfficial rule

    Google can run JavaScript, but not always quickly or fully. If your text appears only after scripts run, crawlers may see an almost empty page.

    Sources:support.google.com/adsense/answer/12176698developers.google.com/search/docs/essentials/technical

  • Fits on a phone screen

    WarningOfficial rule

    Pages that scroll sideways are hard to read on a phone, and most visitors come from phones. Google asks for an easy, readable experience.

    Sources:support.google.com/adsense/answer/7299563

  • Pop-up windows

    WarningOfficial rule

    AdSense does not allow sites that interfere with navigation through pop-ups or pop-unders, and Google ads may not appear in windows the visitor did not open. Pop-up windows usually come from aggressive ad networks.

    Sources:support.google.com/adsense/answer/1346295support.google.com/adsense/answer/48182support.google.com/webtools/answer/7347327

  • Loading speed on mobile

    WarningOfficial rule

    Slow pages lose readers, especially on mobile data. Under 2500 ms is a good target. Speed matters for visitors more than for approval.

  • Buttons have a name

    NoticeOfficial rule

    Icon-only buttons need a text alternative so that screen-reader users know what they do.

    Sources:w3.org/WAI/WCAG22/Understanding/name-role-value.html

  • Text contrast

    NoticeOfficial rule

    WCAG AA asks for a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Low-contrast text is hard to read, on a phone outdoors even more so. axe-core computes the actual colours; unclear cases (text over images or gradients, text that is still animating) are skipped.

    Sources:w3.org/WAI/WCAG22/Understanding/contrast-minimum.htmlwebaim.org/resources/contrastchecker/

  • Page language declared

    NoticeOfficial rule

    Screen readers use the lang attribute to pick the right pronunciation, and browsers use it for translation and hyphenation.

    Sources:w3.org/WAI/WCAG22/Understanding/language-of-page.html

  • Images have alt text

    NoticeOfficial rule

    Screen readers and Google Images rely on alt text, and axe-core rates a missing alt attribute as critical. Decorative images are fine with an empty alt="": only images without any alt attribute are counted.

    Sources:w3.org/WAI/WCAG22/Understanding/non-text-content.htmlw3.org/WAI/tutorials/images/

  • Form fields have labels

    NoticeOfficial rule

    Text next to a field is not enough: it has to be connected to the field (a <label for>, a wrapping <label>, or aria-label). Otherwise screen-reader users hear only “edit text” or “checkbox”, and tapping the text does not select the field.

    Sources:w3.org/WAI/tutorials/forms/labels/w3.org/WAI/WCAG22/Understanding/info-and-relationships.html

  • Links have a name

    NoticeOfficial rule

    Icon links and image links without text are announced as just “link”, or as the web address.

    Sources:w3.org/WAI/WCAG22/Understanding/link-purpose-in-context.html

  • Broken images

    NoticeOfficial rule

    Broken images look neglected to readers and to reviewers. We count an image only when the browser shows it as broken and its file request failed, on all three loads.

    Sources:developer.mozilla.org/en-US/docs/Web/HTML/Element/img

  • Text cut off on phones

    NoticeOfficial rule

    When a box hides what does not fit (overflow: hidden) and no ellipsis is meant, readers lose part of a label or heading and may not understand what a button does. We list a case only when the box really cuts through its own text, on both phone sizes and on a reload. Ellipsis (…), line clamps, screen-reader-only text, tickers and carousels are skipped.

    Sources:w3.org/WAI/WCAG22/Understanding/reflow.htmldeveloper.mozilla.org/en-US/docs/Web/CSS/text-overflow

  • Buttons that seem to do nothing

    NoticeOur estimate

    We asked the browser's developer tools which event handlers are attached to each button and to every element around it, and checked that hover and focus styles do not reveal anything. Pages whose scripts listen at the top level (React, Vue, jQuery delegation, plugins that delay JavaScript until the first tap) are skipped, because we cannot tell there. Please tap the button yourself before changing anything.

    Sources:developer.mozilla.org/en-US/docs/Web/HTML/Element/button

  • No repeated JavaScript errors

    NoticeOfficial rule

    An error that repeats on every load usually means a broken feature: a menu, gallery, form or ad slot that never starts. We count only uncaught errors from scripts on your own domain (not ads, analytics or network hiccups), and only when they appear on all three loads.

    Sources:developer.chrome.com/docs/devtools/console

  • Main content shows quickly (our phone test)

    NoticeOfficial rule

    This is our own lab measurement of Largest Contentful Paint from our server, without speed throttling. A page is listed only when it is over 4 s on all three loads and the page's first byte or the main element's own download took 2.5 s or more, so a busy test machine cannot cause it. Visitors on mobile networks are usually slower. Google's real-user data (CrUX) is shown separately in this report. Good is 2.5 s or less, poor is above 4 s.

    Sources:web.dev/articles/lcpweb.dev/articles/optimize-lcp

  • Mobile menu opens

    NoticeOur estimate

    If the menu does not open on phones, visitors and reviewers cannot reach your other pages, including About, Contact and the privacy policy. We tapped the button once, waited three seconds, clicked it once more and looked for new links on the screen. Leaving the page was blocked during the test. If your menu opens in a way we could not see (inside an iframe or after a long animation), ignore this.

    Sources:w3.org/WAI/ARIA/apg/patterns/disclosure/developers.google.com/search/docs/crawling-indexing/mobile/m

  • Buttons or links covering each other

    NoticeOfficial rule

    We found two tappable elements on top of each other and checked in the browser that a tap on the centre of the lower one hits the upper one. Visitors cannot reach the covered one. Closed menus, carousel arrows at the edge of a slide, sticky headers and two links to the same page are not counted.

    Sources:w3.org/WAI/WCAG22/Understanding/target-size-minimum.htmlweb.dev/articles/accessible-tap-targets

  • Buttons and links big enough to tap

    NoticeOfficial rule

    WCAG 2.2 (level AA, 2.5.8) asks for tap targets of at least 24×24 CSS pixels, or enough space that a 24px circle around each one does not touch another target. Links inside sentences are exempt. We report only clear cases (small in both directions, or under 16px), confirmed by axe-core and by our own measurement. For comfortable tapping Google recommends about 48×48px.

    Sources:w3.org/WAI/WCAG22/Understanding/target-size-minimum.htmlweb.dev/articles/accessible-tap-targetsdeveloper.chrome.com/docs/lighthouse/seo/tap-targets

  • Readable text size on phones

    NoticeOfficial rule

    Google's mobile guidance asks for legible font sizes, and Lighthouse flags pages where much of the text is under 12px. Small print is hard to read without zooming, especially for older readers.

    Sources:developer.chrome.com/docs/lighthouse/seo/font-sizedevelopers.google.com/search/docs/crawling-indexing/mobile/m

  • Words split in the middle

    NoticeOfficial rule

    CSS such as word-break: break-all or overflow-wrap: anywhere lets the browser cut a word at any letter. In narrow buttons and headings this turns “Standard” into “Stan / dard”, which looks broken and is hard to read. We measure where each letter lands, so only words that really break across two lines are listed.

    Sources:developer.mozilla.org/en-US/docs/Web/CSS/word-breakdeveloper.mozilla.org/en-US/docs/Web/CSS/overflow-wrap

  • Pinch-zoom allowed

    NoticeOfficial rule

    user-scalable=no, or a maximum-scale below 2, stops people from zooming in on many phones. WCAG asks that text can be resized to 200% (1.4.4). This is an accessibility note, not an AdSense rule.

    Sources:w3.org/WAI/WCAG22/Understanding/resize-text.htmldeveloper.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag

  • Media plays with sound

    NoticeOfficial rule

    Auto-playing video with sound is on the Better Ads Standards list of ad experiences that annoy users. Google Publisher Policies do not allow Google ads on screens that break these standards.

    Sources:betterads.org/standards/support.google.com/adsense/answer/10502938

  • JavaScript errors

    NoticeOfficial rule

    Script errors can break menus, forms and layouts. They often come from outdated plugins or broken ad code.

  • Page size

    NoticeOfficial rule

    Heavy pages are slow on mobile data and can cost visitors money. Large images are usually the cause.

  • Browser check

    NoticeOfficial rule

    These checks need a full browser. A failure here can be temporary, so it does not lower your score.

  • Small text on mobile

    NoticeOfficial rule

    Text that is too small makes people zoom or leave. Around 16px body text is a good minimum on phones.

    Sources:support.google.com/adsense/answer/7299563

  • Phone test

    InfoOfficial rule

    Many layout problems only appear on small screens, and many only appear after scripts run. We render your homepage, the pages in your menu and your most-linked pages like a phone does, measure what a visitor would see, and drop anything that does not repeat. Screenshots in the findings mark the element with a red box.

    Sources:developers.google.com/search/docs/crawling-indexing/mobile/m

12Domain

9 checks
  • Reused expired domain

    CriticalOur estimate

    Google's spam policies name expired domain abuse: buying an old domain and filling it with low-value content to profit from its history. If you bought the domain for its old reputation, reviewers may see it that way. This is our estimate from public archives.

    Sources:developers.google.com/search/docs/essentials/spam-policies

  • Free domain extension

    CriticalCommon rejection pattern

    Free extensions such as .tk or .ml are widely used for spam. Sites on them are often rejected or hard to verify. This is a common pattern, not a written rule.

  • Hosted platform

    CriticalOfficial rule

    To use AdSense you must be able to put code in the head of your pages. Many free hosted platforms do not allow this, and AdSense only accepts sites on domains or on approved platforms.

    Sources:support.google.com/adsense/answer/91205support.google.com/adsense/answer/9724

  • Domain in a restricted country

    WarningOur estimate

    Google publisher products are not available in Crimea, Cuba, Iran, North Korea and the occupied regions of Donetsk and Luhansk. A country domain does not prove where you live, but the account holder's address and payment details must be outside these places.

    Sources:support.google.com/adsense/answer/6167308

  • Domain expiry

    NoticeOfficial rule

    If the domain expires, the site goes offline and someone else can register it. A site that goes down during review is rejected.

  • Subdomain

    NoticeOfficial rule

    In AdSense you add the main domain as a site, not a subdomain. The reviewer may look at the whole domain, not only this part.

    Sources:support.google.com/adsense/answer/12170421

  • Topic changed over time

    NoticeOur estimate

    A topic change is normal for many sites. It only matters if the old reputation is used to rank new, unrelated content. This is our estimate from public archives.

    Sources:developers.google.com/search/docs/essentials/spam-policies

  • Domain age

    InfoOfficial rule

    An old rule asked sites in China and India to be six months old, but Google removed it in 2019. A new domain is not a reason for rejection, though new sites often have too little content yet.

    Sources:support.google.com/adsense/answer/9724web.archive.org/web/20181120102449/https://support.google.coweb.archive.org/web/20190405163855/https://support.google.co

  • Archive history

    InfoOfficial rule

    The archive shows how long the site has existed and what it looked like. It is for context and does not lower your score.