{"id":16629032,"url":"https://github.com/bradgarropy/next-seo","last_synced_at":"2025-06-28T15:35:09.636Z","repository":{"id":46598775,"uuid":"327040825","full_name":"bradgarropy/next-seo","owner":"bradgarropy","description":"🔎 next seo","archived":false,"fork":false,"pushed_at":"2021-10-04T13:57:18.000Z","size":1034,"stargazers_count":20,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-16T22:48:17.746Z","etag":null,"topics":["eslint","facebook","hacktoberfest","jest","meta","next","open-graph","prettier","react","seo","twitter","typescript"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/@bradgarropy/next-seo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradgarropy.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-05T15:30:50.000Z","updated_at":"2023-10-31T11:36:52.000Z","dependencies_parsed_at":"2022-08-30T01:20:25.999Z","dependency_job_id":null,"html_url":"https://github.com/bradgarropy/next-seo","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnext-seo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnext-seo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnext-seo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradgarropy%2Fnext-seo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradgarropy","download_url":"https://codeload.github.com/bradgarropy/next-seo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244822635,"owners_count":20516143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","facebook","hacktoberfest","jest","meta","next","open-graph","prettier","react","seo","twitter","typescript"],"created_at":"2024-10-12T04:39:05.535Z","updated_at":"2025-03-21T15:31:18.422Z","avatar_url":"https://github.com/bradgarropy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔎 next seo\n\n[![version][version-badge]][npm]\n[![downloads][downloads-badge]][npm]\n[![size][size-badge]][bundlephobia]\n[![github actions][github-actions-badge]][github-actions]\n[![coverage][codecov-badge]][codecov]\n[![typescript][typescript-badge]][typescript]\n[![contributing][contributing-badge]][contributing]\n[![contributors][contributors-badge]][contributors]\n[![discord][discord-badge]][discord]\n\n_🔎 seo component for [next.js][next]_\n\n[Next.js][next] provides a `\u003cHead\u003e` 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][facebook], [Twitter][twitter-cards], [Open Graph][og], and `meta` tags.\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@bradgarropy/next-seo\"\u003e\n        \u003cimg alt=\"next link\" src=\"./images/github.png\" width=\"500\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## 📦 Installation\n\nThis package is hosted on [`npm`][npm].\n\n```bash\nnpm install @bradgarropy/next-seo\n```\n\n## 🥑 Usage\n\nTo add a base set of SEO tags, create a [custom `\u003cApp/\u003e` component][app] and add the `\u003cSEO/\u003e` component there. The SEO tags will render for every route in your site.\n\n```jsx\n// ./pages/_app.js\n\nimport SEO from \"@bradgarropy/next-seo\"\n\nconst MyApp = ({Component, pageProps}) =\u003e {\n    return (\n        \u003c\u003e\n            \u003cSEO title=\"My website\" description=\"A blog and portfolio\" /\u003e\n            \u003cComponent {...pageProps} /\u003e\n        \u003c/\u003e\n    )\n}\n\nexport default MyApp\n```\n\nIf you want to override SEO tags on individual pages, use the `\u003cSEO/\u003e` component and only include the props that you want to update. For example, if you added `\u003cSEO/\u003e` in the `_app.js` file as shown above, and then included `\u003cSEO/\u003e` in the `about.js` file as shown below, the `description` would be overwritten to be `Learn more about me`.\n\n```jsx\n// ./pages/about.js\n\nimport SEO from \"@bradgarropy/next-seo\"\n\nconst AboutPage = () =\u003e {\n    return (\n        \u003c\u003e\n            \u003cSEO description=\"Learn more about me\" /\u003e\n            \u003cComponent {...pageProps} /\u003e\n        \u003c/\u003e\n    )\n}\n\nexport default AboutPage\n```\n\nWith this capability, you can create a default set of SEO tags, and then tailor certain properties on specific pages.\n\n## 📖 API Reference\n\n### `\u003cSEO\u003e`\n\n| Name             | Required | Example                            | Description                                                |\n| :--------------- | :------: | :--------------------------------- | :--------------------------------------------------------- |\n| `title`          | `false`  | `\"My website\"`                     | Page title.                                                |\n| `description`    | `false`  | `\"A blog and portfolio\"`           | Description of the page.                                   |\n| `keywords`       | `false`  | `[\"website\", \"blog\", \"portfolio\"]` | Array of keywords.                                         |\n| `icon`           | `false`  | `\"/favicon.ico\"`                   | Tab icon url.                                              |\n| `themeColor`     | `false`  | `\"#000000\"`                        | Browser theme color.                                       |\n| `colorScheme`    | `false`  | `\"light\"`                          | Preferred color scheme.                                    |\n| `facebook.image` | `false`  | `\"/facebook.png\"`                  | Facebook share image.                                      |\n| `facebook.url`   | `false`  | `\"https://website.com\"`            | Page URL.                                                  |\n| `facebook.type`  | `false`  | `\"website\"`                        | Type of resource. See all types [here][types].             |\n| `twitter.image`  | `false`  | `\"/twitter.png\"`                   | Twitter share image.                                       |\n| `twitter.site`   | `false`  | `\"@bradgarropy\"`                   | Twitter handle of publishing site.                         |\n| `twitter.card`   | `false`  | `\"summary\"`                        | Format of Twitter share card. See all types [here][cards]. |\n\nAll of the `SEO` props are optional. If a prop is not provided, the associated meta tag will not be rendered.\n\n```jsx\n// renders no seo tags\n\u003cSEO/\u003e\n\n// renders all seo tags\n\u003cSEO\n    title=\"My website\"\n    description=\"A blog and portfolio\"\n    keywords={[\"website\", \"blog\", \"portfolio\"]}\n    icon=\"/favicon.ico\"\n    themeColor=\"#000000\"\n    colorScheme=\"light\"\n    facebook={{\n        image: \"/facebook.png\",\n        url: \"https://website.com\",\n        type: \"website\",\n    }}\n    twitter={{\n        image: \"/twitter.png\",\n        site: \"@bradgarropy\",\n        card: \"summary\",\n    }}\n/\u003e\n\n// renders some seo tags\n\u003cSEO\n    title=\"My blog\"\n    description=\"Posts about technology\"\n    keywords={[\"website\", \"blog\", \"technology\"]}\n/\u003e\n```\n\n## ❔ Questions\n\n🐛 report bugs by filing [issues][issues]  \n📢 provide feedback with [issues][issues] or on [twitter][twitter]  \n🙋🏼‍♂️ use my [ama][ama] or [twitter][twitter] to ask any other questions\n\n## ✨ Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://bradgarropy.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11336745?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBrad Garropy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/bradgarropy/next-seo/commits?author=bradgarropy\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/bradgarropy/next-seo/commits?author=bradgarropy\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/bradgarropy/next-seo/commits?author=bradgarropy\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#infra-bradgarropy\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://nickradford.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/222221?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNick Radford\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/bradgarropy/next-seo/issues?q=author%3Anickradford\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://usman-s.me\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/51731966?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMax Programming\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/bradgarropy/next-seo/issues?q=author%3Amax-programming\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#ideas-max-programming\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/bradgarropy/next-seo/commits?author=max-programming\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#userTesting-max-programming\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n[next]: https://nextjs.org\n[facebook]: https://developers.facebook.com/docs/sharing/webmasters\n[twitter-cards]: https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup\n[og]: https://ogp.me\n[version-badge]: https://img.shields.io/npm/v/@bradgarropy/next-seo.svg?style=flat-square\n[downloads-badge]: https://img.shields.io/npm/dt/@bradgarropy/next-seo?style=flat-square\n[bundlephobia]: https://bundlephobia.com/result?p=@bradgarropy/next-seo\n[size-badge]: https://img.shields.io/bundlephobia/minzip/@bradgarropy/next-seo?style=flat-square\n[github-actions]: https://github.com/bradgarropy/next-seo/actions\n[github-actions-badge]: https://img.shields.io/github/workflow/status/bradgarropy/next-seo/%F0%9F%9A%80%20release?style=flat-square\n[codecov]: https://app.codecov.io/gh/bradgarropy/next-seo\n[codecov-badge]: https://img.shields.io/codecov/c/github/bradgarropy/next-seo?style=flat-square\n[typescript]: https://www.typescriptlang.org/dt/search?search=%40bradgarropy%2Fnext-seo\n[typescript-badge]: https://img.shields.io/npm/types/@bradgarropy/next-seo?style=flat-square\n[contributing]: https://github.com/bradgarropy/next-seo/blob/master/contributing.md\n[contributing-badge]: https://img.shields.io/badge/PRs-welcome-success?style=flat-square\n[contributors]: #-contributors\n[contributors-badge]: https://img.shields.io/github/all-contributors/bradgarropy/next-seo?style=flat-square\n[discord]: https://bradgarropy.com/discord\n[discord-badge]: https://img.shields.io/discord/748196643140010015?style=flat-square\n[npm]: https://npmjs.com/package/@bradgarropy/next-seo\n[issues]: https://github.com/bradgarropy/next-seo/issues\n[twitter]: https://twitter.com/bradgarropy\n[ama]: https://bradgarropy.com/ama\n[types]: https://ogp.me/#types\n[cards]: https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards\n[app]: https://nextjs.org/docs/advanced-features/custom-app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradgarropy%2Fnext-seo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradgarropy%2Fnext-seo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradgarropy%2Fnext-seo/lists"}