feat(cases): mídia no topo, títulos de busca curtos e CreativeWork
Case com mídia ao lado do título e play acessível; problema de cada cliente reescrito com base nos dados; serviços relacionados em 2 cards; FAQ antes do próximo passo e bloco 'Onde já apliquei isso'; Apolo citada em IoT e arquitetura. metaTitle até 43 caracteres e descrições até 155 com teste; JSON-LD CreativeWork; imagens de compartilhamento abaixo de 100 KB; 404 e robots corrigidos; server-only nos módulos com node:.
This commit is contained in:
1 parent
c9a0b80656
commit
e80f73d075
52 files changed
+2593
-439
No files matched your search
@@ -51,11 +51,11 @@ export async function generateMetadata({
|
||||
const url = `${siteUrl}/servicos/${service.slug}`;
|
||||
|
||||
return {
|
||||
title: service.seoTitle,
|
||||
title: service.metaTitle,
|
||||
description: service.metaDescription,
|
||||
...buildPageSocialMetadata({
|
||||
url,
|
||||
title: service.seoTitle,
|
||||
title: service.metaTitle,
|
||||
description: service.metaDescription,
|
||||
type: "article",
|
||||
}),
|
||||
@@ -129,7 +129,7 @@ export default async function ServicePage({ params }: ServicePageProps) {
|
||||
</a>
|
||||
) : null}
|
||||
</div>
|
||||
<p className="mt-sp-4 text-sm leading-6 text-white/70">
|
||||
<p className="mt-sp-4 text-[15px] md:text-sm leading-6 text-white/70">
|
||||
Fale diretamente com Evandro. Abre uma conversa, sem precisar
|
||||
preencher um formulário. Atendimento remoto a partir de Garuva,
|
||||
SC.
|
||||
@@ -139,7 +139,11 @@ export default async function ServicePage({ params }: ServicePageProps) {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<ServiceRelatedCases cases={relatedCases} />
|
||||
<ServiceRelatedCases
|
||||
cases={relatedCases}
|
||||
relevance={service.caseRelevance}
|
||||
experienceNote={service.experienceNote}
|
||||
/>
|
||||
|
||||
<section className="ds-section">
|
||||
<div className="ds-section-shell">
|
||||
@@ -171,7 +175,7 @@ export default async function ServicePage({ params }: ServicePageProps) {
|
||||
<article className="min-w-0">
|
||||
<div className="ds-kicker">Da conversa à entrega</div>
|
||||
<h2 className="ds-card-title">Como trabalhamos</h2>
|
||||
<ol className="mt-sp-5 list-decimal space-y-sp-4 pl-sp-5 text-sm leading-8 text-[var(--ink-80)]">
|
||||
<ol className="mt-sp-5 list-decimal space-y-sp-4 pl-sp-5 text-[15px] md:text-sm leading-8 text-[var(--ink-80)]">
|
||||
{service.process.map((step) => (
|
||||
<li key={step} className="pl-sp-2">
|
||||
{step}
|
||||
@@ -224,7 +228,9 @@ export default async function ServicePage({ params }: ServicePageProps) {
|
||||
|
||||
<ServiceOffer service={service} />
|
||||
|
||||
<section className="ds-section ds-section-dark pb-sp-6">
|
||||
<ServiceFaq faq={service.faq} />
|
||||
|
||||
<section className="ds-section ds-section-dark">
|
||||
<div className="ds-section-shell">
|
||||
<div className="ds-card border-white/10 bg-[rgba(255,255,255,0.03)]">
|
||||
<div className="ds-kicker">Próximo passo</div>
|
||||
@@ -252,8 +258,6 @@ export default async function ServicePage({ params }: ServicePageProps) {
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<ServiceFaq faq={service.faq} />
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user