Free SEO audit tool
Technical SEO plus the content signals that move rankings, 27 checks, no AdSense policy noise.
What TMOD checks
- All 19 technical checks: meta tags, canonicals, sitemap and robots.txt, schema markup, Core Web Vitals, page speed, SSL, mobile rendering, broken links, indexing, custom 404, JavaScript rendering, mixed content, site architecture, URL structure, domain age, ads.txt, safety and accessibility.
- Eight content checks that affect rankings rather than AdSense eligibility: content length, content depth, thin pages, duplicate content, readability, image optimization, freshness and author/E-E-A-T signals.
- Page-level word counts against a 300-word minimum and a 600-word target, with anything under 150 words flagged as thin.
- Near-duplicate detection across every real content page, reported from 40% similarity and failed at 55%, with archive and pagination pages excluded because they overlap by design.
- Canonical tag coverage across the crawl, 80% or more of pages declaring a canonical passes, anything less is flagged.
- Title tags against a 30–60 character window and meta descriptions against 70–160, the ranges that survive truncation in results pages.

Every check, explained
27 checks run in this audit. 13 of them have a page of their own with the exact threshold and how to fix it.
Technical & performance
Why it matters
Most SEO tools give you a number and a list of warnings without telling you what the number means. This audit reports the actual rule behind every result, the word count, the similarity ratio, the millisecond budget, so you can decide whether a warning matters for your site rather than chasing a score.
It deliberately skips the AdSense policy engines. If you are not applying for AdSense, checks for consent banners, DMCA pages and ad placement balance are noise that drags your score down for things that have nothing to do with search performance. Those live in the policy audit instead, where they are the point rather than a distraction.
It also skips the LLM content-quality pass, which means the audit is fast and the results are fully deterministic: run it twice on an unchanged site and you get the same answer. That matters when you are working through fixes and want to know whether your change moved the needle.
How to fix it
01Start with the technical failures, not the warnings
A missing sitemap, a broken canonical or an unreachable robots.txt stops pages being indexed at all. No amount of content work helps a page Google cannot reach. Work the red items top to bottom before you touch anything amber.
02Fix thin pages by merging, not padding
Pages under 150 words are flagged as thin. Padding them to 300 words with filler is worse than the original problem, it creates low-value content at scale. Merge related thin pages into one substantial page and redirect the old URLs.
03Resolve duplicates at the canonical level first
Most duplicate-content flags come from the same page being reachable at several URLs, http and https, www and non-www, with and without a trailing slash. A self-referential canonical on every page usually clears the whole cluster in one change.
04Treat Core Web Vitals as a budget
LCP under 2.5 seconds, CLS under 0.1. The single most common cause of a failing LCP on a content site is an unsized hero image. Set explicit width and height attributes, serve modern formats, and the measured load time usually moves without touching anything else.
What this audit cannot see
Everything here is measured from outside your site, which is the reason it works on any domain and the reason it has blind spots worth naming. It does not know your impressions, your average position, or which queries you already win. Search Console owns that data and nothing can infer it from the HTML.
It has no keyword data either. A page can pass every check on this list and still target a phrase nobody searches, or compete for one where the first page is owned by sites with twenty years of references. Passing means the page is not being held back by anything mechanical, not that the topic was worth writing about.
Off-site signals are absent entirely: who links to you, who mentions you, what your brand looks like to a search engine that has seen the rest of the web. That gap is the honest reason two sites with identical audit scores rank differently. What this audit does own is the half you control, and on most sites the mechanical half is where the recoverable losses are: pages that cannot be crawled or indexed and pages too thin to deserve the traffic.

A working order for the results
Take crawl access first. If robots.txt or the sitemap is wrong, every other number in the report was measured over the wrong set of pages, and fixing anything else is guesswork. This is the layer where one line of text can hide an entire site.
Indexing signals come second, because they decide which of your URLs a search engine treats as canonical. Self-referential canonicals, honest titles and descriptions and clean redirects usually settle most of what a duplicate report is complaining about, without a word of content being rewritten.
Then work templates before pages. A missing description on 200 URLs is one template bug, not 200 tasks, and the same is true of duplicate titles, missing image dimensions and unsized hero elements. Only after that does per-page work pay: merging the thin pages, deepening the ones worth deepening, and leaving alone the pages that were always meant to be short.
Re-run the audit between layers rather than at the end. One template change routinely clears dozens of individual warnings, and the second run tells you which of the remaining items were real rather than downstream of something you have already fixed.
One crawl of a 34-page site, annotated
The report header on a typical small-business site reads: 34 pages crawled, 27 listed in the sitemap. That mismatch is the first finding, before any check has been read. Seven pages are reachable by links but unlisted, usually fine, or listed but orphaned, worth knowing. Neither number is the site's real size, and every ratio below is computed over the 34 actually fetched, which is why the header is worth reading before the scores.
The technical column then shows canonical coverage at 62%, against the 80% pass line. Clicking through shows the pattern in one glance: every page missing a canonical is an article, every page carrying one is not, so the article template is the single bug behind thirteen warnings. The same column shows three redirect chains from an old http-to-www migration and two templates past the load ceiling, both of them page types rather than pages.
The content column reports nine pages under the 300-word floor and two duplicate pairs at 0.61 and 0.58. The pairs turn out to be print-friendly variants the theme generates, a canonical fix, not a writing task, and six of the nine short pages are event announcements from past years that should be archived rather than expanded. What looked like eleven content problems is one template setting and one editorial decision.
That compression is the pattern to expect: 30-odd findings usually reduce to four or five underlying causes, and the report is designed to be read that way, grouped, not item by item. Fix the causes, re-run, and treat whatever survives the second crawl as the real per-page work. When the survivors are mostly content items, the content audit reads those pages more deeply than this preset does; when they are crawl-and-indexing items, the technical audit is the faster loop to iterate with.
Questions
How is this different from the AdSense checker?
The AdSense checker runs all 45 engines including the policy suite and an AI reviewer pass that predicts whether Google would approve your site. This SEO audit runs 27 engines focused purely on search performance, with no policy checks and no AI judgement. If you want to know why AdSense rejected you, use the AdSense checker. If you want to know why you are not ranking, use this.
How many pages does it crawl?
A signed-in scan crawls up to 50 pages at a depth of 3, following your sitemap first and then internal links. Very large sites are sampled rather than crawled exhaustively, the checks that depend on site-wide ratios, like canonical coverage and duplicate detection, are computed over the pages actually fetched, and the report tells you how many that was.
Does it need access to Google Search Console or Analytics?
No. Everything is measured from the outside, the same way a search engine crawler sees your site. That means it works on a site you do not own and on a site that has never been verified in Search Console, but it also means it cannot see impressions, clicks or rankings, it measures the things you control, not the results.
Why does my score differ between runs?
It should not. This preset excludes the LLM pass specifically so results are deterministic. If a score moves on an unchanged site, it is almost always the crawl finding a different number of pages, a slow response, a rate limit or a timeout can reduce the sample. Check the page count in the report header before assuming a check regressed.
How often is it worth re-running?
After every batch of fixes while you are actively working, since the results are deterministic and a re-run is the cheapest way to confirm a template change actually cleared the warnings attached to it. Once the site is clean, monthly is plenty, plus one run after anything structural: a theme change, a migration, a permalink change, or a new section launching. The audits that include the AI pass are the ones to run more sparingly; this one is built to be repeated.
Read more
Why Moz Shows 404 Errors for Pages You've Removed
Moz may show 404 errors for removed pages because old URLs can still be discovered, crawled, or linked from other sites.
Screaming Frog, Ahrefs and Sitebulb for AdSense readiness
The big SEO crawlers are better at technical auditing than any AdSense tool. They are also scoped to a different question. Here is where the line falls.
Search Console vs a site crawler, and what each one cannot tell you
One reports what Google decided about your site. The other inspects what your site actually serves. Neither answers the other's questions.