Trackz logoTrackz
Back to Wiki

SEO Health Monitoring in Trackz

Catch missing meta tags, broken links, duplicate content and other on-page SEO regressions automatically with daily or weekly site audits — graded on a 0–100 health score.

Updated May 7, 2026

Overview

SEO Health Monitoring in Trackz crawls every monitored site on a daily or weekly schedule, runs 14 on-page SEO detectors against each crawled page, and rolls the findings up into a single 0–100 health score so you can spot regressions at a glance.

Audits surface the four classes of failure that quietly hurt rankings most often:

  • Content — missing or duplicate <title>, <meta name="description">, multiple or missing <h1> tags.
  • Indexing — missing robots.txt, missing sitemap.xml, missing canonical link, missing or partial Open Graph tags, accidental <meta name="robots" content="noindex">.
  • Structure — redirect chains longer than 2 hops.
  • Links — broken pages (HTTP 4xx/5xx) and broken outbound links sampled from the crawl.

Every finding is graded as CRITICAL, WARNING, or INFO, and every issue is anchored to the exact URL where it was detected so you can hand off fixes to the right team.

Prerequisites

  • A Trackz workspace on the Pro Starter plan or higher (SEO Health is gated to paid plans — Free and legacy Starter cannot enable it).
  • At least one website monitor already created in Trackz. SEO audits attach to existing websites; they do not create new ones.

Step 1 — Add an audit

  1. From the Trackz dashboard sidebar, open SEO Health under the Checks group.
  2. Click Add Site.
  3. Pick the website you want to audit from the dropdown. Only websites that don't already have an SEO audit are listed.
  4. Choose a frequency:
    • Daily — best for sites under active rollouts where regressions need to be caught within hours.
    • Weekly — best for stable production sites where a daily crawl would be noise.
  5. Set Max pages per crawl (1–500). The crawler does a same-origin BFS up to this limit. 50 is a sensible default.
  6. Click Add Audit.

The first audit fires almost immediately on the next scheduler tick — there's no need to manually run it.

Step 2 — Read the score

Each crawl produces a Health Score between 0 and 100, computed from the issues found:

score = 100 − (criticals × 10 + warnings × 3 + infos × 1)

The score is clamped to [0, 100]. The dashboard colour-codes scores at standard SEO audit thresholds:

Range Label Meaning
90–100 Good Minor info-level issues at most.
50–89 Needs Work One or two warnings or a handful of info-level findings.
0–49 Poor Critical issues present — likely impacts indexing or rankings.

Step 3 — Drill into issues

Click any audited site in the SEO Health list to open the detail page. Issues are grouped into four cards:

  • Content — missing or duplicate titles and descriptions, missing or multiple <h1> tags.
  • Indexing — robots, sitemap, canonical, Open Graph, accidental noindex.
  • Structure — redirect chains.
  • Links — broken pages (the crawled page itself returned 4xx/5xx) and broken external links sampled during the crawl.

Each issue shows:

  • The severity badge (CRITICAL / WARNING / INFO).
  • The exact URL where the issue was detected (clickable, opens in a new tab).
  • Evidence key/value pairs that explain why the detector fired (e.g. count: 3 for MULTIPLE_H1, redirectCount: 4 for REDIRECT_CHAIN, missing: ["og:image"] for MISSING_OG_TAGS).

Testing

To verify the audit is working before relying on it for alerts:

  1. Open the site detail page (/seo/<targetId>).
  2. Click Run Audit Now. The crawler will fire immediately and the page will refresh with the latest result within a few seconds.
  3. Verify the score, pages crawled count, and duration match what you expect for the site.

If the audit returns score: 0 with an error field set, the crawler failed to fetch the root URL. Common causes are listed under Troubleshooting below.

Issue catalog

Type Severity Category When it fires
BROKEN_PAGE CRITICAL LINKS A crawled page returned a 4xx or 5xx HTTP status.
BROKEN_LINK WARNING LINKS An outbound link sampled during the crawl returned 4xx/5xx on HEAD.
MISSING_TITLE CRITICAL CONTENT Page has no <title> or the title is empty.
MISSING_DESCRIPTION WARNING CONTENT Page has no <meta name="description"> or it is empty.
DUPLICATE_TITLE WARNING CONTENT Two or more crawled pages share the same <title>.
DUPLICATE_DESCRIPTION INFO CONTENT Two or more crawled pages share the same meta description.
MISSING_OG_TAGS INFO INDEXING One or more of og:title, og:description, og:image is absent.
MISSING_ROBOTS WARNING INDEXING /robots.txt returned 4xx/5xx or failed to fetch.
MISSING_SITEMAP WARNING INDEXING /sitemap.xml returned 4xx/5xx or failed to fetch.
MISSING_H1 CRITICAL CONTENT Page has no <h1> tag.
MULTIPLE_H1 WARNING CONTENT Page has more than one <h1> tag.
MISSING_CANONICAL WARNING INDEXING Page has no <link rel="canonical">.
UNINTENDED_NOINDEX CRITICAL INDEXING Page has <meta name="robots" content="...noindex...">.
REDIRECT_CHAIN WARNING STRUCTURE The root page took more than 2 hops to resolve.

Troubleshooting

The audit returns score 0 with error: "DNS failure" or error: "fetch failed". The crawler couldn't reach the root URL. Check that the site is publicly reachable from the public internet — Trackz crawls from a generic Trackz user agent (TrackzSeoBot/1.0) and does not authenticate. If the site is behind basic auth or a private network, SEO audits won't work.

MISSING_ROBOTS or MISSING_SITEMAP keep showing up even though the files exist. Trackz fetches /robots.txt and /sitemap.xml literally — i.e. against the same hostname as the website URL. If your robots/sitemap is served from a different host (for example a CDN subdomain) or only via redirect, the detector will not see it.

UNINTENDED_NOINDEX triggered on a page where I want noindex. The detector fires whenever a noindex directive is detected; it doesn't try to guess intent. If a staging or admin URL legitimately needs to be noindex'd, you can either (a) exclude that URL by setting a low maxPages so the BFS never reaches it, or (b) treat the warning as expected — it will not lower the audit's CRITICAL count if you mentally classify it as intentional.

REDIRECT_CHAIN fires on every audit. Your site is sending more than 2 redirects between the crawled URL and the final response. Common causes: trailing-slash → no-slash → www → https chains. Consolidate to a single 301 redirect at the edge.

The score is much lower than I expect. Open the detail page and check issuesByCategory — duplicate titles or descriptions across many pages will multiply quickly (each duplicate page contributes its own issue row). Consolidating duplicate metadata is usually the highest-leverage fix.