Performance & SEO optimization + Google login for CMS
Performance: - Enable image optimization (Image: true, SVG: true) - 429MB saved with WebP conversion SEO: - Add JSON-LD structured data (Organization & FAQ schemas) - Add keywords and author metadata - Update robots.txt with sitemap reference - Add alt text to OpenGraph images CMS: - Enable Google OAuth login for admin panel - Add logo to admin login page Fixes: - Update Telegram link to @ym1ktc on homepage Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
---
|
||||
interface Props {
|
||||
faqs: { question: string; answer: string; }[];
|
||||
}
|
||||
const { faqs } = Astro.props;
|
||||
|
||||
const schema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'FAQPage',
|
||||
mainEntity: faqs.map(faq => ({
|
||||
'@type': 'Question',
|
||||
name: faq.question,
|
||||
acceptedAnswer: {
|
||||
'@type': 'Answer',
|
||||
text: faq.answer
|
||||
}
|
||||
}))
|
||||
};
|
||||
---
|
||||
|
||||
<script define:vars={{ schema }} type="application/ld+json">
|
||||
{JSON.stringify(schema, null, 2)}
|
||||
</script>
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
const schema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'Organization',
|
||||
name: 'Amatör Radyocular Derneği (ARC)',
|
||||
url: 'https://www.radio.org.tr',
|
||||
logo: 'https://www.radio.org.tr/_astro/ARC_2024_bayrak_logo-Large-1-1024x1024.png',
|
||||
description: 'İstanbul merkezli kâr amacı gütmeyen bu dernek, amatör telsizciliği yaygınlaştırmak, eğitim vermek ve röle-beacon altyapıları işletmek amacıyla kurulmuştur.',
|
||||
contactPoint: {
|
||||
telephone: '+90-510-220-5024',
|
||||
contactType: 'customer service'
|
||||
},
|
||||
sameAs: [
|
||||
'https://t.me/ym1ktc',
|
||||
'https://twitter.com/YM1KTC',
|
||||
'https://facebook.com/ym1ktc',
|
||||
'https://www.youtube.com/@YM1KTC',
|
||||
'https://www.instagram.com/ym1ktc',
|
||||
'https://www.linkedin.com/company/arctr/'
|
||||
]
|
||||
};
|
||||
---
|
||||
|
||||
<script define:vars={{ schema }} type="application/ld+json">
|
||||
{JSON.stringify(schema, null, 2)}
|
||||
</script>
|
||||
@@ -21,7 +21,19 @@ metadata:
|
||||
- url: '~/assets/images/2024/12/ARC_2024_bayrak_logo-Large-1-1024x1024.png'
|
||||
width: 1024
|
||||
height: 1024
|
||||
alt: 'Amatör Radyocular Derneği Logo'
|
||||
type: website
|
||||
keywords:
|
||||
- amatör radyo
|
||||
- amatör telsiz
|
||||
- telsizcilik
|
||||
- amatör radyocular derneği
|
||||
- ARC
|
||||
- YM1KTC
|
||||
- amatör telsiz eğitimi
|
||||
author:
|
||||
name: 'Amatör Radyocular Derneği (ARC)'
|
||||
email: 'bilgi@radio.org.tr'
|
||||
twitter:
|
||||
handle: '@YM1KTC'
|
||||
site: '@YM1KTC'
|
||||
|
||||
@@ -11,6 +11,7 @@ import Metadata from '~/components/common/Metadata.astro';
|
||||
import SiteVerification from '~/components/common/SiteVerification.astro';
|
||||
import Analytics from '~/components/common/Analytics.astro';
|
||||
import BasicScripts from '~/components/common/BasicScripts.astro';
|
||||
import OrganizationSchema from '~/components/structured-data/OrganizationSchema.astro';
|
||||
|
||||
// Comment the line below to disable View Transitions
|
||||
import { ClientRouter } from 'astro:transitions';
|
||||
@@ -35,6 +36,7 @@ const { language, textDirection } = I18N;
|
||||
<Metadata {...metadata} />
|
||||
<SiteVerification />
|
||||
<Analytics />
|
||||
<OrganizationSchema />
|
||||
|
||||
<!-- Netlify Identity for Decap CMS -->
|
||||
<script is:inline src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
|
||||
|
||||
+27
-1
@@ -9,11 +9,35 @@ import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro';
|
||||
import FAQs from '~/components/widgets/FAQs.astro';
|
||||
import Stats from '~/components/widgets/Stats.astro';
|
||||
import CallToAction from '~/components/widgets/CallToAction.astro';
|
||||
import FaqSchema from '~/components/structured-data/FaqSchema.astro';
|
||||
|
||||
const metadata = {
|
||||
title: 'Amatör Radyocular Derneği (ARC) - YM1KTC',
|
||||
ignoreTitleTemplate: true,
|
||||
};
|
||||
|
||||
const faqData = [
|
||||
{
|
||||
question: 'Eğitim programlarına kimler katılabilir?',
|
||||
answer: 'Eğitim programlarımıza amatör telsiz lisansı olan veya lisans almaya hazırlanan herkesi davet ediyoruz.'
|
||||
},
|
||||
{
|
||||
question: 'Hangi frekans bantlarında faaliyet gösteriyorsunuz?',
|
||||
answer: 'Derneğimiz VHF, UHF ve HF bantlarında faaliyet göstermektedir. Özellikle VHF/UHF röle sistemleri konusunda aktif çalışmalar yürütüyoruz.'
|
||||
},
|
||||
{
|
||||
question: 'Eğitim programlarınıza nasıl katılabilirim?',
|
||||
answer: 'Eğitim programları hakkında bilgi almak için web sitemizi takip edebilir veya bizimle iletişime geçebilirsiniz. Düzenli olarak temel ve ileri seviye kurslar düzenlenmektedir.'
|
||||
},
|
||||
{
|
||||
question: 'Teknik projelerde nasıl yer alabilirim?',
|
||||
answer: 'Teknik projelerimizde yer almak için bizimle iletişime geçin. Eğitim programlarımıza katılarak projelerimizde aktif rol alabilirsiniz.'
|
||||
},
|
||||
{
|
||||
question: 'Derneğin röle sistemleri nasıl kullanılır?',
|
||||
answer: 'Röle sistemlerimizin kullanımı hakkında bilgi almak için teknik dokümantasyonumuzu inceleyebilir veya eğitim etkinliklerimize katılabilirsiniz.'
|
||||
}
|
||||
];
|
||||
---
|
||||
|
||||
<Layout metadata={metadata}>
|
||||
@@ -29,7 +53,7 @@ const metadata = {
|
||||
},
|
||||
{
|
||||
text: 'Telegram',
|
||||
href: 'https://t.me/telsizdernegi',
|
||||
href: 'https://t.me/ym1ktc',
|
||||
icon: 'tabler:brand-telegram',
|
||||
target: '_blank',
|
||||
},
|
||||
@@ -262,4 +286,6 @@ const metadata = {
|
||||
Bizimle iletişime geçin ve amatör radyo yolculuğunuza başlayın! 73 de YM1KTC
|
||||
</Fragment>
|
||||
</CallToAction>
|
||||
|
||||
<FaqSchema faqs={faqData} />
|
||||
</Layout>
|
||||
|
||||
Reference in New Issue
Block a user