Seo, poprawki treści
This commit is contained in:
@@ -1,16 +1,17 @@
|
|||||||
title: "FUZ – Internet i telewizja w Twojej okolicy"
|
site:
|
||||||
description: "Lokalny operator internetu i telewizji. Nowoczesny światłowód i radio, realny serwis i szybkie wsparcie."
|
name: "FUZ – Internet światłowodowy i radiowy w Wyszkowie"
|
||||||
canonical: "/"
|
description: "Stabilny i szybki internet"
|
||||||
image: "/og/fuz-home.png"
|
|
||||||
keywords:
|
|
||||||
- internet
|
|
||||||
- światłowód
|
|
||||||
- telewizja
|
|
||||||
- lokalny operator
|
|
||||||
schema:
|
|
||||||
"@context": "https://schema.org"
|
|
||||||
"@type": "Organization"
|
|
||||||
name: "FUZ"
|
|
||||||
url: "https://www.fuz.pl"
|
url: "https://www.fuz.pl"
|
||||||
sameAs:
|
lang: "pl"
|
||||||
- "https://www.facebook.com"
|
|
||||||
|
company:
|
||||||
|
name: "FUZ Adam Rojek"
|
||||||
|
phone: "+48 (29) 643 80 55"
|
||||||
|
email: "biuro@fuz.pl"
|
||||||
|
street: "ul. Świętojańska 46"
|
||||||
|
city: "Wyszków"
|
||||||
|
postal: "07-200"
|
||||||
|
country: "PL"
|
||||||
|
lat: 52.597385
|
||||||
|
lon: 21.456797
|
||||||
|
logo: "/images/logo-fuz.webp"
|
||||||
|
|||||||
22
src/content/site/site.section.yaml
Normal file
22
src/content/site/site.section.yaml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
sections:
|
||||||
|
- title: "Internet Światłowodowy"
|
||||||
|
image: "/images/section-fiber.jpg"
|
||||||
|
dimmed: true
|
||||||
|
button:
|
||||||
|
text: "Zobacz ofertę →"
|
||||||
|
url: "/internet-swiatlowod/"
|
||||||
|
content: |
|
||||||
|
Z naszym światłowodem zyskujesz nie tylko internet, ale przewagę — najwyższą jakość połączenia, która nigdy nie zwalnia.
|
||||||
|
|
||||||
|
Odkryj komfort technologii stworzonej do pracy, rozrywki i życia bez ograniczeń.
|
||||||
|
|
||||||
|
- title: "Internet Radiowy"
|
||||||
|
image: "/images/section-radiowy.jpg"
|
||||||
|
dimmed: true
|
||||||
|
button:
|
||||||
|
text: "Zobacz ofertę →"
|
||||||
|
url: "/internet-radiowy/"
|
||||||
|
content: |
|
||||||
|
Nowoczesna technologia radiowa gwarantuje stabilny internet o wysokiej wydajności tam, gdzie inne łącza nie mają szans.
|
||||||
|
|
||||||
|
To szybki start w świat cyfrowej pracy i rozrywki — bez konieczności instalacji kabli.
|
||||||
@@ -1,42 +1,104 @@
|
|||||||
---
|
---
|
||||||
|
import yaml from "js-yaml";
|
||||||
|
import fs from "fs";
|
||||||
|
|
||||||
const { seo } = Astro.props;
|
const { seo } = Astro.props;
|
||||||
|
|
||||||
|
// Load global SEO config
|
||||||
|
const globalSeo = yaml.load(
|
||||||
|
fs.readFileSync("./src/content/seo/home.yaml", "utf8")
|
||||||
|
);
|
||||||
|
|
||||||
|
const { site, company } = globalSeo;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
title = "FUZ",
|
title = site.name,
|
||||||
description = "Lokalny operator internetu i telewizji.",
|
description = site.description,
|
||||||
canonical = "/",
|
url = "/",
|
||||||
image = "/og/default.png",
|
image = site.logo,
|
||||||
keywords = [],
|
keywords = [],
|
||||||
schema = {}
|
schema = {}
|
||||||
} = seo ?? {};
|
} = seo ?? {};
|
||||||
---
|
|
||||||
|
|
||||||
|
const canonical = site.url + url;
|
||||||
|
|
||||||
|
/* PREPARE JSON-LD AS SAFE STRINGS */
|
||||||
|
|
||||||
|
const schemaWebsite = JSON.stringify({
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "WebSite",
|
||||||
|
"url": site.url,
|
||||||
|
"name": site.name,
|
||||||
|
"potentialAction": {
|
||||||
|
"@type": "SearchAction",
|
||||||
|
"target": site.url + "/wyszukiwarka?query={search_term_string}",
|
||||||
|
"query-input": "required name=search_term_string"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const schemaLocalBusiness = JSON.stringify({
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "LocalBusiness",
|
||||||
|
"name": company.name,
|
||||||
|
"image": site.url + company.logo,
|
||||||
|
"telephone": company.phone,
|
||||||
|
"email": company.email,
|
||||||
|
"address": {
|
||||||
|
"@type": "PostalAddress",
|
||||||
|
"streetAddress": company.street,
|
||||||
|
"addressLocality": company.city,
|
||||||
|
"postalCode": company.postal,
|
||||||
|
"addressCountry": company.country
|
||||||
|
},
|
||||||
|
"geo": {
|
||||||
|
"@type": "GeoCoordinates",
|
||||||
|
"latitude": company.lat,
|
||||||
|
"longitude": company.lon
|
||||||
|
},
|
||||||
|
"url": site.url
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Extra schema if passed from page */
|
||||||
|
const schemaExtra = Object.keys(schema).length > 0
|
||||||
|
? JSON.stringify(schema)
|
||||||
|
: null;
|
||||||
|
---
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
<title>{title}</title>
|
<title>{title}</title>
|
||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
|
|
||||||
{keywords.length > 0 && (
|
{keywords.length > 0 && (
|
||||||
<meta name="keywords" content={keywords.join(", ")} />
|
<meta name="keywords" content={keywords.join(", ")} />
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<link rel="canonical" href={canonical} />
|
<link rel="canonical" href={canonical} />
|
||||||
|
|
||||||
|
<!-- OG -->
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:title" content={title} />
|
<meta property="og:title" content={title} />
|
||||||
<meta property="og:description" content={description} />
|
<meta property="og:description" content={description} />
|
||||||
|
<meta property="og:url" content={canonical} />
|
||||||
|
<meta property="og:site_name" content={site.name} />
|
||||||
<meta property="og:image" content={image} />
|
<meta property="og:image" content={image} />
|
||||||
|
|
||||||
|
<!-- Twitter -->
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
<meta name="twitter:title" content={title} />
|
<meta name="twitter:title" content={title} />
|
||||||
<meta name="twitter:description" content={description} />
|
<meta name="twitter:description" content={description} />
|
||||||
<meta name="twitter:image" content={image} />
|
<meta name="twitter:image" content={image} />
|
||||||
|
|
||||||
{Object.keys(schema).length > 0 && (
|
<!-- JSON-LD (Website) -->
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">{schemaWebsite}</script>
|
||||||
{JSON.stringify(schema)}
|
|
||||||
</script>
|
<!-- JSON-LD (LocalBusiness) -->
|
||||||
|
<script type="application/ld+json">{schemaLocalBusiness}</script>
|
||||||
|
|
||||||
|
<!-- Optional per-page schema -->
|
||||||
|
{schemaExtra && (
|
||||||
|
<script type="application/ld+json">{schemaExtra}</script>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<slot />
|
<slot />
|
||||||
|
|||||||
Reference in New Issue
Block a user