AMP

AMP publishing checklist

Follow this checklist to give your site the fullest AMP experience!

Ensure AMP Specification Validation

AMP comes with a ton of built in benefits, such as decreasing user wait time by preloading content from AMP Caches. To get these benefits, pages must be valid AMP documents. Pages published with errors reported by the AMP validator are not indexable by AMP Caches, and possibly served as error pages.

Never publish an invalid AMP page again by using these tools:

Grant cached AMP pages server access

Great news, valid AMP pages automatically opt into all existing AMP Caches! This means your users experience content that loads efficiently and safely. These types of optimizations are great, but come with a small catch. Some users will be served AMP pages from domains that do not match your own. This can cause pages to lose access to site data when using dynamic AMP components such as <amp-form> or <amp-list>. These types of errors are Cross-Origin Resource Sharing, or CORS, issues. Work with safety, not against it, by enabling CORS Requests from all available AMP Caches! If you're using Node.js in your backend, you can use the amp-cors middleware.

Learn more about granting server access:

Safe and shareable content with signed exchanges

Keep your domain's URL and simplify analytics when sharing content through signed exchanges (SXG). By serving AMP pages with SXG, digital signatures protect your information by tying the document to its claimed URL. This behavior treats user sessions and cookies as first party, closing possible analytics gaps. Implementing SXG delivers signed AMP content in addition to, rather than instead of, regular AMP content.

Learn more about implementing signed exchanges:

Test cached pages

AMP Caches store images, fonts, and page content to serve users your content as soon as they want it. This makes it important to test that your AMP pages look and work as expected when served from an AMP Cache.

When adding AMP pages to an AMP Cache, check with your browser’s developer tools that all external resources are loadable. Here's a list to keep in mind:

  • images
  • videos
  • amp-analytics endpoints
  • amp-pixel endpoints
  • custom fonts
  • iframes

Learn more about AMP caches:

Ensure your AMP files are discoverable by search engines

Pages only build in AMP(AMP first) and pages with a AMP double(paired AMP) all need to ensure they are discoverable! All AMP pages required the <link rel="canonical" href="$SOME_URL"> in their <head>. AMP first pages need to link to themselves and AMP pages paired to a non-AMP page will need to link link to each other.

Ensure your Schema.org metadata adds useful information! Other sites and search engines may require this to share your content.

Web Robots, Web Wanderers, Crawlers or Spiders, are all names for programs that search for content. They traverse the web, helping search engines index web content so that user's queries can surface the correct results! Make sure your seekers can find your site by including the proper instructions in the robots.txt file and set up the appropriate headers.

Do NOT exclude crawlers via your robots.txt file.

User-agent: *
Disallow: /amp/                            <= don't!

Do NOT add a robots noindex meta tag to your AMP HTML files.

<meta name="robots" content="noindex" />   <= don't!

Do NOT include noindex as X-Robots-Tag HTTP header for your AMP files.

$ curl -I http://www.example.com/amp.html
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
()
X-Robots-Tag: noindex                      <= don't!
()

Learn how to make your pages discoverable:

Measuring user traffic and journeys

Gathering correct metrics is essential to useful analytics. When testing how introducing AMP to your site impacts users, ensure you're measuring the correct things. False negatives, false positives, or irrelevant results may arise if analytics don't account for the differences AMP can create. Make sure you understand what to look for, and how to measure it!

Learn more about setting up proper analytics for AMP: