-
Notifications
You must be signed in to change notification settings - Fork 1
Seo improvements #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -3,16 +3,54 @@ import { Montserrat } from "next/font/google"; | |||
| import "./globals.css"; | ||||
| import { ThemeProvider } from "@/components/theme-provider"; | ||||
| import { Analytics } from "@vercel/analytics/react" | ||||
| import { generateSchemaMarkup, generateFAQSchema } from "./schema"; | ||||
|
|
||||
| const montserrat = Montserrat({ | ||||
| variable: '--font-montserrat', | ||||
| subsets: ['latin'] | ||||
| }) | ||||
|
|
||||
| export const metadata: Metadata = { | ||||
| title: "ReChrome | Find chrome versions you need.", | ||||
| description: "ReChrome is an open-sourced project that displays old versions of chrome, ready to be downloaded for various different operating systems.", | ||||
| keywords: ['chrome', 'rechrome', 'chrome versions', 'versions', 'version', 'old'], | ||||
| title: "ReChrome - Download Old Chrome Versions | Chrome Version Archive", | ||||
| description: "Download old Chrome versions for Windows, macOS, and Linux. Access the complete Chrome version history and archive with easy one-click downloads.", | ||||
| keywords: ['chrome versions', 'download old chrome', 'chrome version history', 'old chrome versions', 'chrome archive', 'legacy chrome', 'chrome downloads', 'rechrome'], | ||||
| metadataBase: new URL(process.env.NEXT_PUBLIC_URL || "https://rechrome.vercel.app/"), | ||||
| openGraph: { | ||||
| title: "ReChrome - Download Old Chrome Versions", | ||||
| description: "Find and download any Chrome version you need. Complete archive with one-click downloads for all operating systems.", | ||||
| url: "/", | ||||
| siteName: "ReChrome", | ||||
| type: "website", | ||||
| images: [ | ||||
| { | ||||
| url: "/og-image.png", | ||||
| width: 1200, | ||||
| height: 630, | ||||
| alt: "ReChrome - Download Old Chrome Versions", | ||||
| }, | ||||
| ], | ||||
| }, | ||||
| twitter: { | ||||
| card: "summary_large_image", | ||||
| title: "ReChrome - Download Old Chrome Versions", | ||||
| description: "Find and download any Chrome version you need. Complete Chrome version archive.", | ||||
| creator: "@itzcodex24", | ||||
| images: ["/og-image.png"], | ||||
|
||||
| images: ["/og-image.png"], |
Copilot
AI
Dec 16, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Next.js automatically handles adding the custom head elements in the layout through the metadata API. Manually adding a head element in the JSX can potentially cause conflicts or duplicate head elements. Consider using the metadata API's other.ldJson or viewport fields instead, or verify that this manual approach doesn't conflict with Next.js's automatic head management.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| export function generateSchemaMarkup() { | ||
| return { | ||
| "@context": "https://schema.org", | ||
| "@type": "WebApplication", | ||
| "name": "ReChrome", | ||
| "description": "Download old Chrome versions for Windows, macOS, and Linux. Access the complete Chrome version history and archive.", | ||
| "url": "https://rechrome.vercel.app/", | ||
|
||
| "applicationCategory": "UtilityApplication", | ||
| "offers": { | ||
| "@type": "Offer", | ||
| "price": "0", | ||
| "priceCurrency": "USD" | ||
| }, | ||
| "author": { | ||
| "@type": "Person", | ||
| "name": "itzcodex24", | ||
| "url": "https://x.com/itzcodex24" | ||
| }, | ||
| "creator": { | ||
| "@type": "Organization", | ||
| "name": "ReChrome Contributors" | ||
| }, | ||
| "sourceOrganization": { | ||
| "@type": "Organization", | ||
| "name": "ReChrome", | ||
| "url": "https://rechrome.vercel.app/" | ||
|
||
| }, | ||
| "operatingSystem": ["Windows", "macOS", "Linux"], | ||
| "inLanguage": "en-US", | ||
| "isAccessibleForFree": true | ||
| }; | ||
| } | ||
|
|
||
| export function generateFAQSchema() { | ||
| return { | ||
| "@context": "https://schema.org", | ||
| "@type": "FAQPage", | ||
| "mainEntity": [ | ||
| { | ||
| "@type": "Question", | ||
| "name": "What is ReChrome?", | ||
| "acceptedAnswer": { | ||
| "@type": "Answer", | ||
| "text": "ReChrome is an open-source project that provides easy access to old Chrome versions for download. Stop digging through the internet to find specific Chrome versions." | ||
| } | ||
| }, | ||
| { | ||
| "@type": "Question", | ||
| "name": "Can I download old Chrome versions?", | ||
| "acceptedAnswer": { | ||
| "@type": "Answer", | ||
| "text": "Yes! ReChrome provides direct downloads to the official Chrome version archive. All download links are public and come from Google's official sources." | ||
| } | ||
| }, | ||
| { | ||
| "@type": "Question", | ||
| "name": "What operating systems are supported?", | ||
| "acceptedAnswer": { | ||
| "@type": "Answer", | ||
| "text": "ReChrome supports Windows, macOS, and Linux. You can download old Chrome versions for any of these operating systems." | ||
| } | ||
| }, | ||
| { | ||
| "@type": "Question", | ||
| "name": "Is ReChrome affiliated with Google?", | ||
| "acceptedAnswer": { | ||
| "@type": "Answer", | ||
| "text": "No, ReChrome is not affiliated with Google. It is an open-source project that provides convenient access to Chrome versions from Google's official archive." | ||
| } | ||
| } | ||
| ] | ||
| }; | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| import { MetadataRoute } from 'next'; | ||
|
|
||
| export default function sitemap(): MetadataRoute.Sitemap { | ||
| const baseUrl = process.env.NEXT_PUBLIC_URL || 'https://rechrome.vercel.app/'; | ||
|
|
||
| return [ | ||
| { | ||
| url: baseUrl, | ||
| lastModified: new Date(), | ||
| changeFrequency: 'daily', | ||
| priority: 1, | ||
| }, | ||
| ]; | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,43 @@ | ||||||||||||||||||||||
| # ReChrome - Chrome Version Archive | ||||||||||||||||||||||
| # https://rechrome.vercel.app/ | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: * | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
| Disallow: | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| # Sitemap | ||||||||||||||||||||||
| Sitemap: https://rechrome.vercel.app/sitemap.xml | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| # Crawl delay (optional - set reasonable delays) | ||||||||||||||||||||||
| Crawl-delay: 1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| # Specific bots | ||||||||||||||||||||||
| User-agent: Googlebot | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
| Crawl-delay: 0 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: Bingbot | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
| Crawl-delay: 1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: Slurp | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: DuckDuckBot | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: Baiduspider | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: Yandexbot | ||||||||||||||||||||||
| Allow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| # Block bad bots | ||||||||||||||||||||||
| User-agent: MJ12bot | ||||||||||||||||||||||
| Disallow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: AhrefsBot | ||||||||||||||||||||||
| Disallow: / | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| User-agent: SemrushBot | ||||||||||||||||||||||
| Disallow: / | ||||||||||||||||||||||
|
Comment on lines
+40
to
+43
|
||||||||||||||||||||||
| Disallow: / | |
| User-agent: SemrushBot | |
| Disallow: / | |
| Allow: / | |
| Crawl-delay: 5 | |
| User-agent: SemrushBot | |
| Allow: / | |
| Crawl-delay: 5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Open Graph image file '/og-image.png' referenced in the metadata does not exist in the public directory. This will cause broken image links when the page is shared on social media platforms. Either create the og-image.png file in the public directory with dimensions 1200x630, or remove the Open Graph image configuration.