Enter any website address and get a scored SEO audit in about a minute: 66 on-page, technical, link, performance, schema and AI-readiness checks, with a prioritised list of fixes.
Enter the page you want to audit. The analyzer will check it, crawl your internal pages and give you a scored report with fixes.
It loads your pages like a search engine, tests them against proven SEO rules and scores the result. The Websolindia Website SEO Analyzer runs 66 checks in 6 categories — on-page SEO, technical SEO, content and links, performance and mobile, structured data and AI readiness — then ranks every problem by impact so you know what to fix first.
The Website SEO Analyzer from Websolindia is a free SEO audit tool that checks a website's on-page SEO, technical SEO, links, speed, structured data and readiness for AI search in a single report. It was built by the Websolindia team — a website design and SEO company in New Delhi serving businesses across India since 2014 — to give owners and marketers the same first-pass audit our consultants run before every project.
Paste a URL and the analyzer fetches the page, reads your robots.txt, XML sitemap and llms.txt, crawls up to 25 internal pages, checks links for errors, and (optionally) runs Google PageSpeed Insights. It then scores your site from 0 to 100 and lists every problem in order of importance with a plain-English fix. Every check, threshold and weight is published below, so you can see exactly how your score is calculated.
An audit tells you what to fix; it does not replace strategy. If you would like help acting on the results, our SEO services, website designing and content marketing teams can turn the report into a month-by-month plan. See also the other tools in the Websolindia SEO tools hub.
Every audit runs the same checks so that results are comparable over time. The table summarises the six categories; the sections below list each individual check, how it is tested, what counts as a pass and how serious it is.
| Category | Score weight | Checks | What it covers |
|---|---|---|---|
| On-Page SEO | 25% | 18 | Titles, meta descriptions, headings, canonicals, alt text, duplicate content, URL structure |
| Technical SEO | 25% | 18 | HTTPS, redirects, robots.txt, XML sitemap, indexability, 404 handling, compression, security headers |
| Content & Links | 15% | 9 | Broken links, internal linking, orphan pages, click depth, anchor text, thin pages |
| Performance & Mobile | 20% | 12 | Mobile viewport, Core Web Vitals (via Google PageSpeed Insights), server speed, page weight, render-blocking resources |
| Structured Data & Social | 10% | 6 | JSON-LD validity, Organization and breadcrumb schema, Open Graph and Twitter cards |
| AI & GEO Readiness | 5% | 3 | AI crawler access in robots.txt, llms.txt, answer-friendly content |
| Total | 100% | 66 | All checks combine into one 0–100 score |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| Title tag present | Whether the page has a non-empty <title>. | A title exists. | Critical |
| Title length | Characters in the title (Google shows roughly 50–60 characters). | 30–60 characters = pass; 20–29 or 61–70 = warning; otherwise fail. | Medium |
| Only one title tag | Number of <title> elements in the HTML. | Exactly one. | Low |
| Meta description present | Whether the page has a meta description. | A non-empty description exists. | High |
| Meta description length | Characters in the meta description. | 70–160 = pass; 50–69 or 161–200 = warning; otherwise fail. | Medium |
| Only one meta description | Number of meta description tags. | Zero or one. | Low |
| One H1 heading | Number of <h1> elements on the page. | Exactly one = pass; more than one = warning; none = fail. | High |
| Heading hierarchy | Whether heading levels skip (for example H1 → H3) or the first heading is not H1. | No skipped levels and the first heading is an H1. | Low |
| Duplicate titles | Pages in the crawl that share the same title. | No two pages share a title. | High |
| Duplicate meta descriptions | Pages in the crawl that share a meta description. | No two pages share a description. | Medium |
| Duplicate H1 headings | Pages in the crawl that share the same H1. | No two pages share an H1. | Low |
| Pages missing a title or description | Share of crawled pages with no title or no meta description. | 0% = pass; up to 20% = warning; more = fail. | High |
| Canonical tag | Whether the page declares one canonical URL. | One canonical pointing at this page = pass; one pointing elsewhere = warning; multiple = fail; none = warning. | Medium |
| Language attribute | Whether <html> has a lang attribute. | lang is set. | Low |
| Image alt text | Images with no alt attribute at all across crawled pages (empty alt on decorative images is fine). | 0% missing = pass; up to 20% = warning; more = fail. | Medium |
| Home page content depth | Visible words on the page you entered. | 300+ words = pass; 150–299 = warning; fewer = fail. | Medium |
| URL structure | Crawled URLs that are very long, contain underscores, capital letters or many parameters. | No problem URLs. | Low |
| Favicon | A favicon link in the HTML or /favicon.ico responding with 200. | Found. | Low |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| HTTPS | Whether the final URL uses HTTPS. | The page is served over HTTPS. | Critical |
| HTTP → HTTPS redirect | Whether http:// redirects to https:// with a permanent redirect. | 301/308 to HTTPS = pass; 302 or temporary = warning; no redirect = fail. | High |
| www / non-www consistency | Whether the other host variant redirects to your main host. | The variant redirects to the main host. | Medium |
| Page returns 200 OK | HTTP status of the entered URL after redirects. | 200 = pass; anything else = fail. | Critical |
| Redirect chain | Number of redirects between the entered URL and the final page. | 0–1 = pass; 2 = warning; 3 or more (or a loop) = fail. | Medium |
| robots.txt | Whether /robots.txt exists and returns plain text. | Found = pass; missing = warning. | Medium |
| robots.txt does not block the page | Whether robots.txt blocks Googlebot from the entered page. | Not blocked. | Critical |
| Page is indexable | noindex in the meta robots tag or X-Robots-Tag header. | No noindex. | Critical |
| XML sitemap | Whether a valid XML sitemap exists. | Valid sitemap found = pass; missing = warning; invalid = fail. | Medium |
| Sitemap declared in robots.txt | Whether robots.txt has a Sitemap: line. | Declared. | Low |
| Sitemap quality | lastmod coverage, URLs on other hosts and http:// URLs in the sitemap. | No off-host or http URLs and at least half of URLs have lastmod. | Low |
| 404 handling | The status returned for a page that does not exist. | 404 or 410 = pass; 200 or a redirect to the home page = fail (a soft 404). | Medium |
| Compression | Whether the server compresses the page (gzip, brotli). | Compressed = pass. | Medium |
| Cache headers | Whether the page sends Cache-Control or validators. | Cache-Control, ETag or Last-Modified present. | Low |
| Security headers | HSTS, X-Content-Type-Options, clickjacking protection and Referrer-Policy. | 3 or more = pass; 1–2 = warning; none = fail. | Low |
| Mixed content | http:// resources loaded on an HTTPS page. | None. | High |
| Hreflang tags | Whether hreflang annotations (if any) use valid codes and include x-default. | Valid codes and an x-default or self reference. | Low |
| No meta-refresh redirect | A <meta http-equiv="refresh"> redirect. | None. | Low |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| Broken links | Links and crawled pages that return an error (4xx, 5xx) or no response. | None = pass; 1–5 = warning; more than 5 = fail. | Critical |
| Links that redirect | Internal links that go through a redirect. | None. | Low |
| Internal links on the home page | Number of internal links on the page you entered. | 5+ = pass; 1–4 = warning; none = fail. | Medium |
| Orphan pages | Sitemap URLs that none of the crawled pages link to. | None found in the crawled sample. | Medium |
| Click depth | The deepest page reached by following links from the entered page. | 3 clicks or fewer = pass; 4 = warning; 5 or more = fail. | Low |
| Descriptive anchor text | Internal links with empty or generic anchors (“click here”, “read more”). | 5% or fewer = pass; up to 15% = warning; more = fail. | Low |
| Internal nofollow links | Internal links marked rel="nofollow". | None. | Low |
| Thin pages | Crawled pages with fewer than 150 words. | 0% = pass; up to 30% = warning; more = fail. | Medium |
| Crawled pages return 200 | Internal pages that returned an error or could not be fetched during the crawl. | All 200 (redirects are listed separately). | High |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| Mobile viewport | A viewport meta tag with width=device-width. | Present. | Critical |
| Server response time | Time to first byte measured from our server. | 600 ms or less = pass; up to 1,000 ms = warning; slower = fail. | Medium |
| HTML size | Uncompressed size of the HTML document. | 200 KB or less = pass; up to 500 KB = warning; larger = fail. | Medium |
| Render-blocking scripts | Scripts in <head> without async or defer. | 0 = pass; 1–2 = warning; 3 or more = fail. | Medium |
| Image width and height | Images without width/height attributes (they cause layout shift). | 10% or fewer missing = pass; up to 40% = warning; more = fail. | Medium |
| Lazy-loaded images | Whether a page with many images lazy-loads any of them. | Fewer than 5 images, or at least one lazy-loaded. | Low |
| Script and stylesheet count | External scripts plus stylesheets on the page. | 30 or fewer = pass; up to 60 = warning; more = fail. | Low |
| Lighthouse performance (mobile) | Google Lighthouse performance score from PageSpeed Insights, mobile. | 90+ = pass; 50–89 = warning; below 50 = fail. | High |
| Largest Contentful Paint (LCP) | Real-user (CrUX) LCP when available, otherwise Lighthouse lab LCP. | 2.5 s or less = pass; up to 4 s = warning; slower = fail. | High |
| Cumulative Layout Shift (CLS) | Real-user CLS when available, otherwise lab CLS. | 0.1 or less = pass; up to 0.25 = warning; higher = fail. | Medium |
| Responsiveness (INP / TBT) | Real-user Interaction to Next Paint when available, otherwise Total Blocking Time from the lab. | INP 200 ms or less (TBT 200 ms) = pass; up to 500 ms (600 ms) = warning; slower = fail. | Medium |
| Accessibility score | Lighthouse accessibility score (mobile). | 90+ = pass; 70–89 = warning; below 70 = fail. | Low |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| Structured data present | JSON-LD, Microdata or RDFa on the page. | Any structured data found. | Medium |
| Valid JSON-LD | JSON-LD blocks that fail to parse. | All blocks parse. | High |
| Organization / business schema | An Organization, LocalBusiness or WebSite entity on the page. | Present. | Medium |
| Breadcrumb schema on inner pages | Crawled inner pages with BreadcrumbList. | Half or more have it. | Low |
| Open Graph tags | og:title, og:description, og:image and og:url. | All four = pass; some = warning; none = fail. | Medium |
| Twitter / X card | A twitter:card tag. | Present. | Low |
| Check | What we test | Pass criteria | Impact |
|---|---|---|---|
| AI crawler access | Whether GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended can crawl the site. | All allowed = pass; any blocked = warning (blocking is a business choice, but it removes you from those AI answers). | Medium |
| llms.txt | Whether /llms.txt exists and starts with a Markdown heading. | Found and well-formed = pass; missing or malformed = warning. | Low |
| Answer-friendly content | Question-style headings or FAQPage schema that AI answer engines can quote. | At least one. | Low |
The score is transparent and repeatable. First the analyzer collects facts about your site, then your browser applies the checks and does the arithmetic — no hidden adjustments.
| Step | What happens | Limit |
|---|---|---|
| 1. Fetch the page | Our server requests your URL like a browser and follows redirects, recording the status, headers, timing and HTML. | Up to 6 redirects, 3 MB of HTML, 14 s timeout |
| 2. Site files | Reads /robots.txt, your XML sitemap(s) and /llms.txt, and tests redirects (http → https, www), a missing-page URL and the favicon. | Up to 3 sitemap files in an index |
| 3. Crawl | Follows internal links breadth-first from your page (plus sitemap URLs), reading the title, description, headings, links and images of each page. It obeys robots.txt. | 10, 15 or 25 pages (you choose); same website only |
| 4. Link check | Requests every internal link not already crawled, plus external links, to find errors and redirects. | Up to 60 internal and 20 external links |
| 5. PageSpeed | Calls Google PageSpeed Insights for Lighthouse lab data and real-user Core Web Vitals (CrUX), mobile. | Optional; depends on Google's quota |
| 6. Score | Your browser applies the checks, calculates the scores and builds the report. Nothing is stored on our server. | — |
Every check ends as a pass, warning, fail or info. Info means the check could not be applied (for example PageSpeed data was unavailable), so it is left out and cannot lower your score.
| Result | Points | Counted in the score? |
|---|---|---|
| Pass | 1.0 × the check's weight | Yes |
| Warning | 0.5 × the check's weight | Yes |
| Fail | 0 × the check's weight | Yes |
| Info (not applicable or data unavailable) | — | No — excluded, so missing data never lowers your score |
Category score = (sum of weight × points) ÷ (sum of weights of the scored checks) × 100.
| Check | Weight | Result | Points earned |
|---|---|---|---|
| Title present | 10 | Pass | 10 |
| Title length | 5 | Warning | 2.5 |
| Meta description present | 8 | Fail | 0 |
| One H1 heading | 8 | Pass | 8 |
| Total | 31 | 20.5 |
The overall score is the weighted average of the category scores. If a category has no scored checks, it is left out and the remaining weights are re-balanced.
| Category | Weight |
|---|---|
| On-Page SEO | 25% |
| Technical SEO | 25% |
| Content & Links | 15% |
| Performance & Mobile | 20% |
| Structured Data & Social | 10% |
| AI & GEO Readiness | 5% |
| Category | Category score | Weight | Contribution |
|---|---|---|---|
| On-Page SEO | 66 | 25% | 16.5 |
| Technical SEO | 80 | 25% | 20 |
| Content & Links | 70 | 15% | 10.5 |
| Performance & Mobile | 55 | 20% | 11 |
| Structured Data & Social | 100 | 10% | 10 |
| AI & GEO Readiness | 60 | 5% | 3 |
| Overall score | 100% | 71 |
Issues are sorted by impact first, then by whether the check failed or only warned, then by check weight.
| Impact level | Meaning | Priority points |
|---|---|---|
| Critical | Can stop pages being crawled, indexed or served — fix first | 40 (fail ×2: 80) + weight |
| High | Strongly affects rankings, clicks or user experience | 30 (fail: 60) + weight |
| Medium | Worthwhile improvements | 20 (fail: 40) + weight |
| Low | Polish and best practice | 10 (fail: 20) + weight |
| Score | Grade | What it means |
|---|---|---|
| 90–100 | A | Excellent — only fine-tuning needed |
| 80–89 | B | Good — a few improvements will help |
| 65–79 | C | Fair — clear issues to fix |
| 50–64 | D | Poor — significant problems |
| 0–49 | F | Critical problems — start with the 'Fix these first' list |
No single tool sees everything. To help you trust the report, here is exactly what this analyzer does and does not do.
| Topic | What to know |
|---|---|
| JavaScript-rendered content | The analyzer reads the HTML your server sends. Pages built entirely in the browser (some single-page apps) may show fewer headings and links than Google sees after rendering. |
| Crawl size | It crawls up to 25 pages from your start URL. For very large sites, treat the crawl as a representative sample (the report says when the limit was reached). |
| robots.txt | The crawl respects your robots.txt rules, so disallowed pages are skipped and listed as such. |
| Speed measurements | Server response time is measured from our server. Core Web Vitals come from Google PageSpeed Insights (lab data) and real-user CrUX data when Google has enough visits. |
| Rankings, backlinks and keywords | Not part of this tool — they need third-party search data. Websolindia is building separate tools for them. |
| Blocked or private sites | Pages behind a login, a firewall or bot protection may refuse the analyzer (user agent WebsolindiaSEOBot). Private network addresses cannot be analyzed. |
| Privacy | The addresses you enter are used only to run the audit and are not stored. |
| Who | How the report helps |
|---|---|
| Business owners | See in plain language why a site may not attract visitors, and what to ask a developer to fix. |
| SEO professionals and agencies | Run a fast first-pass technical and on-page audit before a deeper review. |
| Web developers | Catch broken links, redirect chains, missing tags and slow pages before launch. |
| Bloggers and content teams | Find duplicate titles, thin pages and missing descriptions across a site. |
| Anyone studying a competitor | Run the audit on public competitor pages to compare technical foundations. |
A website SEO analyzer is a tool that loads your pages the way a search engine does, tests them against SEO best practices — titles, headings, links, speed, mobile friendliness, structured data and crawlability — and reports what to fix. The Websolindia Website SEO Analyzer runs 66 checks and gives you a 0–100 score.
Yes. It is completely free, needs no sign-up and has no usage fees. Fair-use limits apply so that it stays fast for everyone.
Each of the 66 checks has a weight. A pass earns the full weight, a warning half and a fail none; checks that are not applicable are left out. Category scores are combined using fixed category weights (On-Page 25%, Technical 25%, Performance 20%, Content & Links 15%, Structured Data 10%, AI readiness 5%). The method and a worked example are shown above.
Usually 30 to 90 seconds. Most of the time goes on crawling pages and, if enabled, waiting for Google PageSpeed Insights, which can take up to a minute.
A score of 80 or more (grade B or A) is good. Between 65 and 79 means there are clear issues to fix, and below 65 means significant problems. A perfect 100 is not required — fix the critical and high-impact items first.
Yes, through Google PageSpeed Insights. You get lab metrics and, when Google has enough real-user data, field data for Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift. If Google's free quota is busy, the rest of the report still works and those checks are left out of the score.
The analyzer crawls up to 25 pages of the same website, follows links in order, and obeys robots.txt. Pages blocked by robots.txt, behind a login, or beyond the page limit are not crawled. The report tells you when the limit was reached.
No. Your address is sent to our server only to fetch your public pages for this audit, and the results are processed in your browser. Nothing is saved, and the audit is not shared.
Yes, you can analyze any public page. It only reads publicly available information. For ethical use, audit your own sites or sites you have permission to review; competitor ranking, backlink and keyword analysis will come in other Websolindia tools.
Every tool chooses different checks, weights and crawl sizes. This analyzer publishes its checks and scoring method on this page so you can see exactly why a score is what it is. Use the trend between your own audits as the most useful measure.
Run an audit after any major change — a redesign, migration or new plugins — and at least once a month for active sites. Fixing the top issues and re-running the audit shows whether your score improves.
It does not report keyword rankings, backlinks, traffic or content quality, and it does not execute JavaScript. For these, speak to the Websolindia SEO team or watch for the upcoming Websolindia keyword, backlink and ranking tools.