Non-200 Mobile/AMP
URLs which were found within the mobile/AMP rel alt tag of another page, but which return a non-200 HTTP status code
Priority: High
Impact: Negative
What issues it may cause
URLs which are referenced as a mobile or AMP alternate from another page should return a 200 HTTP status code. Error pages (4xx/5xx) will mean that the mobile alternate page is unable to be indexed. A 3xx status code may still mean the destination URL will be indexed (assuming it has a correct reciprocal link), however will unnecessarily consume crawl budget.
This issue may result in:
users on mobile devices landing on pages optimised for desktop devices potentially resulting in a bad user experience
- drop in rankings and traffic from mobile search
How do you fix it
Use this report to ensure that either your pages are designed for mobile devices e.g. responsive design or have valid mobile alternate pages that return 200 HTTP status code.
You can use tools like Mobile Friendly Test to understand if your pages are configured correctly for mobile devices.
What is the positive impact
Having pages that are valid and well optimised for mobile devices results in good user experience and higher rankings in search engine results pages which translates into more visits and conversions.
How to fetch the data for this report template
You will need to run a crawl for report template to generate report. When report has been generated and you have crawl id you can fetch data for the report using the following query:
- Query
- Variables
- cURL
query GetReportStatForCrawl(
$crawlId: ObjectID!
$reportTemplateCode: String!
$after: String
) {
getReportStat(
input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode}
) {
crawlUrls(after: $after, reportType: Basic) {
nodes {
pageTitle
url
desktopUrl
canonicalUrl
foundAtUrl
deeprank
level
httpStatusCode
isRedirect
redirectCount
redirectedToStatusCode
redirectedToUrl
foundInGoogleAnalytics
foundInGoogleSearchConsole
foundInBacklinks
foundInList
foundInLogSummary
foundInWebCrawl
foundInSitemap
}
totalCount
pageInfo {
endCursor
hasNextPage
}
}
}
}
{"crawlId":"TjAwNUNyYXdsNDAwMA","reportTemplateCode":"non_200_separate_mobile_amp"}
curl -X POST -H "Content-Type: application/json" -H "apollographql-client-name: docs-example-client" -H "apollographql-client-version: 1.0.0" -H "x-auth-token: YOUR_API_SESSION_TOKEN" --data '{"query":"query GetReportStatForCrawl( $crawlId: ObjectID! $reportTemplateCode: String! $after: String ) { getReportStat( input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode} ) { crawlUrls(after: $after, reportType: Basic) { nodes { pageTitle url desktopUrl canonicalUrl foundAtUrl deeprank level httpStatusCode isRedirect redirectCount redirectedToStatusCode redirectedToUrl foundInGoogleAnalytics foundInGoogleSearchConsole foundInBacklinks foundInList foundInLogSummary foundInWebCrawl foundInSitemap } totalCount pageInfo { endCursor hasNextPage } } } }","variables":{"crawlId":"TjAwNUNyYXdsNDAwMA","reportTemplateCode":"non_200_separate_mobile_amp"}}' https://api.lumar.io/graphql