SEO

Site health

A technical check-up of your site, from Vidrys’s own crawl: up to 95 checks, a score out of 100, and What to fix first.

By Garvit Sharma, Co-founder

SEO → Site health

Vidrys re-crawls your site once a week, reading up to your plan’s page allowance (Track 200, Grow 500, Scale 2,000, Custom 10,000 pages). Each crawl is graded. Run audit grades the latest crawl now; Re-run audit a few minutes after one re-grades the same crawl, and any later crawls the site again.

CheckIt asks
Pages return a usable statusDo your pages load, or do some answer with errors?
Redirects are directDoes a moved page go straight to its new address, or hop through several?
Internal links resolveDo the links between your own pages all lead somewhere?
Pages are indexableHave any pages told search engines to stay out?
Canonical tags are saneDoes each page say which address is the real one, and is it a sensible answer?
The sitemap matches the siteDoes your sitemap list the pages that exist, and only those?
Every page has a titleThe line search engines show as the headline of a result.
Titles are unique and well sizedNo two pages sharing a title, none too long to show or too short to mean anything.
Every page has a meta descriptionThe line shown under the headline. Google writes its own when you leave it empty.
Every page has exactly one H1One main heading per page — not none, not several.
Images carry alt textA description of each image for search engines and screen readers.
Pages carry real contentNo pages that are nearly empty.
Pages are distinct from each otherNo two pages saying the same thing at different addresses.
Pages are reachable by internal linksNo pages that only the sitemap knows about.
Core Web Vitals passGoogle’s own measure of whether the site loads fast and holds still. Measured on the home page and a sample of others; the check says how many.
The site is served over HTTPSEvery page on a secure address.

Those sixteen are the core. Every crawl since the full catalogue is graded on about 70 more, across the same four areas — among them: redirect loops and temporary redirects, links to redirects and over http://, meta refresh, canonicals that redirect, error, are noindex, relative or doubled, sitemap entries that are noindex or broken, hreflang codes and return links, pages more than three clicks deep, long, capitalised or parameter-laden addresses, soft 404s, pages robots.txt hides from Googlebot, the http:// site and the other www host redirecting, a missing page answering 404; several titles or descriptions on a page, a past year in a title, duplicate descriptions and H1s, heading order, long pages without subheadings, image sizes, the page language, the mobile viewport, character set, doctype, Open Graph and Twitter cards, structured data that does not parse, empty or “click here” link text, dead-end pages, plugins and frames, a favicon and Organization data on the home page; pages linked from only one other page and pages mostly code; mixed content, slow first byte, heavy HTML, no compression, many scripts or stylesheets, and no HSTS.

Four more sources join where you have them, and only then: Google index readings (pages Google has not indexed, or where it chose another canonical), Googlebot’s own visits from your logs (requests ending on errors or redirects, and how fast it is answered), links from other sites to pages that no longer exist, and pages opened in a real browser to find content, links and tags only JavaScript adds — up to your plan’s pages per audit (Track 50, Grow 100, Scale 400, Custom 1,000). A site without one of these is not marked down for it.

On-page and content checks grade only pages that answered: a 404 has no title because it is a 404, which Pages return a usable status already says. Each area keeps its share of the score — crawlability 38, on-page 30, content 20, performance 12 — shared out by how much each check matters: critical, high, medium or low, with notices at half a low. Each check passes, partly passes or fails, with the number of pages involved and what to do; What to fix first lists the twelve with the most points at stake, and every failing page is in Issues by page. Not measured on this run means the check could not be judged — usually because the crawl saw too little of the site to say anything true about it as a whole. That is reported as unmeasured, never guessed. Score capped. means one problem — search engines blocked, or too many pages marked not to be indexed — limits the score however good the rest is; the screen names it.

The first audit on the full catalogue says so above the score and is not compared with earlier ones — its score is on a new footing, and its many new checks are not “new issues”. Changes are tracked again from the next audit. A crawl from before the full catalogue is still graded on the sixteen, so its score means what it always did.

Since last audit, and the history

Since last audit counts issues as New, Still open or Resolved against the previous audit — an issue only counts as resolved when its page was read again and the problem was gone. Audit history lists every crawl graded, with score, coverage, pages and issues. Issues by page lists every failing check on every page and what was found — a title and its length, say — and each card under What to fix first opens its own pages there. Who fixes it says whether the change is one Vidrys proposes under Fixes — a title, meta description or canonical the page lacks, a title or description badly sized or shared, a sitemap page marked noindex, a dead page other sites link to, images without alt text — or yours, and why. Where Vidrys has proposed one, the row says where it stands.

Sites built in JavaScript. Where the deployment can open pages in a browser, the audit compares each rendered page with what the server sent and flags content, links and tags that only appear once scripts run. If pages come back empty or with no title while they look fine in a browser, tell us: we turn browser reading on per deployment. With a Cloudflare connection, Vidrys can serve search engines and AI crawlers a rendered copy of those pages — see Rendered copies for crawlers.

Internal links to add lists pages with one internal link in or none — hard for search engines to find, easy to rank low — and, under each, the pages that already mention its topic (its H1, or its title without the site name) without linking to it. Link those words to it. Taken from the latest crawl’s own text.

How Google crawls your site

If your site sends its access logs to Vidrys (the same setup as AI logs), How Google crawls your site shows Googlebot’s requests over four weeks: how many, what they were answered (2xx, 3xx, 4xx, 5xx), how fast, the pages it fetches most, and the ones where its requests end on errors. Bingbot and the other search crawlers are counted too. User agents are taken as sent — nothing here proves a request came from Google.

Google index

With Search Console connected, Google index asks Google about your pages one at a time — Google’s URL Inspection — and shows how many are indexed, how many are not and why, in Google’s own words (Crawled - currently not indexed, Discovered - currently not indexed, …), and the pages where Google chose another page as the original. Your plan sets how many pages are read a day (Track 100, Grow 200, Scale 600, Custom 2,000): pages never read go first, then the ones read longest ago, and a page is read again after a week, so the whole site cycles through. Check asks about one page now, from the same daily allowance, which comes back at midnight UTC (05:30 IST).

Speed for real visitors

Speed for real visitors charts your site’s Core Web Vitals — Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift — from the Chrome UX Report: real Chrome visitors, each point a 28-day window, published weekly, for the last six months, phones and desktops separately. The dashed line is Google’s “good”. The audit’s speed check reads a few pages when it runs; this is the whole site over time, so a slowdown shows as the line bending and a fix as it straightening. A site with too few visitors for Chrome to report on shows no field data.