refactor(seo): Improve page metadata and HTML semantics
This commit updates the page metadata (title and description) from the default Next.js placeholders to be descriptive of the Opp lens application, improving SEO. Additionally, it refactors the HTML structure for better semantics and accessibility: - Replaced generic `div` and fragment tags with appropriate semantic elements like `main`, `article`, `li`, and `small`. - Corrected the heading hierarchy for better document structure. - Fixed image source paths by making them absolute to prevent broken images.
This commit is contained in:
+21
-18
@@ -16,8 +16,9 @@ const geistMono = Geist_Mono({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Create Next App",
|
||||
description: "Generated by create next app",
|
||||
title: "Opp lens - AI-Powered Tender Management",
|
||||
description:
|
||||
"Democratizing Tender Access for SMEs with AI-powered tender discovery and preparation.",
|
||||
icons: {
|
||||
icon: "/fav-icon.svg",
|
||||
},
|
||||
@@ -37,7 +38,7 @@ function ContactInfo({
|
||||
contactIconSrc?: string;
|
||||
}) {
|
||||
return (
|
||||
<div className="flex gap-3 my-3 text-white">
|
||||
<li className="flex gap-3 my-3 text-white">
|
||||
<Image
|
||||
src={icon}
|
||||
width={24}
|
||||
@@ -65,7 +66,7 @@ function ContactInfo({
|
||||
{contact}
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</li>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -149,23 +150,25 @@ export default async function RootLayout({
|
||||
<p className="text-white my-2">
|
||||
Democratizing Tender Access for SMEs.
|
||||
</p>
|
||||
<p className="text-white my-2">
|
||||
<small className="text-white my-2">
|
||||
© 2025 Opplens.com by PBL Partners AB. All Rights Reserved.
|
||||
</p>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
{contactInfo.map((contact, index) => (
|
||||
<ContactInfo
|
||||
key={index}
|
||||
icon={contact.icon}
|
||||
contact={contact.contact}
|
||||
href={contact.href}
|
||||
ariaLabel={contact.ariaLabel}
|
||||
contactIconSrc={contact.contactIconSrc}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
<address className="not-italic">
|
||||
<ul>
|
||||
{contactInfo.map((contact, index) => (
|
||||
<ContactInfo
|
||||
key={index}
|
||||
icon={contact.icon}
|
||||
contact={contact.contact}
|
||||
href={contact.href}
|
||||
ariaLabel={contact.ariaLabel}
|
||||
contactIconSrc={contact.contactIconSrc}
|
||||
/>
|
||||
))}
|
||||
</ul>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
Reference in New Issue
Block a user