Simple SEO tag manager for React
npm install @americanexpress/react-seo


> Simple SEO tag manager for React
Want to get paid for your contributions to react-seo?
> Send your resume to oneamex.careers@aexp.com
* Usage
* API
* Contributing
``bash`
npm install @americanexpress/react-seo
Let's start with a minimal example of basic usage:
`javascript
import React from 'react';
import SEO from '@americanexpress/react-seo';
const MyModule = () => (
export default MyModule;
`
This will result in the following tags being added to the head element:
`html`
Notice in the example above that the Open Graph and Twitter Card metadata is constructed from the title, description, and image props. To override these values or add additional tags not provided by default, you may use the openGraph and twitterCard props.
`javascript
import React from 'react';
import SEO from '@americanexpress/react-seo';
const MyModule = () => (
export default MyModule;
`
The interface for react-seo is denoted below:
`javascript
SEO.propTypes = {
title: string,
description: string,
canonical: string,
image: shape({
src: string,
secureUrl: string,
type: string,
width: number,
height: number,
alt: string,
}),
video: shape({
src: string,
secureUrl: string,
type: string,
width: number,
height: number,
alt: string,
}),
openGraph: shape({
type: string,
url: string,
title: string,
description: string,
determiner: string,
locale: string,
localeAlternate: string,
siteName: string,
image: shape({
src: string,
secureUrl: string,
type: string,
width: number,
height: number,
alt: string,
}),
video: shape({
src: string,
secureUrl: string,
type: string,
width: number,
height: number,
alt: string,
}),
audio: shape({
src: string,
secureUrl: string,
type: string,
}),
}),
twitterCard: shape({
card: string,
title: string,
description: string,
image: shape({
src: string,
alt: string,
}),
site: string,
siteId: string,
creator: string,
creatorId: string,
app: shape({
country: string,
iphone: shape({
id: string,
url: string,
name: string,
}),
ipad: shape({
id: string,
url: string,
name: string,
}),
googlePlay: shape({
id: string,
url: string,
name: string,
}),
}),
player: shape({
src: string,
width: number,
height: number,
}),
}),
keywords: arrayOf(string),
locale: string,
meta: arrayOf(object),
siteUrl: string,
};
SEO.defaultProps = {
article: false,
author: '',
description: '',
image: null,
keywords: [],
locale: 'en-US',
meta: [],
pathname: '',
siteUrl: '',
title: '',
canonical: '',
};
``
We welcome Your interest in the American Express Open Source Community on Github.
Any Contributor to any Open Source Project managed by the American Express Open
Source Community must accept and sign an Agreement indicating agreement to the
terms below. Except for the rights granted in this Agreement to American Express
and to recipients of software distributed by American Express, You reserve all
right, title, and interest, if any, in and to Your Contributions. Please fill
out the Agreement.
Please feel free to open pull requests and see CONTRIBUTING.md for commit formatting details.
Any contributions made under this project will be governed by the Apache License
2.0.
This project adheres to the American Express Community Guidelines.
By participating, you are expected to honor these guidelines.