feat: improve SEO with structured data, breadcrumbs, and comprehensive favicon support while optimizing images and config performance.

This commit is contained in:
Lucas Rayan committed 2026-08-25 15:02:46 -03:00
1 parent f93e0fe460
commit 031b35d7dd
20 files changed
+308 -26

No files matched your search

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

+17 -1
View File
@@ -1,4 +1,4 @@
import { paginaMeta } from "@/lib/seo";
import { paginaMeta, jsonLd } from "@/lib/seo";
import Link from "next/link";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
@@ -33,6 +33,22 @@ export default async function FrameworkDetail({ params }) {
return (
<div className="bg-gradient-to-br from-slate-100 via-slate-50 to-purple-100/40 dark:from-slate-950 dark:via-slate-950 dark:to-slate-900 min-h-screen text-slate-900 dark:text-slate-100 transition-colors duration-300">
{/* Ficha técnica do framework e trilha de navegação para o Google */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd.framework(key, framework)) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd.trilha([
{ nome: "Início", caminho: "/" },
{ nome: "Frameworks", caminho: "/frameworks" },
{ nome: framework.nome, caminho: `/frameworks/${encodeURIComponent(key)}` },
])),
}}
/>
<Header />
<main className="px-6 pt-16 pb-24 max-w-7xl mx-auto">
+9
View File
@@ -374,6 +374,15 @@ export default function Glossario() {
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd.glossario(categorias)) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd.trilha([
{ nome: "Início", caminho: "/" },
{ nome: "Glossário", caminho: "/glossario" },
])),
}}
/>
<Header />
+14 -1
View File
@@ -72,7 +72,20 @@ export const metadata = {
},
},
icons: { icon: "/marca/espdocs-marca.svg", apple: "/marca/espdocs-marca.svg" },
icons: {
icon: [
{ url: "/favicon.ico", sizes: "any" },
{ url: "/icon.svg", type: "image/svg+xml" },
{ url: "/favicon-48x48.png", sizes: "48x48", type: "image/png" },
{ url: "/icon-192.png", sizes: "192x192", type: "image/png" },
{ url: "/icon-512.png", sizes: "512x512", type: "image/png" },
],
apple: [
{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
],
shortcut: "/favicon.ico",
},
manifest: "/site.webmanifest",
formatDetection: { telephone: false, address: false, email: false },
};
+5 -4
View File
@@ -1,8 +1,7 @@
"use client";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
import Link from "next/link";
import Image from "next/image";
import {
SlidersHorizontal,
ShoppingBag,
@@ -188,10 +187,12 @@ export default function Home() {
rel="noopener noreferrer"
className="group mb-6"
>
<img
<Image
src="/logo.png"
alt="Ciência Embarcada Logo"
className="h-16 md:h-20 mb-2 transition-transform duration-300 group-hover:scale-105"
width={80}
height={80}
className="h-16 w-16 md:h-20 md:w-20 mb-2 transition-transform duration-300 group-hover:scale-105 object-contain"
/>
</a>
+4 -1
View File
@@ -2,6 +2,7 @@ import { paginaMeta } from "@/lib/seo";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
import Link from "next/link";
import Image from "next/image";
import {
Languages,
GitCompare,
@@ -172,9 +173,11 @@ export default function Sobre() {
<div className="bg-white dark:bg-slate-900/40 backdrop-blur-xl border border-slate-300 dark:border-slate-800/80 rounded-3xl p-8 shadow-xl">
<div className="flex flex-col items-center mb-6 select-none">
<div className="w-20 h-20 bg-gradient-to-br from-purple-500/10 to-pink-500/10 rounded-2xl flex items-center justify-center mb-4 border border-purple-500/20 shadow-inner">
<img
<Image
src="/logo.png"
alt="Ciência Embarcada Logo"
width={64}
height={64}
className="h-16 w-16 object-contain"
/>
</div>