Catalog · Every check · Every category
Every check Wrendex runs.
28 categories.
The full catalog of technical SEO checks Wrendex runs on every audit. Browse by category, drill into any individual check, and see the synthetic before/after we use to validate it. Every check ships on every plan - no asterisks, no add-ons.
01. Title
TITLE_MISSING
Page title missing
The page has no <title> tag. Search engines fall back to the URL or a fragment of body text, which hurts click-through.
error
TITLE_TOO_LONG
Title too long
Titles wider than what Google shows (~580px on desktop) are truncated in search results, hiding the part that converts. Truncation depends on the rendered width of the characters, not just their count.
warning
TITLE_TOO_SHORT
Title too short
Very short titles miss ranking-relevant keywords and look thin in SERP listings.
notice
TITLE_MULTIPLE
Multiple title tags
More than one <title> tag was found. Browsers and crawlers pick one inconsistently.
warning
DUPLICATE_TITLE
Duplicate title across pages
Two or more pages share the same title, making them compete in search results.
warning
02. Meta Description
META_DESCRIPTION_MISSING
Meta description missing
Without a meta description, search engines auto-generate a snippet, which is rarely flattering for click-through.
warning
META_DESCRIPTION_TOO_LONG
Meta description too long
Descriptions wider than what Google shows (~985px on desktop) get truncated in SERP snippets, losing your final call to action. Truncation depends on the rendered width of the characters, not just their count.
notice
META_DESCRIPTION_TOO_SHORT
Meta description too short
Very short descriptions waste prime SERP real estate and miss keywords.
notice
META_DESCRIPTION_MULTIPLE
Multiple meta descriptions
More than one meta description tag is present; crawlers pick one unpredictably.
warning
DUPLICATE_META_DESCRIPTION
Duplicate meta description
Multiple pages share the same meta description, weakening relevance signals.
notice
03. Headings
H1_MISSING
H1 missing
The page has no H1. Crawlers and screen readers rely on it as the primary topic signal.
warning
H1_MULTIPLE
Multiple H1 tags
More than one H1 dilutes the primary topic signal and confuses screen readers.
notice
DUPLICATE_H1
Duplicate H1 across pages
Multiple pages share the same H1, suggesting overlapping topics or templating gaps.
notice
04. HTTP Status
HTTP_404
404 Not Found
The page returns 404. Search engines drop it from the index and inbound links waste their authority.
error
HTTP_403
403 Forbidden
The server refused the request. Crawlers and users alike see a wall instead of content.
error
HTTP_409
409 Conflict
The server reports the request conflicts with current state. Often a deployment or data race issue.
error
HTTP_4XX
4xx client error
The page returned a 4xx response other than 403/404/409. The URL is unreachable for crawlers.
error
HTTP_500
500 Internal Server Error
The server crashed handling this URL. Repeated 500s deindex the page over time.
error
HTTP_5XX
5xx server error
The page returned a 5xx response. Search engines treat repeated 5xx as a removal signal.
error
05. Indexability
NOINDEX_PAGE
Page is noindex
The page sets robots noindex. Search engines will not include it in results.
warning
NOFOLLOW_PAGE
Page-level nofollow
All outbound links on this page are flagged nofollow at the page level, breaking internal link equity.
notice
NOINDEX_FOLLOW
noindex, follow
The page is noindex but follow. Often intentional, occasionally a leftover that hides ranking content.
notice
NOINDEX_NOFOLLOW
noindex, nofollow
The page blocks both indexing and link following. Inbound link authority is wasted.
warning
NOINDEX_CONFLICT
Conflicting noindex signals
Different sources (meta robots, X-Robots-Tag, sitemap) disagree on whether the page should be indexed.
warning
NOFOLLOW_CONFLICT
Conflicting nofollow signals
Meta robots and X-Robots-Tag disagree on follow / nofollow.
notice
06. Markup
INVALID_LANG
Invalid lang attribute
<html lang> is missing or not a valid BCP-47 tag. Search engines and screen readers cannot determine the page language.
notice
MISSING_VIEWPORT
Missing viewport meta
No <meta name="viewport"> tag. Mobile rendering will be broken and Google flags the page as non-mobile-friendly.
warning
08. Performance
SLOW_PAGE
Slow page response
Total response time is high. Slow pages cost rankings and conversions.
warning
OVERSIZED_HTML
Oversized HTML
The HTML payload is unusually large, slowing parsing and hurting Core Web Vitals.
notice
NO_COMPRESSION
No HTTP compression
The response is not gzip / br compressed, wasting bandwidth and slowing time-to-first-byte for clients.
warning
SLOW_TTFB
Slow time-to-first-byte
TTFB is high, indicating server or origin latency. This drags every other metric.
warning
09. Internal Links
NO_OUTGOING_LINKS
No outgoing internal links
The page links to nothing else on the site. Crawlers cannot use it as a hub.
notice
DOUBLE_SLASH_URL
Double-slash in URL
The URL contains a doubled slash, often produced by a templating bug, and can split crawl signals.
notice
TOO_MANY_URL_PARAMS
Too many URL parameters
The URL stacks many query parameters, which can fragment crawl coverage and confuse canonicalisation.
notice
ORPHAN_PAGE
Orphan page
No internal page links here. Search engines reach it only via the sitemap, with weak ranking signals.
warning
LINKS_TO_BROKEN
Links to broken page
This page links to a 4xx / 5xx URL on the site. Users hit dead ends and equity is wasted.
error
LINKS_TO_REDIRECT_INDEXABLE
Links to redirected page
The link target redirects to an indexable page. Working but wastes a hop and a little crawl budget.
notice
LINKS_TO_REDIRECT_NON_INDEXABLE
Links to non-indexable redirect
The link redirects to a URL the crawler cannot index. Equity is lost.
warning
LINKS_TO_BROKEN_NON_INDEXABLE
Links to broken non-indexable
The link target is both broken and non-indexable, so neither users nor crawlers can use it.
warning
NOFOLLOW_ONLY_INCOMING
Only nofollow incoming links
Every internal link to this page is nofollow. Search engines do not pass authority through.
warning
MIXED_FOLLOW_INCOMING
Mixed follow / nofollow incoming
Internal links to this page mix follow and nofollow, which is usually a templating accident.
notice
NOFOLLOW_OUTGOING_INTERNAL
Nofollow on internal link
An internal link is marked rel=nofollow, blocking authority flow on your own site.
notice
SINGLE_DOFOLLOW_INCOMING
Only one dofollow incoming
Just one internal page passes equity here. Single points of failure for crawl and rank.
notice
REDIRECT_NO_INCOMING
Redirect with no incoming
A redirect endpoint with no inbound internal links is dead weight in the link graph.
notice
10. Images
MISSING_ALT_TEXT
Missing alt text
An image has no alt attribute. Screen readers and image search cannot describe it.
warning
BROKEN_IMAGE
Broken image
The image URL returns an error. Users see a placeholder, search engines drop it from image results.
error
OVERSIZED_IMAGE
Oversized image
The image file is much larger than its rendered size, slowing the page.
warning
IMAGE_REDIRECT
Image URL redirects
The image src redirects, costing an extra round-trip on every load.
notice
MISSING_IMAGE_DIMENSIONS
Missing image dimensions
The image has no width / height attributes, which causes layout shift (bad CLS).
notice
11. Social
MISSING_OG_TAGS
Missing Open Graph tags
The page is missing og:title / og:description / og:image. Social shares fall back to ugly auto-snippets.
notice
OG_CANONICAL_MISMATCH
og:url and canonical disagree
og:url does not match the canonical URL. Shares may land on the wrong variant.
notice
MISSING_TWITTER_CARD
Missing Twitter Card
twitter:card is absent. Twitter / X falls back to a plain link preview.
notice
12. Redirects
REDIRECT_302
302 temporary redirect
The URL serves a 302. Crawlers may keep crawling the source if they expect it to come back.
notice
REDIRECT_3XX
3xx redirect
The URL returns a non-301/302 redirect status. Browsers follow it but crawlers handle it inconsistently.
notice
BROKEN_REDIRECT
Broken redirect
The redirect target is a 4xx / 5xx response. Users land on an error.
error
REDIRECT_CHAIN
Redirect chain
More than one redirect hop before the final URL. Wastes crawl budget and slows users.
notice
REDIRECT_CHAIN_TOO_LONG
Redirect chain too long
The redirect chain has too many hops. Some crawlers stop following before the destination.
warning
REDIRECT_LOOP
Redirect loop
The redirect chain points back to itself. Browsers and crawlers give up.
error
HTTPS_TO_HTTP_REDIRECT
HTTPS redirects to HTTP
An HTTPS URL redirects to HTTP. This is a security and SEO regression.
error
HTTP_TO_HTTPS_REDIRECT
HTTP to HTTPS redirect
An HTTP URL redirects to HTTPS. Expected, but every internal link should target HTTPS directly to skip the hop.
notice
META_REFRESH_REDIRECT
Meta refresh redirect
The page uses a <meta http-equiv="refresh"> tag. Crawlers may treat it as a soft 200 instead of a redirect.
warning
TIMEOUT
Request timed out
The crawl request timed out. The URL is effectively unreachable for crawlers and slow users.
error
13. Security
HTTPS_LINKS_TO_HTTP
HTTPS page links to HTTP
An HTTPS page contains a plain HTTP link. Triggers mixed-content warnings on click-through.
warning
HTTP_LINKS_TO_HTTPS
HTTP page links to HTTPS
An HTTP page links to HTTPS. Usually fine, but suggests the page itself should also be HTTPS.
notice
HTTPS_CSS_TO_HTTP
HTTPS page loads HTTP CSS
Stylesheet loaded over HTTP from an HTTPS page. Browsers block it as mixed content.
error
HTTPS_JS_TO_HTTP
HTTPS page loads HTTP JS
Script loaded over HTTP from an HTTPS page. Blocked as mixed content; the page may break.
error
HTTPS_IMG_TO_HTTP
HTTPS page loads HTTP image
Image loaded over HTTP from an HTTPS page. Causes mixed-content warnings.
warning
14. Hreflang
INVALID_HREFLANG
Invalid hreflang code
An hreflang attribute has an invalid language / region code.
warning
HREFLANG_LANG_MISMATCH
hreflang language mismatch
The hreflang language does not match the actual page language.
notice
HREFLANG_MISSING_SELF_REF
Missing self-referential hreflang
An hreflang cluster must include a self-reference for each locale. This page omits its own.
notice
HREFLANG_MISSING_X_DEFAULT
Missing x-default hreflang
No x-default fallback is defined for users whose locale does not match any listed variant.
notice
HREFLANG_POINTS_TO_BROKEN
hreflang target broken
An hreflang entry points at a 4xx / 5xx URL.
error
HREFLANG_POINTS_TO_REDIRECT
hreflang target redirects
An hreflang entry redirects to another URL. Search engines may discount it.
notice
HREFLANG_MISSING_RECIPROCAL
Missing reciprocal hreflang
Page A links to page B via hreflang, but B does not link back. Without reciprocity, the cluster is ignored.
warning
HREFLANG_POINTS_TO_NON_CANONICAL
hreflang target non-canonical
An hreflang entry points at a URL whose canonical is something else.
notice
HREFLANG_MULTI_LANG_SINGLE_PAGE
Multiple languages on one page
The page declares hreflang for multiple language codes pointing at itself.
notice
HREFLANG_MULTI_PAGE_SINGLE_LANG
One language across many pages
Several pages claim to be the canonical for the same language code.
notice
15. Canonical
CANONICAL_POINTS_TO_4XX
Canonical points to 4xx
The canonical URL returns a 4xx error. The page has no valid canonical.
error
CANONICAL_POINTS_TO_5XX
Canonical points to 5xx
The canonical URL returns a 5xx error.
error
CANONICAL_POINTS_TO_REDIRECT
Canonical points to redirect
The canonical URL redirects. Search engines may follow it but the signal is weakened.
warning
CANONICAL_NO_INCOMING_LINKS
Canonical has no incoming links
The canonical URL is not linked anywhere internally, suggesting the cluster is fragmented.
notice
CANONICAL_HTTP_TO_HTTPS
Canonical http to https
The page is HTTP but its canonical is HTTPS. Expected during a migration; should not persist.
notice
CANONICAL_HTTPS_TO_HTTP
Canonical https to http
The page is HTTPS but the canonical is HTTP. Search engines may demote the page.
error
NON_CANONICAL_AS_CANONICAL
Non-canonical declared as canonical
The page sets itself as canonical but other pages declare a different canonical for the same content.
warning
DUPLICATES_NO_CANONICAL
Duplicates without canonical
Multiple pages share the same content but none declare a canonical.
warning
16. Duplicates
17. CSS
BROKEN_CSS
Broken stylesheet
A linked stylesheet returns an error response. The page renders without its styles.
error
OVERSIZED_CSS
Oversized stylesheet
A stylesheet is unusually large, slowing page render.
warning
REDIRECTED_CSS
Stylesheet redirects
A linked stylesheet URL redirects, costing an extra round-trip.
notice
18. JS
BROKEN_JS
Broken script
A linked script returns an error. The page may behave incorrectly.
error
OVERSIZED_JS
Oversized script
A script bundle is unusually large, hurting time-to-interactive.
warning
REDIRECTED_JS
Script redirects
A script URL redirects, adding a round-trip on every page load.
notice
19. External Links
EXTERNAL_LINK_3XX
External link redirects
An outbound external link redirects, costing user time.
notice
EXTERNAL_LINK_4XX
External link broken (4xx)
An outbound external link returns a 4xx error.
warning
EXTERNAL_LINK_BLOCKED
External link blocked
The external host blocked our crawler. Could be intentional bot blocking.
notice
EXTERNAL_LINK_5XX
External link 5xx
An outbound external link returned a 5xx error.
warning
EXTERNAL_LINK_TIMEOUT
External link timeout
The external link timed out during the crawl.
notice
EXTERNAL_LINK_5XX_REDIRECT
External redirect to 5xx
The external link redirects to a server-error response.
warning
20. Render-Blocking
22. Cross-Crawl Changes
TITLE_CHANGED
Title changed
The page title changed since the previous crawl.
notice
META_DESCRIPTION_CHANGED
Meta description changed
The meta description changed since the previous crawl.
notice
H1_CHANGED
H1 changed
The H1 changed since the previous crawl.
notice
WORD_COUNT_CHANGED
Word count changed
The page word count moved meaningfully between crawls.
notice
REDIRECT_TARGET_CHANGED
Redirect target changed
A redirect now points at a different URL than in the previous crawl.
warning
BECAME_NON_INDEXABLE
Page became non-indexable
A previously indexable page is now blocked from indexing.
warning
23. Sitemap
SITEMAP_3XX_REDIRECT
Sitemap URL redirects
A URL listed in the sitemap redirects.
notice
SITEMAP_4XX
Sitemap URL returns 4xx
A URL in the sitemap is broken.
error
SITEMAP_403_FORBIDDEN
Sitemap URL forbidden
A URL in the sitemap returns 403. Search engines cannot index it.
error
SITEMAP_5XX
Sitemap URL returns 5xx
A URL in the sitemap returns a server error.
error
SITEMAP_NOINDEX
Sitemap URL is noindex
A URL in the sitemap is marked noindex. The two signals contradict each other.
warning
SITEMAP_NON_CANONICAL
Sitemap URL non-canonical
A URL in the sitemap is not the canonical version of its page.
notice
SITEMAP_TIMEOUT
Sitemap URL timed out
A URL in the sitemap timed out during the crawl.
warning
INVALID_SITEMAP_FORMAT
Invalid sitemap format
The sitemap could not be parsed as valid XML / sitemap protocol.
error
MISSING_FROM_SITEMAP
URL missing from sitemap
A linked, indexable URL is not present in any sitemap.
notice
DUPLICATE_IN_SITEMAPS
Duplicate URL in sitemaps
The same URL appears in more than one sitemap or more than once in the same sitemap.
notice
24. Structured Data
JSON_LD_PARSE_ERROR
JSON-LD parse error
A JSON-LD script block could not be parsed as valid JSON.
error
JSON_LD_MISSING_TYPE
JSON-LD missing @type
A JSON-LD object has no @type. Search engines cannot interpret it.
warning
JSON_LD_INVALID_TYPE
JSON-LD invalid @type
The @type does not exist on schema.org or is misspelled.
warning
JSON_LD_INVALID_PROPERTY
JSON-LD invalid property
A property on the JSON-LD object is not defined for the declared @type.
notice
JSON_LD_UNEXPECTED_PROPERTY_TYPE
JSON-LD wrong property type
A property's value type does not match the schema.org expected type (for example, string instead of Date).
notice
JSON_LD_UNEXPECTED_PROPERTY
JSON-LD unexpected property
An unrecognised property appeared on a JSON-LD object.
notice
JSON_LD_INVALID_VALUE
JSON-LD invalid value
A property's value is not in the expected format (for example, malformed URL).
notice
JSON_LD_DUPLICATE_PROPERTY
JSON-LD duplicate property
The same property is declared more than once on a JSON-LD object.
notice
JSON_LD_DEPRECATED_TYPE
JSON-LD deprecated type
The JSON-LD object uses a schema.org type that has been deprecated.
notice
JSON_LD_DEPRECATED_PROPERTY
JSON-LD deprecated property
The JSON-LD object uses a property that has been deprecated.
notice
25. Structured Data (Google)
JSON_LD_GOOGLE_MISSING_REQUIRED
Google rich result missing required field
A field Google requires for the rich result is missing. The page is ineligible until it is added.
warning
JSON_LD_GOOGLE_MISSING_ONE_OF_REQUIRED
Google rich result missing one-of required
Google requires at least one of a set of fields and none are present.
warning
JSON_LD_GOOGLE_PROPERTY_MISSING_TYPE
Google rich result property missing type
A nested object that Google expects to be typed has no @type.
notice
JSON_LD_GOOGLE_MISSING_IMAGE
Google rich result missing image
Google's rich result for this type requires an image and none was provided.
warning
JSON_LD_GOOGLE_INVALID_DATE
Google rich result invalid date
A date field is not in ISO 8601 format.
notice
JSON_LD_GOOGLE_UNRECOGNIZED_PROPERTY
Google rich result unrecognised property
A property is not recognised by Google for this rich-result type.
notice
JSON_LD_GOOGLE_UNRESOLVED_ID
Google rich result unresolved @id
An @id reference does not match any object on the page.
notice
JSON_LD_GOOGLE_EMPTY_FIELD
Google rich result empty field
A field that should hold a value is empty.
notice
JSON_LD_GOOGLE_INVALID_VALUE
Google rich result invalid value
A field's value is outside the format Google expects.
notice
26. AMP
AMP_VALIDATION_ERRORS
AMP validation errors
The AMP variant has validation errors and is ineligible for AMP-specific surfaces.
warning
AMP_CANONICAL_MISMATCH
AMP canonical mismatch
The AMP page and its canonical disagree on the canonical URL.
notice
AMP_EXCESSIVE_CSS
AMP excessive CSS
The AMP page exceeds the CSS budget allowed by the AMP spec.
notice
27. Duplicate Code
Wrendex catches every check above on every audit.
Run a free audit · No credit card
Run free audit →