Issue reference
The 66 checks a crawl runs, grouped as they appear in your report. Each has its own link, such as /docs/issues#redirect_chain, so you can share the fix for one issue.
- Error15 checks
- Something is broken for visitors or search engines. Fix first.
- Warning26 checks
- Likely to hurt how pages are indexed or shown. Fix soon.
- Notice25 checks
- Worth a look. Often intentional, sometimes not.
Response codes8
Internal client error (4xx)
Errorinternal_4xxInternal URL returned a 4xx status. Links to it are broken.
How to fix: Restore the page, or 301-redirect it to the closest live equivalent. Then update the internal links listed under Inlinks so they point at the live URL directly.
Internal server error (5xx)
Errorinternal_5xxInternal URL returned a 5xx status.
How to fix: Check server and application logs for the URL at the time of the crawl. If the error was temporary, lower crawl speed and re-crawl; if it repeats, fix the failing route before search engines see it.
Internal no response
Errorinternal_no_responseInternal URL failed to respond (DNS, connection or timeout error).
How to fix: Confirm the host resolves and accepts connections from outside your network. Look for firewall or bot-protection rules blocking the crawler, and raise the request timeout if the page is simply slow.
External client error (4xx)
Warningexternal_4xxLinked external URL returned a 4xx status.
How to fix: Replace the link with a working URL, link to an archived copy, or remove it. Outbound links to dead pages look neglected to visitors.
External server error (5xx)
Warningexternal_5xxLinked external URL returned a 5xx status.
How to fix: Open the link yourself. If the other site is down for good, replace or remove the link; if it was a blip, re-check it in your next crawl.
External no response
Warningexternal_no_responseLinked external URL failed to respond.
How to fix: Check whether the domain still exists. Expired or parked domains should be unlinked; slow sites may only need a longer request timeout.
Blocked by robots.txt
Noticeblocked_by_robotsURL was not crawled because robots.txt disallows it.
How to fix: If the URL should be crawled and indexed, remove or narrow the Disallow rule that matches it. If it is meant to be private, consider noindex instead, since blocked URLs can still be indexed from links.
Slow response
Noticeslow_responseServer took longer than 1000 ms to respond.
How to fix: Profile the page's server time: slow database queries, uncached rendering and heavy middleware are the usual causes. Add caching for pages that change rarely.
Redirects4
Internal redirect (3xx)
Noticeinternal_redirectInternal URL redirects. Links should point at the final URL.
How to fix: Update internal links to point straight at the final URL. The redirect can stay for visitors arriving from old bookmarks and external links.
External redirect (3xx)
Noticeexternal_redirectLinked external URL redirects. Links should point at the final URL.
How to fix: Update the link to the URL it redirects to. External redirects often mean the other site moved the page, so check it still says what you link it for.
Redirect chain
Warningredirect_chainURL reaches its destination through more than one redirect.
How to fix: Point the first URL directly at the final destination with a single 301, and update internal links to the final URL.
Redirect loop
Errorredirect_loopRedirects return to a URL already in the chain.
How to fix: Trace the chain and remove the rule that sends a URL back to an earlier step. Loops often come from conflicting trailing-slash, www or HTTPS rules.
Page titles6
Missing title
Errortitle_missingPage has no <title> or it is empty.
How to fix: Add a unique <title> in the page <head> that describes the page in plain words, ideally with the main topic first.
Multiple titles
Warningtitle_multiplePage has more than one <title> element.
How to fix: Keep one <title> element. Duplicates usually come from a theme and a plugin both writing one; switch one of them off.
Duplicate title
Warningtitle_duplicateTitle is identical to another indexable page's title.
How to fix: Write a distinct title for each page. For paginated or filtered pages, add the page number or filter, or canonicalise them to the main page.
Title over limit
Noticetitle_too_longTitle is longer than 60 characters and may be truncated in search results.
How to fix: Shorten the title so the important words come first and it fits in search results. Drop repeated brand names and filler.
Title below limit
Noticetitle_too_shortTitle is shorter than 30 characters.
How to fix: Add useful detail such as the product type, location or brand so the title explains what the page is.
Title same as H1
Noticetitle_same_as_h1Title is identical to the page's first H1.
How to fix: Usually fine. If you want more room in search results, make the title a slightly fuller version of the H1, for example adding the brand or category.
Meta description5
Missing meta description
Warningmeta_description_missingPage has no meta description or it is empty.
How to fix: Add a meta description that summarises the page and gives a reason to click. Search engines may still rewrite it, but a good one is often used.
Multiple meta descriptions
Warningmeta_description_multiplePage has more than one meta description.
How to fix: Keep one meta description tag. Check templates and SEO plugins for a second one being injected.
Duplicate meta description
Warningmeta_description_duplicateMeta description is identical to another indexable page's.
How to fix: Write a description specific to each page. For large templated sections, generate it from page data such as product name and price.
Meta description over limit
Noticemeta_description_too_longMeta description is longer than 155 characters.
How to fix: Trim the description so the key message sits in the first sentence and is not cut off.
Meta description below limit
Noticemeta_description_too_shortMeta description is shorter than 70 characters.
How to fix: Expand it to a full sentence or two that tells searchers what they will find on the page.
H14
Missing H1
Warningh1_missingPage has no H1 heading.
How to fix: Add one visible H1 that names the page's main topic. Check that the template does not render the heading as a styled <div>.
Multiple H1
Noticeh1_multiplePage has more than one H1 heading.
How to fix: Use one H1 for the page title and H2 to H6 for sections below it. Logos and sidebars marked up as H1 are a common cause.
Duplicate H1
Noticeh1_duplicateFirst H1 is identical to another indexable page's.
How to fix: Give each page a heading that reflects its own content, especially across products, locations and paginated lists.
H1 over limit
Noticeh1_too_longFirst H1 is longer than 70 characters.
How to fix: Shorten the heading to the page's core topic and move supporting detail into an intro paragraph.
Directives3
Noindex
WarningnoindexPage asks search engines not to index it (meta robots or X-Robots-Tag).
How to fix: If the page should appear in search, remove noindex from the meta robots tag or the X-Robots-Tag header. If it is meant to be hidden, no action is needed.
Nofollow
NoticenofollowPage asks search engines not to follow its links.
How to fix: Remove page-level nofollow unless you deliberately want search engines to ignore every link on the page. Use rel attributes on individual links instead.
Noindex page linked internally
Noticenoindex_linked_internallyA noindex page receives internal links; check it should be excluded.
How to fix: Decide whether the page should be indexed. If not, reduce internal links to it so crawl effort goes to pages you want found; if so, remove noindex.
Canonicals4
Missing canonical
Noticecanonical_missingIndexable page has no rel=canonical.
How to fix: Add a self-referencing <link rel="canonical"> with the page's preferred absolute URL. It protects against duplicates created by tracking parameters.
Multiple canonicals
Warningcanonical_multiplePage declares more than one rel=canonical.
How to fix: Output a single canonical, in the <head> or the HTTP header but not both with different values. Conflicting canonicals are usually ignored.
Canonicalised
NoticecanonicalisedPage's canonical points at a different URL, so it is not indexable.
How to fix: Expected for parameter, print or variant URLs. If this page should rank on its own, change its canonical to point at itself.
Canonical to non-200
Errorcanonical_to_non_200Canonical target did not return 200.
How to fix: Point the canonical at a live URL that returns 200. If the target moved, use its final address rather than a redirecting or missing one.
Hreflang6
Missing return link
Errorhreflang_missing_return_linkA page this URL annotates does not link back to it with hreflang.
How to fix: Add the matching hreflang annotation on the other page so each alternate links back. Hreflang only counts when both pages confirm the pair.
Invalid language code
Errorhreflang_invalid_codeHreflang value is not a valid ISO 639-1 language (and optional ISO 3166-1 region) or x-default.
How to fix: Use an ISO 639-1 language code, optionally followed by an ISO 3166-1 alpha-2 region (for example en or en-gb), or x-default. Regions alone, such as uk, are invalid.
Non-200 hreflang URL
Errorhreflang_non_200_targetAn hreflang URL did not return 200.
How to fix: Update the annotation to the alternate's final, live URL. Remove it if that language version no longer exists.
Missing self-reference
Warninghreflang_missing_self_referencePage has hreflang annotations but none points at itself.
How to fix: Include the page itself in its own hreflang set, using its own language code and URL.
Missing x-default
Noticehreflang_missing_x_defaultPage has hreflang annotations but no x-default.
How to fix: Add an x-default annotation pointing at your language selector or main fallback page for visitors whose language you do not target.
Inconsistent language
Noticehreflang_inconsistent_languageSelf-referencing hreflang language differs from <html lang>.
How to fix: Make the <html lang> attribute and the page's self-referencing hreflang code agree, and check both match the language the content is written in.
Duplicate content3
Exact duplicate
Warningexact_duplicatePage text is identical to another indexable page.
How to fix: Choose one version to keep. Redirect or canonicalise the others to it, or rewrite them so each page has its own content.
Low content
Noticelow_contentIndexable page has fewer than 200 words.
How to fix: Add substantive content that answers what visitors came for, merge the page with a related one, or noindex it if it exists only for navigation.
Near duplicate
Warningnear_duplicatePage text is very similar to another indexable page (above the configured similarity threshold).
How to fix: Compare the pages listed in the near-duplicate group. Merge them, canonicalise the weaker versions to the strongest, or rewrite the shared boilerplate so each page says something of its own.
Images1
Images missing alt text
Noticeimage_missing_altPage contains <img> elements without alt text.
How to fix: Add alt text that describes each meaningful image. Use an empty alt="" for purely decorative images so screen readers skip them.
Structured data4
Structured data parse error
Errorstructured_data_parse_errorA JSON-LD block is not valid JSON, or Microdata/RDFa could not be read.
How to fix: Run the block named in the details through a JSON validator and fix the syntax, usually a trailing comma, an unescaped quote or a template that printed nothing. For Microdata and RDFa, check itemscope/itemprop or typeof/property nesting.
Rich result validation error
Errorstructured_data_validation_errorAn item is missing a property Google requires for its rich result, or a value has the wrong type.
How to fix: Add the required property listed in the details, or correct its value type (for example a number instead of text, or a full URL). Items with errors are not eligible for that rich result.
Rich result validation warning
Warningstructured_data_validation_warningAn item is missing a property Google recommends for its rich result.
How to fix: Add the recommended property if you have the data. The item still qualifies without it, but richer results usually need it.
Unknown schema.org type or property
Noticestructured_data_unknown_typeA type or property is not in the schema.org vocabulary (often a typo).
How to fix: Check the spelling and capitalisation against schema.org (types are PascalCase, properties camelCase). Remove vocabulary that search engines do not understand.
AMP2
Invalid AMP
Erroramp_invalidAMP page fails AMP validation.
How to fix: Fix each validation error listed in the details, most often disallowed scripts, inline styles over the size limit or missing required tags. Invalid AMP pages are not served from AMP caches.
AMP page without canonical
Warningamp_missing_canonicalAMP page has no rel=canonical pointing at its regular version.
How to fix: Add <link rel="canonical"> on the AMP page pointing at the regular page (or at itself if the AMP page is the only version), and rel=amphtml on the regular page pointing back.
Accessibility4
Critical accessibility violations
Erroraccessibility_criticalaxe-core found violations with critical impact.
How to fix: Fix these first: they block some visitors completely, for example form fields with no label or controls that cannot be reached by keyboard. The details list each axe-core rule with the affected elements.
Serious accessibility violations
Erroraccessibility_seriousaxe-core found violations with serious impact.
How to fix: Work through the rules in the details, typically low colour contrast, images without text alternatives or missing page language. Fix them in shared templates to clear many pages at once.
Moderate accessibility violations
Warningaccessibility_moderateaxe-core found violations with moderate impact.
How to fix: Address these after critical and serious issues: landmarks, heading order and duplicate ids usually make up this group and are cheap to fix in templates.
Minor accessibility violations
Noticeaccessibility_minoraxe-core found violations with minor impact.
How to fix: Low-impact refinements. Fix them when you next touch the template, and re-run the audit to confirm.
Mobile usability3
Missing or invalid viewport
Errormobile_viewport_missingPage has no <meta name=viewport> with width=device-width, so it does not scale on phones.
How to fix: Add <meta name="viewport" content="width=device-width, initial-scale=1"> to the page <head>, and do not disable zoom.
Content wider than screen
Warningmobile_content_wider_than_screenContent overflows the mobile viewport horizontally.
How to fix: Find the element that overflows: wide tables, fixed-width containers and large images are typical. Use max-width: 100%, responsive tables or horizontal scrolling inside the component rather than the page.
Mobile usability issue
Warningmobile_usability_issueA Lighthouse mobile check failed; details name the audit.
How to fix: Open the Lighthouse audit named in the details. Common fixes are larger tap targets with more spacing, legible font sizes of at least 12 px and content that fits the viewport.
Performance4
Poor Lighthouse performance
Warninglighthouse_performance_poorLighthouse performance score is below 50.
How to fix: Start with the biggest opportunities Lighthouse lists: compress and resize images, remove unused JavaScript and CSS, and defer third-party scripts. Re-test on the same device setting to compare.
Poor Largest Contentful Paint
Warningcwv_lcp_poorLCP is above 4 s.
How to fix: Make the largest element load sooner: serve the hero image in a modern format at the right size, preload it, avoid lazy-loading it, and cut server response time and render-blocking CSS.
Poor Interaction to Next Paint
Warningcwv_inp_poorINP is above 500 ms (field data).
How to fix: Break up long JavaScript tasks, defer non-essential scripts and avoid heavy work in input handlers so the page responds to taps and clicks within a frame or two.
Poor Cumulative Layout Shift
Warningcwv_cls_poorCLS is above 0.25.
How to fix: Reserve space for images, ads and embeds with width and height or aspect-ratio, avoid inserting content above existing content, and use font-display with matched fallback fonts.
Spelling and grammar2
Spelling errors
Warningspelling_errorsPage copy contains likely spelling mistakes.
How to fix: Review the words listed in the details and correct genuine mistakes in the page copy or its template. Brand names and jargon may be false positives; check the page language is set correctly.
Grammar errors
Noticegrammar_errorsPage copy contains likely grammar or style mistakes.
How to fix: Review the flagged sentences. Fix real errors; style suggestions are optional and can be ignored where the wording is intentional.
Search Console3
Not indexed by Google
Warninggsc_not_indexedURL Inspection reports the URL is not on Google.
How to fix: Read the coverage state in the details. Fix any blocker it names (noindex, robots.txt, redirect, soft 404), make sure the page is linked internally and in your sitemap, then request indexing in Search Console.
Google chose a different canonical
Noticegsc_canonical_mismatchGoogle's selected canonical differs from the page's declared canonical.
How to fix: Google picked another URL as canonical. Make the signals agree: consistent internal links, the sitemap and rel=canonical should all point at the URL you want indexed, and near-identical pages should be consolidated.
No search impressions
Noticegsc_no_impressionsIndexable page had no Search Console impressions in the selected period.
How to fix: The page is indexable but did not appear in search during the period. Check it is indexed, targets a query people search for and is linked from relevant pages; otherwise consider merging or noindexing it.
Settings that change which URLs are checked are in the crawl settings reference.