---
title: "SEO tools: page checks, site crawls and search score"
description: "Prove you own a hostname, run a single-page SEO check or a bounded site crawl in Backoffice, read the issues and the search score, and see Core Web Vitals history."
canonical_url: "https://noxtica.com/docs/observability/seo-tools/"
markdown_url: "https://noxtica.com/docs/observability/seo-tools/index.md"
last_updated: 2026-10-27
published: 2026-10-27
section: "observability"
section_title: "Observability"
site: "Noxtica"
language: "en"
source: markdown
---

# SEO tools: page checks, site crawls and search score

The SEO tools in Backoffice check technical search-engine health on hostnames your workspace owns. You can check one page, crawl a hostname in the background, and follow a score that is recomputed after every completed crawl.

Marketing or web teams run them. A workspace administrator starts checks and crawls; viewers can read the results.

## What it is

Availability depends on your plan, role and the modules enabled for your organisation.

The tools live in Backoffice under the sidebar group SEO & Marketing: SEO Check, Site Crawls, Search Console and Search Score. Each page works on one domain at a time; pick the domain in the selector at the top of the page.

| Tool | What it does |
| --- | --- |
| SEO Check | Fetches one page you name and reports a score and a list of issues, most important first. |
| Site Crawls | Crawls a hostname in the background, within a page budget and the rules of robots.txt. |
| Search Score | Shows the latest daily score for each crawled hostname and the issues behind it. |
| Core Web Vitals history | Field (real-user) and lab (single test-browser render) panels under the SEO Check page. |
| Search Console | Connects Google Search Console for a domain. See [Connect Google Search Console for a domain](https://noxtica.com/docs/observability/search-console/). |

Results are signals for your team to review. They are not a ranking forecast and not a verdict on a site.

### Ownership proof

Noxtica fetches only hostnames you can prove you control. It re-checks the proof on every request and never reuses an earlier result.

| Proof | What it covers |
| --- | --- |
| A relay hostname whose DNS TXT verification is active | The whole registered domain (for example `shop.example.com` proves `www.example.com` too). Backoffice labels this "Verified via relay hostname (registrable-domain-level)". |
| A Search Console Domain property (`sc-domain:example.com`) | The whole registered domain. |
| A Search Console URL-prefix property | The exact host of that property, and nothing wider. |

A relay hostname proof is zone-wide, so only verify a relay hostname on a zone you fully control. For relay hostnames, see [Content Security Policy, hosts and first-party relay](https://noxtica.com/docs/sdk/csp-and-relay/).

### Limits you will notice

- A check fetches the page with a 10-second timeout. Running the same URL again within a minute returns the cached result.
- Checks and crawls are each limited to 30 requests per 60 seconds for your workspace.
- A crawl stops at a page budget. The default is 40 pages and the platform bounds it between 10 and 90. Backoffice shows "N of M pages" for each crawl, so the budget in force is visible. Crawls do not promise to cover every reachable page.
- Crawls honour robots.txt for the product token `noxtica`, and honour a `Crawl-delay` of up to 10 seconds.

## Prerequisites

- Role: viewer or higher to read results; administrator to run a check, start a crawl or connect Search Console. Running a check or a crawl does not ask for step-up MFA; connecting Search Console does.
- SEO checks enabled for your organisation. If they are not, Backoffice shows "SEO checks are not available right now".
- Site crawls enabled for your organisation. Without them Backoffice shows "Site crawls are not available in this environment yet".
- A hostname you own, with one of the proofs above.
- The domain added to your workspace under Backoffice → Domains. See [Domains, site keys and the install card](https://noxtica.com/docs/backoffice/domains/).

## Steps

### 1. Prove ownership of the hostname

Choose one:

- Backoffice → Integrations & API → Relay Hostnames: add and verify a relay hostname on your domain.
- Backoffice → SEO & Marketing → Search Console: connect a verified Search Console property for the domain.

Without a proof, checks and crawls answer "Verify hostname ownership first".

### 2. Run a single-page check

1. Backoffice → SEO & Marketing → SEO Check.
2. Choose the domain. The Page URL field is pre-filled with `https://<your-hostname>/`.
3. Enter the full URL of the page, for example `https://example.com/pricing`.
4. Press **Run check**.

The result shows the score, the HTTP status, when the check ran, and how the hostname was verified. Issues are listed with their severity and guidance. The "Recent checks" list below keeps earlier runs with their scores.

A check reviews title and meta description, headings, indexability and canonical tags, images, structured data, security headers, language and viewport tags, and time to first byte.

### 3. Fix the issues and run the check again

Fix the page on your site and press **Run check** again. If you check the same URL within a minute, you see the cached result; wait a minute for a fresh fetch.

### 4. Start a site crawl

1. Backoffice → SEO & Marketing → Site Crawls.
2. Choose the domain and enter the **Hostname to crawl**, for example `example.com`.
3. Leave **Also check pages my robots.txt disallows** off unless you own the domain and need those pages checked. When ticked, Noxtica fetches disallowed pages too and still reports them as "Blocked by robots.txt". The choice is written to the audit log.
4. Press **Start crawl**.

The crawl is queued and runs in the background. The Crawl history shows each run with its status: Queued, Running, Partial, Complete or Failed. A Partial run stopped because of a platform time or request budget and resumes on a later run. A crawl that reaches its page budget is marked Complete even when more pages exist. A crawl re-checks ownership each time it resumes and fails if the proof no longer holds.

The crawl starts from your hostname and from its sitemap, follows internal links, and stays inside the hostname. If the proof covers the whole registered domain, its subdomains are in scope too. It never widens its scope while running.

### 5. Read the crawl

Open a crawl in the history. The detail view lists the pages (with HTTP status, canonical URL, and badges for noindex and "robots.txt blocked", and how the page was discovered: Seed URL, Sitemap or Internal link) and the issues found, each marked Site-wide or Page.

### 6. Follow the search score

Backoffice → SEO & Marketing → Search Score. The page shows the latest daily rollup for each crawled hostname: the mean technical score across the pages the crawl fetched, plus that day's issue counts by severity. Open a hostname to see the issues behind its score. A new rollup appears after each completed crawl. Before the initial completed crawl the page says "No score rollup yet".

### 7. Read Core Web Vitals history

On the SEO Check page, below the check, two panels show history for the hostname you checked:

- **Field Core Web Vitals** uses the Chrome UX Report: real visitors' Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift, rated Good, Needs improvement or Poor.
- **Lab Core Web Vitals** uses one test-browser render of your page: Largest Contentful Paint, Cumulative Layout Shift and Total Blocking Time (a lab proxy).

Lab and field numbers are never merged. Both panels fill only when the sampling that feeds them is enabled for your organisation, and the field panel needs enough Chrome visitors. Otherwise they show "No field Core Web Vitals data yet" or "No lab Core Web Vitals data yet".

### 8. Get alerted when the score drops

Create an alert rule from the SEO score or SEO issue templates. See [Uptime checks, alerts, status reports and the status page](https://noxtica.com/docs/observability/uptime-alerts-status/).

## Verify it works

- A check returns a score from 0 to 100 and an issue list. Each page starts at 100. For each distinct issue code, Noxtica takes off 25 points for a critical issue, 10 for a warning and 2 for an info issue, and never goes below 0.
- If the page could not be fetched, the check shows no score and a message that names the failure class (see Troubleshooting).
- A crawl row moves from Queued to Running and ends at Complete or Partial, with "N of M pages".
- Search Score lists your hostname with a score and a "Computed" time once a crawl completes.

Example issues, by severity:

| Severity | Examples (issue codes) |
| --- | --- |
| Critical | `SEO_STATUS_4XX`, `SEO_STATUS_5XX`, `SEO_TITLE_MISSING`, `SEO_H1_MISSING`, `SEO_NOINDEX_UNEXPECTED`, `SEO_SITE_WIDE_NOINDEX`, `SEO_VIEWPORT_MISSING` |
| Warning | `SEO_REDIRECT_CHAIN_LONG`, `SEO_TITLE_LENGTH_OUT_OF_RANGE`, `SEO_META_DESCRIPTION_MISSING`, `SEO_CANONICAL_MISMATCH`, `SEO_ORPHAN_PAGE`, `SEO_IMG_ALT_MISSING`, `SEO_TTFB_SLOW` |
| Info | `SEO_ROBOTS_BLOCKED`, `SEO_META_DESCRIPTION_LENGTH_OUT_OF_RANGE`, `SEO_STRUCTURED_DATA_ABSENT`, `SEO_OG_TAGS_ABSENT`, `SEO_SECURITY_HEADER_MISSING` |

## Troubleshooting

| Symptom | Cause | Fix |
| --- | --- | --- |
| "Verify hostname ownership first" | No active relay hostname or Search Console proof covers the hostname | Complete step 1. A URL-prefix property covers its exact host only; use a Domain property or a relay hostname for subdomains. |
| "Too many checks" or "Too many crawl requests" | More than 30 requests in 60 seconds | Wait a few minutes. |
| "Enter a valid page URL" or "Enter a hostname like example.com" | The URL or hostname is malformed | Enter a full URL with https:// for checks, and a bare hostname for crawls. |
| "SEO checks are not available right now" | SEO checks are not enabled for your organisation | Ask your account team. |
| "Site crawls are not available in this environment yet" | Crawling is not enabled for your organisation | Ask your account team. |
| Check shows "The page took too long to respond" | The page did not answer within 10 seconds | Make sure the server responds quickly, then run it again. |
| Check shows "This page cannot be checked because its address is not a public website address" | The URL resolves to a private or internal address | Use a public https:// URL. |
| Check shows "Your domain's DNS changed during the check" | DNS changed while the check ran, so it stopped for safety | Keep DNS records stable and run the check again. |
| Check shows "The page returned an error status" | The page answered 4xx or 5xx | Fix the page, then run it again. |
| Crawl shows fewer pages than you expected | The page budget was reached, robots.txt disallows pages, or robots.txt could not be fetched | Compare the "N of M pages" count with your site size and check your robots.txt. A host whose robots.txt answers with a server error or a network error is not crawled in that run. |
| Crawl is Failed | Ownership proof lapsed while the crawl was resumed, or a temporary fault | Re-establish the proof and start a new crawl. |
| Field panel shows "Chrome UX Report has no real-user data for this hostname yet" | Too few Chrome visitors | Wait; the panel fills once enough data exists. |
| Search Score says "No score rollup yet" | No crawl has completed for the hostname | Start a crawl and wait for it to complete. |

## Related

- [Connect Google Search Console for a domain](https://noxtica.com/docs/observability/search-console/) for the Search Console proof and position trend.
- [Uptime checks, alerts, status reports and the status page](https://noxtica.com/docs/observability/uptime-alerts-status/) for score alerts.
- [Observability overview: RUM, replay, APM and ingest](https://noxtica.com/docs/observability/overview/) for the rest of the observability pages.
- [Domains, site keys and the install card](https://noxtica.com/docs/backoffice/domains/) for adding a domain.
- [Privacy](https://noxtica.com/privacy/) and [Security](https://noxtica.com/docs/security/) for data handling.
