In response to the changes made to the directory structure of the project, the code has been refactored to adjust image import paths across various sections. It also involves reorganizing components into appropriate folders based on their roles in the application. Along with this, a new utility file for navigation links has been introduced, and configurations for authorizing remote images have been added to Astro configuration file, suggesting an enhancement in SEO performance.
79 lines
4.2 KiB
Text
79 lines
4.2 KiB
Text
---
|
|
// Default properties for the Meta component. These values are used if props are not provided.
|
|
// 'title' sets the default page title for the website.
|
|
// 'meta' sets a default description meta tag to describe the page content.
|
|
// 'structuredData' defines default structured data in JSON-LD format to enhance search engine understanding of the page (for SEO purposes).
|
|
const defaultProps = {
|
|
meta: "ScrewFast offers top-tier hardware tools and expert construction services to meet all your project needs. Start exploring and contact our sales team for superior quality and reliability.",
|
|
structuredData: {
|
|
"@context": "https://schema.org",
|
|
"@type": "WebSite",
|
|
"name": "ScrewFast",
|
|
"url": "https://screwfast.uk",
|
|
"description": "ScrewFast offers top-tier hardware tools and expert construction services to meet all your project needs. Start exploring and contact our sales team for superior quality and reliability.",
|
|
},
|
|
};
|
|
|
|
// Extract props with default values assigned from defaultProps. Values can be overridden when the component is used.
|
|
// For example:
|
|
// <MainLayout title="Custom Title" meta="Custom description." />
|
|
const { meta = defaultProps.meta, structuredData = defaultProps.structuredData } = Astro.props;
|
|
|
|
// Define the metadata for your website and individual pages
|
|
const title: string = "ScrewFast"; // Set default title
|
|
const ogTitle: string = "ScrewFast: Hardware Tools & Construction Services"; // Set the Open Graph title
|
|
const author: string = "Emil Gulamov"; // Set the author's name
|
|
const ogDescription: string =
|
|
"Equip your projects with ScrewFast's top-quality hardware tools and expert construction services. Trusted by industry leaders, ScrewFast offers simplicity, affordability, and reliability. Experience the difference with user-centric design and cutting-edge tools. Start exploring now!"; // Set the Open Graph description
|
|
const URL: string = "https://screwfast.uk"; // Set the website URL
|
|
const socialImage: string = "https://screwfast.uk/social.png"; // Set the URL for the social media image
|
|
---
|
|
|
|
<!-- Inject structured data into the page if provided. This data is formatted as JSON-LD, a method recommended by Google for structured data pass:
|
|
https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data -->
|
|
{structuredData && (
|
|
<script type="application/ld+json" set:html={JSON.stringify(structuredData)}></script>
|
|
)}
|
|
<!-- Define the character set, description, author, and viewport settings -->
|
|
<meta charset="utf-8" />
|
|
<meta content={meta} name="description" />
|
|
<meta name="web_author" content={author} />
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0"
|
|
/>
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
|
|
<!-- Facebook Meta Tags -->
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta property="og:url" content={URL} />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:title" content={ogTitle} />
|
|
<meta property="og:site_name" content={title} />
|
|
<meta property="og:description" content={ogDescription} />
|
|
<meta property="og:image" content={socialImage} />
|
|
<meta content="1200" property="og:image:width" />
|
|
<meta content="600" property="og:image:height" />
|
|
<meta content="image/png" property="og:image:type" />
|
|
|
|
<!-- Twitter Meta Tags -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta property="twitter:domain" content={URL} />
|
|
<meta property="twitter:url" content={URL} />
|
|
<meta name="twitter:title" content={ogTitle} />
|
|
<meta name="twitter:description" content={ogDescription} />
|
|
<meta name="twitter:image" content={socialImage} />
|
|
|
|
<!-- Links to the webmanifest and sitemap -->
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
<!-- https://docs.astro.build/en/guides/integrations-guide/sitemap/ -->
|
|
<link rel="sitemap" href="/sitemap-index.xml" />
|
|
|
|
<!-- Links for favicons -->
|
|
<link href="/favicon.ico" rel="icon" sizes="any" type="image/x-icon" />
|
|
<link href="/icon.svg" rel="icon" type="image/svg+xml" sizes="any" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<link href="/apple-touch-icon.png" rel="apple-touch-icon" />
|
|
<link href="/apple-touch-icon.png" rel="shortcut icon" />
|
|
<!-- Set theme color -->
|
|
<meta name="theme-color" content="#facc15" />
|