General Conventions
Rendered DOM
HTML values are normally extracted after Chromium has loaded the page and JavaScript has had a short time to render. They can differ from the original HTML returned by the server.
Text cleaning
Displayed text is trimmed and consecutive whitespace is collapsed to one space. Character lengths count Unicode characters after that cleaning step.
URL identity
URLs used for crawl and link identity are resolved, limited to HTTP or HTTPS, stripped of fragments and common tracking parameters, and given consistently ordered query parameters.
Empty values
A blank cell or - generally means the value was absent or unavailable. It does not always mean the page explicitly declared an empty value.
000
000 is used only when the app has no valid HTTP response code for an external header check. It is not an HTTP status code and does not mean that the server returned zero.
Internal Links: Page
The Page group identifies the requested crawl resource and summarises its type, response and practical indexability classification.
Address
The normalised URL represented by the crawl row. For a redirect, this remains the requested address so the redirecting URL has its own result row; the destination is shown in Redirect URL and URL Details.
Fragments and common tracking parameters are removed before crawl identity is stored. The value can therefore differ from the exact spelling of a link in the source HTML.
Content Type
The MIME content type observed for the row. For a rendered document, the app prefers the document type reported by Chromium and can fall back to the HTTP Content-Type header. For a direct asset, the value comes from response headers.
Examples include text/html, image/jpeg, application/pdf, text/css and application/javascript. Parameters such as charset=UTF-8 can be included when supplied.
Content Type describes the response seen by this crawl. It does not guarantee that the body is valid for that MIME type.
Language
The app first reads the rendered document's <html lang> value. If it is absent, it uses the first value from the HTTP Content-Language response header where available.
Example: en-GB.
This is a declared language, not automatic language detection. An empty value means no supported declaration was captured.
Status Code
The HTTP response status observed for the requested URL. Examples include 200, 301, 302, 404, 410 and 500.
For a redirecting row, this is the first redirect status, while Redirect Status Codes records the observed chain and final response. A network failure can leave the field empty because DNS, TLS and connection failures occur before an HTTP response exists.
Status
A human-readable interpretation of Status Code. Known values include OK, Moved Permanently, Found, Not Found, Gone, Too Many Requests and Internal Server Error.
For less common official codes, the app uses the status class where necessary, such as Redirect, Client Error or Server Error. Status is an interpretation; Status Code is the underlying observation.
Indexability
A two-value app classification:
Indexablemeans the app did not detect one of its supported exclusion conditions.Non-Indexablemeans it detected a redirect, error, robots block, noindex directive or canonical to another URL.
This is a diagnostic assessment, not confirmation of a search engine's index. Search engines can make different canonical, duplication, rendering or quality decisions.
Indexability Status
The first applicable reason selected in this order:
| Value | Rule used by the app |
|---|---|
| Redirected | Status is in the 3xx range. |
| Client Error | Status is in the 4xx range. |
| Server Error | Status is 500 or greater. |
| Error | A crawl or extraction error was recorded. |
| Blocked | The URL matched a disallow rule in the fetched robots.txt policy. |
| Noindex | Meta robots or X-Robots-Tag contains the token noindex or none. |
| Canonicalised | One valid canonical points to a different normalised URL. |
| Indexable | None of the supported non-indexable conditions was detected. |
Because the rules are ordered, a redirected URL is labelled Redirected even if another directive is also present.
Internal Links: Content
The Content group measures the main text and descriptive elements extracted from the rendered page.
Size (Bytes)
The size of the individual response body, not the combined weight of the page and all of its resources.
For a rendered page, the app prefers Chromium's decoded body size, then encoded body size. If those values are unavailable, it falls back to Content-Length. For a directly requested asset, Content-Length may be the only available size.
Decoded and encoded sizes can differ because of compression. Cached responses, streamed responses and missing headers can also leave this value empty or make it differ from a browser developer-tools total.
Word Count
The number of whitespace-separated words found while walking text nodes in the rendered document body. Repeated whitespace is collapsed. Text inside script, style, noscript, svg, canvas and template is excluded.
Visible navigation, footer, cookie-banner and interface text is not automatically removed. The count is therefore rendered page text, not a linguistic or editorial word count and not necessarily the article-only total.
Title
The cleaned value of the rendered document's document.title, normally derived from the HTML <title> element.
If no title is available, the value is empty. The crawler records the result after rendering, so JavaScript can alter it.
Title Length
The number of Unicode characters in the cleaned Title. Whitespace collapsed during extraction is counted as one character.
This is a character count, not a search-result pixel-width prediction. Search engines can rewrite titles and use different fonts and display widths.
Meta Description
The cleaned content value from the first rendered meta element whose name or property equals description, compared case-insensitively.
Example source:
<meta name="description" content="Example description">
The displayed value is Example description. An empty value means no populated supported element was captured.
Meta Description Length
The number of Unicode characters in the cleaned Meta Description.
This is not a pixel measurement and does not predict whether a search engine will display or truncate the description.
H1
The cleaned rendered text of the first <h1> element in document order. The app uses rendered inner text where available and falls back to text content.
If the page has several H1 elements, only the first text is displayed here. H1 Tags records the total number.
H1 Length
The number of Unicode characters in the cleaned first H1 value. It is 0 when no first H1 text was captured.
Internal Links: Structure
Structure columns are raw element counts from the rendered DOM. They describe markup quantity, not whether the structure is semantically correct.
H1 Tags
The number of rendered <h1> elements. This count includes empty and visually hidden H1 elements if they remain in the DOM.
H2 Tags
The number of rendered <h2> elements.
H3 Tags
The number of rendered <h3> elements.
H4 Tags
The number of rendered <h4> elements.
H5 Tags
The number of rendered <h5> elements.
H6 Tags
The number of rendered <h6> elements.
The H1-H6 counts do not determine whether headings form a logical hierarchy. Use Page Analysis and its Document Outline to inspect order and text.
P Tags
The number of rendered <p> elements, including empty paragraphs and paragraphs used for interface content.
LI Tags
The number of rendered <li> elements. This includes list items in ordered lists, unordered lists, menus and any custom structure that uses an li element.
A Tags
The number of all rendered <a> elements, whether or not they contain a usable href.
This raw HTML count includes email links, telephone links, same-page fragment links, JavaScript links and anchors without destinations. It is intentionally different from Outlinks. See [A Tags compared with Outlinks](08-link-metrics.md
a-tags).
TABLE Tags
The number of rendered <table> elements. It does not count individual rows or cells and does not determine whether a table is used appropriately.
IMG Tags
The number of rendered <img> elements available through document.images. CSS background images are not <img> elements and are not counted here.
IMG Alt
The number of rendered images that have an alt attribute containing non-whitespace text.
<img src="house.jpg" alt="Victorian house">
The crawler measures presence and content, not whether the alternative text is useful or accurate.
IMG Empty Alt
The number of rendered images where the alt attribute exists but is empty or whitespace-only.
<img src="decoration.svg" alt="">
Empty alt text can be correct for a decorative image, so this count is not automatically an error count.
IMG No Alt
The number of rendered images where the alt attribute is absent.
<img src="team.jpg">
For a normally extracted page, the following relationship should hold:
IMG Alt + IMG Empty Alt + IMG No Alt = IMG Tags
Internal Links: Links
The Links group separates occurrence counts from distinct URL counts. Only qualifying HTTP or HTTPS content links from rendered <a href> elements contribute.
Inlinks
The total number of captured internal link occurrences pointing to this URL from crawled internal pages. Repeated links from one source page count repeatedly.
If Home links to Contact in the header, body and footer, Home contributes three Inlinks to Contact.
Inlinks is recalculated from stored occurrences as source pages complete, so the value can increase during a crawl. It is not an internet-wide backlink count.
Unique Inlinks
The number of distinct normalised internal source URLs containing at least one qualifying link to this URL.
A source page contributes at most one Unique Inlink even when it links to the destination many times. This answers "how many crawled internal pages link here?" rather than "how many links point here?"
Outlinks
The total number of qualifying internal link occurrences from this page. Repeated anchors to the same target each count.
Qualifying links resolve to HTTP or HTTPS content destinations. Empty links, non-HTTP schemes, same-page fragments and anchor targets that clearly identify static/media assets are excluded. Cross-page fragments count after the fragment is removed.
Outlinks does not include external destinations; those contribute to External Outlinks. It also does not include embedded Resources.
Unique Outlinks
The number of distinct normalised internal target URLs linked from this page.
Fragments and common tracking parameters do not create separate unique targets. Multiple occurrences to one target produce multiple Outlinks but one Unique Outlink.
External Outlinks
The total number of qualifying link occurrences from this page to targets whose host differs from the crawl scope host.
It uses the same link exclusions as Outlinks. Subdomains and different explicit ports are external. The value is an occurrence count, so repeated links to the same external URL count repeatedly.
Unique External Outlinks
The number of distinct normalised external target URLs linked from this page. It counts URLs, not external domains.
For example, links to two different articles on the same external website contribute two Unique External Outlinks.
Crawl Depth
The discovery distance from the crawl starting URL:
- the start URL has depth
0; - a URL first queued from the start page normally has depth
1; - a URL first queued from a depth-1 page normally has depth
2.
The queue keeps one entry per normalised URL and retains its first accepted discovery depth. Because discovery uses a breadth-first queue, this normally represents the shortest observed link path. It is not a link score or authority calculation.
Internal Links: Directives
The Directives group combines raw indexing signals with a simplified canonical interpretation.
Meta Robots Tag
The cleaned content value from the first rendered meta element whose name or property is robots, compared case-insensitively.
Example:
<meta name="robots" content="noindex, follow">
The displayed value is noindex, follow. The app checks tokenised content for noindex or none when deriving Indexability.
X-Robots-Tag
The value of the HTTP X-Robots-Tag response header. Multiple supplied values can be joined for display.
This directive is available for non-HTML files as well as HTML responses. The app checks it for noindex or none when deriving Indexability.
Meta Refresh
The cleaned raw content value of the first rendered element matching:
<meta http-equiv="refresh" content="5;url=/new-page/">
The displayed value retains the delay and destination text as supplied. It is not included in the HTTP redirect chain because a meta refresh is a document instruction rather than an HTTP redirect response.
Canonical Link
The URL from the first rendered <link rel="canonical"> element. Relative values are resolved against the document base URL, and fragments are removed.
If several canonical elements exist, this field shows the first interpretable value while Canonical Status reports Multiple.
Canonical Status
A simplified canonical classification:
| Value | Calculation |
|---|---|
| Self-referencing | Exactly one valid canonical normalises to the row Address. |
| Canonicalised | Exactly one valid canonical normalises to another URL. |
| Missing | No canonical element was captured. |
| Multiple | More than one canonical element was captured. |
| Invalid | A canonical exists but cannot be resolved to a valid HTTP or HTTPS URL. |
Normalisation removes fragments and common tracking parameters before self-reference comparison. The app does not fetch the canonical target solely to validate its response or indexability.
Internal Links: Response
The Response group records timing, headers and redirects observed during this crawl.
Response Time
The navigation or request duration in milliseconds.
For a rendered page, the app prefers Chromium's navigation performance duration and falls back to elapsed wall-clock navigation time. For a direct asset, it uses elapsed request time until response headers or an error are received.
This is not pure server Time to First Byte. It can include redirects, transfer, browser processing and page load activity, so it should be used as a comparative crawl diagnostic rather than a laboratory performance score.
Last Modified
The value captured from the HTTP Last-Modified response header where supplied. It is empty when the server omits the header.
This is server-provided metadata. The app does not verify that it accurately reflects the page's last editorial change.
Redirect URL
The first destination observed for a redirecting requested URL. For example:
/old-page -> 301 -> /new-page
Redirect URL for /old-page is /new-page after URL resolution and normalisation. Open Redirects in URL Details to inspect more than one hop.
Redirect Type
A classification based on the first captured HTTP redirect status:
Permanentfor301or308;Temporaryfor302,303or307;- blank when no supported HTTP redirect type was captured.
This field does not classify meta refresh or JavaScript navigation as an HTTP redirect type.
Redirect Status Codes
The captured sequence of HTTP redirect statuses, normally followed by the final response status where available. Values are separated by >.
Example:
301 > 302 > 200
The row's Status Code remains the first redirect status. This field shows the broader response path.
HTTP Version
The protocol reported by Chromium's navigation performance entry. Common normalised values are HTTP/1.1, HTTP/2 and HTTP/3.
The value can be empty when the browser does not expose it, when timing information is restricted, or for a direct asset row that was not rendered as a document.
Internal Links: Technical
The Technical group supports duplicate investigation, exact URL handling and crawl auditing.
Content Hash
An eight-character hexadecimal FNV-1a hash calculated from cleaned rendered text nodes used by the crawl extractor. Eligible text segments are joined logically with a space; case and punctuation remain significant.
Pages with the same captured and normalised text should produce the same hash within a crawl. A matching hash is a useful exact-text duplicate indicator, but it does not prove that HTML, links, media, metadata or visual presentation are identical.
Non-HTML resources and pages where extraction failed can have an empty hash.
URL Encoded Address
The Address passed through standard URI encoding so unsafe characters are percent-encoded while URL-reserved characters remain meaningful.
This is useful for diagnostics and export. It is not a second crawl identity and is not an SEO score.
Crawl Timestamp
The time at which the row was built, stored as an ISO 8601 timestamp. The value includes timezone information, normally the Z suffix for UTC.
It records this crawl observation, not the publication or modification date of the page.
External Links Columns
The External Links table groups qualifying external link occurrences by normalised target URL. Discovering a target does not automatically request it.
Row
The sequential display position in the current filtered and sorted result set. Row is presentation data, not a persistent URL identifier.
Address
The normalised external HTTP or HTTPS target URL. One row represents one target URL, not one occurrence and not one domain.
Content Type
The Content-Type response header returned by Check headers, where available. It is usually blank before a check.
The value describes the limited header response and does not mean the external body was rendered or fully downloaded.
Status Code
An official HTTP status from 100 through 599 returned by the external header request. The app starts with HEAD and retries with GET only for 405 or 501.
000 means no valid HTTP response code is available. Typical reasons include not yet checked, DNS failure, TLS failure, timeout, blocked connection or another error before a response arrived.
For an external redirect, the redirect response itself, such as 301 or 302, is retained; the app does not crawl through the external site to replace it with the destination's final status.
Status
The readable interpretation of Status Code. Examples include OK, Moved Permanently, Found, Forbidden and Not Found.
Before checking, it is <none>. A transport failure can display Error. If a network API exposes a non-standard numeric value, the public status remains 000 and URL Details identifies it as a non-standard response rather than pretending it is an HTTP code.
Crawl Depth
The lowest depth of any crawled internal source page linking to the external target, plus one.
External depth = minimum linking source depth + 1
A direct external link from the start page therefore has depth 1.
Inlinks
The total number of captured external link occurrences from crawled internal pages to this target. Repeated links from one page count repeatedly.
This is not a web-wide backlink figure and is not deduplicated by source page. Open the Inlinks tab in URL Details to inspect the occurrences.
Page Analysis Variables
Page Analysis is separate from a site crawl. It inspects the page currently open in the persistent Browser tab after a short settle period. While its sidebar remains open, completed browser navigations and URL-changing in-page navigations trigger a fresh analysis automatically.
Title and Title characters
Title is the cleaned rendered document.title. Title characters is its Unicode character count after whitespace cleaning.
Meta description and Meta description characters
The content of the first rendered description meta element and its Unicode character count.
H1
H1 is the cleaned text of the first rendered H1.
Element counts
Raw counts of rendered elements in the current DOM:
| Count | Element included |
|---|---|
| H1 | <h1> |
| H2 | <h2> |
| H3 | <h3> |
| H4 | <h4> |
| H5 | <h5> |
| H6 | <h6> |
| P | <p> |
| LI | <li> |
| A | Every <a>, including anchors without href. |
| TD | <td> data cells; <th> header cells are not included. |
These are element counts, not counts of populated or visible elements. JavaScript additions and removals made before analysis affect the totals.
Words
The whitespace-separated count of rendered body text after excluding text inside script, style, noscript, SVG, canvas and template elements. It includes stop words and visible interface text.
Words after stop-word filtering
The number of tokens used for phrase analysis after the app:
- converts text to lowercase;
- replaces punctuation other than apostrophes and hyphens with spaces;
- trims leading and trailing hyphens;
- removes one-character tokens;
- removes words in the app's built-in English stop-word list.
This is a keyword-analysis token count, not the crawl table's Word Count.
Path
The browser page's URL pathname. The query string and fragment are not shown in this field.
Images
The number of image entries returned from the rendered document.images collection, up to the Page Analysis collection limit of 300.
Missing alt and Empty alt
Missing alt counts returned images with no alt attribute. Empty alt counts returned images with an alt attribute that is empty or whitespace-only.
Load
The rounded navigation duration in milliseconds reported by Chromium for the currently loaded browser page. It is not a Core Web Vital and not pure server response time.
Content type
The rendered document's document.contentType value.
Canonical
The resolved href of the first rendered canonical link element. Page Analysis does not assign the Canonical Status classification shown in crawl results.
Robots meta
The cleaned content of the first rendered robots meta element. It does not include X-Robots-Tag, which is an HTTP header rather than a DOM element.
First paragraph
The cleaned text of the first rendered <p> element in document order that contains non-empty text. It may be interface, introductory or cookie text if that is the first populated paragraph in the DOM.
Document outline
Up to 300 non-empty rendered H1-H6 elements are extracted in document order, including each tag name and cleaned text. The current sidebar displays the first 80. Paragraphs are not included in the outline.
The outline helps inspect heading order but does not itself determine accessibility or document conformance.
Top words
The most frequent individual tokens after stop-word filtering. Results are ordered by count descending and alphabetically when counts tie.
Top 2-word and Top 3-word phrases
Counts of adjacent two-token and three-token sequences in the filtered token stream. Removing stop words can make words adjacent for phrase counting even when a stop word appeared between them in the original sentence.
The extractor calculates up to 25 phrases per length; the current sidebar displays the first 10. Four-word and five-word phrase data is also calculated internally but is not currently shown.
Links list
Up to 500 rendered <a href> elements are extracted and the current sidebar displays the first 80. Each item labels cleaned Anchor Text, resolved Href, and the optional Title attribute.
Unlike crawl Outlinks, this inspection list does not apply the content-link exclusion algorithm. It can therefore include fragment, mail, telephone or JavaScript destinations.
Images list
Up to 300 rendered images are extracted and the current sidebar displays the first 80. Each item shows:
Alt: populated alt text,Missing alt text, orEmpty alt text;Src: the current or resolved image source URL;Title: the imagetitleattribute when present.
CSS background images are not part of document.images and are not listed.
Site files
Page Analysis requests /robots.txt and /sitemap.xml at the analysed page's origin. Redirects are followed, each request has a ten-second timeout, and text previews are limited to 80,000 characters.
Found means the request returned a successful HTTP status. It does not validate the syntax or completeness of the file.
URL Details Variables
URL Details combines the selected summary row with occurrence, redirect and header records from SQLite.
Final URL
For an external header check, the resolved destination recorded from the response or redirect. Internal redirect rows normally use Redirect URL and the Redirects tab for the same concept.
Raw Status Code
A non-standard numeric response value retained for diagnostics when it falls outside the official 100 to 599 HTTP range. The public Status Code remains 000.
Robots.txt Allowed
Yes when no matching disallow rule won, and No when the selected robots.txt rule disallowed the URL. This reports the app's parser result for its configured User Agent.
Robots.txt Rule
The most specific matching Allow or Disallow rule used for Robots.txt Allowed. Empty means no matching rule was retained.
Robots.txt URL
The origin-level robots.txt URL used for the evaluation.
Checked At
The ISO timestamp at which an external header check completed. It is empty before a check.
Error
The cleaned crawl, extraction or external-request error recorded for the selected URL. A transport error can exist without an HTTP Status Code because no HTTP response was received.
Source URL
In an Inlinks occurrence, the normalised internal URL where the link was captured.
Source Title
The stored title of the source URL, where that source produced a crawl row and a title was captured.
Target URL
In an Outlinks or Resources occurrence, the resolved and normalised destination.
Text / Alt
The occurrence label. The interface prefers captured anchor text, then image alt text, then title text. Captured detail text is cleaned and limited to 160 characters.
Element
The lowercase HTML tag associated with the occurrence, such as a, img, script or link. Browser-only performance resources can use resource.
Attribute
The attribute that supplied the target, such as href, src, srcset, poster, data or performance.
Placement
An approximate DOM context based on the nearest recognised landmark: nav, header, main, footer, aside, article, section or a mapped ARIA role. body is used when no supported landmark is found.
Placement is a convenience label, not a complete CSS selector or accessibility-tree calculation.
Nearest Heading
A nearby heading selected for context. The extractor first looks for a heading in the closest major container, then searches a limited number of preceding siblings and ancestors.
It is a heuristic and may not be the semantic heading a human would associate with the link or resource.
Rel
The captured relationship text from the element, such as nofollow, sponsored, ugc, noopener or noreferrer.
The nofollow, sponsored and ugc flags are set when those exact lowercase tokens occur in the cleaned rel value.
Scope
Internal or External according to host comparison at extraction time. Different subdomains and explicit ports are external.
Initiator
For a browser performance resource, Chromium's initiator type, such as img, script, css or another browser-reported category. It can be empty for a DOM-derived occurrence.
Transfer Size
The browser-reported transfer size in bytes for a resource performance occurrence. It can be zero because of caching, browser privacy restrictions, cross-origin timing restrictions or missing performance data.
Redirect hop
One observed redirect step containing status, source URL and destination URL. Redirect response headers are associated with their hop number.
Response Headers
Header names and values captured for the selected response. Redirect response headers are shown separately by hop. Headers can be absent after network failures or when the relevant request path did not expose them.
Count and Detail Limits
The app limits very large detail payloads:
| Area | Current limit |
|---|---|
| Stored rendered-page occurrence payload | 10,000 combined returned occurrences per source page |
| Rows returned by one URL Details occurrence tab | 2,000 |
| Page Analysis outline entries | 300 |
| Page Analysis links | 500 |
| Page Analysis images | 300 |
Where a detail tab is truncated, the interface reports how many rows are shown. Summary values are calculated independently where possible, but occurrence-derived totals can only use occurrences the crawler captured.