@bradgarropy/gatsby-plugin-seo
v2.2.0
Published
π gatsby-plugin-seo
Maintainers
Readme
π gatsby-plugin-seo
SEO plugin for Gastby. Supports Facebook, Twitter, Open Graph, and meta tags.
π¦ Installation
This package is installable from npm.
npm install @bradgarropy/gatsby-plugin-seoπ₯ Usage
To add a base set of SEO tags, create a custom <Layout/> component and add the <SEO/> component there. The SEO tags will render for every route in your site.
// .src/components/Layout.js
import SEO from "@bradgarropy/next-seo"
const Layout = ({children}) => {
return (
<>
<SEO title="My website" description="A blog and portfolio" />
{children}
</>
)
}
export default LayoutIf you want to override SEO tags on individual pages, use the <SEO/> component and only include the props that you want to update. For example, if you added <SEO/> in the Layout.js file as shown above, and then included <SEO/> in the about.js file as shown below, the description would be overwritten to be Learn more about me.
// .src/pages/about.js
import SEO from "@bradgarropy/next-seo"
import Layout from "../components/layout"
const AboutPage = () => {
return (
<Layout>
<SEO description="Learn more about me" />
<h1>about</h1>
</Layout>
)
}
export default AboutPageWith this capability, you can create a default set of SEO tags, and then tailor certain properties on specific pages.
π API Reference
<SEO>
| Name | Required | Example | Description |
| :--------------- | :------: | :--------------------------------- | :--------------------------------------------------------- |
| title | false | "My website" | Page title. |
| description | false | "A blog and portfolio" | Description of the page. |
| keywords | false | ["website", "blog", "portfolio"] | Array of keywords. |
| icon | false | "/favicon.ico" | Tab icon url. |
| themeColor | false | "#000000" | Browser theme color. |
| colorScheme | false | "light" | Preferred color scheme. |
| facebook.image | false | "/facebook.png" | Facebook share image. |
| facebook.url | false | "https://website.com" | Page URL. |
| facebook.type | false | "website" | Type of resource. See all types [here][types]. |
| twitter.image | false | "/twitter.png" | Twitter share image. |
| twitter.site | false | "@bradgarropy" | Twitter handle of publishing site. |
| twitter.card | false | "summary" | Format of Twitter share card. See all types [here][cards]. |
All of the SEO props are optional. If a prop is not provided, the associated meta tag will not be rendered.
// renders no seo tags
<SEO/>
// renders all seo tags
<SEO
title="My website"
description="A blog and portfolio"
keywords={["website", "blog", "portfolio"]}
icon="/favicon.ico"
themeColor="#000000"
colorScheme="light"
facebook={{
image: "/facebook.png",
url: "https://website.com",
type: "website",
}}
twitter={{
image: "/twitter.png",
site: "@bradgarropy",
card: "summary",
}}
/>
// renders some seo tags
<SEO
title="My blog"
description="Posts about technology"
keywords={["website", "blog", "technology"]}
/>β Questions
π report bugs by filing issues
π’ provide feedback with issues or on twitter
ππΌββοΈ use my ama or twitter to ask any other questions
