gatsby-plugin-next-seo
Version:
SEO plugin for Gatsby projects
135 lines • 4.17 kB
TypeScript
import { FC } from 'react';
import { Blog } from 'schema-dts';
import { DeferSeoProps } from '../types';
import { Overrides } from '../utils/shared-types';
/**
* The Blog JSON LD props.
*/
export interface BlogJsonLdProps extends DeferSeoProps, Overrides<Blog> {
/**
* The canonical URL of the article page.
*/
url: string;
/**
* The headline of the article.
*
* @remarks
*
* Headlines should not exceed 110 characters. For AMP stories, the headline
* should match the text in the first cover page in the AMP Story.
*/
headline: string | string[];
/**
* @deprecated
*
* Use headline instead.
*/
title?: string;
/**
* Keywords or tags used to describe this content. Multiple entries in a
* keywords list are typically delimited by commas.
*/
keywords?: string[];
/**
* The images URLs that is representative of the article or AMP story.
*
* @remarks
*
* Due to format differences in search results, the following image guidelines
* only apply to general AMP pages, not AMP stories. AMP stories have
* {@link https://www.ampproject.org/docs/reference/components/amp-story#new-metadata-requirements | 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. Images must be in .jpg,
* .png, or .gif format.
* - 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.
*/
images?: string[];
/**
* The date and time the article was first published, in ISO 8601 format.
*
* @remarks
*
* 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.
*/
datePublished?: string;
/**
* The date and time the article was most recently modified, in ISO 8601
* format.
*/
dateModified?: string;
/**
* The name of the author.
*/
authorName?: string;
/**
* The type of author for this article.
*
* @defaultValue 'Person'
*/
authorType?: 'Person' | 'Organization';
/**
* A short description of the article.
*/
description?: string;
/**
* The name of the publisher.
*/
publisherName?: string;
/**
* The url of the publisher logo.
*/
publisherLogo?: string;
/**
* A posting that is part of this blog.
*/
posts?: BlogPost[];
/**
* The International Standard Serial Number (ISSN) that identifies this serial
* publication. You can repeat this property to identify different formats of,
* or the linking ISSN (ISSN-L) for, this serial publication.
*/
issn?: string | string[];
}
interface BlogPost {
/**
* Headline of the blog post.
*/
headline: string;
/**
* The date and time the article was first published, in ISO 8601 format.
*
* @remarks
*
* 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.
*/
datePublished?: string;
/**
* An image URL that is representative of the blog post.
*/
image?: string;
}
export declare const BlogJsonLd: FC<BlogJsonLdProps>;
export {};
//# sourceMappingURL=blog.d.ts.map