Skip to content

Add unique meta title and description to each page#80

Merged
Alessandro100 merged 4 commits intomainfrom
copilot/add-unique-meta-titles-and-descriptions
Mar 23, 2026
Merged

Add unique meta title and description to each page#80
Alessandro100 merged 4 commits intomainfrom
copilot/add-unique-meta-titles-and-descriptions

Conversation

Copy link
Contributor

Copilot AI commented Mar 23, 2026

All pages except the home page and feed detail pages fell back to the layout's default metadata, producing duplicate <title> and <meta name="description"> tags across the site.

Changes

  • Added export const metadata: Metadata to 8 pages that were missing page-level SEO metadata:
    • /about, /contact-us, /contribute-faq, /faq
    • /feeds, /gbfs-validator, /privacy-policy, /terms-and-conditions
  • Each page gets a unique title, description, and openGraph block
  • Brand name used consistently as MobilityDatabase across all titles, descriptions, and siteName fields
export const metadata: Metadata = {
  title: 'Transit Feeds | MobilityDatabase',
  description:
    'Browse thousands of GTFS, GTFS-RT, and GBFS transit feeds from agencies around the world. Search and filter open public transit data by location, type, or provider.',
  openGraph: {
    title: 'Transit Feeds | MobilityDatabase',
    description: '...',
    url: 'https://mobilitydatabase.org/feeds',
    siteName: 'MobilityDatabase',
    type: 'website',
  },
};
Original prompt

This section details on the original issue you should resolve

<issue_title>Unique titles and description</issue_title>
<issue_description>Each page should have a unique meta title and description. Right now all pages besides the Feeds, Feeds detail all have the same default title and description</issue_description>

Comments on the Issue (you are @copilot in this section)


📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.

@vercel
Copy link

vercel bot commented Mar 23, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mobilitydatabase-web Ready Ready Preview, Comment Mar 23, 2026 1:47pm

Request Review

Copilot AI changed the title [WIP] Add unique titles and descriptions for each page Add unique meta title and description to each page Mar 23, 2026
Copilot AI requested a review from Alessandro100 March 23, 2026 12:45
Comment on lines +13 to +23
alternates: {
canonical: '/about',
},
openGraph: {
title: 'About | Mobility Database',
description:
'Learn about Mobility Database, the open-source catalog of public transit feeds. Discover our mission to make GTFS, GTFS-RT, and GBFS data accessible to everyone.',
url: 'https://mobilitydatabase.org/about',
siteName: 'Mobility Database',
type: 'website',
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot explain why you added the alternates and everyone. section. This applies to the rest of the PR

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alternates.canonical was added to explicitly declare the canonical URL for each page. Since the app serves the same content at both /about (English default, no prefix) and /fr/about (French), the canonical tag signals to search engines which URL is the primary version, preventing potential duplicate-content penalties.

The openGraph block was added so that when the page URL is shared on social platforms (Slack, Twitter/X, LinkedIn, etc.), they can generate a rich preview with a meaningful title and description instead of falling back to the layout-level defaults.

Both follow the same pattern already established in the home page (src/app/[locale]/page.tsx).

If the issue only requires unique title and description tags (the minimum asked in the issue), the alternates and openGraph blocks can be removed to keep the changes minimal. Let me know if you'd prefer that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot remove all the aleternates.canonical tags

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — removed alternates.canonical from all 8 pages in commit 8c825b0.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

export const dynamic = 'force-static';

export const metadata: Metadata = {
title: 'About | Mobility Database',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot change all the title and description from Mobility Database to MobilityDatabase

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — updated all title, description, and siteName fields from Mobility Database to MobilityDatabase across all 8 pages in commit fe43d80.

@Alessandro100 Alessandro100 marked this pull request as ready for review March 23, 2026 13:43
@github-actions
Copy link

github-actions bot commented Mar 23, 2026

*Lighthouse ran on https://mobilitydatabase-2tv9lxm2y-mobility-data.vercel.app/ * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 97 🟢 96 🟢 100 🟢 100

*Lighthouse ran on https://mobilitydatabase-2tv9lxm2y-mobility-data.vercel.app/feeds * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 88 🟠 87 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-2tv9lxm2y-mobility-data.vercel.app/feeds/gtfs/mdb-2126 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 77 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-2tv9lxm2y-mobility-data.vercel.app/feeds/gtfs_rt/mdb-2585 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 100 🟠 83 🟢 100 🟢 100

*Lighthouse ran on https://mobilitydatabase-2tv9lxm2y-mobility-data.vercel.app/feeds/gbfs/gbfs-flamingo_porirua * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 93 🟢 94 🟢 96 🟢 100

Copy link
Member

@davidgamez davidgamez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Alessandro100 Alessandro100 merged commit 7d5e3d8 into main Mar 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unique titles and description

4 participants