npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2024 – Pkg Stats / Ryan Hefner

@bradgarropy/next-seo

v1.2.0

Published

πŸ”Ž next seo

Downloads

102

Readme

πŸ”Ž next seo

version downloads size github actions coverage typescript contributing contributors discord

πŸ”Ž seo component for next.js

Next.js provides a <Head> component to update meta tags. However, there's still much to understand if you want to achieve proper SEO. This component makes it easy to manage your SEO tags. It supports Facebook, Twitter, Open Graph, and meta tags.

πŸ“¦ Installation

This package is hosted on npm.

npm install @bradgarropy/next-seo

πŸ₯‘ Usage

To add a base set of SEO tags, create a custom <App/> component and add the <SEO/> component there. The SEO tags will render for every route in your site.

// ./pages/_app.js

import SEO from "@bradgarropy/next-seo"

const MyApp = ({Component, pageProps}) => {
    return (
        <>
            <SEO title="My website" description="A blog and portfolio" />
            <Component {...pageProps} />
        </>
    )
}

export default MyApp

If 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 _app.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.

// ./pages/about.js

import SEO from "@bradgarropy/next-seo"

const AboutPage = () => {
    return (
        <>
            <SEO description="Learn more about me" />
            <Component {...pageProps} />
        </>
    )
}

export default AboutPage

With 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. | | 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. |

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

✨ Contributors