{"id":1009,"date":"2026-10-02T09:52:00","date_gmt":"2026-10-02T09:52:00","guid":{"rendered":"https:\/\/kryloweb.com\/blog\/?p=1009"},"modified":"2026-10-29T06:58:44","modified_gmt":"2026-10-29T06:58:44","slug":"technical-seo-checklist","status":"publish","type":"post","link":"https:\/\/kryloweb.com\/blog\/technical-seo-checklist\/","title":{"rendered":"Technical SEO Checklist: 25 Checks to Run on Your Site"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Technical SEO is the work that lets search engines find, read and trust your pages: whether they can crawl the site, which pages they index, how fast pages load and whether the page structure is clear. It comes before content and links, because a great page that can&#8217;t be indexed brings no visitors. This technical SEO checklist covers 25 checks in five groups, each with how to run it using free tools and how to fix it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You need two free tools for most of these: Google Search Console for your site, and a crawler such as Screaming Frog, which is free for up to 500 URLs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2400\" height=\"1624\" src=\"https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1.jpg\" alt=\"The technical SEO checklist: 25 checks in five groups\" class=\"wp-image-3097\" srcset=\"https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1.jpg 2400w, https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1-300x203.jpg 300w, https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1-1024x693.jpg 1024w, https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1-768x520.jpg 768w, https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1-1536x1039.jpg 1536w, https:\/\/kryloweb.com\/blog\/wp-content\/uploads\/2026\/10\/technical-seo-checklist-checks-1-2048x1386.jpg 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">1. Crawling and indexing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Your site is in Search Console.<\/strong> Add and verify the domain property. Without it you are guessing. <em>Fix:<\/em> verify through your DNS provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. robots.txt doesn&#8217;t block important pages.<\/strong> Open yoursite.com\/robots.txt. A line that reads <code>Disallow: \/<\/code> blocks everything. <em>Fix:<\/em> remove the line; block only admin and search result pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Important pages are indexed.<\/strong> In Search Console, open Pages and check &#8220;Why pages aren&#8217;t indexed&#8221;. <em>Fix:<\/em> each reason has its own fix; &#8220;Crawled, currently not indexed&#8221; usually means the page needs more useful content or more internal links.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. No stray noindex tags.<\/strong> Crawl the site and filter for pages with a noindex meta tag. Staging settings left on after launch are a common cause. <em>Fix:<\/em> remove noindex from pages that should rank.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. An XML sitemap exists and is submitted.<\/strong> It should list only pages you want indexed, that return 200 and are not redirected. <em>Fix:<\/em> generate it from your CMS or build tool and submit it in Search Console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. The sitemap is referenced in robots.txt.<\/strong> Add <code>Sitemap: https:\/\/yoursite.com\/sitemap.xml<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Redirects and status codes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. One version of the site.<\/strong> http, https, www and non-www should all end up at one address with a single redirect. <em>Fix:<\/em> set it at your host or server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. No broken internal links.<\/strong> Crawl the site and filter for 404 responses. <em>Fix:<\/em> update the link or redirect the missing page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>9. Redirects are permanent.<\/strong> Moved pages should use 301 redirects, not 302. <em>Fix:<\/em> change them in your server or plugin settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>10. No redirect chains.<\/strong> A redirect that leads to another redirect slows crawling and loses value. <em>Fix:<\/em> point each old URL straight at its final address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>11. A useful 404 page.<\/strong> Missing pages should return a real 404 status with links back into the site, not a redirect to the homepage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Page signals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>12. Unique titles.<\/strong> Every indexed page needs its own title, around 50 to 60 characters, with the main topic near the front. <em>Fix:<\/em> the crawler lists duplicates and missing titles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>13. Unique meta descriptions.<\/strong> Not a ranking factor, but they shape the snippet people click. Aim for 120 to 155 characters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>14. One clear H1 per page<\/strong>, matching what the page is about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>15. Canonical tags.<\/strong> Each page should point its canonical tag at itself, unless it is a deliberate duplicate. <em>Fix:<\/em> check pages with URL parameters and print versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>16. Images have alt text<\/strong> that describes them. It helps accessibility and image search.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>17. Important pages get internal links.<\/strong> Pages linked only from the sitemap rank poorly. <em>Fix:<\/em> link to key pages from the menu, the homepage and related posts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Structured data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>18. Organization data on the homepage<\/strong>: name, logo, address if you serve customers in person, and links to your profiles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>19. Article or BlogPosting data on posts<\/strong>, with author, date published and date modified.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>20. BreadcrumbList data<\/strong> on pages below the top level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>21. No errors in Google&#8217;s Rich Results Test.<\/strong> <em>Fix:<\/em> correct missing required fields. Avoid FAQ and HowTo markup expecting rich results; Google no longer shows them for most sites.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Speed and mobile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>22. Core Web Vitals pass.<\/strong> Check Search Console&#8217;s Core Web Vitals report and PageSpeed Insights. Largest Contentful Paint under 2.5 seconds, Interaction to Next Paint under 200 milliseconds, Cumulative Layout Shift under 0.1. Our <a href=\"https:\/\/kryloweb.com\/blog\/improve-core-web-vitals\/\">Core Web Vitals case study<\/a> shows how we fixed ours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>23. Images are sized and compressed.<\/strong> Serve WebP or AVIF at the size they are shown. Give every image a width and height. Our <a href=\"https:\/\/kryloweb.com\/blog\/website-speed-optimization-guide\/\">website speed optimization guide<\/a> covers the other common causes of slow pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>24. The site works on a phone.<\/strong> Text readable without zooming, buttons large enough to tap, nothing wider than the screen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>25. HTTPS everywhere<\/strong>, with no pages that load images or scripts over plain http.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The order to work through this technical SEO checklist<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Anything that stops indexing: robots.txt blocks, noindex tags, site-wide redirect problems<\/li>\n\n\n\n<li>Broken pages and redirect chains on important URLs<\/li>\n\n\n\n<li>Titles, H1s and canonicals on pages that matter for enquiries<\/li>\n\n\n\n<li>Speed problems on your most visited pages<\/li>\n\n\n\n<li>Structured data and the rest<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Fix, then check Search Console again after two to four weeks, since changes take time to show.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When a tool is enough, and when you need a person<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A crawler and Search Console will find almost everything on this list. You need help when the fixes are in theme code, server settings or a platform you can&#8217;t change yourself, or when traffic has dropped and the cause isn&#8217;t obvious. That is what our <a href=\"https:\/\/kryloweb.com\/seo-services\">SEO services<\/a> cover. If you are about to redesign, the <a href=\"https:\/\/kryloweb.com\/blog\/website-redesign-seo-checklist\/\">website redesign SEO checklist<\/a> is the place to start.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\" rel=\"nofollow noopener\" target=\"_blank\">Google Search Central documentation on robots.txt, sitemaps, canonicalization, redirects and structured data<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/web.dev\/articles\/vitals\" rel=\"nofollow noopener\" target=\"_blank\">web.dev, &#8220;Web Vitals&#8221;<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Twenty-five technical SEO checks in five groups, each with how to run it with free tools and how to fix what you find. Plus the order to fix things in.<\/p>\n","protected":false},"author":1,"featured_media":2009,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[36,34,35,33],"class_list":["post-1009","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-and-compliance","tag-search-console","tag-seo-checklist","tag-site-audit","tag-technical-seo"],"_links":{"self":[{"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/posts\/1009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/comments?post=1009"}],"version-history":[{"count":2,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/posts\/1009\/revisions"}],"predecessor-version":[{"id":3173,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/posts\/1009\/revisions\/3173"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/media\/2009"}],"wp:attachment":[{"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/media?parent=1009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/categories?post=1009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kryloweb.com\/blog\/wp-json\/wp\/v2\/tags?post=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}