seo checklist

The working checklist we run on client sites, from meta tags to Core Web Vitals, grouped by priority so the tasks that matter most come first.

priority

critical

Task Why it matters Priority Resources
Meta tags: title and description Write a unique title (50 to 60 characters, keyword near the front) and meta description (150 to 160 characters) for every page, because they decide whether searchers click. critical
Server side rendering Serve main content and internal links in the raw HTML, not injected by JavaScript, because search engines render JavaScript inconsistently and most AI crawlers don't run it. critical
Core Web Vitals and page speed Make every key template pass Core Web Vitals on real-user data (LCP 2.5s or less, INP 200ms or less, CLS 0.1 or less), since slow pages lose visitors and rankings. critical
Site architecture with subfolders Group related pages into logical subfolders like /services/ and /blog/, so users and search engines can see where each page sits and sections are easy to measure. critical
SEO friendly URL structure and naming Use short, lowercase, hyphenated slugs built on the page's target keyword, because clear URLs help searchers and mixed-case versions create duplicate pages. critical
Custom 404 page Serve a helpful branded 404 page that returns a real 404 status, never a homepage redirect or a 200 OK, so search engines don't index dead pages as live. critical
Crawl the live website for issues Crawl the live site with a tool like Screaming Frog or Sitebulb right after launch to catch broken links, redirect chains, duplicate titles and leftover noindex tags. critical

priority

high

Task Why it matters Priority Resources
Accessibility compliance: WCAG and ARIA roles Meet WCAG basics (alt text, form labels, color contrast, keyboard navigation, correct ARIA roles), because accessible markup serves every visitor and is easier for crawlers to parse. high
Keywords in body content Put the primary keyword in the H1 and the first 100 words, then use it only where it reads naturally, alongside related terms that make the topic unambiguous. high
Robots.txt Publish a robots.txt that blocks only genuine crawl waste and points to your sitemap, and make sure no staging Disallow: / rule survives launch and blocks the whole site. high
Server response time under 200ms Keep average response time to Googlebot under 200ms (check Search Console's crawl stats), since slower servers waste crawl budget and signal hosting problems. high
Date information for Google and AI Show a visible published or last updated date on articles and match it in datePublished and dateModified structured data, so Google and AI tools can judge freshness. high
Security headers check Scan the site at securityheaders.com, add the HTTP security headers it flags as missing, and re-scan to confirm the grade improved, since they protect visitors and build trust. high
Preferred sources in Google Search Prompt regular readers to pick your site as a preferred source in Google, which makes your content more likely to show in Top Stories and AI Overviews. high
Self-referencing canonical tags Add a self-referencing canonical tag pointing to each page's preferred final URL, so signals consolidate instead of splitting across parameter, http and www variants. high
Analytics setup: GA4 and Search Console Install GA4 and verify a Search Console domain property as soon as the site is live, because several other checks on this list depend on their data. high
XML sitemap Keep an auto-updated XML sitemap of only canonical, indexable 200 URLs (max 50,000 URLs or 50MB per file) and submit it in Search Console to speed up discovery. high
Page indexing report Work through each reason in Search Console's page indexing report, so the index holds exactly the pages you want ranked rather than a bloated mix. high

priority

medium

Task Why it matters Priority Resources
Favicon Add a square favicon larger than 48x48 pixels that isn't blocked by robots.txt, because Google shows it next to your site name in search results. medium
Image SEO Give images descriptive filenames and alt text, declare width and height, compress to under 100KB in WebP or AVIF, and lazy-load below the fold for speed and image search. medium
Heading hierarchy with one H1 Use one H1 for the page topic and nest H2s and H3s without skipping levels, so the headings alone read as a clear outline for readers and search engines. medium
Blog template best practices Build trust signals into the blog template (author boxes, table of contents, breadcrumbs, published and updated dates, cited sources), since they help readers and search engines judge credibility. medium
Press or newsroom section Add a press or newsroom page linking to third-party coverage of the company, because journalists check it when researching you and it shows independent credibility. medium
Footer as a categorized site index Turn the footer into a categorized index of key pages in labeled columns, so visitors and crawlers can reach important sections from anywhere on the site. medium
Breadcrumbs Add breadcrumbs that mirror the folder hierarchy and mark them up with BreadcrumbList schema, so visitors know where they are and search results show a clean path. medium
Trust building: E-E-A-T and company pages Publish real About, Contact, team, author and legal pages and cite sources visibly, because Google's quality guidelines treat trust as the core of E-E-A-T (experience, expertise, authoritativeness, trust). medium
Pagination best practices Give each paginated page its own URL (like ?page=2) joined by crawlable links, so search engines can reach every item; Google no longer uses rel=next/prev. medium
Don't hide content in accordions Keep important content visible rather than hidden in accordions, tabs or read-more toggles, because Google is less likely to use hidden text in snippets. medium
Table of contents anchors Give major headings stable id anchors and link them from a table of contents, so readers can jump to sections and Google can deep-link to them from results. medium
Open Graph and Twitter Card tags Add Open Graph and Twitter Card tags that mirror your meta title, description and canonical, with a 1200 x 630 image, so shared links show a proper preview. medium
Semantic HTML5 markup Use semantic tags (main, header, article, section, time, figure) instead of generic divs and keep pages under 900 DOM nodes, so crawlers understand the structure easily. medium
Nofollow tags for external links Mark paid links rel="sponsored", user-generated links rel="ugc" and links you don't vouch for rel="nofollow", so search engines know which sources you actually endorse. medium
HTML sitemap Publish a human-readable sitemap page of key pages grouped by section, giving visitors a one-page map and crawlers a shallow path to deeper pages. medium
Domain resolution test Redirect every http, https, www and non-www variant to one preferred domain with a single 301 hop, so ranking signals aren't split across duplicate versions. medium
W3C markup validation Run key templates through the W3C markup validator and fix errors like unclosed tags and duplicate ids, because clean markup parses predictably for browsers and crawlers. medium
Schema markup Add JSON-LD structured data that fits each page type (Organization, Article, FAQPage, Product) and validate it in Google's Rich Results Test, so pages qualify for rich results. medium
Thank-you page with a 303 redirect Answer successful form posts with a 303 redirect to one thank-you URL, so refreshing never resubmits the form and analytics gets one clean conversion goal. medium

Rather have it done for you? This is the work we do every day.