Compare commits

...

3 Commits

Author SHA1 Message Date
Mr¤KayJayDee
2378febe6f add ads.txtx 2025-07-25 23:04:31 +02:00
Mr¤KayJayDee
c79b818302 feat(analytics): intégration de Google Analytics et mise à jour du sitemap
- Remplacement de Google Tag Manager par Google Analytics (gtag.js) dans index.html pour le suivi des performances.
- Ajout d'une fonction de suivi des pages vues dans le routeur pour améliorer l'analyse des données.
- Mise à jour des dates de dernière modification dans sitemap.xml pour refléter la date actuelle.
- Révision des règles dans robots.txt pour un meilleur contrôle d'indexation.
2025-07-07 18:06:43 +02:00
Mr¤KayJayDee
a8509416ae fix(header): suppression de la route de formation dans le menu de navigation
- Commenté la route de formation dans le composant AppHeader.vue pour éviter son affichage.
- Aucune autre modification apportée au fichier.
2025-07-05 22:47:45 +02:00
6 changed files with 67 additions and 91 deletions

View File

@@ -5,16 +5,19 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
}); var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-5QH68BVJ');</script>
<!-- End Google Tag Manager -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-CDVVNFY6MV"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-CDVVNFY6MV');
</script>
<!-- Google AdSense -->
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5219367964457248"
crossorigin="anonymous"></script>
<!-- Primary Meta Tags -->
<title>Full Stack Developer Freelance Vue.js React Node.js | Killian Dalcin</title>
@@ -238,11 +241,6 @@
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5QH68BVJ" height="0" width="0"
style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>

1
public/ads.txt Normal file
View File

@@ -0,0 +1 @@
google.com, pub-5219367964457248, DIRECT, f08c47fec0942fa0

View File

@@ -1,30 +1,5 @@
# Robots.txt pour killiandalcin.fr
# Optimisé pour un crawling Google efficace
# Googlebot
User-agent: Googlebot
Allow: /
Crawl-delay: 0
# Bingbot
User-agent: Bingbot
Allow: /
Crawl-delay: 1
# Tous les bots légitimes
User-agent: *
Allow: /
Disallow: /api/
Disallow: /admin/
Disallow: /*.json$
Disallow: /api/
Disallow: /*?*
Allow: /*.css$
Allow: /*.js$
Allow: /*.webp$
Allow: /*.jpg$
Allow: /*.png$
Allow: /*.svg$
Allow: /*.woff2$
# Sitemap
Sitemap: https://killiandalcin.fr/sitemap.xml
Sitemap: https://killiandalcin.fr/sitemap.xml

View File

@@ -3,52 +3,40 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!-- Home Page - Maximum Priority -->
<!-- Home Page -->
<url>
<loc>https://killiandalcin.fr/</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Fiverr Services Page - High Priority (Business Focus) -->
<!-- Fiverr Services Page -->
<url>
<loc>https://killiandalcin.fr/fiverr</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Projects Portfolio Page -->
<url>
<loc>https://killiandalcin.fr/projects</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Contact Page -->
<url>
<loc>https://killiandalcin.fr/contact</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- About Page -->
<url>
<loc>https://killiandalcin.fr/about</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Formation/Training Page -->
<url>
<loc>https://killiandalcin.fr/formation</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Dynamic Project Detail Pages -->
@@ -56,57 +44,43 @@
<!-- Virtual Tour Project -->
<url>
<loc>https://killiandalcin.fr/project/virtual-tour</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Xinko Discord Bot Project (Featured) -->
<!-- Xinko Discord Bot Project -->
<url>
<loc>https://killiandalcin.fr/project/xinko</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Image Manipulation NPM Package (Featured) -->
<!-- Image Manipulation NPM Package -->
<url>
<loc>https://killiandalcin.fr/project/image-manipulation</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Flowboard Project Management App (Featured) -->
<!-- Flowboard Project Management App -->
<url>
<loc>https://killiandalcin.fr/project/flowboard</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Primate Web Admin Project -->
<url>
<loc>https://killiandalcin.fr/project/primate-web-admin</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Instagram Bot Project -->
<url>
<loc>https://killiandalcin.fr/project/instagram-bot</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
<lastmod>2025-07-07</lastmod>
</url>
<!-- Crowdin Status Bot Project -->
<url>
<loc>https://killiandalcin.fr/project/crowdin-status-bot</loc>
<lastmod>2025-01-14</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
<lastmod>2025-07-07</lastmod>
</url>
</urlset>

View File

@@ -14,7 +14,7 @@ const navigation = computed(() => [
{ name: t('nav.projects'), path: '/projects' },
{ name: t('nav.about'), path: '/about' },
{ name: t('nav.contact'), path: '/contact' },
{ name: t('nav.formation'), path: '/formation' },
// { name: t('nav.formation'), path: '/formation' },
{ name: t('nav.fiverr'), path: '/fiverr' },
])

View File

@@ -1,7 +1,15 @@
import { createRouter, createWebHistory } from 'vue-router'
import { createRouter, createWebHistory, type RouteLocationNormalized } from 'vue-router'
import { nextTick } from 'vue'
import HomePage from '../views/HomePage.vue'
// Google Analytics gtag types
declare global {
interface Window {
dataLayer: unknown[]
gtag: (...args: unknown[]) => void
}
}
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
@@ -94,9 +102,20 @@ router.beforeEach((to, from, next) => {
next()
})
// Additional scroll to top handler for better compatibility
router.afterEach(() => {
// Use nextTick to ensure the DOM is fully updated
// Google Analytics page view tracking function
const trackPageView = (route: RouteLocationNormalized) => {
// Track page view with gtag
if (window.gtag) {
window.gtag('config', 'G-CDVVNFY6MV', {
page_path: route.path,
page_title: document.title,
page_location: window.location.href
})
}
}
// Track page views on route changes
router.afterEach((to) => {
nextTick(() => {
// Smooth scroll to top
window.scrollTo({
@@ -104,7 +123,16 @@ router.afterEach(() => {
left: 0,
behavior: 'smooth'
})
// Track page view for GTM
trackPageView(to)
})
})
// Track initial page load
router.isReady().then(() => {
// Track the initial route after router is ready
trackPageView(router.currentRoute.value)
})
export default router