The SEO Foundations Every New Website Needs on Day One
Most agencies bolt SEO on after launch. Here's the technical SEO checklist we build into every site from day one -- semantic HTML, schema, sitemaps, and more.
SEO Is Not a Phase — It’s a Foundation
Most web agencies treat SEO as a post-launch task. They build the site, hand it off, and then suggest “an SEO package” as an add-on. By that point, you’re retrofitting structure onto something that was never built for it. That’s expensive, slow, and avoidable.
The best time to implement technical SEO is before you write the first line of CSS. When we built the Codegio website, every decision — from the markup structure to the image pipeline — was made with search engines and users in mind simultaneously. Not because SEO is more important than design, but because the two aren’t in conflict when you plan properly.
Here’s the checklist we follow on every new site.
Semantic HTML: The Structure Search Engines Actually Read
Google doesn’t see your beautiful hero section. It sees a <div> or, if you’ve done this right, a <header> with an <h1>. The difference matters.
Semantic HTML means using the right element for the job: <nav> for navigation, <main> for primary content, <article> for self-contained pieces, <section> for thematic groupings, <aside> for supplementary content. These elements tell search engines what your content is, not just where it sits on the page.
The common mistakes we see: heading levels that skip from <h1> to <h4>, entire pages wrapped in generic <div> tags, navigation built with <ul> lists but no <nav> wrapper, and footer content with no <footer> element. None of these break your layout. All of them weaken your SEO signal.
Our rule: every page has exactly one <h1>, headings follow a logical hierarchy, and every major content region uses the appropriate HTML5 element.
Meta Tags: Title, Description, and Open Graph
Three sets of meta tags matter on launch day.
Title tags are the single most important on-page SEO element. Every page needs a unique, descriptive title under 60 characters that includes the primary keyword naturally. “Home” is not a title tag. “Custom Software Development | Codegio” is.
Meta descriptions don’t directly affect rankings, but they affect click-through rates — which do. Write 120-155 characters that summarize the page and include a reason to click. Think of it as ad copy for your organic listing.
Open Graph tags (og:title, og:description, og:image) control how your pages look when shared on LinkedIn, Twitter, and Slack. Without them, social platforms pull random text and images from your page. With them, every share becomes a branded, intentional preview. We set OG tags on every page, including blog posts.
JSON-LD Structured Data: Speaking Google’s Language
Structured data tells Google exactly what your content represents — an organization, a service, a blog post, a FAQ, a product. It’s the difference between Google guessing and Google knowing.
We implement JSON-LD (not microdata, not RDFa) because it’s what Google recommends and it lives in a <script> tag separate from your HTML. That means no messy attribute clutter in your markup.
At minimum, every site we launch includes: Organization schema with name, logo, URL, and social profiles; WebSite schema with a search action; BreadcrumbList schema for navigation hierarchy; and page-specific schema (Article for blog posts, Service for service pages, FAQPage for FAQ sections).
When we built Codegio’s site, we added ProfessionalService schema with our service area, contact information, and service offerings. The result: richer search snippets and better visibility in local and industry-specific queries.
XML Sitemap and robots.txt
Your XML sitemap is a roadmap for crawlers. It lists every page you want indexed, with last-modified dates and priority hints. Most frameworks can generate one automatically — Astro, Next.js, and WordPress all have sitemap plugins. The key is making sure it updates when you publish new content and excludes pages you don’t want indexed (admin pages, thank-you pages, duplicates).
Your robots.txt file tells crawlers what not to crawl. It’s not a security mechanism — it’s a crawl budget optimizer. Block your admin panel, API endpoints, staging environments, and any duplicate content paths. Point crawlers to your sitemap with a Sitemap: directive.
Both files should be live on day one, not added three months later when you wonder why certain pages aren’t showing up in search results.
Canonical URLs: Preventing Duplicate Content
If the same content is accessible at example.com/page, example.com/page/, www.example.com/page, and example.com/page?ref=twitter, Google sees four pages with identical content. That dilutes your ranking signal.
Every page needs a <link rel="canonical"> tag pointing to its single authoritative URL. Pick one format (trailing slash or not, www or not) and enforce it with redirects. The canonical tag is your safety net for the edge cases redirects miss.
Image Optimization: Alt Text, WebP, and Lazy Loading
Images are typically the heaviest assets on any page. Unoptimized images are the number one reason we see Lighthouse scores below 70.
Three things to get right:
- Alt text on every image. Descriptive, specific, and not keyword-stuffed. “Team meeting in a glass-walled conference room” is good. “best software development company team meeting” is spam.
- Modern formats. Serve WebP (or AVIF where supported) instead of PNG and JPEG. A typical image drops from 500KB to 120KB with WebP at comparable quality. Use
<picture>elements with fallbacks for older browsers. - Lazy loading. Add
loading="lazy"to images below the fold. The hero image and any above-the-fold content should load eagerly. Everything else can wait until the user scrolls.
We also set explicit width and height attributes on every image to prevent layout shift — one of Google’s Core Web Vitals metrics.
Core Web Vitals: The Performance Metrics Google Measures
Google evaluates three metrics: Largest Contentful Paint (LCP) measures how fast the main content loads (target: under 2.5 seconds), Cumulative Layout Shift (CLS) measures visual stability (target: under 0.1), and Interaction to Next Paint (INP) measures responsiveness (target: under 200ms).
These aren’t abstract benchmarks. They’re ranking factors. Hitting them requires the image optimization mentioned above, plus font loading strategies (preload critical fonts, use font-display: swap), minimal render-blocking CSS and JavaScript, and server response times under 200ms.
We test every page against these thresholds before launch using Lighthouse and PageSpeed Insights, and we monitor them post-launch through Google Search Console.
Internal Linking: Building a Web, Not a List
Internal links serve two purposes: they help users navigate your content, and they distribute page authority across your site. A page with no internal links pointing to it is an orphan page — search engines will eventually find it through your sitemap, but it will carry minimal authority.
Every page on your site should link to at least two or three other relevant pages. Blog posts should reference related services. Service pages should reference relevant case studies or blog posts. Your navigation should cover your most important pages, but it shouldn’t be the only source of internal links.
Conclusion
SEO isn’t magic, and it isn’t optional. It’s a set of technical foundations that are dramatically easier to implement at launch than to bolt on after the fact. Every item on this checklist — semantic HTML, meta tags, structured data, sitemaps, canonicals, image optimization, Core Web Vitals, and internal linking — is something we build into every site from the first commit.
If you’re planning a new site or suspect your current one is missing these foundations, reach out to us. We’ll audit what you have and tell you exactly what needs to change.