Support/Legal & Policies/What SEO and structured data work is included?
Legal & Policies

WHAT SEO AND STRUCTURED DATA WORK IS INCLUDED?

622 views
seostructured-dataschema

Technical SEO baseline on every web build: meta, OG, JSON-LD, sitemap, robots, performance. Ongoing SEO is a separate engagement.

Included on every web project

  • Per-page `` and `<meta name="description">` from a content plan</li><li>Open Graph and Twitter card metadata, with a per-page `og:image` strategy</li><li>JSON-LD structured data (Organisation, Website, Breadcrumb, Article, Product, FAQ where relevant)</li><li>`sitemap.xml` and `robots.txt` generated from the route tree</li><li>Canonical URLs, correctly set on paginated and filtered pages</li><li>Hreflang tags for multi-locale sites</li><li>Performance budgets enforced (Core Web Vitals — see <em>performance budgets</em>)</li><li>Image `alt` text and semantic HTML</li></ul><h2>Not included by default</h2><ul><li>Keyword research and content strategy</li><li>Ongoing link building or PR outreach</li><li>Monthly SEO reporting</li><li>Paid search management</li></ul><p>Those are separate engagements with an SEO-specialist partner we will introduce if useful.</p></div><div class="mt-12 pt-8 border-t border-xyl-black/10 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-6"><div class="w-full sm:max-w-md"><div class="w-full"><p class="font-body text-sm font-semibold text-xyl-black mb-1">Was this helpful?</p><p class="font-body text-xs text-xyl-black/40 mb-4">Tell us honestly. It is read by the people who write these pages.</p><div class="flex items-center gap-3"><button type="button" aria-pressed="false" aria-label="This article was helpful" class="inline-flex items-center gap-2 font-body text-xs uppercase tracking-widest border px-4 py-2.5 transition-colors disabled:cursor-default border-xyl-black/20 text-xyl-black/60 hover:border-xyl-black hover:text-xyl-black disabled:opacity-40"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-thumbs-up" aria-hidden="true"><path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"></path><path d="M7 10v12"></path></svg> Yes</button><button type="button" aria-pressed="false" aria-label="This article was not helpful" class="inline-flex items-center gap-2 font-body text-xs uppercase tracking-widest border px-4 py-2.5 transition-colors disabled:cursor-default border-xyl-black/20 text-xyl-black/60 hover:border-xyl-red hover:text-xyl-red disabled:opacity-40"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-thumbs-down" aria-hidden="true"><path d="M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z"></path><path d="M17 14V2"></path></svg> No</button></div></div><p class="font-body text-xs text-xyl-black/40 mt-4">If this didn't answer your question,<!-- --> <a class="text-xyl-red hover:underline" href="/ask">ask Xylo</a>.</p></div><a class="inline-flex items-center gap-2 font-body text-sm font-semibold uppercase tracking-widest text-xyl-black border border-xyl-black px-5 py-3 hover:bg-xyl-black hover:text-xyl-cream transition-all whitespace-nowrap" href="/help/legal"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Back to <!-- -->Legal & Policies</a></div></div><aside class="lg:sticky lg:top-20 h-fit"><div class="mb-8"><p class="section-label text-xyl-black/30 mb-4">In this article</p><p class="font-body text-sm text-xyl-black/60 leading-relaxed">Technical SEO baseline on every web build: meta, OG, JSON-LD, sitemap, robots, performance. Ongoing SEO is a separate engagement.</p></div><div><p class="section-label text-xyl-black/30 mb-4">Related articles</p><div class="space-y-3"><a class="block group" href="/article/why-mon-thu-only"><p class="font-body text-sm font-medium text-xyl-black/70 group-hover:text-xyl-red transition-colors leading-snug">Why do you operate Monday through Thursday?</p></a><a class="block group" href="/article/security-and-data"><p class="font-body text-sm font-medium text-xyl-black/70 group-hover:text-xyl-red transition-colors leading-snug">How do you handle security and client data?</p></a><a class="block group" href="/article/do-you-sign-ndas"><p class="font-body text-sm font-medium text-xyl-black/70 group-hover:text-xyl-red transition-colors leading-snug">Do you sign NDAs?</p></a></div></div><div class="mt-8 p-5 bg-xyl-black"><p class="font-body text-sm font-semibold text-xyl-cream mb-2">Still need help?</p><p class="font-body text-xs text-xyl-cream/40 leading-relaxed mb-4">Still stuck? Ask Xylo — it answers on the spot, and raises a ticket if it needs a person.</p><a class="inline-flex items-center gap-2 font-body text-xs font-semibold uppercase tracking-widest text-xyl-cream border border-xyl-cream/20 px-4 py-2.5 hover:bg-xyl-red hover:border-xyl-red hover:text-xyl-black transition-all" href="/ask">Submit ticket <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></aside></div></div></section><section class="bg-xyl-black py-16 border-t border-white/5"><div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"><p class="section-label text-xyl-cream/30 mb-8">More in <!-- -->Legal & Policies</p><div class="grid grid-cols-1 sm:grid-cols-3 gap-px bg-white/5"><a class="bg-xyl-black p-6 group hover:bg-xyl-gray transition-colors" href="/article/why-mon-thu-only"><p class="font-body font-semibold text-xyl-cream/70 group-hover:text-white transition-colors leading-snug mb-2">Why do you operate Monday through Thursday?</p><p class="font-body text-xs text-xyl-cream/30 leading-relaxed line-clamp-2">The four-day week is a studio policy, not a holiday. Friday covers maintenance, research, and rest.</p><div class="flex items-center gap-1 mt-4 text-xyl-red group-hover:gap-2 transition-all"><span class="font-body text-xs font-semibold uppercase tracking-widest">Read</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></a><a class="bg-xyl-black p-6 group hover:bg-xyl-gray transition-colors" href="/article/security-and-data"><p class="font-body font-semibold text-xyl-cream/70 group-hover:text-white transition-colors leading-snug mb-2">How do you handle security and client data?</p><p class="font-body text-xs text-xyl-cream/30 leading-relaxed line-clamp-2">Encrypted at rest and in transit. Project data deleted 12 months post-handoff unless retention is contracted. UK GDPR registered.</p><div class="flex items-center gap-1 mt-4 text-xyl-red group-hover:gap-2 transition-all"><span class="font-body text-xs font-semibold uppercase tracking-widest">Read</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></a><a class="bg-xyl-black p-6 group hover:bg-xyl-gray transition-colors" href="/article/do-you-sign-ndas"><p class="font-body font-semibold text-xyl-cream/70 group-hover:text-white transition-colors leading-snug mb-2">Do you sign NDAs?</p><p class="font-body text-xs text-xyl-cream/30 leading-relaxed line-clamp-2">Yes. We sign your NDA, or you sign our mutual NDA. Either way, we honor it before reviewing any sensitive brief material.</p><div class="flex items-center gap-1 mt-4 text-xyl-red group-hover:gap-2 transition-all"><span class="font-body text-xs font-semibold uppercase tracking-widest">Read</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></a></div></div></section></div><script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script><!--/$--></main><footer class="bg-xyl-black border-t border-white/5"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="py-16 grid grid-cols-2 lg:grid-cols-5 gap-10 lg:gap-8"><div class="lg:col-span-1"><a class="inline-flex flex-col mb-4" href="/"><span class="font-display text-2xl uppercase tracking-widest text-xyl-cream leading-none">Xylora</span><span class="font-display text-2xl uppercase tracking-widest text-xyl-red leading-none">Support</span></a><p class="font-body text-sm text-xyl-cream/40 leading-relaxed max-w-[220px] mt-4">The knowledge base for Xylora Studios clients. Answers before you ask.</p><a class="inline-flex items-center gap-2 mt-6 font-body text-xs uppercase tracking-widest text-xyl-cream border border-xyl-cream/20 px-4 py-2 hover:bg-xyl-red hover:text-xyl-black hover:border-xyl-red transition-colors" href="/ask">Talk to us<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div><div><p class="section-label text-xyl-cream/30 mb-5">Sections</p><ul class="space-y-3"><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/help/getting-started">Getting Started</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/help/billing">Billing & Payments</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/help/projects">Projects</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/help/technical">Technical</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/help/legal">Legal & Policies</a></li></ul></div><div><p class="section-label text-xyl-cream/30 mb-5">Portal</p><ul class="space-y-3"><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/ask">Ask Xylo</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/status">System Status</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/article/do-you-offer-refunds">Refund Policy</a></li><li><a class="font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors" href="/article/who-owns-the-work">IP & Ownership</a></li></ul></div><div><p class="section-label text-xyl-cream/30 mb-5">Studio</p><ul class="space-y-3"><li><a href="https://xylorastudios.com" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Main Site<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/packages" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Packages<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/commission" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Commission<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/services" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Services<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li></ul></div><div><p class="section-label text-xyl-cream/30 mb-5">Legal</p><ul class="space-y-3"><li><a href="https://xylorastudios.com/privacy" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Privacy Policy<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/terms" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Terms of Service<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/cookies" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Cookie Policy<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://xylorastudios.com/refunds" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 font-body text-sm text-xyl-cream/50 hover:text-xyl-cream transition-colors group">Refunds<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li></ul></div></div><div class="border-t border-white/5 py-6 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3"><p class="font-body text-xs text-xyl-cream/25 uppercase tracking-widest">© 2022 — <!-- -->2026<!-- --> Xylora Studios. All rights reserved.</p><p class="font-body text-xs text-xyl-cream/20 uppercase tracking-widest">Independent studio · United Kingdom</p></div></div></footer></div><script data-tsr-stream-part="">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-CWMt09TA.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-CWMt09TA.js"}}]},"/article/$slug":$R[8]={preloads:$R[9]=["/assets/article._slug-CJ0aOqeT.js","/assets/contact.functions-Ck-k7zgi.js","/assets/arrow-left-BjVjrvgt.js"]}}},matches:$R[10]=[$R[11]={i:"__root__�",u:1794084680096,s:"success",ssr:!0},$R[12]={i:"�article�$slug�article�seo-and-structured-data",u:1794084680096,s:"success",ssr:!0}]})($R["tsr"]);$_TSR.e();{let s=document.currentScript,p;while((p=s.previousElementSibling)&&p.hasAttribute('data-tsr-stream-part'))p.remove();s.remove()}</script><script type="module" async="" src="/assets/index-CWMt09TA.js"></script><script>document.currentScript.remove();/*$tsr-stream-boundary*/</script></body></html>