SEO
The technical SEO checklist we ship every template against
Twenty-three checks covering metadata, structured data, crawlability and Core Web Vitals - the list every Swift template has to pass before it goes on sale.
A template can be beautiful and still be invisible. Most of the reasons are boring and fixable, which is why we run every template on this store against the same list before it ships. Nothing here is clever; all of it is load-bearing.
Start with what the crawler can reach
If a page needs JavaScript to produce its main content, you are gambling on a render budget you do not control. Every route in a Swift template is statically generated or server-rendered, which means the HTML that arrives contains the words you want ranked. Client components exist, but they handle interaction - a cart drawer, a filter control - never the substance of the page.
The second reachability question is linking. A page with no internal links pointing at it is a page you have asked a crawler to guess at. Category pages, related-template blocks and breadcrumbs are not decoration; they are the graph that distributes authority through the site.
The twenty-three checks
- One h1 per page, describing the page rather than the brand
- Title under 60 characters, unique across every route
- Meta description written for the click, not stuffed with keywords
- Canonical URL on every page, self-referencing by default
- Open Graph and Twitter card metadata with a real image
- Open Graph images generated from the page's own content
- Structured data appropriate to the page type, validated
- BreadcrumbList schema matching the visible breadcrumb
- Sitemap generated at build, split before the 50,000 URL limit
- robots.txt referencing the sitemap and blocking only what should be blocked
- Faceted filter pages canonicalised to avoid thin duplicates
- Pagination handled with real URLs, not infinite scroll alone
- 404 and 410 returning the correct status code
- Redirects resolved in one hop
- Images with width, height and descriptive alt text
- Largest Contentful Paint element preloaded
- Cumulative Layout Shift under 0.1 on every template route
- Fonts self-hosted with font-display: swap
- No render-blocking third-party scripts above the fold
- Language declared on the html element
- Semantic landmarks: header, nav, main, footer
- Heading hierarchy without skipped levels
- Colour contrast at AA for all body text
Structured data is not optional any more
Search results are increasingly assembled rather than listed. A product without price and availability in its markup is a product an assistant cannot quote. We ship Product, Offer, AggregateRating, BreadcrumbList, Organization, WebSite and FAQPage markup where each genuinely applies - and nowhere it does not, because invented markup is a manual action waiting to happen.
Performance is a ranking input and a conversion one
Core Web Vitals matter less than the industry once claimed and more than the backlash suggests. The honest framing: they rarely win you a position, and they routinely lose you a visitor. A template that hits its LCP in under a second on a mid-range phone is doing conversion work whether or not it is doing ranking work.
The techniques are unglamorous. Ship less JavaScript. Size your images. Reserve space before content arrives. Self-host fonts. Put the hero image in the initial HTML rather than behind a client fetch. Every template here does all five by default, and we publish the Lighthouse run alongside the demo so you can check rather than trust.
From the people who wrote this
Every Swift template ships against the checklist above.
Fourteen templates, statically generated, structured data included, yours to keep. Starting at $39.
Browse templates