What is technical SEO setup?
Technical SEO setup means configuring your web application so that search engines can discover, crawl, index, and rank your pages correctly. It's the infrastructure layer of SEO — not content strategy or link building, but the configuration that allows your content to be found in the first place.
A web application that renders content client-side (a React SPA) is largely invisible to search engines. A Next.js app with server-side rendering is much better positioned, but still needs meta tags, structured data, a sitemap, and correct canonical URL handling to perform well. Technical SEO is most valuable for apps with public content that users discover via search — marketplaces, directories, SaaS landing pages, resource libraries.
This is distinct from ongoing SEO work. Technical setup is a one-time (or infrequent) effort. Ongoing SEO — content creation, keyword targeting, link acquisition — is a separate discipline.
When does your app need it?
- Your app has public-facing pages that should appear in Google search results
- Users discover your product by searching for the problems you solve
- You're launching a marketplace, directory, or content-heavy application where organic traffic is part of the growth model
- Google Search Console shows crawl errors, missing meta tags, or indexing issues
- Your Core Web Vitals scores are poor and affecting your search rankings
- You're migrating from one URL structure to another and need redirects and canonicals handled correctly
How much does it cost?
Technical SEO setup typically adds 3–5 hours of developer time — roughly from $1,000 AUD.
This covers: meta title and description tags for all page types (static via Next.js Metadata API, dynamic via page-level configuration), Open Graph tags for social sharing, canonical URL handling, XML sitemap generation (static or dynamic), robots.txt configuration, structured data markup (Schema.org JSON-LD) for key page types, and a Core Web Vitals baseline assessment.
Complexity increases for large sites with dynamic content (sitemaps need programmatic generation), complex URL structures with many parameter variations (canonical and noindex handling), or apps that need significant performance work to hit acceptable Core Web Vitals scores.
How it's typically built
Next.js 14 handles most of this well via the Metadata API — generateMetadata() returns page-specific titles, descriptions, and Open Graph data as a server function, with access to route params and database data. Static pages use exported metadata objects; dynamic pages generate metadata from route parameters.
Sitemaps for small sites are static XML files. For apps with dynamic content (e.g. a marketplace where new listings are added daily), the sitemap is generated programmatically from the database, either at build time (for static exports) or served as a dynamic route.
Structured data is added as JSON-LD in the page <head> — common types include Product, Article, FAQPage, BreadcrumbList, and LocalBusiness. Schema.org markup helps search engines understand your content and can trigger rich result features (star ratings, FAQ dropdowns) in search results.
Core Web Vitals — LCP (Largest Contentful Paint), INP (Interaction to Next Paint), CLS (Cumulative Layout Shift) — are measured via PageSpeed Insights and Google Search Console. Issues are typically addressed through image optimisation (Next.js <Image>), font loading strategy, and eliminating layout shifts from late-loading elements.
Questions to ask your developer
- Is your app server-rendered or a client-side SPA? Client-side SPAs need additional work (or a framework change) to be indexable — this is a significant factor.
- Do you have dynamic pages that need unique meta tags? Listing pages, user profiles, product pages — each needs programmatically generated metadata based on the page content.
- What structured data types apply to your content? The right Schema.org types depend on what you're publishing — products, articles, events, local businesses, FAQs.
- Is a dynamic sitemap needed? If your page count changes frequently, a static sitemap file will go stale quickly.
- Have you reviewed your Core Web Vitals baseline? PageSpeed Insights gives you the starting point — understanding what's failing determines how much performance work is needed.
See also: Content management CMS · Analytics setup · App cost calculator