Methodology

Methodology: How Our Checkers Score a Site or a Page

A score you cannot inspect is just a number. This page explains exactly what our two checkers fetch, how they weigh what they find and where they stop being reliable.

The two audits

AdSense eligibility checkerFree SEO checker
ScopeA whole site: homepage plus a sample of up to 11 other pagesOne page, in depth
Checks57, of which 4 are always informational and never scoredUp to 53, depending on the page
Categories89
OutputScore out of 100, verdict, action plan, downloadable reportSame

The SEO checker runs fewer checks on a page that has no images or no share image, because those checks do not apply. The count on a given report is the count that ran.

What gets fetched

For an AdSense audit we fetch the homepage, robots.txt, the XML sitemap, ads.txt, a deliberately invented URL to see how your server answers a missing page, and a sample of up to 11 inner pages taken evenly from the sitemap (or from the homepage links when the sitemap is small). We test up to 16 internal links for dead ends, using a HEAD request and falling back to GET when a server refuses HEAD. We also read a few of your essential pages (privacy, contact, about, terms) once each, to check their content and whether they can be indexed. For one SEO audit we fetch the page itself, its robots.txt, a sitemap, the share image, up to 12 internal links and up to 6 image headers.

Requests are polite: at most 3 in parallel, a 12 second timeout, and pages are read up to 2 MB. Every request, including each redirect hop, is checked so that the tool can only reach public addresses.

How the score is computed

Each check has a weight from 1 to 5 that reflects how often that problem causes a refusal or costs visibility. A passed check earns its full weight, a warning earns half, a failure earns nothing, and informational checks are left out. The score is earned weight divided by possible weight, as a percentage.

ScoreAdSense verdictSEO verdict
85 and aboveLooking goodSolid page
70 to 84Nearly thereGood base
50 to 69Needs workNeeds work
Below 50Not ready yetMajor issues

AdSense checker: categories

CategoryChecksWhat it covers
Connection and security6HTTPS, redirect to HTTPS, www consistency, redirect chain, response time
Indexing and crawlability10robots.txt rules for Googlebot and the AdSense crawler, sitemap, noindex in meta and headers, canonical, own domain
Required pages6Privacy policy and its advertising-cookie wording, contact, about, terms, and whether they can be indexed
Content10Number of pages, depth on a sample, share of substantial pages, titles, descriptions, headings, freshness
Structure and navigation7Menu, footer, internal links, broken links, proper 404, clean URLs, favicon
Mobile and performance7Viewport, responsive CSS, compression, mixed content, page weight, scripts, image alt text
Trust and E-E-A-T6Contact method, author signals, structured data, publisher schema, public profiles, footer identity
AdSense specifics5A content-policy keyword scan, plus informational items: domain history, ads.txt, ad code, Search Console tag

SEO checker: categories

Title and metadata (7), content quality (6), headings and structure (up to 4), links (7), images (up to 5), indexability (6), rich results and social (up to 4), speed and technical (9) and security headers (5).

Thresholds that are ours, not Google’s

Google publishes few numeric thresholds. Where we use one, it is our judgment, and the report words it as a recommendation rather than a rule.

ThresholdValueWhy
Pages on the site25 for a full mark, 10 for a warningA reviewer needs enough substantial pages to judge. Google sets no minimum.
Average page depth600 words for a pass, 350 for a warningA page far below this rarely answers a question properly.
Title length30 to 60 charactersLonger titles are truncated in results. The limit is in pixels, so this is an approximation.
Meta description70 to 165 charactersSame reason. Google may rewrite it anyway.
Server responseUnder 800 ms for a passMatches the “good” time to first byte guidance on web.dev.

Domain age is shown for context only and is not scored: Google states no minimum domain age for AdSense.

What the checkers cannot measure

Originality, whether a page answers the search intent, backlinks and authority, and real-user Core Web Vitals are outside what a fetch can see. Every report ends with a manual checklist for exactly those points, because they weigh at least as much as everything measured.

About GreenlightBot

Audits are made by a fetcher that identifies itself with this user agent:

Mozilla/5.0 (compatible; GreenlightBot/1.0; +https://greenlightmysite.com/methodology/#bot)

It runs only when someone submits a URL. Because the person submitting the URL is asking us to read it, GreenlightBot does not apply robots.txt rules to the pages it audits, much like a link-preview fetcher. It reads robots.txt to report on it. It identifies itself on every request, runs at low volume, and each visitor is limited to 6 audits per hour. If you do not want your site to be audited, block the user agent in your server configuration or write to hello@greenlightmysite.com.

Keeping the tools honest

We run both checkers on this site and publish the results on the home page and in the changelog. When a check turns out to claim more than the evidence supports, we change the check: the domain age check, for example, used to warn on young domains until we found that Google does not state such a rule.