Article

Adding Article structured data to your news, blog, and sports article page can enhance your appearance in Google Search results. Your page may be eligible for different features depending on how you code your page:

  • AMP with structured data: AMP pages with structured data can appear in the Top stories carousel, host carousel of rich results, Visual stories, and rich results in mobile Search results. These results can include images, page logos, and other interesting search result features.
  • Non-AMP web page with structured data: Non-AMP pages that include Article structured data can help Google understand more about the web page and show better headline text, images, and date published for the article in Article rich results.

Examples

Here's an example of JSON-LD code on an AMP page with Article structured data.


<html amp>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://google.com/article"
      },
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "http://example.com/profile/johndoe123"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Google",
        "logo": {
          "@type": "ImageObject",
          "url": "https://google.com/logo.jpg"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Here's an example of a non-AMP page with Article structured data. Non-AMP pages have different recommendations than AMP pages.


<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "datePublished": "2015-02-05T08:00:00+08:00",
      "dateModified": "2015-02-05T09:20:00+08:00",
      "author": [{
          "@type": "Person",
          "name": "Jane Doe",
          "url": "http://example.com/profile/janedoe123"
        },{
          "@type": "Person",
          "name": "John Doe",
          "url": "http://example.com/profile/johndoe123"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Implementation

AMP with structured data

A carousel of AMP results for a news article.

AMP pages that have structured data can appear in a carousel of stories in search results. Without structured data, AMP pages may only appear as standard blue links in Google Search results. For more information about AMP in search results, see About AMP on Google Search.

To create an AMP page with structured data:

  1. Follow the AMP Project specifications.
  2. Follow the additional page guidelines to ensure that Google can crawl your page.
  3. Add a structured data element describing the article on the page.
  4. Test your structured data using the Rich Results Test.

Non-AMP page with structured data

A non-AMP page with Article structured data in search results

When you add Article structured data to a non-AMP page, you can better suggest the right headline, date published, and image that Google should show in Search results.

To add structured data to your non-AMP article page:

  1. Add a structured data element to your page, describing the article on the page.
  2. Read the guidelines to ensure that Google can crawl your page.
  3. Test your structured data using the Rich Results Test.

Guidelines

You must follow these guidelines to enable structured data to be eligible for inclusion in Google Search results.

Technical guidelines

  • If you offer subscription-based access to your website content, or if users must register for access, consider adding structured data for subscription and paywalled content.
  • For multi-part content, make sure that the rel=canonical points at either each individual page or a "view-all" page (and not to page 1 of a multi-part series). Learn more about canonicalization.

AMP logo guidelines

The following guidelines apply to logos for all AMP pages, including AMP stories.

  • The file format must be supported by Google Images.
  • Don't use animation.
  • The graphic part of the logo should be legible on the background color.

The following guidelines apply to logos used for general AMP pages, not AMP stories. There are different logo requirements for AMP stories.

  • The logo must be a rectangle, not a square.
  • The logo should fit in a 60x600px rectangle, and either be exactly 60px high (preferred), or exactly 600px wide. For example, 450x45px would not be acceptable, even though it fits within the 600x60px rectangle.

  • Publishers should use only one logo per brand that is consistent across general AMP pages.
  • Use full wordmark or full logo; not an icon.
  • The text in word-based logos should be at most 48px tall and centered vertically within the 60px image height. Add additional space to pad the height to 60px.

  • Logos with a solid background should include 6px minimum padding around the graphic.

Structured data type definitions

The following section describes the property requirements for Article structured data. AMP and non-AMP pages have different property requirements and recommendations:

  • For AMP pages: You must include the required properties for your content to be eligible for display as a rich result. You can also include the recommended properties to add more information about your content, which could provide a better user experience.
  • For non-AMP pages: To help Google understand your page better, include the recommended properties for non-AMP pages.

Article objects

Article objects must be based on one of the following schema.org types: Article, NewsArticle, BlogPosting.

AMP

The following properties apply to AMP pages.

Required properties
author

Person or Organization

The author of the article. To help Google best understand authors across various features, we recommend following the author markup best practices.

If there are multiple authors, specify them in an array:

"author": [{
    "@type": "Person",
    "name": "Jane Doe",
    "url": "http://example.com/profile/janedoe123"
  },{
    "@type": "Person",
    "name": "John Doe",
    "url": "http://example.com/profile/johndoe123"
}]
author.name

Text

The name of the author.

datePublished

DateTime

The date and time the article was first published, in ISO 8601 format.

Best practices:

  • The date shouldn't change over time.
  • We recommend including the hour information in addition to the day in the timestamp.
  • The value for dateModified should be more recent than the value for datePublished.
headline

Text

The headline of the article. Headlines should not exceed 110 characters. For AMP stories, the headline should match the text in the first cover page in the AMP Story.

image

Repeated property of ImageObject or URL

The URL to an image that is representative of the article or AMP story.

Due to format differences in search results, the following image guidelines only apply to general AMP pages, not AMP stories. AMP stories have different requirements for images.

  • Only a marked-up image that directly belongs to the article should be specified.
  • Images should be at least 1200 pixels wide.
  • Every page must contain at least one image (whether or not you include markup). Google will pick the best image to display in Search results based on the aspect ratio and resolution.
  • Image URLs must be crawlable and indexable.
  • Images must represent the marked up content.
  • The file format must be supported by Google Images.
  • For best results, provide multiple high-resolution images (minimum of 800,000 pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.

For example:

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
  ]
}
publisher

Organization

The publisher of the article.

publisher.logo

URL or ImageObject

The logo of the publisher. See the AMP logo guidelines for image content details.

If you use the ImageObject type, set the url field to the URL of the logo.

For example:

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "publisher": {
    "@type": "Organization",
    "name": "Google",
    "logo": {
      "@type": "ImageObject",
      "url": "https://google.com/logo.jpg"
    }
  }
}

Here's an example using the URL type:

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "publisher": {
    "@type": "Organization",
    "name": "Google",
    "logo": "https://google.com/logo.jpg"
  }
}
publisher.name

Text

The name of the publisher.

Recommended properties
author.url

URL

A link to a web page that uniquely identifies the author of the article. For example, the author's social media page, an about me page, or a bio page.

dateModified

DateTime

The date and time the article was most recently modified, in ISO 8601 format.

mainEntityOfPage

URL

The canonical URL of the article page. Specify mainEntityOfPage when the article is the primary topic of the article page.

Non-AMP

The following properties apply to non-AMP pages.

Recommended properties
author

Person or Organization

The author of the article. To help Google best understand authors across various features, we recommend following the author markup best practices.

author.name

Text

The name of the author.

author.url

URL

A link to a web page that uniquely identifies the author of the article. For example, the author's social media page, an about me page, or a bio page.

dateModified

DateTime

The date and time the article was most recently modified, in ISO 8601 format.

datePublished

DateTime

The date and time the article was first published, in ISO 8601 format.

headline

Text

The headline of the article. Headlines should not exceed 110 characters.

image

Repeated ImageObject or URL

The URL to an image that is representative of the article. Only a marked-up image that directly belongs to the article should be specified. Images should be at least 696 pixels wide.

Additional image guidelines:

  • Every page must contain at least one image (whether or not you include markup). Google will pick the best image to display in Search results based on the aspect ratio and resolution.
  • Image URLs must be crawlable and indexable.
  • Images must represent the marked up content.
  • Images must be in a file format that's supported by Google Images.
  • For best results, provide multiple high-resolution images (minimum of 300,000 pixels when multiplying width and height) with the following aspect ratios: 16x9, 4x3, and 1x1.

For example:

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
  ]
}

Author markup best practices

To help Google best understand and represent the author of the content, we recommend following these best practices when specifying authors in markup:

Best practices for author markup

Include all authors in the markup

Make sure that all the authors that are presented as authors on the web page are also included in markup.

Specifying multiple authors

When specifying multiple authors, list each author in their own author field:

"author": [
  {"name": "Willow Lane"},
  {"name": "Regula Felix"}
]

Don't merge multiple authors in the same author field:

"author": {
  "name": "Willow Lane, Regula Felix"
}

Use additional fields

To help Google better understand who the author is, we strongly recommend using the type and url (or sameAs) properties. Use valid URLs for the url or sameAs properties.

For example, if the author is a person, you could link to an author's page that provides more information about the author:

"author": [
  {
    "@type": "Person",
    "name": "Willow Lane",
    "url": "http://www.example.com/staff/willow_lane"
  }
]

If the author is an organization, you could link to the organization's home page.

"author":
  [
    {
      "@type":"Organization",
      "name": "Some News Agency",
      "url": "https://www.example.com/"
  }
]

Only specify the author's name in the author.name property

In the author.name property, only specify the name of the author. Don't add any other piece of information. More specifically, don't add the following information:

  • The name of the publisher. Instead, use the publisher property.
  • The author's job title. Instead, use the appropriate property if you want to specify that information (jobTitle).
  • Honorific prefix or suffix. Instead, use the appropriate property if you want to specify that information (honorificPrefix or honorificSuffix).
  • Introductory words (for example, don't include words like "posted by").
"author":
  [
    {
      "name": "Echidna Jones",
      "honorificPrefix": "Dr",
      "jobTitle": "Editor in Chief"
    }
  ],
"publisher":
  [
    {
      "name": "Bugs Daily"
    }
  ]
}

Use the appropriate Type

Use the Person type for people, and the Organization type for organizations. Don't use the Thing type, and don't use the wrong type (for example, using the Organization type for a person).

Here's an example that applies the author markup best practices:

"author":
  [
    {
      "@type": "Person",
      "name": "Willow Lane",
      "jobTitle": "Journalist",
      "url":"https://www.example.com/staff/willow-lane"
    },
    {
      "@type":"Person",
      "name": "Echidna Jones",
      "jobTitle": "Editor in Chief",
      "url":"https://www.example.com/staff/echidna-jones"
    }
  ],
"publisher":
  {
    "name": "The Daily Bug",
    "url": "https://www.example.com"
  },
  // + Other fields related to the article...
}

Troubleshooting

If you're having trouble implementing or debugging structured data, here are some resources that may help you.