feat: improve structured seo

This commit is contained in:
Leonardo Murça 2026-05-17 15:38:46 -03:00
parent b019913621
commit b8e1d0f3fe
5 changed files with 123 additions and 10 deletions

View file

@ -8,7 +8,7 @@
},
"supportedFormats": {
"summary": "What embroidery file formats are supported?",
"description": "Embroidery Viewer supports popular formats such as PES, DST, and EXP. This allows you to preview most embroidery designs used by home and commercial machines."
"description": "Embroidery Viewer supports PES, DST, JEF, EXP, and PEC — the most common formats for home and commercial embroidery machines."
},
"needSoftware": {
"summary": "Do I need to install any embroidery software?",

View file

@ -1,6 +1,12 @@
{
"seo.title": "Free Online Embroidery File Viewer - Fast, Private & No Signup",
"seo.description": "Upload and preview embroidery files instantly with Embroidery Viewer. Supports DST, PES, JEF, EXP, VP3 and more. No installs, no uploads 100% browser-based and free.",
"seo.keywords": "embroidery viewer, online embroidery viewer, embroidery file preview, DST viewer, PES viewer, free embroidery tool, JEF viewer, EXP embroidery, VP3 embroidery viewer, embroidery preview tool, browser embroidery renderer, convert embroidery to PNG",
"seo.url": "https://embroideryviewer.xyz"
"seo.title": "Free Online Embroidery File Viewer — Fast, Private & No Signup",
"seo.description": "Preview embroidery files instantly in your browser with Embroidery Viewer. Supports PES, DST, JEF, EXP, and PEC. No install, no signup — free and private.",
"seo.keywords": "embroidery viewer, online embroidery viewer, embroidery file preview, DST viewer, PES viewer, free embroidery tool, JEF viewer, EXP embroidery, embroidery preview tool, browser embroidery renderer",
"seo.url": "https://embroideryviewer.xyz",
"seo.image": "https://embroideryviewer.xyz/og/viewer.png",
"howTo.title": "How to preview embroidery files online",
"howTo.step1": "Open Embroidery Viewer in your web browser.",
"howTo.step2": "Go to the online viewer page.",
"howTo.step3": "Drag and drop your embroidery file (PES, DST, JEF, EXP, or PEC).",
"howTo.step4": "Preview your design instantly — no software installation required."
}

View file

@ -8,7 +8,7 @@
},
"supportedFormats": {
"summary": "Quais formatos de arquivos de bordado são suportados?",
"description": "O Embroidery Viewer suporta formatos populares como PES, DST e EXP. Isso permite visualizar a maioria dos designs de bordado usados em máquinas domésticas e industriais."
"description": "O Embroidery Viewer suporta PES, DST, JEF, EXP e PEC — os formatos mais usados em máquinas de bordado domésticas e comerciais."
},
"needSoftware": {
"summary": "Preciso instalar algum software de bordado?",

View file

@ -1,6 +1,12 @@
{
"seo.title": "Visualizador de Bordado Online Grátis - Rápido, Privado e Sem Cadastro",
"seo.description": "Envie e visualize arquivos de bordado instantaneamente com o Embroidery Viewer. Compatível com DST, PES, JEF, EXP, VP3 e mais. Sem instalações, sem uploads 100% no navegador e gratuito.",
"seo.keywords": "visualizador de bordado, visualizador online de bordado, visualizar arquivos de bordado, visualizar DST, visualizar PES, ferramenta gratuita de bordado, visualizador JEF, bordado EXP, visualizador VP3, pré-visualização de bordado, renderizador de bordado no navegador, converter bordado em PNG",
"seo.url": "https://embroideryviewer.xyz"
"seo.title": "Visualizador de Bordado Online Grátis — Rápido, Privado e Sem Cadastro",
"seo.description": "Visualize arquivos de bordado instantaneamente no navegador com o Embroidery Viewer. Compatível com PES, DST, JEF, EXP e PEC. Sem instalação, sem cadastro — gratuito e privado.",
"seo.keywords": "visualizador de bordado, visualizador online de bordado, visualizar arquivos de bordado, visualizar DST, visualizar PES, ferramenta gratuita de bordado, visualizador JEF, bordado EXP, pré-visualização de bordado, renderizador de bordado no navegador",
"seo.url": "https://embroideryviewer.xyz",
"seo.image": "https://embroideryviewer.xyz/og/viewer.png",
"howTo.title": "Como visualizar arquivos de bordado online",
"howTo.step1": "Abra o Embroidery Viewer no seu navegador.",
"howTo.step2": "Acesse a página do visualizador online.",
"howTo.step3": "Arraste e solte seu arquivo de bordado (PES, DST, JEF, EXP ou PEC).",
"howTo.step4": "Visualize o design na hora — sem instalar nenhum software."
}

View file

@ -1,9 +1,107 @@
<script>
import { PUBLIC_IMAGE_BASE_URL } from '$env/static/public';
import { t } from '$lib/translations';
import Head from '$lib/components/Head.svelte';
import StructuredData from '$lib/components/StructuredData.svelte';
import Hero from '$lib/sections/Hero.svelte';
import Features from '$lib/sections/Features.svelte';
import Faq from '$lib/sections/Faq.svelte';
import MobileApp from '$lib/sections/MobileApp.svelte';
const baseUrl = 'https://embroideryviewer.xyz';
const viewerUrl = `${baseUrl}/viewer`;
const logoUrl = `${PUBLIC_IMAGE_BASE_URL}/t/f_webp/embroidery-viewer/logo-icon.webp`;
const faqKeys = [
'openPesOnline',
'supportedFormats',
'needSoftware',
'isSafe',
'multipleFiles',
'mobileSupport',
];
const howToSteps = ['step1', 'step2', 'step3', 'step4'];
$: structuredData = {
'@context': 'https://schema.org',
'@graph': [
{
'@type': 'WebSite',
'@id': `${baseUrl}/#website`,
url: baseUrl,
name: 'Embroidery Viewer',
description: $t('home.seo.description'),
inLanguage: ['en-US', 'pt-BR'],
publisher: { '@id': `${baseUrl}/#organization` },
},
{
'@type': 'Organization',
'@id': `${baseUrl}/#organization`,
name: 'Embroidery Viewer',
url: baseUrl,
logo: {
'@type': 'ImageObject',
url: logoUrl,
},
email: 'leo@leomurca.xyz',
},
{
'@type': 'WebPage',
'@id': `${baseUrl}/#webpage`,
url: baseUrl,
name: $t('home.seo.title'),
description: $t('home.seo.description'),
isPartOf: { '@id': `${baseUrl}/#website` },
about: { '@id': `${baseUrl}/#webapp` },
primaryImageOfPage: {
'@type': 'ImageObject',
url: $t('home.seo.image'),
},
},
{
'@type': 'WebApplication',
'@id': `${baseUrl}/#webapp`,
name: 'Embroidery Viewer',
url: viewerUrl,
applicationCategory: 'DesignApplication',
operatingSystem: 'Any',
browserRequirements: 'Requires JavaScript. Requires HTML5.',
offers: {
'@type': 'Offer',
price: '0',
priceCurrency: 'USD',
},
description: $t('home.seo.description'),
featureList:
'PES, DST, JEF, EXP, PEC embroidery file preview; multiple files; browser-based',
screenshot: $t('home.seo.image'),
},
{
'@type': 'FAQPage',
'@id': `${baseUrl}/#faq`,
mainEntity: faqKeys.map((key) => ({
'@type': 'Question',
name: $t(`faq.items.${key}.summary`),
acceptedAnswer: {
'@type': 'Answer',
text: $t(`faq.items.${key}.description`),
},
})),
},
{
'@type': 'HowTo',
'@id': `${baseUrl}/#howto`,
name: $t('home.howTo.title'),
step: howToSteps.map((step, i) => ({
'@type': 'HowToStep',
position: i + 1,
text: $t(`home.howTo.${step}`),
})),
},
],
};
</script>
<Head
@ -11,8 +109,11 @@
description="home.seo.description"
keywords="home.seo.keywords"
url="home.seo.url"
ogImage="home.seo.image"
/>
<StructuredData data={structuredData} />
<Hero />
<Features />
<MobileApp />